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