Linux Systeembeheer/Bestanden en printers delen: verschil tussen versies

Verwijderde inhoud Toegevoegde inhoud
Tectux (overleg | bijdragen)
Tectux (overleg | bijdragen)
FTP inhoud, structuur, opmaak
Regel 118:
file0 file1 file2 upload
$ umount /mnt
 
 
=== Alternatief met vaste poorten en hosts.allow/deny ===
Regel 313 ⟶ 312:
== Een FTP-server opzetten ==
 
FTP staat voor File Transfer Protocol en maakt het mogelijk bestanden uit te wisselen over TCP/IP.
We installeren de nodige onderdelen als volgt: <br/>
::'''#yum install vsftpd system-config-vsftpd'''
 
=== Installatie ===
Vervolgens zorgen we er voor dat de ftp-service altijd start als de server start: <br/>
::'''#chkconfig --level 2345 vsftpd on'''
 
''De opdrachtregels die verder volgen zijn getest op een minimale installatie van CentOS 5.5.''
Nu moeten we nog verbindingen toelaten van buitenaf voor ftp: <br/>
::'''#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'''
 
$ yum install vsftpd
Nu dit allemaal ingesteld is, kunnen we de service al eens starten. <br/>
::'''#service vsftpd start'''
 
=== Configuratie ===
We maken nu de nodige directory’s aan met de juiste rechten. <br/>
::'''#mkdir –p /shares/Public/upload'''
::'''#chmod –R 777 /shares/'''
::'''#chmod –R 555 /shares/Public/'''
::'''#chmod –R 777 /shares/Public/upload'''
 
Als voorbeeld configureren we een FTP-server waar je als anonieme gebruiker de inhoud van ''/shares/Public'' kan zien.
Vervolgens gaan we de directory juist instellen zodat er gelezen kan worden uit de juiste directory’s, daarvoor gaan we de homedirectory van de standaard ftp-gebruiker aanpassen: <br/>
::'''#nano /etc/passwd'''
Hier zoeken we naar de lijn met volgende gegevens: <br/>
::'''#ftp:x:14:50:FTP User:/var/ftp:/sbin/nologin'''
 
$ vi /etc/vsftpd/vsftpd.conf
en veranderen deze naar: <br/>
anonymous_enable=YES
::'''#ftp:x:14:50:FTP User:/shares/Public:/sbin/nologin'''
anon_root=/shares/Public
no_anon_password=YES
 
We stellen de firewall in met ''system-config-securitylevel-tui''.
Als allerlaatste stap moeten we juist nog tegen SELinux zeggen dat de FTP-service deze mappen mag gebruiken: <br/>
::'''#setsebool -P ftp_home_dir 1'''
 
$ system-config-securitylevel-tui
We testen de ftp-server uit door via een externe ftp-client of browser te gaan naar: <br/>
Security Level: Enabled
::'''ftp://x.x.x.x (server-ip)'''
SELinux: Enforcing
Klik op 'Customize' en vink 'FTP' aan.
 
Naast het toelaten inkomende FTP verbindingen is het ook nodig een SELinux boolean te wijzigen, zodat de variabele ''anon_root'' effect heeft.
Alles alles goed gaat moet je de inhoud van de map /shares/Public zien.
 
$ setsebool -P ftp_home_dir on
== De firewall instellen ==
 
Het enige wat ons verder rest is de service te starten, alsook maken dat deze start bij het opstarten van de server.
Voor deze opdracht kan je onze firewall hieronder gebruiken, maar om alles te begrijpen en zelf wijzigingen te kunnen maken, neem je best een kijkje op:
 
$ service vsftpd start
http://nl.wikibooks.org/wiki/Linux_Systeembeheer/Firewalls
$ chkconfig vsftpd on
 
=== Testen ===
 
In het voorbeeld is het adres van de server 192.168.1.115.
 
De server testen kunnen we doen door met een FTP-client of webbrowser verbinding te maken met ftp://192.168.1.115/.
 
== De firewall instellen ==
 
Naast gebruik te maken van ''system-config-securitylevel(-tui)'' kan je de [[Linux Systeembeheer/Firewalls|firewall]] uiteraard ook configureren met ''iptables''.
http://bertvanvreckem.wordpress.com/
 
Een overzichtjeoverzicht van onzede iptables voor een NAS firewall.met NFS, Samba en FTP:
 
# Firewall configuration written by system-config-securitylevel
Regel 391 ⟶ 387:
-A INPUT -p tcp --dport 21 -j ACCEPT
-A INPUT -p tcp --dport 20 -j ACCEPT
# FTP server poorten voor toegang uitvanuit een brouwserbrowser (niet nodig viavoor ftpFTP-clientclients)
#-A INPUT -p tcp --dport 6400:65535 -j ACCEPT
COMMIT
 
== Alternatief bij problemen ==
Dit is een oplossing getest op CentOS en werkend bevonden.
 
'''Procedure installatie NFS:'''
 
''# yum install nfs-utils''
 
Dependencies: portmap, libevent, libgssapi, nfs-utils-lib.
 
SELinux instellingen:
 
''# system-config-securitylevel-tui''
 
