2018. március 23., péntek

FTP-kiszolgáló linux alatt


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

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.

Nincsenek megjegyzések:

Megjegyzés küldése