Ez a cikk ismerteti az FTP-kiszolgáló telepítését és konfigurálását az Ubuntu 20 rendszeren.04, amelyet fájlok megosztására használ az eszközök között.
Az FTP (File Transfer Protocol) egy szabványos hálózati protokoll, amelyet fájlok távoli hálózathoz és onnan történő továbbítására használnak. Számos nyílt forráskódú FTP-kiszolgáló áll rendelkezésre a Linux számára. A legismertebb és legszélesebb körben használt PureFTPd, ProFTPD és vsftpd . Telepítjük a vsftpd (Very Secure Ftp Daemon), egy stabil, biztonságos és gyors FTP szervert. Megmutatjuk azt is, hogyan kell konfigurálni a szervert úgy, hogy a felhasználókat az otthoni könyvtárra korlátozza, és a teljes átvitelet SSL / TLS-sel titkosítsa.
Bár az FTP nagyon népszerű protokoll, a biztonságosabb és gyorsabb adatátvitel érdekében az SCP-t vagy az SFTP-t kell használnia .
A vsftpd telepítése az Ubuntu 20-ra.04 #
A vsftpd csomag elérhető az Ubuntu tárolókban. Telepítéséhez hajtsa végre a következő parancsokat:
sudo apt frissítés
sudo apt install vsftpd
Az ftp szolgáltatás a telepítési folyamat befejeztével automatikusan elindul. Ennek ellenőrzéséhez nyomtassa ki a szolgáltatás állapotát:
sudo systemctl állapot vsftpd
A kimenetnek meg kell mutatnia, hogy a vsftpd szolgáltatás aktív és fut:
● vsftpd.szolgáltatás - vsftpd FTP szerver Betöltött: betöltve (/ lib / systemd / system / vsftpd.szolgáltatás; engedélyezve; gyártói beállítás: engedélyezve) Aktív: aktív (fut) kedd óta 2021-03-02 15:17:22 UTC; 3 nappal ezelőtt…
A vsftpd # beállítása
A vsftpd szerver konfigurációja a / etc / vsftpd.konf
fájl.
A szerver beállításainak többsége jól dokumentált a fájlban. Az összes rendelkezésre álló lehetőségért keresse fel a vsftpd dokumentációs oldalát.
A következő szakaszokban áttekintünk néhány fontos beállítást, amely szükséges a biztonságos vsftpd telepítés konfigurálásához.
Először nyissa meg a vsftpd konfigurációs fájlt:
sudo nano / etc / vsftpd.konf
1. FTP hozzáférés #
Az FTP-kiszolgálóhoz való hozzáférést csak a helyi felhasználók számára engedélyezzük. Keresse meg a anonymous_enable
és local_enable
irányelveket, és ellenőrizze, hogy a konfiguráció megfelel-e az alábbi soroknak:
anonymous_enable = NINCS local_enable = IGEN
2. Feltöltések engedélyezése #
Keresse meg és kommentelje a write_enable
irányelv a fájlrendszer változásainak engedélyezéséhez, például a fájlok feltöltéséhez és eltávolításához:
write_enable = IGEN
3. Chroot börtön #
Annak megakadályozására, hogy a helyi FTP-felhasználók hozzáférjenek a fájlokhoz a saját könyvtárukon kívül, törölje a kezdőbetűket chroot_local_user
:
chroot_local_user = IGEN
Alapértelmezés szerint biztonsági okokból, amikor a chroot engedélyezve van, a vsftpd megtagadja a fájlok feltöltését, ha a könyvtár, amelybe a felhasználók bezárultak, írható.
Használja az alábbi megoldások egyikét a feltöltések engedélyezéséhez, ha a chroot engedélyezve van:
1. módszer. - Az ajánlott lehetőség a chroot funkció engedélyezése és az FTP könyvtárak konfigurálása. Ebben a példában létrehozunk egy
/ etc / vsftpd.konfftp
könyvtár a felhasználói otthonon belül, amely chrootként és írhatóként fog szolgálnifeltöltések
könyvtár fájlok feltöltéséhez:user_sub_token = $ USER local_root = / home / $ USER / ftp
2. módszer. - Egy másik lehetőség az
/ etc / vsftpd.konfallow_writeable_root
irányelv:allow_writeable_chroot = IGEN
Csak akkor használja ezt a beállítást, ha írható hozzáférést kell adnia a felhasználójának a saját könyvtárához.
4. Passzív FTP-kapcsolatok #
Alapértelmezés szerint a vsftpd aktív módot használ. A passzív mód használatához állítsa be a portok minimális és maximális tartományát:
/ etc / vsftpd.konfpasv_min_port = 30000 pasv_max_port = 31000
Bármely portot használhat passzív FTP kapcsolatokhoz. Ha a passzív mód engedélyezve van, az FTP-kliens megnyit egy kapcsolatot a kiszolgálóval egy véletlenszerű porton, az Ön által választott tartományban.
5. Felhasználói bejelentkezés korlátozása #
A vsftpd úgy konfigurálható, hogy csak bizonyos felhasználók jelentkezhessenek be. Ehhez adja hozzá a következő sorokat a fájl végéhez:
/ etc / vsftpd.konfuserlist_enable = IGEN userlist_file = / etc / vsftpd.user_list userlist_deny = NEM
Ha ez az opció engedélyezve van, akkor a felhasználónevek hozzáadásával kifejezetten meg kell határoznia, hogy mely felhasználók jelentkezhetnek be / etc / vsftpd.user_list
fájl (soronként egy felhasználó).
6. Az átvitel biztonsága SSL / TLS segítségével #
Az FTP átvitel SSL / TLS használatával történő titkosításához rendelkeznie kell egy SSL tanúsítvánnyal, és konfigurálnia kell az FTP szervert annak használatához.
Használhat meglévő, megbízható tanúsító hatóság által aláírt SSL-tanúsítványt, vagy létrehozhat önaláírt tanúsítványt.
Ha van olyan tartománya vagy aldomainje, amely az FTP-kiszolgáló IP-címére mutat, akkor gyorsan létrehozhat egy ingyenes Let's Encrypt SSL tanúsítványt.
Létrehozunk egy 2048 bites magánkulcsot és saját aláírású SSL tanúsítványt, amely tíz évig érvényes lesz:
sudo openssl req -x509 -node -nap 3650 -newkey rsa: 2048 -keyout / etc / ssl / private / vsftpd.pem -out / etc / ssl / private / vsftpd.pem
A magánkulcs és a tanúsítvány is ugyanabba a fájlba kerül.
Az SSL tanúsítvány létrehozása után nyissa meg a vsftpd konfigurációs fájlt:
sudo nano / etc / vsftpd.konf
Találd meg rsa_cert_file
és rsa_private_key_file
irányelveket, változtassák értékeiket a pam
fájl elérési útját, és állítsa be a ssl_enable
irányelv IGEN
:
rsa_cert_file = / etc / ssl / private / vsftpd.pem rsa_private_key_file = / etc / ssl / private / vsftpd.pem ssl_enable = IGEN
Ha másként nincs meghatározva, az FTP-kiszolgáló csak a TLS-t használja a biztonságos kapcsolatok létrehozásához.
Indítsa újra a vsftpd szolgáltatást #
Miután végzett a szerkesztéssel, a vsftpd konfigurációs fájlnak (a megjegyzéseket leszámítva) ilyennek kell kinéznie:
/ etc / vsftpd.konfhallgat = NEM hallgat_ipv6 = IGEN névtelen_engedhető = NEM helyi_engedhető = IGEN írási_engedhető = IGEN dirmessage_enable = IGEN felhasználási_localtime = IGEN xferlog_enable = IGEN connect_from_port_20 = IGEN chroot_local_user = YES biztonságos_chroot_dir_p = / var / futtat / serv / futtat / sms / rt / futtat / vs / var / futtat / privát / vsftpd.pem rsa_private_key_file = / etc / ssl / private / vsftpd.pem ssl_enable = IGEN user_sub_token = $ USER local_root = / home / $ USER / ftp pasv_min_port = 30000 pasv_max_port = 31000 userlist_enable = IGEN userlist_file = / etc / vsftpd.user_list userlist_deny = NEM
Mentse a fájlt, és indítsa újra a vsftpd szolgáltatást, hogy a módosítások életbe lépjenek:
sudo systemctl indítsa újra a vsftpd fájlt
A tűzfal megnyitása #
Ha UFW tűzfalat futtat, engedélyeznie kell az FTP forgalmat.
A port megnyitásához 21
(FTP parancs port), port 20
(FTP adatport), és 30000-31000
(Passzív portok tartománya), futtassa a következő parancsokat:
sudo ufw 20: 21 / tcp
sudo ufw lehetővé teszi 30000: 31000 / tcp
A zárolás elkerülése érdekében ellenőrizze a portot 22
nyitva van:
sudo ufw lehetővé teszi az OpenSSH használatát
Töltse le újra az UFW-szabályokat az UFW letiltásával és újbóli engedélyezésével:
sudo ufw letiltása
sudo ufw engedélyezése
A módosítások futtatásának ellenőrzése:
sudo ufw állapot
Állapot: aktív 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 létrehozunk egy új felhasználót.
- Ha már létezik az a felhasználó, akinek FTP-hozzáférést kíván biztosítani, hagyja ki az 1. lépést.
- Ha beállítod
allow_writeable_chroot = IGEN
a konfigurációs fájlban hagyja ki a 3. lépést.
Hozzon létre egy új nevű felhasználót
newftpuser
:sudo adduser newftpuser
Adja hozzá a felhasználót az engedélyezett FTP-felhasználók listájához:
visszhang "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
Az előző szakaszban leírtak szerint a felhasználó feltöltheti fájljait a
ftp / feltöltés
Könyvtár.
Ezen a ponton az FTP-szerver teljesen működőképes. Képesnek kell lennie a kiszolgálóhoz való csatlakozásra bármely olyan FTP-ügyfél használatával, amely beállítható TLS-titkosítás használatára, például a FileZilla .
A Shell hozzáférés letiltása #
Alapértelmezés szerint egy felhasználó létrehozásakor, ha nincs kifejezetten megadva, a felhasználónak SSH-hozzáférése lesz a kiszolgálóhoz. A héjhozzáférés letiltásához hozzon létre egy új héjat, amely egy üzenetet nyomtat, amelyben elmondja a felhasználónak, hogy a fiókja csak FTP-hozzáférésre korlátozódik.
A következő parancsok létrehozásával futtassa a / bin / ftponly
fájlt, és futtathatóvá tegye:
echo -e '#!/ bin / sh \ necho "Ez a fiók csak az FTP hozzáférésre korlátozódik."'| sudo tee -a / bin / ftponly
sudo chmod a + x / bin / ftponly
Csatolja az új héjat az érvényes héjak listájához a / etc / shell
fájl:
echo "/ bin / ftponly" | sudo tee -a / etc / shells
Módosítsa a felhasználói héjat erre: / bin / ftponly
:
sudo usermod newftpuser -s / bin / ftponly
Ugyanazzal a paranccsal megváltoztathatja az összes felhasználó héját, amelyhez csak FTP-hozzáférést kíván megadni.
Következtetés
Megmutattuk, hogyan telepíthet és konfigurálhat biztonságos és gyors FTP-kiszolgálót az Ubuntu 20-ra.04 rendszer.
Ha bármilyen kérdése vagy visszajelzése van, nyugodtan írjon megjegyzést.