Security Level: enabled. SELinux: Enforcing. Allow incoming: NFS4.
NFS configuratie:
In het NFS configuratiebestand, /etc/exports, bepalen we welke directories we met welke hosts
willen delen. Een configuratieregel heeft volgende syntax:
<export> <host1>(<options>) <hostN>(options)...
Mogelijke options zijn onder andere:
ro/rw, async/sync, wdelay, all_squash, en no_root_squash.
De optie all_squash forceert dat gebruikers die verbinding maken, de account en permissies
van nobody krijgen. Met no_root_squash kan de nfs export benaderd worden als root.
 
''# vi /etc/exports''
 
/shares/Public 192.168.1.0/24(rw,sync,all_squash,fsid=0)
10.0.0.0/16(rw,sync,all_squash,fsid=0)
Een van de belangrijkste opties hier is de fsid=0 optie, dewelke de server vertelt welke map de root
van de nfs is.
Uiteraard moet de map die we willen delen bestaan.
 
''# mkdir -p /shares/Public/upload''
 
''# chmod 777 /shares/Public/upload''
 
''# cd /shares/Public; for i in 0 1 2; do touch file$i; done; cd''
 
De nodige daemons starten.
 
''# service portmap start''
 
''# service nfs start''
 
''# service nfslock start''
 
De daemons automatisch starten bij boot.
 
''# chkconfig --list | grep portmap''
 
''# chkcondig --list | grep nfs''
 
''# chkconfig nfs on''
 
Als het bestand /etc/exports gewijzigd wordt, kan de nieuwe configuratie gebruikt worden zonder nfs te herstarten aan de hand van het exportfs commando.
 
''# exportfs -ra''
 
Controleren of NFS draait.
 
''# rpcinfo -p''
portmapper (tcp/udp), nfs (tcp/udp), nlockmgr (tcp/udp), mountd (tcp/udp)
 
'''Testprocedure & resultaten:'''
 
1. Op de CentOS server zelf:
 
''# mount -vt nfs4 192.168.1.115:/ /mnt''
 
''# ls /mnt''
 
file0 file1 file2 upload
 
''# touch /mnt/writetest''
 
touch: cannot touch '/mnt/writetest': Permission denied # OK #
 
''# touch /mnt/upload/writetest # OK #''
 
''# ls /mnt/upload/''
 
writetest
 
''# umount /mnt''
 
2. Op een CentOS client:
 
''# yum install nfs-utils''
 
''# service portmap start''
 
''# service nfs start''
 
''# service nfslock start''
 
''# mount -vt nfs4 192.168.1.115:/ /mnt''
 
''# vi /mnt/upload/writetest''
 
Modified
:wq # OK #
 
''# umount /mnt''
 
3. Op een Debian/Ubuntu client:
 
''$ sudo apt-get install nfs-common''
 
Vervolgens verzekeren we dat de NFS module draait.
 
''$ cat /proc/filesystems | grep nfs''
 
Indien we geen resultaten krijgen, laden we de module manueel.
 
''$ sudo modprobe nfs''
 
De NFS mounten:
 
''$ sudo mount -vt nfs4 192.168.1.115:/shares/Public /mnt''
 
''$ ls /mnt''
 
file0 file1 file2 upload
 
''$ umount /mnt''
 
'''Procedure installatie Samba:'''
 
''# yum install samba''
 
SELinux instellingen:
Security Level: enabled. SELinux: Enforcing. Allow incoming: SAMBA.
 
Samba configuratie:
 
''# vi /etc/samba/smb.conf''
 
[global]
workgroup = WORKGROUP
log file = /var/log/samba/%m.log
security = user
passdb backend = tdbsam
[public]
path = /shares/Public
public = yes
read only = yes
printable = no
write list = +student
guest ok = yes
 
We wijzigen de security context van de map die we willen delen.
 
''# chcon -R -t samba_share_t /shares/Public''
 
We maken de gebruiker student aan voor de samba share.
 
''# useradd -c “Student” student''
 
''# passwd student''
 
Password: student
 
We starten de service.
 
''# service smb start''
 
''# smbpasswd -a student''
 
Password: student
 
''# chkconfig smb on''
 
 
'''Testprocedure:'''
 
In Ubuntu 10.10:
Places -> Connect to Server -> Windows Share
Server: 192.168.1.115
Share: public
User Name: (blanco = guest account)
De schijf wordt read-only gemount.
Places -> Connect to Server -> Windows Share
Server: 192.168.1.115
Share: public
User Name: student
Inloggen met wachtwoord “student”. De schijf wordt succesvol gemount, alleen de upload
directory is schrijfbaar.
In Windows 7 Professional:
Windows Explorer -> \\192.168.1.115
 
'''FTP-server'''
 
Zet een FTP-server op waar je als anonieme gebruiker de inhoud van /shares/Public kan zien.
 
''# yum install vsftpd''
 
''# vi /etc/vsftpd/vsftpd.conf''
 
anonymous_enable=YES
anon_root=/shares/Public
no_anon_password=YES
 
''# system-config-securitylevel-tui''
 
Allow incoming: FTP
 
''# setsebool -P ftp_home_dir on''
 
''# service vsftpd start''
 
''# chkconfig vsftpd on''
 
== Labo-opdracht ==
Informatie afkomstig van https://nl.wikibooks.org Wikibooks NL.
Wikibooks NL is onderdeel van de wikimediafoundation.