A fájlátviteli protokoll (FTP) egy TCP protokoll fájlok számítógépek közti fel- és letöltésére. Az FTP kliens/szerver modell alapján működik. A kiszolgáló összetevőt FTP démonnak hívják. Folyamatosan figyeli a távoli kliensek FTP-kéréseit. Kérés fogadásakor kezeli a bejelentkezést, és létrehozza a kapcsolatot. A munkamenet időtartama alatt végrehajtja az FTP kliens által küldött parancsokat.
Az FTP-kiszolgáló elérése kétféleképp kezelhető:
- 
                    Névtelenül 
- 
                    Hitelesítve 
Névtelen módban a távoli kliensek az „anonymous” vagy „ftp” nevű alapértelmezett felhasználói fiók használatával, és jelszóként egy e-mail cím küldésével érhetik el az FTP-kiszolgálót. Hitelesített módban a felhasználónak rendelkeznie kell fiókkal és jelszóval. Az FTP kiszolgáló könyvtárainak és fájljainak elérése a bejelentkezéshez használt fiók jogosultságaitól függ. Általánosságban az FTP-démon elrejti az FTP-kiszolgáló gyökérkönyvtárát, és az FTP home könyvtárára változtatja. Ez elrejti a fájlrendszer többi részét a távoli munkamenetek elől.
A vsftpd az Ubuntuban elérhető egyik FTP-démon. Egyszerű telepíteni, beállítani és karbantartani. A vsftpd telepítéséhez adja ki a következő parancsot:
sudo apt-get install vsftpd
              
                By default vsftpd is not configured to only allow anonymous download.
                If you wish to enable anonymous download edit /etc/vsftpd.conf changing:
                
anonymous_enable=Yes
                During installation a ftp user is created with a home directory 
                of /srv/ftp.  This is the default FTP directory.
                
                If you wish to change this location, to /srv/files/ftp
                for example, simply create a directory in another location and 
                change the ftp user's home directory:
                
sudo mkdir /srv/files/ftp sudo usermod -d /srv/files/ftp ftp
A módosítás után indítsa újra a vsftpd démont:
sudo restart vsftpd
                
                Finally, copy any files and directories you would like to make available
                through anonymous FTP to /srv/files/ftp, or /srv/ftp if you wish to 
                use the default.
                
                By default vsftpd is configured to authenticate
                system users and allow them to download files.  If you want users to be able to upload files, edit
                /etc/vsftpd.conf:
                
write_enable=YES
Indítsa újra a vsftpd démont:
sudo restart vsftpd
                Miután a rendszer felhasználói bejelentkeznek az FTP-re, a saját könyvtáraikba fognak belépni, és onnan tölthetnek le illetve fel, hozhatnak létre könyvtárakat stb.
Ehhez hasonlóan alapértelmezésben a névtelen felhasználók nem tölthetnek fel fájlokat az FTP-kiszolgálóra. Ezen beállítás módosításához vegye ki a következő sort megjegyzésből, és indítsa újra a vsftpd démont:
anon_upload_enable=YES
| ![[Figyelem]](/img/admon/warning.png)  | |
| A névtelen FTP-feltöltés engedélyezése hatalmas biztonsági kockázat. A legjobb megoldás a névtelen feltöltés letiltva hagyása az internetről közvetlenül elérhető kiszolgálókon. | 
A konfigurációs fájl számos paramétert tartalmaz. Az egyes paraméterek leírása megtalálható a konfigurációs fájlban. Emellett a fájl kézikönyvoldalán (man 5 vsftpd.conf) is megtalálhatja ezek leírását.
Az /etc/vsftpd.conf tartalmaz a vsftpd biztonságosabbá tételét segítő beállításokat is. A felhasználók például saját könyvtárukra korlátozhatók a következő kivételével a megjegyzésből:
chroot_local_user=YES
Korlátozhatja felhasználók adott csoportját is a saját könyvtárukra:
chroot_list_enable=YES chroot_list_file=/etc/vsftpd.chroot_list
A fenti beállítások megjegyzésből való kivétele után hozzon létre egy /etc/vsftpd.chroot_list nevű fájlt, amely tartalmazza a felhasználók listáját, soronként egy felhasználót. Ezután indítsa újra a vsftpd démont:
sudo restart vsftpd
                Az /etc/ftpusers fájl azon felhasználók listáját tartalmazza, akiknek nem engedélyezett az FTP elérése. Az alapértelmezett lista a root, daemon, nobody stb. felhasználókat tartalmazza. További felhasználók FTP-használatának megtiltásához egyszerűen vegye fel őket erre a listára.
Az FTP titkosítható is az FTPS segítségével. Az FTPS az SSL fölötti FTP rövidítése és nem azonos az SFTP-vel. Az SFTP egy FTP-szerű munkamenet titkosított SSH kapcsolat fölött. A fő különbség, hogy az SFTP felhasználóknak szükségük van egy parancsértelmező fiókra a rendszeren, és nem a nologin parancsértelmezőt használják. Nem biztos, hogy egyes környezetekben – például közös webkiszolgálók esetén – ideális minden felhasználónak parancsértelmezőt adni.
Az FTPS beállításához szerkessze az /etc/vsftpd.conf fájlt, és vegye fel a végére a következőt:
ssl_enable=Yes
Vegye észre a tanúsítvánnyal és kulccsal kapcsolatos beállításokat is:
rsa_cert_file=/etc/ssl/certs/ssl-cert-snakeoil.pem rsa_private_key_file=/etc/ssl/private/ssl-cert-snakeoil.key
Ezek a beállítások alapértelmezésben az ssl-cert csomag által biztosított tanúsítványra és kulcsra vannak állítva. Éles környezetben ezeket az adott géphez generált tanúsítvánnyal és kulccsal kell helyettesíteni. A tanúsítványokkal kapcsolatos további információkért lásd a „Tanúsítványok” szakaszt.
Most indítsa újra a vsftpd démont, és a nem névtelen felhasználók az FTPS használatára lesznek kényszerítve:
sudo restart vsftpd
                Ahhoz, hogy a /usr/sbin/nologin parancsértelmezővel rendelkező felhasználók elérhessék az FTP-t, szerkessze az /etc/shells fájlt, és vegye fel a nologin parancsértelmezőt:
# /etc/shells: valid login shells /bin/csh /bin/sh /usr/bin/es /usr/bin/ksh /bin/ksh /usr/bin/rc /usr/bin/tcsh /bin/tcsh /usr/bin/esh /bin/dash /bin/bash /bin/rbash /usr/bin/screen /usr/sbin/nologin
Erre azért van szükség, mert a vsftpd alapértelmezésben a PAM-ot használja hitelesítésre, és az /etc/pam.d/vsftpd konfigurációs fájl tartalmazza a következőt:
auth required pam_shells.so
A shells PAM modul korlátozza a parancsértelmezők elérését az /etc/shells fájlban felsoroltakra.
A legtöbb népszerű FTP-kliens beállítható az FTPS használatával történő csatlakozásra. Az lftp parancssori FTP-kliens is képes az FTPS használatára.
- 
                      További információkért lásd a vsftpd weboldalát. 
- 
                      Az /etc/vsftpd.confrészletes beállításaiért lásd a vsftpd.conf kézikönyvoldalát.
- 
                      A FTPS vs. SFTP: What to Choose cikk hasznos információkat tartalmaz az FTPS és az SFTP különbségeiről. 
- 
                      További információkért nézze meg az Ubuntu wiki vsftpd oldalát. 
 
       
              
 
                  
 
                  