Weboldal keresés

Az FTP-kiszolgáló telepítése és konfigurálása Ubuntuban


Az FTP (File Transfer Protocol) egy viszonylag régi és leggyakrabban használt szabványos hálózati protokoll, amelyet két számítógép közötti fájlok hálózaton keresztüli feltöltésére/letöltésére használnak. Az FTP azonban eredetileg nem biztonságos, mert titkosítás nélkül továbbítja az adatokat a felhasználói hitelesítő adatokkal (felhasználónév és jelszó) együtt.

Figyelmeztetés: Ha FTP használatát tervezi, fontolja meg az FTP-kapcsolat konfigurálását SSL/TLS segítségével (a következő cikk). Ellenkező esetben mindig jobb a biztonságos FTP, például az SFTP használata.

Javasolt olvasmány: Az FTP-kiszolgáló telepítése és biztonságossá tétele a CentOS 7 rendszerben

Ebben az oktatóanyagban bemutatjuk, hogyan kell telepíteni, konfigurálni és biztonságossá tenni egy FTP szervert (VSFTPD teljes „Very Secure FTP Daemon“) Az Ubuntu hatékony védelmet nyújt az FTP sebezhetőségeivel szemben.

1. lépés: A VsFTP-kiszolgáló telepítése Ubuntuban

1. Először is frissítenünk kell a rendszercsomagok forráslistáját, majd telepítenünk kell a VSFTPD bináris csomagot az alábbiak szerint:

sudo apt-get update
sudo apt-get install vsftpd

2. A telepítés befejezése után a szolgáltatás kezdetben le lesz tiltva, ezért egy időre manuálisan kell elindítanunk, és engedélyeznünk kell az automatikus indulást a következő rendszerindításkor:

------------- On SystemD ------------- 
systemctl start vsftpd
systemctl enable vsftpd

------------- On SysVInit ------------- 
service vsftpd start
chkconfig --level 35 vsftpd on

3. Ha ezután engedélyezve van az UFW tűzfal (alapértelmezés szerint nincs engedélyezve) a szerveren, akkor meg kell nyitnia a 21 és 20 portot. ahol az FTP démonok figyelnek, hogy lehetővé tegyék az FTP-szolgáltatásokhoz való hozzáférést a távoli gépekről, majd adja hozzá az új tűzfalszabályokat az alábbiak szerint:

sudo ufw allow 20/tcp
sudo ufw allow 21/tcp
sudo ufw status

2. lépés: A VsFTP-kiszolgáló konfigurálása és biztonságossá tétele az Ubuntuban

4. Most hajtsunk végre néhány konfigurációt FTP-szerverünk beállításához és biztonságossá tételéhez. Először készítünk egy biztonsági másolatot az eredeti /etc/vsftpd/vsftpd.conf konfigurációs fájlról, például így:

sudo cp /etc/vsftpd.conf /etc/vsftpd.conf.orig

Ezután nyissuk meg a vsftpd konfigurációs fájlt.

sudo vi /etc/vsftpd.conf
OR
sudo nano /etc/vsftpd.conf

Adja hozzá/módosítsa a következő beállításokat ezekkel az értékekkel:

anonymous_enable=NO             # disable  anonymous login
local_enable=YES		# permit local logins
write_enable=YES		# enable FTP commands which change the filesystem
local_umask=022		        # value of umask for file creation for local users
dirmessage_enable=YES	        # enable showing of messages when users first enter a new directory
xferlog_enable=YES		# a log file will be maintained detailing uploads and downloads
connect_from_port_20=YES        # use port 20 (ftp-data) on the server machine for PORT style connections
xferlog_std_format=YES          # keep standard log file format
listen=NO   			# prevent vsftpd from running in standalone mode
listen_ipv6=YES		        # vsftpd will listen on an IPv6 socket instead of an IPv4 one
pam_service_name=vsftpd         # name of the PAM service vsftpd will use
userlist_enable=YES  	        # enable vsftpd to load a list of usernames
tcp_wrappers=YES  		# turn on tcp wrappers

5. Most állítsa be a VSFTPD-t, hogy engedélyezze/megtagadja a felhasználók FTP-hozzáférését az /etc/vsftpd.userlist felhasználólistafájl alapján.

