Weboldal keresés

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:

  1. 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.

  1. req – egy parancs az X.509 tanúsítvány-aláíró kérés (CSR) kezelésére.
  2. x509 – X.509 tanúsítvány adatkezelést jelent.
  3. napok – meghatározza, hogy hány napig érvényes a tanúsítvány.
  4. új kulcs – a tanúsítványkulcs-feldolgozót határozza meg.
  5. rsa:2048 – RSA kulcsprocesszor, 2048 bites privát kulcsot generál.
  6. keyout – a kulcstároló fájl beállítása.
  7. 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.