|
|
Dit document is beschikbaar in: English ChineseGB Deutsch Francais Italiano Nederlands Russian Turkce Polish |
door Mario M. Knopf <netzmeister/at/neo5k/dot/org> Over de auteur: Mario houdt zich graag bezig met Linux, netwerken en andere, beveiligings-gerelateerde onderwerpen. In zijn vrije tijd onderhoudt hij twee websites: neo5k.org en linuxwallpapers.de. Vertaald naar het Nederlands door: Guus Snijders <ghs(at)linuxfocus.org> Inhoud: |
vsftpd - Een Introductie tot de Very Secure FTP DaemonKort:
Dit artikel geeft een basis introductie tot de "Very Secure FTP
Daemon" (NL: de erg veilige FTP daemon). Ik zal beginnen met
een algemene beschrijving van FTP en vsftpd. Daarna kijken we
naar de installatie, configuratie en start opties van de vsftp
daemon. We sluiten af met een korte functie test.
|
FTP gebruikt het verbindings controlerende TCP (Transmission Control Protocol) als transport protocol, welke de aankomst van de data bij de ontvanger garandeerd. Daarom is er geen noodzaak voor FTP om zich zorgen te maken over dataverlies of fout controle tijdens de data-overdracht. Kort gezegd zorgt TCP ervoor dat ieder data pakket slechts een keer aankomt - zonder fouten en in de juiste volgorde.
Data tranmissie komt voor in drie verschillende soorten , waarbij het einde van de stream (stroming) mode is gemarkeerd met een end-of-file (EOF, NL: einde bestand) en in de andere twee transport-modi met een end-of-record (EOR, NL:einde record) markeerder.
In aanvulling daarop zijn er twee verschillende overdrachts modi:
De ASCII-mode wordt gebruikt voor het overdragen van tekst bestanden, de binary mode wordt gebruikt om programma's en vergelijkbare data te transporteren. De gebruiker hoeft niet specifiek de overdrachtsmodus aan te geven, daar tegenwoordig vrijwel alle FTP clients naar het herkende bestandstype omschakelen voor de overdracht.
Daar de gebruikersnaam en wachtwoord voor de authenticatie niet versleuteld zijn, is het erg belangrijk om te wijzen op het potentiële beveilings risico. Dit voor sommigen aanleiding voor twijfels over veiligheid van FTP. In Oktober 1997 werd eindelijk RFC 2228[2] gepubliceerd, welke beveiligings specifieke uitbreidingen aan het File Transfer Protocol definieerd.
De naam vsftpd staat voor "very secure FTP daemon" (erg veilige FTP daemon), een van de belangrijkste eisen van ontwikkelaar Chris Evans. Vanaf het begin van de ontwikkeling was het ontwikkelen en ontwerp van de FTP server's hoge beveiliging een van de onderwerpen.
Een voorbeeld is het feit dat vsftpd wordt uitgevoerd in chroot mode, wat betekend dat een programma (in dit geval vsftpd een nieuwe root directory [l] krijgt toegewezen en dus geen programma's of bestanden buiten die directory kan benaderen - hij is zo gezegd 'opgesloten'. Zou de FTP-server worden gekraakt, is de potentiële aanvaller geïsoleerd van de rest van het systeem en wordt zo de schade beperkt. Meer informatie over chroot kan gevonden worden in het artikel in [3]. Artikel [4] wordt aanbevolen aan degenen die geïnteresseerd zijn in de specifieke beveiligingsmechanismen van vsftpd
Met de vele features - waarvan de eisen voor de veiligheid van de FTP-service de hoogste prioriteit zouden moeten hebben - verheft vsftpd zich significant boven de andere FTP-servers. WU-FTPD[5] wordt genoemd als negatief voorbeeld door de variatie van vele beveilingsproblemen in de afgelopen paar jaar.
Na het ophalen van de broncode, pak je tarball uit en ga je naar de zojuist gemaakte directory en voer je hier make uit. Hier is een demonstratie van de benodigde commando's:
neo5k@phobos> tar xzvf
vsftpd-x.x.x.tar.gz
neo5k@phobos> cd vsftpd-x.x.x
neo5k@phobos> make
neo5k@phobos> mkdir /var/ftp
neo5k@phobos> useradd -d /var/ftp ftp
neo5k@phobos> chown root.root /var/ftp
neo5k@phobos> chmod og-w /var/ftp
neo5k@phobos> make install
De man pagina's en het programma worden nu gekopieerd naar de juiste locaties in het bestandssysteem. In het geval van onverwachte complicaties kan het handmatig kopiëren van de bestanden volstaan.neo5k@phobos> cp vsftpd /usr/sbin/vsftpd
neo5k@phobos> cp vsftpd.conf.5 /usr/share/man/man5
neo5k@phobos> cp vsftpd.8 /usr/share/man/man8
neo5k@phobos> cp vsftpd.conf /etc
# Commentaar regel
Een voorbeeld configuratie zou er zo uitzien:# Anonieme FTP-toegang toestaan? YES/NO
anonymous_enable=NO
# Anoniem uploaden toestaan? YES/NO
anon_upload_enable=NO
# Mogen anonieme gebruikers nieuwe directories maken? YES/NO
anon_mkdir_write_enable=NO
# Anonieme gebruikers andere schrijf operaties toestaan -
zoals hernoemen of verwijderen? YES/NO
anon_other_write_enable=NO
# Login door lokale gebruikers toestaan? YES/NO
local_enable=YES
# lokale gebruikers in hun home directory opsluiten? YES/NO
chroot_local_user=YES
# Max data overdracht in bytes per seconde voor lokaal ingelogde
gebruikers. Default = 0 (ongelimiteerd)
local_max_rate=7200
# Algemene schrijf permissie? YES/NO
write_enable=YES
# Berichten mogelijk bij wisselen directories? YES/NO
dirmessage_enable=YES
# Welkom banner voor gebruikers bij inloggen
ftpd_banner="Welkom bij neo5k's FTP service."
# Logging activeren? YES/NO
xferlog_enable=YES
# Alle FTP activiteiten loggen? YES/NO
# Voorzichtig! Kan veel data veroorzaken
log_ftp_protocol=NO
# Bevestig dat alleen verbindingen op poort 20 (ftp data) zijn
toegestaan. YES/NO
connect_from_port_20=YES
# Timeout voor idle (stille?) sessies
idle_session_timeout=600
# Data connectie timeout
data_connection_timeout=120
# Toegang via Pluggable Authenticatie Modules (PAM)
pam_service_name=vsftpd
# Zelfstandige operatie? YES/NO - afhankelijk van operatie
mode (inetd, xinetd, Standalone)
# De FTP service van de auteur start via xinetd, daarom is
de waarde hier NO.
listen=NO
neo5k@phobos> vi /etc/inetd.conf
We zoeken naar de regels voor de FTP services en verwijderen het commentaar teken (#) voor de vsftpd entry. Als er niet zo'n entry is, kunnen we er zelf een maken. Vervolgens dienen we inetd te herstarten. De entry ziet er als volgt uit:# ftp stream tcp nowait root /usr/sbin/tcpd in.ftpd ftp stream tcp nowait root /usr/sbin/tcpd vsftpd
# vsftp daemon. service ftp { disable = no socket_type = stream wait = no user = root server = /usr/sbin/vsftpd per_source = 5 instances = 200 no_access = 192.168.1.3 banner_fail = /etc/vsftpd.busy_banner log_on_success += PID HOST DURATION log_on_failure += HOST nice = 10 }
# Zelfstandige operatie? YES/NO
listen=YES
neo5k@phobos> /usr/sbin/vsftpd &
Als het zoekpad goed is ingesteld, zal dit commando de start uitvoeren:neo5k@phobos> vsftpd &
Met het volgende commando kunnen we controleren of het zoekpad correct was opgegeven:neo5k@phobos> echo $PATH
/usr/sbin:/bin:/usr/bin:/sbin:/usr/X11R6/bin
neo5k@phobos> ftp phobos Connected to phobos 220 "Welkom bij neo5k's FTP service." Name (phobos:neo5k): testuser 331 Please specify the password. Password: 230 Login successful Remote system type is UNIX. Using binary mode to transfer files. ftp> ls -l 229 Entering Extended Passive Mode 150 Here comes the directory listing drwxr-xr-x 11 500 100 400 May 07 16:22 docs drwxr-xr-x 9 500 100 464 Feb 01 23:05 hlds drwxr-xr-x 39 500 100 4168 May 10 09:15 projects 226 Directory send OK. ftp>
Natuurlijk biedt deze introductie slechts een glimp in de omgeving die wordt aangeboden door vsftpd, daar de FTP server vele mogelijkheden voor configuratie biedt. Diegenen die vsftpd graag verder willen bestuderen, zouden een bezoek moeten brengen aan de project pagina[6] en de uitgebreide documentatie doorspitten.
|
Site onderhouden door het LinuxFocus editors team
© Mario M. Knopf, FDL LinuxFocus.org |
Vertaling info:
|
2004-07-30, generated by lfparser version 2.36