Ne feledje, hogy alapértelmezés szerint a userlist_file=/etc/vsftpd.userlist listában felsorolt felhasználóktól a userlist_deny=YES opció megtagadja a bejelentkezést, ha userlist_enable=YES .

A userlist_deny=NO opció azonban megváltoztatja az alapértelmezett beállítás jelentését, így csak azok a felhasználók használhatják, akiknek felhasználónevük kifejezetten szerepel a userlist_file=/etc/vsftpd.userlist fájlban. jelentkezzen be az FTP szerverre.

userlist_enable=YES                   # vsftpd will load a list of usernames, from the filename given by userlist_file
userlist_file=/etc/vsftpd.userlist    # stores usernames.
userlist_deny=NO   

Fontos: Amikor a felhasználók bejelentkeznek az FTP-kiszolgálóra, egy chrootolt börtönbe kerülnek, ez a helyi gyökérkönyvtár, amely az FTP-munkamenet saját könyvtáraként fog működni. csak.

Ezután megvizsgáljuk a chrootolt jail (helyi gyökérkönyvtár) beállításának két lehetséges forgatókönyvét, az alábbiak szerint.

6. Ezen a ponton adjuk hozzá/módosítsuk/töröljük a következő két lehetőséget, hogy az FTP-felhasználókat saját főkönyvtárukra korlátozzuk.

chroot_local_user=YES
allow_writeable_chroot=YES

A chroot_local_user=YES opció fontos, hogy a helyi felhasználók egy chroot börtönbe kerülnek, amely alapértelmezés szerint a saját könyvtáruk a bejelentkezés után.

Azt is meg kell értenünk, hogy a VSFTPD alapértelmezés szerint biztonsági okokból nem teszi lehetővé a chroot jail könyvtár írhatóságát, azonban az allow_writeable_chroot=YES opciót használhatjuk a beállítás letiltásához.

Mentse el a fájlt és zárja be. Ezután újra kell indítanunk a VSFTPD szolgáltatásokat, hogy a fenti változások életbe lépjenek:

------------- On SystemD ------------- 
systemctl restart vsftpd

------------- On SysVInit ------------- 
service vsftpd restart

3. lépés: A VsFTP-kiszolgáló tesztelése Ubuntuban

7. Most teszteljük az FTP-kiszolgálót úgy, hogy létrehozunk egy FTP-felhasználót useradd paranccsal az alábbiak szerint:

sudo useradd -m -c "Aaron Kili, Contributor" -s /bin/bash aaronkilik
sudo passwd aaronkilik

Ezután az aaronkilik felhasználót kifejezetten fel kell sorolnunk az /etc/vsftpd.userlist fájlban az echo paranccsal és a tee paranccsal az alábbiak szerint:

echo "aaronkilik" | sudo tee -a /etc/vsftpd.userlist
cat /etc/vsftpd.userlist

8. Itt az ideje, hogy teszteljük, hogy a fenti konfigurációink megfelelően működnek-e. Kezdjük a névtelen bejelentkezések tesztelésével; az alábbi kimenetből jól láthatjuk, hogy az FTP szerveren nem engedélyezett a névtelen bejelentkezés:

ftp 192.168.56.102
Connected to 192.168.56.102  (192.168.56.102).
220 Welcome to TecMint.com FTP service.
Name (192.168.56.102:aaronkilik) : anonymous
530 Permission denied.
Login failed.
ftp> bye
221 Goodbye.

9. Ezután teszteljük, hogy az /etc/vsftpd.userlist fájlban nem szereplő felhasználó kap-e engedélyt a bejelentkezésre, ami a következő kimenetből nem igaz. :

ftp 192.168.56.102
Connected to 192.168.56.102  (192.168.56.102).
220 Welcome to TecMint.com FTP service.
Name (192.168.56.10:root) : user1
530 Permission denied.
Login failed.
ftp> bye
221 Goodbye.

10. Most egy utolsó tesztet végzünk annak megállapítására, hogy az /etc/vsftpd.userlist fájlban szereplő felhasználó valóban a saját könyvtárába került-e Belépés. És ez igaz az alábbi kimenetből:

