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
Alapértelmezésben a vsftpd csak a névtelen letöltés engedélyezésére van beállítva. A telepítés során létrejön egy ftp felhasználó, a saját könyvtára pedig a /home/ftp
. Ez az alapértelmezett FTP könyvtár.
Ha meg szeretné változtatni ezt a helyet, akkor egyszerűen hozza létre a könyvtárat (például: /srv/ftp
), és módosítsa az ftp felhasználó saját könyvtárát.
sudo mkdir /srv/ftp sudo usermod -d /srv/ftp ftp
A módosítás után indítsa újra a vsftpd démont:
sudo /etc/init.d/vsftpd restart
Végül másoljon át minden, a névtelen FTP-n megosztani kívánt fájlt és könyvtárat az /srv/ftp
könyvtárba.
A vsftpd beállításához a rendszer felhasználóinak hitelesítésére, és fájlok feltöltésének engedélyezéséhez szerkessze az /etc/vsftpd.conf
fájlt:
local_enable=YES write_enable=YES
Indítsa újra a vsftpd démont:
sudo /etc/init.d/vsftpd restart
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 /etc/init.d/vsftpd restart
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 /etc/init.d/vsftpd restart
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.