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