ftp 192.168.56.102
Connected to 192.168.56.102  (192.168.56.102).
220 Welcome to TecMint.com FTP service.
Name (192.168.56.102:aaronkilik) : aaronkilik
331 Please specify the password.
Password:
230 Login successful.
Remote system type is UNIX.
Using binary mode to transfer files.
ftp> ls

Figyelmeztetés: Az allow_writeable_chroot=YES beállítás olyan veszélyes lehet, hogy biztonsági vonatkozásai is lehetnek, különösen, ha a felhasználók rendelkeznek feltöltési engedéllyel, vagy sokkal inkább shell hozzáférés. Csak akkor használja, ha pontosan tudja, mit csinál.

Meg kell jegyeznünk, hogy ezek a biztonsági vonatkozások nem kifejezetten a VSFTPD-re vonatkoznak, hanem az összes többi FTP-démont is érinthetik, amelyek a helyi felhasználókat chroot börtönökbe helyezik.

Emiatt az alábbi részben elmagyarázunk egy biztonságosabb módszert egy másik, nem írható helyi gyökérkönyvtár beállítására a felhasználó számára.

4. lépés: Konfigurálja az FTP felhasználói kezdőkönyvtárakat az Ubuntuban

11. Most még egyszer nyissa meg a VSFTPD konfigurációs fájlt.

sudo vi /etc/vsftpd.conf
OR
sudo nano /etc/vsftpd.conf

és kommentálja a nem biztonságos opciót a # karakterrel az alábbiak szerint:

#allow_writeable_chroot=YES

Ezután hozza létre a felhasználó alternatív helyi gyökérkönyvtárát (aaronkilik, a tied valószínűleg nem ugyanaz), és állítsd be a szükséges engedélyeket úgy, hogy letiltod az összes többi felhasználó írási jogosultságát ebbe a könyvtárba:

sudo mkdir /home/aaronkilik/ftp
sudo chown nobody:nogroup /home/aaronkilik/ftp
sudo chmod a-w /home/aaronkilik/ftp

12. Ezután hozzon létre egy könyvtárat a helyi gyökér alatt a megfelelő jogosultságokkal, ahol a felhasználó tárolni fogja a fájljait:

sudo mkdir /home/aaronkilik/ftp/files
sudo chown -R aaronkilk:aaronkilik /home/aaronkilik/ftp/files
sudo chmod -R 0770 /home/aaronkilik/ftp/files/

Ezt követően adja hozzá/módosítsa az alábbi opciókat a VSFTPD konfigurációs fájlban a megfelelő értékekkel:

user_sub_token=$USER          # inserts the username in the local root directory 
local_root=/home/$USER/ftp    # defines any users local root directory

Mentse el a fájlt és zárja be. És indítsa újra a VSFTPD szolgáltatásokat a legutóbbi beállításokkal:

------------- On SystemD ------------- 
systemctl restart vsftpd

------------- On SysVInit ------------- 
service vsftpd restart

13. Most hajtsunk végre egy utolsó ellenőrzést, és győződjön meg arról, hogy a felhasználó helyi gyökérkönyvtára az az FTP-könyvtár, amelyet a kezdőkönyvtárában hoztunk létre.

ftp 192.168.56.102
Connected to 192.168.56.102  (192.168.56.102).
220 Welcome to TecMint.com FTP service.
Name (192.168.56.10:aaronkilik) : aaronkilik
331 Please specify the password.
Password:
230 Login successful.
Remote system type is UNIX.
Using binary mode to transfer files.
ftp> ls

Ez az! Ne felejtse el megosztani véleményét erről az útmutatóról az alábbi megjegyzés űrlapon keresztül, vagy adott esetben adjon meg nekünk bármilyen fontos információt a témával kapcsolatban.

Végül, de nem utolsósorban, ne hagyja ki a következő cikkünket, amelyben leírjuk, hogyan lehet FTP-kiszolgálót biztonságossá tenni SSL/TLS-kapcsolatokkal az Ubuntu 16.04/16.10-ben, addig mindig maradjon a TecMint alagútban.