E Secure FTP Server opbauen mat SSL/TLS op Ubuntu


An dësem Tutorial wäerte mir beschreiwen wéi Dir en FTP-Server séchert (VSFFTPD steet fir Very Secure FTP Daemon) mat SSL/TLS an Ubuntu 16.04/16.10.

Wann Dir sicht e séchere FTP-Server fir CentOS-baséiert Verdeelungen opzestellen, kënnt Dir liesen - Séchert en FTP-Server Mat SSL/TLS op CentOS

Nodeems Dir déi verschidde Schrëtt an dësem Guide gefollegt hutt, wäerte mir d'Grondlage geléiert hunn fir Verschlësselungsservicer an engem FTP-Server z'erméiglechen fir sécher Datenübertragungen entscheedend ze sinn.

  1. Dir musst e FTP Server an Ubuntu installéieren an konfiguréieren

Ier mer weider réckelen, vergewëssert Iech datt all Kommandoen an dësem Artikel als Root oder Sudo privilegéierte Kont lafen.

Schrëtt 1: Generéiere SSL/TLS Zertifikat fir FTP op Ubuntu

1. Mir fänken un mat engem Ënnerverzeechnes ënner: /etc/ssl/ fir den SSL/TLS Zertifikat a Schlësseldateien ze späicheren wann et net existéiert:

$ sudo mkdir /etc/ssl/private

2. Loosst eis elo den Zertifika generéieren a Schlëssel an enger eenzeger Datei, andeems Dir de Kommando hei drënner leeft.

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

Deen uewe genannte Kommando freet Iech op d'Froen hei drënner ze beäntweren, vergiesst net Wäerter anzeginn déi fir Ären Szenario applicabel sinn.

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 

Schrëtt 2: VSFTPD konfiguréieren fir SSL/TLS op Ubuntu ze benotzen

3. Ier mir all VSFTPD Konfiguratiounen ausféieren, fir déi, déi UFW Firewall aktivéiert hunn, musst Dir d'Ports 990 an 40000-50000 opmaachen fir TLS Verbindungen an d'Portberäich vu passive Ports z'erméiglechen, respektiv an der VSFTPD Konfiguratiounsdatei ze setzen:

$ sudo ufw allow 990/tcp
$ sudo ufw allow 40000:50000/tcp
$ sudo ufw status

4. Elo, öffnen d'VSFTPD Configuratiounsdatei an definéiert d'SSL Detailer dran:

$ sudo vi /etc/vsftpd/vsftpd.conf
OR
$ sudo nano /etc/vsftpd/vsftpd.conf

Füügt dann d'Optioun bäi oder lokaliséiert d'Optioun ssl_enable a setzt säi Wäert op JO fir d'Benotzung vun SSL ze aktivéieren, erëm, well TLS méi sécher ass wéi SSL, wäerte mir VSFTPD beschränken fir TLS amplaz ze benotzen, andeems Dir de ssl_tlsv1 Optioun:

ssl_enable=YES
ssl_tlsv1=YES
ssl_sslv2=NO
ssl_sslv3=NO

5. Als nächst kommentéiert d'Zeilen hei ënnen mat dem # Charakter wéi follegt:

#rsa_cert_file=/etc/ssl/private/ssl-cert-snakeoil.pem
#rsa_private_key_file=/etc/ssl/private/ssl-cert-snakeoil.key

Duerno füügt d'Linnen hei ënnen un fir de Standort vum SSL Zertifikat a Schlësseldatei ze definéieren:

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

6. Elo musse mir och verhënneren datt anonym Benotzer SSL benotzen, dann all net-anonym Login forcéiere fir eng sécher SSL Verbindung fir Datenübertragung ze benotzen an d'Passwuert beim Login ze schécken:

allow_anon_ssl=NO
force_local_data_ssl=YES
force_local_logins_ssl=YES

7. Ausserdeem kënne mir d'Optiounen hei ënnen benotze fir méi Sécherheetsfeatures am FTP-Server ze addéieren. Mat der Optioun require_ssl_reuse=JO, sinn all SSL-Dateverbindunge erfuerderlech fir SSL-Sessioun-Wiederbenotzen auszeweisen; beweist, datt se déi selwecht Meeschtesch geheime wéi d'Kontroll Kanal wëssen. Also, mir sollten et deaktivéieren.

require_ssl_reuse=NO

