VSFTPD
Úvod
VSFTPD je zkratka anglického názvu Very Secure FTP Daemon. Jedná se o rychlý, stabilní a velmi bezpečný FTP server, který je standardní součástí distribuce CentOS a který je obsažen ve velkém počtu dalších distribucí. Největší předností tohoto serveru je opravdu snadná konfigurovatelnost a poměrně velká funkcionalita, kterou nabízí. Velikost démona vsftpd v binární podobě je něco málo přes 100KB a i přes tuto malou velikost dokáže vsftpd hravě obsluhovat přes 2500 současných konexí.
Přehled základních funkcí vsftpd démona:
- podporuje pasivní i aktivní mód
- může běžet buď samostatně nebo přes superserver inetd (xinetd)
- podpora lokálních i anonymních uživatelů
- podpora virtuálních uživatelů
- podpora konfigurace virtuálních IP
- možnost nastavení rozdílné konfigurace pro každého uživatele
- možnost nastavení rozdílné konfigurace nebo limitů pro každou IP adresu
- limitování (škrcení) datového toku
- podpora šifrované komunikace přes SSL
- podporuje IPv6
Trochu teorie
aktivní mód FTP
V aktivním módu se klient připojuje k serveru z náhodného neprivilegovaného
portu (N>1024) a to na port serveru 21, který je určen pro předávání
příkazů. Klient po této úvodní komunikaci otevře port N+1 na kterém bude
naslouchat a toto číslo portu pošle (příkazem PORT) serveru.
Server se poté připojí zpátky z portu 20 (což je port pro data) na daný
klientem zaslaný port.
pasivní mód FTP
Pasivní mód (příkaz PASV) funguje trochu jiným způsobem. V
tomto módu FTP server neprovádí otevření datové komunikace s klientem,
ale o vše se postará klient. Tento způsob byl výhodný v tom, že se nemusel
řešit poblém s nastavením firewallu, protože obě spojení otevírá klient,
zatímco v aktivním módu bylo zapotřebí otevřít port pro naslouchání na
straně klienta. Současné stavové firewally bezproblémově řeší díky
"connection trackingu" jak pasivní, tak aktivní mód.
V pasivním módu otevírá klient dva náhodné neprivilegované porty
(N>1024 a N+1). Přes první port je kontaktován server na portu 21 (port
pro předávání příkazů) a místo toho aby klient poslal příkaz PORT, který by serveru řekl na jaký port klienta se má přihlásit, tak se pošle příkaz
PASV. Výsledkem tohoto příkazu je, že server otevře náhodný
neprivilegovaný port (P>1024) a pošle zpátky klientovi příkaz
PORT P. Klient poté iniciuje komunikaci ze svého portu N+1
na port P serveru a po tomto kanále si následně budou předávat data.
Instalace
Balíček VSFTPD je součástí instalačních médií a tedy i součástí repozitáře base. Instalaci provedeme jako uživatel root následujícím příkazem:
yum install vsftpd
Defaultně je vsftpd démon vypnut ve všech úrovních běhu systému, takže je zapotřebí jej nakonfigurovat pro jeho automatické spouštění po startu/restartu systému, což lze provést například tímto příkazem:
chkconfig --level 3 vsftpd on
Ruční nastartování serveru můžeme provést následovně:
service vsftpd start
nebo
/etc/init.d/vsftpd start