Opsætning af en sikker FTP-server ved hjælp af SSL/TLS på Ubuntu


I denne vejledning beskriver vi, hvordan du sikrer en FTP-server (VSFTPD står for "Very Secure FTP Daemon") ved hjælp af SSL/TLS i Ubuntu 16.04/16.10.

Hvis du ønsker at konfigurere en sikker FTP-server til CentOS-baserede distributioner, kan du læse - Sikre en FTP-server ved hjælp af SSL/TLS på CentOS

Efter at have fulgt de forskellige trin i denne vejledning, har vi lært det grundlæggende ved at aktivere krypteringstjenester i en FTP-server til sikker dataoverførsel er afgørende.

  1. Du skal installere og konfigurere en FTP-server i Ubuntu

Inden vi går videre, skal du sørge for, at alle kommandoer i denne artikel køres som root- eller sudo-privilegeret konto.

Trin 1: Generering af SSL/TLS-certifikat til FTP på Ubuntu

1. Vi begynder med at oprette en underkatalog under:/etc/ssl/for at gemme SSL/TLS-certifikatet og nøglefiler, hvis det ikke findes:

$ sudo mkdir /etc/ssl/private

2. Lad os nu generere certifikatet og indtaste en enkelt fil ved at køre kommandoen nedenfor.

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

Ovenstående kommando vil bede dig om at besvare nedenstående spørgsmål. Glem ikke at indtaste værdier, der gælder for dit scenario.

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 

Trin 2: Konfiguration af VSFTPD til brug af SSL/TLS på Ubuntu

3. Før vi udfører VSFTPD-konfigurationer, skal du åbne portene 990 og 40000-50000 for dem, der har UFW-firewall aktiveret, for at tillade TLS-forbindelser og portområdet for passive porte at indstille i henholdsvis VSFTPD-konfigurationsfilen:

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

4. Åbn nu VSFTPD-konfigurationsfilen og definer SSL-detaljerne i den:

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

Tilføj eller find derefter indstillingen ssl_enable , og sæt dens værdi til YES for at aktivere brugen af SSL igen, fordi TLS er mere sikker end SSL, vil vi begrænse VSFTPD til at bruge TLS i stedet ved at aktivere ssl_tlsv1 mulighed:

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

5. Kommenter derefter nedenstående linjer ved hjælp af # -tegnet som følger:

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

Derefter tilføjes nedenstående linjer for at definere placeringen af SSL-certifikatet og nøglefilen:

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

6. Nu skal vi også forhindre anonyme brugere i at bruge SSL og derefter tvinge alle ikke-anonyme login til at bruge en sikker SSL-forbindelse til dataoverførsel og sende adgangskoden under login:

allow_anon_ssl=NO
force_local_data_ssl=YES
force_local_logins_ssl=YES

7. Desuden kan vi bruge nedenstående indstillinger til at tilføje flere sikkerhedsfunktioner i FTP-serveren. Med indstilling require_ssl_reuse = YES kræves alle SSL-dataforbindelser for at udvise genbrug af SSL-session; bevis for, at de kender den samme masterhemmelighed som kontrolkanalen. Så vi skal deaktivere det.

require_ssl_reuse=NO

Derudover kan vi indstille, hvilke SSL-cifre VSFTPD tillader krypterede SSL-forbindelser med indstillingen ssl_ciphers . Dette vil hjælpe med at frustrere enhver indsats fra angribere, der forsøger at tvinge en bestemt chiffer, som de muligvis opdagede sårbarheder i:

ssl_ciphers=HIGH

8. Lad os derefter definere portområdet (min og max port) for passive porte.

pasv_min_port=40000
pasv_max_port=50000

9. For at aktivere SSL-fejlretning, hvilket betyder, at openSSL-forbindelsesdiagnostik registreres i VSFTPD-logfilen, kan vi bruge indstillingen debug_ssl :

debug_ssl=YES

Endelig gem filen og luk den. Genstart derefter VSFTPD-tjenesten:

$ systemctl restart vsftpd

Trin 3: Bekræft FTP med SSL/TLS-forbindelser på Ubuntu

10. Efter at have udført alle ovenstående konfigurationer, test om VSFTPD nu bruger SSL/TLS-forbindelser ved at prøve at bruge FTP fra kommandolinjen som nedenfor.

Fra nedenstående output er der en fejlmeddelelse, der fortæller os, at VSFTPD kun kan tillade brugere (ikke-anonyme) at logge ind fra sikre klienter, der understøtter krypteringstjenester.

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

Kommandolinjen understøtter ikke krypteringstjenester, hvilket resulterer i ovenstående fejl. Derfor har vi brug for en FTP-klient, der understøtter SSL/TLS-forbindelser som standard, f.eks. FileZilla, for at oprette forbindelse sikkert til en FTP-server med aktiverede krypteringstjenester.

Trin 4: Installer FileZilla på klienter for at oprette forbindelse til FTP sikkert

FileZilla er en stærk, meget udbredt FTP-klient på tværs af platforme, der understøtter FTP over SSL/TLS og mere. For at installere FileZilla på en Linux-klientmaskine skal du bruge følgende 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. Når installationen er færdig, skal du åbne den og gå til File => Sites Manager eller (tryk på Ctrl + S) for at få Site Manager-grænsefladen nedenfor.

13. Definer nu værts-/stednavnet, tilføj IP-adressen, definer den protokol, der skal bruges, kryptering og logon-type som i skærmbilledet nedenfor (brug værdier, der gælder for dit scenario):

Klik på knappen Nyt sted for at konfigurere et nyt websted/værtsforbindelse.

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. Klik derefter på Opret forbindelse fra grænsefladen ovenfor for at indtaste adgangskoden, og bekræft derefter certifikatet, der bruges til SSL/TLS-forbindelsen, og klik igen på OK for at oprette forbindelse til FTP-serveren:

15. Nu skulle du have logget ind med succes på FTP-serveren via en TLS-forbindelse. Tjek afsnittet om forbindelsesstatus for mere information fra nedenstående interface.

16. Endelig, lad os overføre filer fra den lokale maskine til FTP-filen i filmappen, se i den nederste ende af FileZilla-grænsefladen for at se rapporter om filoverførsler.

Det er alt! Husk altid, at installation af en FTP-server uden at aktivere krypteringstjenester har visse sikkerhedsmæssige konsekvenser. Som vi forklarede i denne vejledning, kan du konfigurere en FTP-server til at bruge SSL/TLS-forbindelser til at implementere sikkerhed i Ubuntu 16.04/16.10.

Hvis du står over for problemer med opsætning af SSL/TLS på FTP-server, skal du bruge kommentarformularen nedenfor til at dele dine problemer eller tanker vedrørende denne tutorial/emne.