Android

Az ftp szerver beállítása vsftpd-vel az ubuntu 18.04-en

Az FTP kapcsolat beállítása és használata Total Commanderrel

Az FTP kapcsolat beállítása és használata Total Commanderrel

Tartalomjegyzék:

Anonim

Az FTP (File Transfer Protocol) egy szabványos hálózati protokoll, amelyet fájlok továbbítására távoli hálózatba és onnan távolítanak el. A biztonságosabb és gyorsabb adatátvitel érdekében használja az SCP-t vagy az SFTP-t.

Számos nyílt forrású FTP-kiszolgáló érhető el a Linux számára. A legnépszerűbb és legszélesebb körben alkalmazott PureFTPd, ProFTPD és vsftpd. Ebben az oktatóanyagban a vsftpd-t (Nagyon biztonságos Ftp Daemon) telepítjük. Ez egy stabil, biztonságos és gyors FTP szerver. Megmutatjuk azt is, hogyan konfigurálhatja a vsftpd-t, hogy korlátozza a felhasználókat az otthoni könyvtárba, és a teljes átvitelt SSL / TLS-rel titkosítsa.

Noha ez az oktatóanyag az Ubuntu 18.04-re készült, ugyanazok az utasítások vonatkoznak az Ubuntu 16.04-re és minden Debian-alapú disztribúcióra, beleértve a Debianot, a Linux Mint-et és az Elementary OS-t.

Előfeltételek

Mielőtt folytatná ezt az oktatóprogramot, győződjön meg arról, hogy be van jelentkezve mint sudo jogosultságokkal rendelkező felhasználó.

A vsftpd telepítése az Ubuntu 18.04-re

A vsftpd csomag az Ubuntu tárolókban érhető el. A telepítéshez futtassa a következő parancsokat:

sudo apt update sudo apt install vsftpd

A vsftpd szolgáltatás automatikusan elindul a telepítés befejezése után. Ellenőrizze a szolgáltatás állapotának kinyomtatásával:

sudo systemctl status vsftpd

A kimenet az alábbiak szerint néz ki, jelezve, hogy a vsftpd szolgáltatás aktív és fut:

