Android

Az ftp szerver beállítása a vsftpd segítségével a centos 7-en

CM Host - FTP fiókok létrehozása

CM Host - FTP fiókok létrehozása

Tartalomjegyzék:

Anonim

Az FTP (File Transfer Protocol) egy szabványos kliens-szerver hálózati protokoll, amely lehetővé teszi a felhasználók számára, hogy fájlokat továbbítsanak egy távoli hálózatba és onnan.

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 a CentOS 7-re. Ez egy stabil, biztonságos és gyors FTP-kiszolgáló. 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.

A biztonságosabb és gyorsabb adatátvitel érdekében használja az SCP-t vagy az SFTP-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 a CentOS 7-re

A vsftpd csomag az alapértelmezett CentOS adattárakban érhető el. A telepítéshez adja ki a következő parancsot:

sudo yum install vsftpd

A csomag telepítése után indítsa el a vsftpd démont, és engedélyezze, hogy automatikusan elinduljon a rendszerindításkor:

sudo systemctl start vsftpd sudo systemctl enable vsftpd

Ellenőrizheti, hogy a vsftpd szolgáltatás fut-e, á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 daemon Loaded: loaded (/usr/lib/systemd/system/vsftpd.service; enabled; vendor preset: disabled) Active: active (running) since Thu 2018-11-22 09:42:37 UTC; 6s ago Main PID: 29612 (vsftpd) CGroup: /system.slice/vsftpd.service └─29612 /usr/sbin/vsftpd /etc/vsftpd/vsftpd.conf

A vsftpd konfigurálása

A vsftpd szolgáltatás konfigurálása az /etc/vsftpd/vsftpd.conf konfigurációs fájl szerkesztését foglalja magában. 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/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/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/vsftpd.conf

write_enable=YES

3. Chroot börtön

Akadályozza meg az FTP-felhasználókat, hogy hozzáférjenek minden fájlhoz az otthoni könyvtáraikon kívül a chroot irányelv megjegyzésének megszüntetésével.

/etc/vsftpd/vsftpd.conf

chroot_local_user=YES

Alapértelmezés szerint, 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ó. Ennek célja egy biztonsági rés elkerülése.

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/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/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/vsftpd.conf

pasv_min_port=30000 pasv_max_port=31000

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

Csak bizonyos felhasználók számára az FTP-kiszolgálóra való belépés engedélyezéséhez adja hozzá a következő sorokat a userlist_enable=YES sor után:

/etc/vsftpd/vsftpd.conf

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ájlba (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.

Ebben az oktatóanyagban létrehozunk egy önaláírt SSL tanúsítványt az openssl paranccsal.

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/vsftpd/vsftpd.pem -out /etc/vsftpd/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/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/vsftpd.conf

rsa_cert_file=/etc/vsftpd/vsftpd.pem rsa_private_key_file=/etc/vsftpd/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/vsftpd.conf

anonymous_enable=NO local_enable=YES write_enable=YES local_umask=022 dirmessage_enable=YES xferlog_enable=YES connect_from_port_20=YES xferlog_std_format=YES chroot_local_user=YES listen=NO listen_ipv6=YES pam_service_name=vsftpd userlist_enable=YES userlist_file=/etc/vsftpd/user_list userlist_deny=NO tcp_wrappers=YES user_sub_token=$USER local_root=/home/$USER/ftp pasv_min_port=30000 pasv_max_port=31000 rsa_cert_file=/etc/vsftpd/vsftpd.pem rsa_private_key_file=/etc/vsftpd/vsftpd.pem ssl_enable=YES

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) 30000-31000 ki a következő parancsokat:

sudo firewall-cmd --permanent --add-port=20-21/tcp sudo firewall-cmd --permanent --add-port=30000-31000/tcp

Töltse fel újra a tűzfalszabályokat a következő gépeléssel:

firewall-cmd --reload

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

    Ezután be kell állítania a felhasználói jelszót:

    sudo passwd 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 csatlakozzon a kiszolgálóhoz bármely olyan FTP-klienssel, 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.

Futtassa a következő parancsokat a /bin/ftponly héj létrehozásához és végrehajthatóvá tételéhez:

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 a héjat azoknak a felhasználóknak, 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 a CentOS 7 rendszeren.

ftp centos