Linux Systeembeheer/Bestanden en printers delen
Uit Wikibooks
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
- basisconfiguratie /etc/exports
- 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