Sette opp en sikker FTP-server ved hjelp av SSL/TLS på Ubuntu


I denne veiledningen vil vi beskrive hvordan du sikrer en FTP-server (VSFFTPD står for "Very Secure FTP Daemon ") ved hjelp av SSL /TLS i Ubuntu 16.04/16.10.

Hvis du ønsker å sette opp en sikker FTP-server for CentOS-baserte distribusjoner, kan du lese - Sikre en FTP-server ved å bruke SSL/TLS på CentOS

Etter å ha fulgt de ulike trinnene i denne veiledningen, vil vi ha lært det grunnleggende om å aktivere krypteringstjenester i en FTP-server for sikre dataoverføringer er avgjørende.

Krav

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

Før vi går videre, sørg for at alle kommandoer i denne artikkelen kjøres som root- eller sudo-privilegert konto.

Trinn 1: Generer SSL/TLS-sertifikat for FTP på Ubuntu

1. Vi vil begynne med å lage en underkatalog under: /etc/ssl/ for å lagre SSL/TLS-sertifikatet og nøkkelfiler hvis det gjør det finnes ikke:

sudo mkdir /etc/ssl/private

2. La oss nå generere sertifikatet og taste inn en enkelt fil ved å kjø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

Kommandoen ovenfor vil be deg om å svare på spørsmålene nedenfor, ikke glem å angi verdier som gjelder for scenarioet ditt.

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 

Trinn 2: Konfigurere VSFTPD for å bruke SSL/TLS på Ubuntu

3. Før vi utfører noen VSFTPD-konfigurasjoner, for de som har UFW-brannmur aktivert, må du åpne portene 990 og 40000 -50000 for å tillate at TLS-tilkoblinger og portområdet for passive porter angis i henholdsvis VSFTPD-konfigurasjonsfilen:

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

4. Nå åpner du VSFTPD-konfigurasjonsfilen og definer SSL-detaljene i den:

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

Legg deretter til eller finn alternativet ssl_enable og sett verdien til YES for å aktivere bruken av SSL, igjen, fordi TLS er sikrere enn SSL, vil vi begrense VSFTPD til bruk TLS i stedet ved å aktivere alternativet ssl_tlsv1:

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

5. Deretter kommenterer du linjene nedenfor med #-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

Etterpå legger du til linjene nedenfor for å definere plasseringen av SSL-sertifikatet og nøkkelfilen:

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

6. Nå må vi også forhindre at anonyme brukere bruker SSL, og deretter tvinge alle ikke-anonyme pålogginger til å bruke en sikker SSL-tilkobling for dataoverføring og sende passordet under pålogging:

allow_anon_ssl=NO
force_local_data_ssl=YES
force_local_logins_ssl=YES

7. Videre kan vi bruke alternativene nedenfor for å legge til flere sikkerhetsfunksjoner i FTP-serveren. Med alternativet require_ssl_reuse=JA, kreves alle SSL-datatilkoblinger for å vise gjenbruk av SSL-økter; beviser at de kjenner den samme hovedhemmeligheten som kontrollkanalen. Så vi bør deaktivere den.

require_ssl_reuse=NO

I tillegg kan vi angi hvilke SSL-chiffer VSFTPD vil tillate for krypterte SSL-forbindelser med ssl_ciphers-alternativet. Dette vil bidra til å frustrere enhver innsats fra angripere som prøver å tvinge frem et spesifikt chiffer som de muligens har oppdaget sårbarheter i:

ssl_ciphers=HIGH

8. La oss deretter definere portområdet (min. og maks. port) for passive porter.

pasv_min_port=40000
pasv_max_port=50000

9. For å aktivere SSL-feilsøking, noe som betyr at åpenSSL-tilkoblingsdiagnostikk registreres i VSFTPD-loggfilen, kan vi bruke debug_ssl-alternativet:

debug_ssl=YES

Lagre til slutt filen og lukk den. Start deretter VSFTPD-tjenesten på nytt:

systemctl restart vsftpd

Trinn 3: Bekreft FTP med SSL/TLS-tilkoblinger på Ubuntu

10. Etter å ha utført alle de ovennevnte konfigurasjonene, test om VSFTPD nå bruker SSL/TLS-tilkoblinger ved å prøve å bruke FTP fra kommandolinjen som nedenfor.

Fra utdataene nedenfor er det en feilmelding som forteller oss at VSFTPD bare kan tillate brukere (ikke-anonyme) å logge på fra sikre klienter som stø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 støtter ikke krypteringstjenester, noe som resulterer i feilen ovenfor. For å koble til en FTP-server på en sikker måte med krypteringstjenester aktivert, trenger vi derfor en FTP-klient som støtter SSL/TLS-tilkoblinger som standard, for eksempel FileZilla.

Trinn 4: Installer FileZilla på klienter for å koble til FTP sikkert

FileZilla er en kraftig, mye brukt FTP-klient på tvers av plattformer som støtter FTP over SSL/TLS og mer. For å installere FileZilla på en Linux-klientmaskin, bruk 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 installasjonen er fullført, åpner du den og går til Fil=>Site Manager eller (trykk Ctrl+S) for å få >Site Manager-grensesnittet nedenfor.

13. Definer nå verts-/nettstedets navn, legg til IP-adressen, definer protokollen som skal brukes, kryptering og påloggingstype som i skjermbildet nedenfor (bruk verdier som gjelder for scenarioet ditt):

Klikk på Nytt nettsted-knappen for å konfigurere et nytt nettsted/vertstilkobling.

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. Klikk deretter på Koble til fra grensesnittet ovenfor for å angi passordet, og bekreft deretter sertifikatet som brukes for SSL/TLS-tilkoblingen, og klikk OK en gang til for å koble til FTP-serveren:

15. Nå skal du ha logget på FTP-serveren over en TLS-tilkobling. Sjekk tilkoblingsstatusdelen for mer informasjon fra grensesnittet nedenfor.

16. Til slutt, la oss overføre filer fra den lokale maskinen til FTP-serveren i filmappen, ta en titt på den nedre enden av FileZilla-grensesnittet for å se rapporter om filoverføringer.

Det er alt! Husk alltid at det å installere en FTP-server uten å aktivere krypteringstjenester har visse sikkerhetsimplikasjoner. Som vi forklarte i denne opplæringen, kan du konfigurere en FTP-server til å bruke SSL/TLS-tilkoblinger for å implementere sikkerhet i Ubuntu 16.04/16.10.

Hvis du har problemer med å sette opp SSL/TLS på FTP-serveren, bruk kommentarskjemaet nedenfor for å dele dine problemer eller tanker angående denne opplæringen/emnet.