Zousätzlech kënne mir astellen wéi eng SSL Chifferen VSFTPD fir verschlësselte SSL Verbindunge mat der ssl_ciphers Optioun erlaabt. Dëst hëlleft all Efforte vun Ugräifer ze frustréieren, déi probéieren e spezifesche Chiffer ze zwéngen, an deem se méiglecherweis Schwachstelle entdeckt hunn:

ssl_ciphers=HIGH

8. Dann, loosse mer d'port Gamme definéieren (min a Max port) vun passiv Häfen.

pasv_min_port=40000
pasv_max_port=50000

9. Fir SSL Debugging z'aktivéieren, dat heescht datt d'OpenSSL Verbindungsdiagnostik op d'VSFTPD Logdatei opgeholl gëtt, kënne mir d'Optioun debug_ssl benotzen:

debug_ssl=YES

Endlech späichert d'Datei a maach se zou. Da starten de VSFTPD Service nei:

$ systemctl restart vsftpd

Schrëtt 3: Verifizéiert FTP mat SSL/TLS Connections op Ubuntu

10. Nodeems Dir all déi uewe genannte Konfiguratiounen gemaach hutt, testen ob VSFTPD elo SSL/TLS Verbindungen benotzt andeems Dir probéiert FTP vun der Kommandozeil ze benotzen wéi hei ënnen.

Vun der Ausgab hei drënner gëtt et e Fehlermeldung, deen eis seet, datt VSFTPD nëmme Benotzer (net anonym) erlaabt sech vu séchere Clienten unzemellen déi Verschlësselungsservicer ënnerstëtzen.

$ 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>

D'Kommandozeil ënnerstëtzt keng Verschlësselungsservicer, sou datt de Feeler hei uewen resultéiert. Dofir, fir sécher mat engem FTP-Server mat Verschlësselungsservicer aktivéiert ze verbannen, brauche mir e FTP-Client deen als Standard SSL/TLS-Verbindungen ënnerstëtzt, sou wéi FileZilla.

Schrëtt 4: Installéiert FileZilla op Clienten fir FTP sécher ze verbannen

FileZilla ass e mächtege, wäit benotzte Cross-Plattform FTP Client deen FTP iwwer SSL/TLS a méi ënnerstëtzt. Fir FileZilla op enger Linux Client Maschinn z'installéieren, benotzt de folgende Kommando.

--------- On Debian/Ubuntu ---------
$ sudo apt-get install filezilla   

--------- On CentOS/RHEL/Fedora --------- 
# yum install epel-release filezilla

--------- On Fedora 22+ --------- 
$ sudo dnf install filezilla

12. Wann d'Installatioun fäerdeg ass, öffnen se a gitt op Datei=>Site Manager oder (dréckt Ctrl+S) fir de Site Manager Interface hei drënner ze kréien.

13. Elo definéiert den Host/Site Numm, füügt d'IP Adress derbäi, definéiert de Protokoll fir ze benotzen, Verschlësselung a Logontyp wéi am Bildschierm hei drënner (benotzt Wäerter déi fir Ären Szenario gëllen):

Klickt op Neie Site Knäppchen fir eng nei Site/Hostverbindung ze konfiguréieren.

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. Da klickt op Connect vun der Interface uewendriwwer fir d'Passwuert anzeginn, a kontrolléiert dann de Certificat deen fir d'SSL/TLS Verbindung benotzt gëtt, a klickt nach eng Kéier op OK fir mam FTP-Server ze verbannen:

15. Elo sollt Dir erfollegräich op den FTP-Server iwwer eng TLS-Verbindung ageloggt sinn, kontrolléiert d'Verbindungsstatus Sektioun fir méi Informatioun aus der Interface hei drënner.

16. Schlussendlech, loosst eis Dateien vun der lokaler Maschinn op den FTP-Server am Fichier Dossier transferéieren, kuckt um ënneschten Enn vun der FileZilla-Interface fir Berichter iwwer Dateietransferen ze gesinn.

Dat ass alles! Denkt ëmmer drun datt d'Installatioun vun engem FTP-Server ouni Verschlësselungsservicer z'erméiglechen gewësse Sécherheetsimplikatiounen huet. Wéi mir an dësem Tutorial erkläert hunn, kënnt Dir e FTP Server konfiguréieren fir SSL/TLS Verbindungen ze benotzen fir Sécherheet an Ubuntu 16.04/16.10 ëmzesetzen.

Wann Dir Probleemer hutt beim Astelle vun SSL/TLS um FTP-Server, benotzt de Kommentarform hei ënnen fir Är Probleemer oder Gedanken iwwer dëst Tutorial/Thema ze deelen.