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
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.conf
ré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.