FTP server 2

Instalace a konfigurace FTP serveru vsftpd.

18.7.2005 06:00 | Martin Pruša | přečteno 12894×

Po vydání článku s návodem na instalaci a konfiguraci FTP serveru ProFTPD jsem byl upozorněn, že pro některé uživatele není tento server vhodný, bezpečný nebo dokonce dostatečně rychlý. Údajně je lepší volbou FTP server vsftpd. Rozhodnutí, který server je lepší nechávám na každém případném čtenáři.

Oficiální stránky tohoto projektu jsou na http://vsftpd.beasts.org a ještě uvedu jednu zajímavou stránku http://www.vsftpd.org, kde jsou uvedeny užitečné návody a nastavení. Jak je zvykem u spousty programů, že název je zároveň zkratkou, tak ani vsftpd není výjimkou a zkratka vsftpd znamená very secure FTP daemon. Neodpustím si ještě neuvedení zajímavého podnadpisu z oficiálních stránek a to že vstftpd je možná nejbezpečnější a nejrychlejší FTP server.

Instalace

Tradičně se musí začít instalací. Tento program je součástí většiny distribucí. Druhá možnost, pro uživatele, kteří ve své distribuci nenaleznou nebo potřebují za každou cenu nejnovější verzi, je sekce download na oficiálních stránkách projektu. Při instalaci by se neměl vyskytnout žádný problém, ať už instalujeme pomocí (pro někoho svaté trojkombinace) ./configure, make, make install, nebo apt nebo rpm.

Ještě by se slušelo upozornit, že některé články tvrdí, že vsftpd neběží jako samostatný (standalone) daemon, ale vyžaduje pro svoji práci superserver. Což není pravda, jak si hned dokážeme. Tuto vlastnost využijeme při prvním testování.

Do souboru vsftpd.conf (nejčastěji umístěn v /etc nebo /etc/vsftpd) přidáme řádek:

listen=YES

Poté spustíme daemona:

/usr/sbin/vsftpd &

No a nakonec se zkusíme přihlásit:

ftp localhost

Ač server může běžet v standalone režimu, je doporučeno spouštět jej přes nějaký superserver například inetd nebo xinetd. Takže změníme hodnotu listen na NO v souboru vsftpd.conf. Jestliže používáte inetd, tak do souboru /etc/inetd.conf přidejte nebo přepište řádek s ftp službou takto:

ftp stream tcp nowait root /usr/sbin/vsftpd vsftpd

A po tomto zásahu by bylo vhodné superserver restartovat.
V případě používání superserveru xinetd přidejte do adresáře /etc/xinetd.d/ soubor vsftpd. V případě jeho existence zkontrolujte, popřípadě změňte jeho obsah takto:

#default: off
#description: The vsftpd FTP server serves FTP connesctions. It uses
#normal, unencrypted usernames and passwords for authentication.
service ftp
{
disable = no
socket_type = stream
wait = no
user = root
server = /usr/sbin/vsftpd
nice = 10
}

A opět je vhodné (nutné) po tomto zásahu restartovat superserver. A ještě se můžeme cvičně zkusit přihlásit, zda je vše v pořádku.

Konfigurace

Instalaci máme úspěšně za sebou a můžeme se vrhnout do víru konfigurace. Začneme souborem vsftpd.conf a popíšeme si jeho volby (pouze některé a stručně, protože soubor je bohatě komentován a celkově má program velice zdařilou dokumentaci).
anonymous_enable=YES/NO - anonymní přihlášení
local_enable=YES/NO - lokální přihlášení
write_enable=YES/NO - povolení zápisu
local_umask= - implicitní formát masky pro přidělování přístupových práv; nejčastější hodnoty 022,077
anon_root= - adresář pro anonymní uživatele
anon_max_rate= - omezení datového toku [b/s]
loacl_max_rate= - omezení datového toku lokálním uživatelům [b/s]
anon_upload_enable=YES/NO - upload anonymními uživateli
anon_mkdir_write_enable=YES/NO - vytváření adresářů anonymními uživateli
dirmessage_enable=YES/NO - zpráva při vstupu do adresáře
xferlog_enable=YES/NO - zapnutí logování uploadu a downloadu
xferlog_file= - soubor kam se bude logovat
xferlog_std_format=YES/NO - standardní formát logu
connect_from_port_20=YES/NO - přidělení portu 20
chown_uploads=YES/NO - nastavení práv pro uploadované soubory
chown_username= - nastavení konkretních práv; například root:)
idle_session_timeout= - odpojení při nečinnosti (v sekudách)
nopriv_user= - neprivilegovaný uživatel
async_abor_enable=YES/NO - asynchronní požadavek ABOR; povolení je nebezpečné
asci_upload_enable=YES/NO - ASCI mód pro upload
asci_download_enable=YES/NO - ASCI mód pro download
ftp_banner= - zpráva při přihlášení
pam_service_name= - identifikace pro PAM vrstvu
userlist_deny=YES/NO - seznam zakázaných uživatelů
userlist_enable=YES/NO - jestliže je tato volba zapnuta pak se zakázaného uživatele server neptá na heslo
userlist_file= - soubor se zakázanými uživateli (nejčastěji vsftpd.ftpusers); je vhodné zakázat uživatele root, nobody...

Můj vsftpd.conf

anonymous_enable=YES
anon_root=/home/ftp/
local_enable=YES
xferlog_enable=YES
xferlog_file=/var/log/vsftpd.log
connect_from_port_20=YES
idle_session_timeout=600
nopriv_user=ku
ftpd_banner=Samael FTP Server. Stáhni a táhni!!!
pam_service_name=vsftpd
max_clients=200
userlist_deny=YES
userlist_file=/etc/vsftpd.ftpusers
userlist_enable=YES

Pár slov závěrem

Na tento server spousta lidí nedá dopustit kvůli své rychlosti, bezpečnosti a rychlé konfiguraci. Jednoduchost konfigurace je sporná (ostatně každému vyhovuje něco jiného), protože chcete-li obyčejné sdílení pře FTP je konfigurace určitě snadná. Ale v případě, že chcete nějakou "vymoženost", například pro anonymního uživatele jediný adresář pro zápis a ostatní adresáře jen pro čtení, nastane drobný problém (na tuto možnost se nepamatovalo bohužel ani v dokumentaci). Ale mocný nástroj zvaný Google si i s tímto problémem poradí.

Online verze článku: http://www.linuxsoft.cz/article.php?id_article=754