Zoeken op website

Een veilige FTP-server instellen met SSL/TLS op Ubuntu


In deze tutorial beschrijven we hoe u een FTP-server kunt beveiligen (VSFTPD staat voor “Very Secure FTP Daemon”) met behulp van SSL /TLS in Ubuntu 16.04/16.10.

Als u een veilige FTP-server wilt instellen voor op CentOS gebaseerde distributies, kunt u lezen: Beveilig een FTP-server met SSL/TLS op CentOS

Nadat we de verschillende stappen in deze handleiding hebben gevolgd, hebben we geleerd dat de basisprincipes van het inschakelen van coderingsservices op een FTP-server voor veilige gegevensoverdracht cruciaal zijn.

Vereisten

  1. U moet een FTP-server in Ubuntu installeren en configureren

Voordat we verder gaan, moet u ervoor zorgen dat alle opdrachten in dit artikel worden uitgevoerd als root- of sudo-bevoorrechte account.

Stap 1: SSL/TLS-certificaat genereren voor FTP op Ubuntu

1. We beginnen met het maken van een submap onder: /etc/ssl/ om het SSL/TLS-certificaat en de sleutelbestanden op te slaan als dit niet het geval is bestaat niet:

sudo mkdir /etc/ssl/private

2. Laten we nu het certificaat en de sleutel in één bestand genereren door de onderstaande opdracht uit te voeren.

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

De bovenstaande opdracht zal u vragen de onderstaande vragen te beantwoorden. Vergeet niet waarden in te voeren die van toepassing zijn op uw 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 

Stap 2: VSFTPD configureren om SSL/TLS op Ubuntu te gebruiken

3. Voordat we VSFTPD-configuraties uitvoeren, moet u voor degenen die de UFW-firewall hebben ingeschakeld de poorten 990 en 40000 openen -50000 om respectievelijk TLS-verbindingen en het poortbereik van passieve poorten in te stellen in het VSFTPD-configuratiebestand:

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

4. Open nu het VSFTPD-configuratiebestand en definieer daarin de SSL-gegevens:

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

Voeg vervolgens de optie ssl_enable toe of zoek deze en stel de waarde ervan in op YES om het gebruik van SSL te activeren. Nogmaals, omdat TLS veiliger is dan SSL, beperken we VSFTPD tot gebruik in plaats daarvan TLS door de optie ssl_tlsv1 in te schakelen:

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

5. Geef vervolgens als volgt commentaar op de onderstaande regels met het teken #:

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

Voeg daarna de onderstaande regels toe om de locatie van het SSL-certificaat en het sleutelbestand te definiëren:

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

6. Nu moeten we ook voorkomen dat anonieme gebruikers SSL gebruiken, en vervolgens alle niet-anonieme logins dwingen om een veilige SSL-verbinding te gebruiken voor gegevensoverdracht en om het wachtwoord te verzenden tijdens het inloggen:

allow_anon_ssl=NO
force_local_data_ssl=YES
force_local_logins_ssl=YES

7. Bovendien kunnen we de onderstaande opties gebruiken om meer beveiligingsfuncties toe te voegen aan de FTP-server. Met de optie require_ssl_reuse=YES zijn alle SSL-gegevensverbindingen vereist om hergebruik van SSL-sessies mogelijk te maken; wat bewijst dat ze hetzelfde hoofdgeheim kennen als het controlekanaal. We moeten het dus uitschakelen.

require_ssl_reuse=NO

Daarnaast kunnen we instellen welke SSL-coderingen VSFTPD toestaat voor gecodeerde SSL-verbindingen met de optie ssl_ciphers. Dit zal alle pogingen van aanvallers helpen frustreren die proberen een specifiek cijfer te forceren waarin ze mogelijk kwetsbaarheden hebben ontdekt in:

ssl_ciphers=HIGH

8. Laten we vervolgens het poortbereik (min. en max. poort) van passieve poorten definiëren.

pasv_min_port=40000
pasv_max_port=50000

9. Om SSL-foutopsporing in te schakelen, wat betekent dat openSSL-verbindingsdiagnostiek wordt vastgelegd in het VSFTPD-logbestand, kunnen we de optie debug_ssl gebruiken:

debug_ssl=YES

Sla ten slotte het bestand op en sluit het. Start vervolgens de VSFTPD-service opnieuw:

systemctl restart vsftpd

Stap 3: Controleer FTP met SSL/TLS-verbindingen op Ubuntu

10. Test na het uitvoeren van alle bovenstaande configuraties of VSFTPD nu SSL/TLS-verbindingen gebruikt door FTP te gebruiken vanaf de opdrachtregel, zoals hieronder.

Uit de onderstaande uitvoer blijkt een foutmelding dat VSFTPD alleen gebruikers (niet-anoniem) kan toestaan in te loggen vanaf beveiligde clients die coderingsservices ondersteunen.

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>

De opdrachtregel ondersteunt geen coderingsservices, wat resulteert in de bovenstaande fout. Om veilig verbinding te kunnen maken met een FTP-server waarop encryptieservices zijn ingeschakeld, hebben we daarom een FTP-client nodig die standaard SSL/TLS-verbindingen ondersteunt, zoals FileZilla.

Stap 4: Installeer FileZilla op clients om veilig verbinding te maken met FTP

FileZilla is een krachtige, veelgebruikte platformonafhankelijke FTP-client die FTP via SSL/TLS en meer ondersteunt. Gebruik de volgende opdracht om FileZilla op een Linux-clientcomputer te installeren.

--------- 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. Zodra de installatie is voltooid, opent u deze en gaat u naar Bestand=>Sitesbeheer of (druk op Ctrl+S) om de >Site Manager-interface hieronder.

13. Definieer nu de host-/sitenaam, voeg het IP-adres toe, definieer het te gebruiken protocol, de codering en het aanmeldingstype zoals in de onderstaande schermafbeelding (gebruik waarden die van toepassing zijn op uw scenario):

Klik op de knop Nieuwe site om een nieuwe site/host-verbinding te configureren.

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 vervolgens op Verbinden in de bovenstaande interface om het wachtwoord in te voeren en verifieer vervolgens het certificaat dat wordt gebruikt voor de SSL/TLS-verbinding, en klik nogmaals op OK om verbinding te maken met de FTP-server:

15. Nu zou u succesvol moeten zijn ingelogd op de FTP-server via een TLS-verbinding. Controleer het gedeelte over de verbindingsstatus voor meer informatie via de onderstaande interface.

16. Laten we tot slot de bestanden overbrengen van de lokale machine naar de FTP-server in de map Bestanden. Kijk eens naar de onderkant van de FileZilla-interface om rapporten over bestandsoverdrachten te bekijken.

Dat is alles! Onthoud altijd dat het installeren van een FTP-server zonder het inschakelen van coderingsservices bepaalde veiligheidsimplicaties heeft. Zoals we in deze tutorial hebben uitgelegd, kunt u een FTP-server configureren om SSL/TLS-verbindingen te gebruiken om beveiliging in Ubuntu 16.04/16.10 te implementeren.

Als u problemen ondervindt bij het instellen van SSL/TLS op de FTP-server, gebruik dan het onderstaande commentaarformulier om uw problemen of gedachten over deze tutorial/onderwerp te delen.