FTP-kiszolgáló

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.

vsftpd – FTP-kiszolgáló telepítése

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

Névtelen FTP beállítása

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.

Felhasználókat hitelesítő FTP konfigurálása

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]

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.

FTP biztonságossá tétele

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.

Hivatkozások