Linux Systeembeheer/Bestanden en printers delen

Uit Wikibooks

Ga naar: navigatie, zoek

Inhoud

[bewerken] Leerdoelen

In een Redhat-gebaseerd Linux-systeem:

  • Een NFS-server kunnen opzetten
    • basisconfiguratie /etc/exports
      • permissies instellen
      • hosts toelaten (in /etc/exports, hosts.allow/deny)
    • op afstand een NFS-directory mounten
  • Een Samba-server kunnen opzetten
    • bestanden delen
    • printer delen
    • permissies instellen
      • security = user/share/...
      • wachtwoorden beheren
    • verschillende manieren om een share vanuit de client aan te spreken (Windows explorer, Gnome Nautilus, smbclient, mounten)
  • Een eenvoudige FTP-server kunnen opzetten

[bewerken] Labo-opdracht

Tegenwoordig kan je voor weinig geld een netwerk-harde schijf (Network Attached Storage of NAS) kopen.
Meestal draait op dit soort apparaten een vorm van Linux.
De bedoeling van dit labo is zelf zo'n NAS te bouwen.
Voor dit labo zijn we gestart van een netwerk-installatie van Fedora. Meer informatie hierover vind je hier: Linux installeren.

[bewerken] Installatie FTP

We installeren de nodige onderdelen als volgt:

#yum install vsftpd system-config-vsftpd

Vervolgens zorgen we er voor dat de ftp-service altijd start als de server start:

#chkconfig --level 2345 vsftpd on

Nu moeten we nog verbindingen toelaten van buitenaf voor ftp:

#iptables -I INPUT 1 -p tcp --dport 21 -j ACCEPT
#iptables -I INPUT 1 -p tcp --dport 20 -j ACCEPT
#service iptables save
#service iptables restart

Nu dit allemaal ingesteld is, kunnen we de service al eens starten.

#service vsftpd start

We maken nu de nodige directory’s aan met de juiste rechten.

#mkdir –p /shares/Public/upload
#chmod –R 777 /shares/
#chmod –R 555 /shares/Public/
#chmod –R 777 /shares/Public/upload

Vervolgens gaan we de directory juist instellen zodat er gelezen kan worden uit de juiste directory’s, daarvoor gaan we de homefolder van de standaard-ftp-gebruiker aanpassen:

#nano /etc/passwd

Hier zoeken we naar de lijn met volgende gegevens:

#ftp:x:14:50:FTP User:/var/ftp:/sbin/nologin

en veranderen deze naar:

#ftp:x:14:50:FTP User:/shares/Public:/sbin/nologin

Als allerlaatste stap moeten we juist nog tegen SELinux zeggen dat de FTP-service deze mappen mag gebruiken:

#setsebool -P ftp_home_dir 1

We testen de ftp-server uit door via een externe ftp-client of browser te gaan naar:

ftp://x.x.x.x (server-ip)

Alles alles goed gaat moet je de inhoud van de map /shares/Public zien.

[bewerken] Installatie NFS

Ondertussen zijn we al aangekomen bij de instelling van NFS. We beginnen met het installeren van de nodige pakketten.

#yum install –y nfs-utils portmap

Nu gaan we het exportsbestand aanpassen om de nodige instellingen voor de shares op te geven.

#nano /etc/exports

