Vsftpd a pasivní mód FTP

Vsftpd je jednoduchý FTP server, jehož kódy jsou poskytovány pod licencí GPL. Najdete jej snad již ve všech linuxových distribucích a pomocí něj beží např. i ftp.redhat.com. Proč? Rychlý, bezpečný, stabilní a s jednoduchou konfigurací. Pro jednodušší řešení jak dělaný.

Aktivní vs. pasivní mód (režim)

Z wikipedie:

Aktivní režim
Na portu TCP/20 jsou přenášena data (data connection). V aktivním režimu navazuje připojení pro přenos dat server, klient naslouchá. Problém zpravidla nastává v případě, kdy se klient připojuje z privátní sítě a jeho IP adresa je překládána (NAT) nebo se nachází za firewallem.

Pasivní režim
V pasivním režimu navazuje data connection klient, kterému při sestavování připojení poslal server svou IP adresu a TCP port, na kterém naslouchá.

Obsáhlejší objasnění (i s pěknými obrázky) můžete najít na slacksite.com (EN).

Konfigurace vsftpd

V systému naleznete pouze jeden - pěkně dokumentovaný - soubor (v RHEL a klonech je to /etc/vsftpd/vsftpd.conf).

Je dobré si projet celou konfiguraci. vsftpd má například ve výchozím nastavení povoleno anonymní přihlašování (nastavit na anonymous_enable=NO). Dobré je povolit uživatelům přístup pouze do jejich složek, aby se Vám nepotulovali po systému (direktiva chroot_local_user=YES).

Samotné nastavení pro pasivní režim je následující:

# passive mode
pasv_enable=YES
pasv_min_port=20000
pasv_max_port=20100
port_enable=YES

Kde pomocí pasv_enable povolíme pasivní režim, pasv_min_port a pasv_max_port stanoví, jaký rozsah portů se bude využívat - jejich hodnoty musí být mezi 1024 a 65535 (mnou zvolené jsou čistě náhodné). Direktiva port_enable nám povolí jak aktivní, tak pasivní režim.

FTP server je poté nutné restartovat pro znovunačtení konfigurace:

# pro RHEL
$ service vsftpd restart
# pro jiné
$ /etc/init.d/vsftpd restart

Nastavení firewallu

V konfiguraci jsme použili porty 20000 - 20100. Pro iptables musíme tento rozsah povolit a to umožňuje přepínač --dport:

$ iptables -A INPUT -p TCP --dport  20000:20100 -j ACCEPT

Zdroj

Dokumentace RedHatu Vám řekne (skoro) vše.