Az FTP-kiszolgáló biztonságossá tétele SSL/TLS használatával a biztonságos fájlátvitelhez a CentOS 7 rendszerben
Eredeti kialakítása szerint az FTP (File Transfer Protocol) nem biztonságos, vagyis nem titkosítja a két gép között továbbított adatokat a felhasználói hitelesítő adatokkal együtt. Ez hatalmas fenyegetést jelent az adatok és a szerver biztonságára nézve.
Ebben az oktatóanyagban elmagyarázzuk, hogyan lehet manuálisan engedélyezni az adattitkosítási szolgáltatásokat egy FTP-kiszolgálón a CentOS/RHEL 7 és a Fedora rendszerben; a VSFTPD (Very Secure FTP Daemon) szolgáltatások SSL/TLS tanúsítványok használatával történő biztonságossá tételének különböző lépései lesznek.
Előfeltételek:
- Telepítenie és konfigurálnia kell egy FTP-kiszolgálót a CentOS 7 rendszerben
Mielőtt elkezdené, vegye figyelembe, hogy ebben az oktatóanyagban az összes parancs rootként fog futni, ellenkező esetben használja a sudo parancsot a root jogosultságok megszerzéséhez, ha nem a root fiókkal irányítja a kiszolgálót.
1. lépés: SSL/TLS-tanúsítvány és privát kulcs létrehozása
1. Először is létre kell hoznunk egy alkönyvtárat a következő alatt: /etc/ssl/
, ahol az SSL/TLS tanúsítványt és a kulcsfájlokat tároljuk. :
mkdir /etc/ssl/private
2. Ezután futtassa az alábbi parancsot a vsftpd tanúsítványának és kulcsának egyetlen fájlban történő létrehozásához. Itt található az egyes használt jelzők magyarázata.
- req – egy parancs az X.509 tanúsítvány-aláíró kérés (CSR) kezelésére.
- x509 – X.509 tanúsítvány adatkezelést jelent.
- napok – meghatározza, hogy hány napig érvényes a tanúsítvány.
- új kulcs – a tanúsítványkulcs-feldolgozót határozza meg.
- rsa:2048 – RSA kulcsprocesszor, 2048 bites privát kulcsot generál.
- keyout – a kulcstároló fájl beállítása.
- out – beállítja a tanúsítványtároló fájlt, vegye figyelembe, hogy a tanúsítvány és a kulcs is ugyanabban a fájlban van tárolva: /etc/ssl/private/vsftpd.pem.
openssl req -x509 -nodes -keyout /etc/ssl/private/vsftpd.pem -out /etc/ssl/private/vsftpd.pem -days 365 -newkey rsa:2048
A fenti parancs megkéri, hogy válaszoljon az alábbi kérdésekre, ne felejtse el használni a forgatókönyvre vonatkozó értékeket.
Country Name (2 letter code) [XX]:IN
State or Province Name (full name) []:Lower Parel
Locality Name (eg, city) [Default City]:Mumbai
Organization Name (eg, company) [Default Company Ltd]:TecMint.com
Organizational Unit Name (eg, section) []:Linux and Open Source
Common Name (eg, your name or your server's hostname) []:tecmint
Email Address []:[email
2. lépés: VSFTPD konfigurálása SSL/TLS használatához
3. Mielőtt bármilyen VSFTPD-konfigurációt végrehajtanánk, nyissuk meg a 990 és a 40000-50000 portokat a TLS-kapcsolatok és a passzív portok porttartományának engedélyezéséhez. a VSFTPD konfigurációs fájlban a következőket kell megadni:
firewall-cmd --zone=public --permanent --add-port=990/tcp
firewall-cmd --zone=public --permanent --add-port=40000-50000/tcp
firewall-cmd --reload
4. Most nyissa meg a VSFTPD konfigurációs fájlt, és adja meg benne az SSL részleteit:
vi /etc/vsftpd/vsftpd.conf
Keresse meg az ssl_enable opciót, és állítsa az értékét YES
értékre az SSL használatának aktiválásához, továbbá mivel a TSL biztonságosabb, mint az SSL, korlátozni fogjuk a VSFTPD-t a TLS használatára. ehelyett az ssl_tlsv1_2 opció használatával:
ssl_enable=YES
ssl_tlsv1_2=YES
ssl_sslv2=NO
ssl_sslv3=NO
5. Ezután adja hozzá az alábbi sorokat az SSL-tanúsítvány és a kulcsfájl helyének meghatározásához:
rsa_cert_file=/etc/ssl/private/vsftpd.pem
rsa_private_key_file=/etc/ssl/private/vsftpd.pem
6. Ezt követően meg kell akadályoznunk az anonim felhasználók SSL használatát, majd minden nem névtelen bejelentkezést biztonságos SSL-kapcsolat használatára kell kényszerítenünk az adatátvitelhez, és bejelentkezéskor el kell küldeni a jelszót:
allow_anon_ssl=NO
force_local_data_ssl=YES
force_local_logins_ssl=YES
7. Ezenkívül az alábbi lehetőségeket is hozzáadhatjuk az FTP-kiszolgáló biztonságának fokozása érdekében. Ha a require_ssl_reuse beállítás értéke YES
, akkor minden SSL-adatkapcsolatra szükség van az SSL-munkamenet újrafelhasználásának megjelenítéséhez; bizonyítva, hogy ugyanazt a főtitkot ismerik, mint a vezérlőcsatorna.
Ezért ki kell kapcsolnunk.
require_ssl_reuse=NO
Ismét ki kell választanunk, hogy a VSFTPD mely SSL titkosításokat engedélyezi a titkosított SSL kapcsolatokhoz az ssl_ciphers opcióval. Ez nagymértékben korlátozhatja azon támadók erőfeszítéseit, akik megpróbálnak rákényszeríteni egy bizonyos titkosítást, amelynek sebezhetőségét valószínűleg a következőkben fedezték fel:
ssl_ciphers=HIGH
8. Most állítsa be a passzív portok porttartományát (min. és max. port).
pasv_min_port=40000
pasv_max_port=50000
9. Opcionálisan engedélyezze az SSL hibakeresést, ami azt jelenti, hogy az openSSL-kapcsolat diagnosztikai adatai a VSFTPD naplófájlban rögzítésre kerülnek a debug_ssl opcióval:
debug_ssl=YES
Mentse el az összes módosítást, és zárja be a fájlt. Ezután indítsuk újra a VSFTPD szolgáltatást:
systemctl restart vsftpd
3. lépés: Az FTP-kiszolgáló tesztelése SSL/TLS kapcsolatokkal
10. A fenti konfigurációk elvégzése után tesztelje, hogy a VSFTPD használ-e SSL/TLS kapcsolatokat. Ehhez próbálja meg használni az FTP-t a parancssorból az alábbiak szerint:
ftp 192.168.56.10
Connected to 192.168.56.10 (192.168.56.10).
220 Welcome to TecMint.com FTP service.
Name (192.168.56.10:root) : ravi
530 Non-anonymous sessions must use encryption.
Login failed.
421 Service not available, remote server has closed connection
ftp>
A fenti képernyőképen láthatjuk, hogy hiba történt, amely arról tájékoztat bennünket, hogy a VSFTPD csak olyan ügyfelekről tud bejelentkezni, amelyek támogatják a titkosítási szolgáltatásokat.
A parancssor nem kínál titkosítási szolgáltatásokat, így hibát okoz. Tehát a szerverhez való biztonságos csatlakozáshoz szükségünk van egy FTP-kliensre, amely támogatja az SSL/TLS kapcsolatokat, például a FileZilla-t.
4. lépés: Telepítse a FileZillát az FTP-kiszolgálóhoz való biztonságos csatlakozáshoz
11. A FileZilla egy modern, népszerű és fontos, hogy több platformon FTP-kliens, amely alapértelmezés szerint támogatja az SSL/TLS kapcsolatokat.
A FileZilla Linux alatti telepítéséhez futtassa az alábbi parancsot:
--------- On CentOS/RHEL/Fedora ---------
yum install epel-release filezilla
--------- On Debian/Ubuntu ---------
sudo apt-get install filezilla
12. Amikor a telepítés befejeződött (vagy ha már telepítette), nyissa meg, és lépjen a File=>Webhelyek kezelőjébe vagy (nyomja le a Ctrl+S billentyűt
) az alábbi Webhelykezelő felület eléréséhez.
Kattintson az Új webhely gombra egy új webhely/gazdakapcsolat részleteinek hozzáadásához.
13. Ezután állítsa be a gazdagép/webhely nevét, adja hozzá az IP-címet, határozza meg a használni kívánt protokollt, a titkosítást és a bejelentkezés típusát az alábbi képernyőképen látható módon (az Ön forgatókönyvére érvényes értékeket használjon):
Host: 192.168.56.10
Protocol: FTP – File Transfer Protocol
Encryption: Require explicit FTP over #recommended
Logon Type: Ask for password #recommended
User: username
14. Ezután kattintson a Csatlakozás gombra a jelszó ismételt megadásához, majd ellenőrizze az SSL/TLS-kapcsolathoz használt tanúsítványt, majd kattintson egyszer az OK
gombra. további információk az FTP szerverhez való csatlakozáshoz:
Ebben a szakaszban sikeresen be kellett volna jelentkeznünk az FTP-kiszolgálóra TLS-kapcsolaton keresztül. További információkért ellenőrizze a kapcsolat állapota szakaszt az alábbi felületen.
15. Végül, de nem utolsósorban próbáljon meg fájlokat átvinni a helyi gépről az FTP-szerverre a Fájlok mappában, és tekintse meg a FileZilla felület alsó részét. fájlátvitelről szóló jelentések.
Ez minden! Mindig tartsa észben, hogy az FTP alapértelmezés szerint nem biztonságos, hacsak nem állítjuk be SSL/TLS-kapcsolatok használatára, amint azt ebben az oktatóanyagban bemutattuk. Ossza meg gondolatait erről az oktatóanyagról/témáról az alábbi visszajelzési űrlapon keresztül.