Daarin voegen we volgende regels toe: (bij wijzigen achteraf: #exportfs –rv)

 /shares/Public		        *(ro,sync,all_squash)
 /shares/Public/upload	        *(rw,all_squash)

Eerst stellen we de server-host in:

#echo ’10.0.3.250 server’ >> /etc/hosts

Vervolgens stellen we de hosts in die we willen toelaten tot de server:

#nano /etc/hosts.allow

Hier geven we het volgende in:

 portmap:10.*.*.*/255.0.0.0
 lockd: 10.*.*.*/255.0.0.0
 mountd: 10.*.*.*/255.0.0.0
 rquotad: 10.*.*.*/255.0.0.0
 statd: 10.*.*.*/255.0.0.0

Tot slot stellen we de hosts in die geen toegang krijgen tot de server:

#nano /etc/hosts.deny

Hier geven we het volgende in:

 portmap:ALL
 lockd:ALL
 mountd:ALL
 rquotad:ALL
 statd:ALL

Omdat de poorten variabel zijn bij NFS, is het geen slecht idee om deze vast in te stellen, wat de instellingen van de firewall daarna makkelijker zullen maken:

#nano /etc/sysconfig/nfs

Dit bestand stellen we als volgt in:

 RQUOTAD_PORT=9403
 LOCKD_TCPPORT=8001
 LOCKD_UDPPORT=8002
 MOUNTD_PORT=9402
 STATD_PORT=9401

Vervolgens voegen we de juiste poorten toe aan de firewall (/etc/sysconfig/iptables)

 -A INPUT -m state --state RELATED,ESTABLISHED -j ACCEPT
 -A INPUT -p tcp --dport 111 -j ACCEPT
 -A INPUT -p udp --dport 111 -j ACCEPT
 -A INPUT -p tcp --dport 2049 -j ACCEPT
 -A INPUT -p udp --dport 2049 -j ACCEPT
 -A INPUT -p tcp --dport 9401 -j ACCEPT
 -A INPUT -p udp --dport 9401 -j ACCEPT
 -A INPUT -p tcp --dport 9402 -j ACCEPT
 -A INPUT -p udp --dport 9402 -j ACCEPT
 -A INPUT -p tcp --dport 9403 -j ACCEPT
 -A INPUT -p udp --dport 9403 -j ACCEPT
 -A INPUT -p tcp --dport 8001 -j ACCEPT
 -A INPUT -p udp --dport 8002 -j ACCEPT

Als allerlaatste inspanning veranderen we nog de instellingen van SELinux om er voor te zorgen dat gebruikers geen NFS-systeem meer kunnen mounten:

#setsebool –P nfs_export_all_rw off

Nu dienen we juist nog de service te starten en automatisch te laten starten bij het booten van de server:

#chkconfig --level 2345 nfs on
#service nfs start

We kunnen de nu testen door de NFS te mounten op een andere pc/client en proberen een bestand aan te maken.

#mkdir /mnt/Public
#mkdir /mnt/upload'
#mount 10.0.3.250:/home/shares/Public /mnt/Public
#mount 10.0.3.250:/home/shares/Public/upload /mnt/upload
#touch /mnt/Public/alleenlezen.txt (dit lukt niet angezien ro, wel lezen)
#touch /mnt/upload/lezenenschrijven.txt (dit lukt wel aangeizen rw)

Indien dit niet zou lukken kunnen we altijd controleren of alle poorten open staan via het commando op de client in te geven: #rpcinfo –p 10.0.3.250

En op de server kijken we welke poorten open staan (als de firewall aanstaat via het commando: #netstat -ntl

[bewerken] Samba

We beginnen (zoals altijd) met de installatie van de nodige packages:

#yum install samba

Vervolgens gaan het het configuratiebestand van samba correct instellen:

#nano /etc/samba/smb.conf

Hierin geven we volgende instellingen in:

 [global]
     workgroup = WORKGROUP
     server string = Samba Server Version %v
     netbios name = Samba
     log file = /var/log/samba/%m.log
     # max 50KB per log file, then rotate
     max log size = 50
     security = user
     encrypt passwords = true
     map to guest = bad user
     passdb backend = tdbsam
 [Public]
     path = /shares/Public
     read only = yes
     browseable = yes
     guest ok = yes
 [upload]
     path = /shares/Public/upload
     read only = yes
     browseable = yes
     writable = no
     write list = student
     guest ok = yes

Nu de instellingen voor smb goed staan moeten we nog de gebruiker voor smb toelaten. Als wachtwoord koos ik ‘aqwzsxedcrfv’

#smbpasswd –a student

Instellingsgewijs moeten we nu alleen nog smb toelaten om de nodige folders te gebruiken.

#setsebool -P samba_share_nfs 1
#chcon -R -t samba_share_t /shares/Public
#chcon -R -t samba_share_t /shares/Public/upload

Nu dienen we juist nog de service te starten en automatisch te laten starten bij het booten van de server:

#chkconfig --level 2345 smb on
#service smb start

We testen onze samba server uit door van een ander systeem te verbinden met onze NAS via het ip-adres of hostnaam.
Het is ook mogelijk om zoals bij de NFS, op een andere client, de schijf mounten.
In beide gevallen testen we de lees-en schrijfrechten van ‘guest’ en ‘student’ uit zodat we zeker zijn van een goed werkende samba-server!

[bewerken] Firewall NAS

Een overzichtje van onze NAS firewall.

 # Firewall configuration written by system-config-securitylevel
 # Manual customization of this file is not recommended.
 *filter
 :INPUT DROP [0:0]
 :FORWARD DROP [0:0]
 :OUTPUT ACCEPT [0:0]
 #LOOPBACK INTERFACE
 -A INPUT -i lo -j ACCEPT
 #NFS CONFIG
 -A INPUT -m state --state RELATED,ESTABLISHED -j ACCEPT
 -A INPUT -p tcp --dport 111 -j ACCEPT
 -A INPUT -p udp --dport 111 -j ACCEPT
 -A INPUT -p tcp --dport 2049 -j ACCEPT
 -A INPUT -p udp --dport 2049 -j ACCEPT
 -A INPUT -p tcp --dport 9401 -j ACCEPT
 -A INPUT -p udp --dport 9401 -j ACCEPT
 -A INPUT -p tcp --dport 9402 -j ACCEPT
 -A INPUT -p udp --dport 9402 -j ACCEPT
 -A INPUT -p tcp --dport 9403 -j ACCEPT
 -A INPUT -p udp --dport 9403 -j ACCEPT
 -A INPUT -p tcp --dport 8001 -j ACCEPT
 -A INPUT -p tcp --dport 8002 -j ACCEPT
 #SAMBA
 -A INPUT -p udp --dport 137 -j ACCEPT
 -A INPUT -p udp --dport 138 -j ACCEPT
 -A INPUT -p tcp --dport 139 -j ACCEPT
 -A INPUT -p tcp --dport 445 -j ACCEPT
 #FTP
 -A INPUT -p tcp --dport 21 -j ACCEPT
 -A INPUT -p tcp --dport 20 -j ACCEPT
 #FTP server poorten voor toegang uit een brouwser (niet nodig via ftp-client)
 #-A INPUT -p tcp --dport 6400:65535 -j ACCEPT 
 COMMIT
Informatie afkomstig van http://nl.wikibooks.org Wikibooks NL.
Wikibooks NL is onderdeel van de wikimediafoundation.
Persoonlijke instellingen