* vsftpd.service - vsftpd FTP server Loaded: loaded (/lib/systemd/system/vsftpd.service; enabled; vendor preset: enabled) Active: active (running) since Mon 2018-10-15 03:38:52 PDT; 10min ago Main PID: 2616 (vsftpd) Tasks: 1 (limit: 2319) CGroup: /system.slice/vsftpd.service `-2616 /usr/sbin/vsftpd /etc/vsftpd.conf

A vsftpd konfigurálása

A vsftpd szerver az /etc/vsftpd.conf fájl szerkesztésével konfigurálható. A legtöbb beállítás jól dokumentálva van a konfigurációs fájlban. Az összes elérhető opcióért keresse fel a hivatalos vsftpd oldalt.

A következő szakaszokban bemutatunk néhány fontos beállítást, amelyek szükségesek a biztonságos vsftpd telepítés konfigurálásához.

Kezdje a vsftpd konfigurációs fájl megnyitásával:

sudo nano /etc/vsftpd.conf

1. FTP hozzáférés

Csak az FTP szerverhez local_enable a helyi felhasználókhoz, megtaláljuk az local_enable és a local_enable irányelveket, és ellenőrizzük, hogy a konfiguráció megfelel-e az alábbi soroknak:

/etc/vsftpd.conf

anonymous_enable=NO local_enable=YES

2. A feltöltések engedélyezése

Távolítsa el az write_enable beállítást, hogy engedélyezze a fájlrendszer olyan módosításait, mint a fájlok feltöltése és törlése.

/etc/vsftpd.conf

write_enable=YES

3. Chroot börtön

Annak megakadályozása érdekében, hogy az FTP-felhasználók hozzáférjenek minden fájlhoz a saját otthoni könyvtáraikon kívül, törölje a chroot beállítást.

/etc/vsftpd.conf

chroot_local_user=YES

Alapértelmezés szerint a biztonsági rés elkerülése érdekében, ha a chroot engedélyezve van, a vsftpd megtagadja a fájlok feltöltését, ha a felhasználók által lezárt könyvtár írható.

Használja az alábbi módszerek egyikét a feltöltések engedélyezéséhez, ha a chroot engedélyezve van.

  • 1. módszer - A feltöltés engedélyezéséhez javasolt módszer a chroot engedélyezése és az FTP könyvtárak konfigurálása. Ebben az oktatóanyagban létrehozunk egy ftp könyvtárat a felhasználói otthonban, amely chrootként szolgál, és egy írható uploads könyvtár a fájlok feltöltéséhez.

    /etc/vsftpd.conf

    user_sub_token=$USER local_root=/home/$USER/ftp

    2. módszer - Egy másik lehetőség az, hogy a következő irányelvet hozzáadjuk a vsftpd konfigurációs fájlhoz. Ezt a beállítást akkor használja, ha a felhasználó otthoni könyvtárába írható hozzáférést kell engedélyeznie.

    /etc/vsftpd.conf

    allow_writeable_chroot=YES

4. Passzív FTP kapcsolatok

A vsftpd bármilyen portot használhat passzív FTP kapcsolatokhoz. Megadjuk a minimális és maximális porttartományt, majd később megnyitjuk a tartományt a tűzfalunkban.

Adja hozzá a következő sorokat a konfigurációs fájlhoz:

/etc/vsftpd.conf

pasv_min_port=30000 pasv_max_port=31000

5. A felhasználói bejelentkezés korlátozása

Annak érdekében, hogy csak bizonyos felhasználók jelentkezhessenek be az FTP-kiszolgálóra, a következő sorokat kell hozzáadni a fájl végéhez:

/etc/vsftpd.conf

userlist_enable=YES userlist_file=/etc/vsftpd.user_list userlist_deny=NO

Ha ez az opció engedélyezve van, akkor kifejezetten meg kell határoznia, hogy mely felhasználók jelentkezhetnek be a felhasználónevek hozzáadásával az /etc/vsftpd.user_list fájlhoz (soronként egy felhasználó).

6. Az átvitel biztosítása SSL / TLS-sel

Az FTP-átvitel SSL / TLS-lel való titkosításához SSL-tanúsítvánnyal kell rendelkeznie, és konfigurálnia kell az FTP-kiszolgálót annak használatához.

Használhat egy meglévő SSL tanúsítványt, amelyet egy megbízható igazolási hatóság írt alá, vagy létrehozhat egy önaláírt tanúsítványt.

Az openssl paranccsal önaláírt SSL tanúsítványt állítunk elő.

A következő parancs egy 2048 bites privát kulcsot és saját aláírással ellátott tanúsítványt hoz létre 10 évig. A privát kulcsot és a tanúsítványt egyazon fájlba menti:

sudo openssl req -x509 -nodes -days 3650 -newkey rsa:2048 -keyout /etc/ssl/private/vsftpd.pem -out /etc/ssl/private/vsftpd.pem

Az SSL tanúsítvány létrehozása után nyissa meg a vsftpd konfigurációs fájlt:

sudo nano /etc/vsftpd.conf

Keresse meg az rsa_cert_file és az rsa_private_key_file irányelveket, változtassa meg értéküket a pam fájl elérési útjára, és állítsa az ssl_enable irányelvet YES értékre:

/etc/vsftpd.conf

rsa_cert_file=/etc/ssl/private/vsftpd.pem rsa_private_key_file=/etc/ssl/private/vsftpd.pem ssl_enable=YES

Ha másképp nincs megadva, az FTP-kiszolgáló csak a TLS-t fogja használni a biztonságos kapcsolatok létrehozásához.

Indítsa újra a vsftpd szolgáltatást

A szerkesztés befejezése után a vsftpd konfigurációs fájlnak (a hozzászólások kivételével) a következőnek kell kinéznie:

/etc/vsftpd.conf

listen=NO listen_ipv6=YES anonymous_enable=NO local_enable=YES write_enable=YES dirmessage_enable=YES use_localtime=YES xferlog_enable=YES connect_from_port_20=YES chroot_local_user=YES secure_chroot_dir=/var/run/vsftpd/empty pam_service_name=vsftpd rsa_cert_file=/etc/ssl/private/vsftpd.pem rsa_private_key_file=/etc/ssl/private/vsftpd.pem ssl_enable=YES user_sub_token=$USER local_root=/home/$USER/ftp pasv_min_port=30000 pasv_max_port=31000 userlist_enable=YES userlist_file=/etc/vsftpd.user_list userlist_deny=NO

Mentse a fájlt, és indítsa újra a vsftpd szolgáltatást, hogy a változások érvénybe lépjenek:

sudo systemctl restart vsftpd

A tűzfal megnyitása

A 21 port (FTP parancs port), a 20 port (FTP adat port) és a 30000-31000 port (Passzív portok tartománya) megnyitásához futtassa a következő parancsokat:

sudo ufw allow 20:21/tcp sudo ufw allow 30000:31000/tcp

A zárolás elkerülése érdekében nyissa ki a 22 portot:

sudo ufw allow OpenSSH

Töltse újra az UFW szabályokat az UFW letiltásával és újra engedélyezésével:

sudo ufw disable sudo ufw enable

A futtatott módosítások ellenőrzése:

sudo ufw status

Status: active To Action From -- ------ ---- 20:21/tcp ALLOW Anywhere 30000:31000/tcp ALLOW Anywhere OpenSSH ALLOW Anywhere 20:21/tcp (v6) ALLOW Anywhere (v6) 30000:31000/tcp (v6) ALLOW Anywhere (v6) OpenSSH (v6) ALLOW Anywhere (v6)

FTP felhasználó létrehozása

Az FTP szerver teszteléséhez új felhasználót fogunk létrehozni.

  • Ha már van olyan felhasználó, akinek FTP-hozzáférést kíván megadni, akkor hagyja ki az 1. lépést. Ha a konfigurációs fájlban beállítja az allow_writeable_chroot=YES beállítást, akkor hagyja ki a 3. lépést.
  1. Hozzon létre egy új felhasználót newftpuser :

    sudo adduser newftpuser

    Adja hozzá a felhasználót az engedélyezett FTP-felhasználók listájához:

    echo "newftpuser" | sudo tee -a /etc/vsftpd.user_list

    Hozza létre az FTP könyvtárfát, és állítsa be a megfelelő engedélyeket:

    sudo mkdir -p /home/newftpuser/ftp/upload sudo chmod 550 /home/newftpuser/ftp sudo chmod 750 /home/newftpuser/ftp/upload sudo chown -R newftpuser: /home/newftpuser/ftp

    Amint azt az előző szakaszban tárgyaltuk, a felhasználó képes lesz feltölteni fájljait az ftp/upload könyvtárba.

Ezen a ponton az FTP-kiszolgáló teljesen működőképes, és képesnek kell lennie arra, hogy bármilyen FTP-klienssel csatlakozzon a kiszolgálóhoz, amelyet konfigurálhat a TLS-titkosításhoz, például a FileZilla.

A Shell Access letiltása

Alapértelmezés szerint a felhasználó létrehozásakor, ha nincs kifejezetten megadva, a felhasználó SSH hozzáféréssel rendelkezik a szerverhez.

A héjhoz való hozzáférés letiltásához létrehozunk egy új héjat, amely egyszerűen kinyomtat egy üzenetet, amelyben kijelenti, hogy a felhasználó fiókja csak az FTP hozzáférésre korlátozódik.

Hozza létre a /bin/ftponly héjat, és tegye futtathatóvá:

echo -e '#!/bin/sh\necho "This account is limited to FTP access only."' | sudo tee -a /bin/ftponly echo -e '#!/bin/sh\necho "This account is limited to FTP access only."' | sudo tee -a /bin/ftponly sudo chmod a+x /bin/ftponly

Helyezze az új héjat az /etc/shells fájl érvényes héjainak listájához:

echo "/bin/ftponly" | sudo tee -a /etc/shells

Változtassa meg a felhasználói héjat /bin/ftponly :

sudo usermod newftpuser -s /bin/ftponly

Ugyanazzal a paranccsal módosíthatja azon felhasználók héját, akiknek csak FTP-hozzáférést szeretne megadni.

Következtetés

Ebben az oktatóanyagban megtanulta, hogyan kell biztonságos és gyors FTP-kiszolgálót telepíteni és konfigurálni az Ubuntu 18.04 rendszeren.

ftp ubuntu