FTP

FTP configureren met TLS in Ubuntu

FTP configureren met TLS in Ubuntu
FTP (File Transfer Protocol) wordt voornamelijk gebruikt om bestanden tussen computers over te dragen. FTP werkt in client-server-architectuur, waarbij de client om een ​​bestand van de server vraagt ​​en de server het vereiste bestand terugstuurt naar de client. Op de clientcomputer wordt de FTP-clienttoepassing gebruikt om met de server te communiceren. Het is ook mogelijk om toegang te krijgen tot de FTP-server in de browser. Standaard communiceert FTP via een onveilig kanaal, maar het is mogelijk om FTP te configureren om gegevens over een beveiligd kanaal over te dragen. In deze zelfstudie leert u hoe u een FTP-server met TLS configureert en vervolgens FileZilla als clienttoepassing gebruikt om verbinding te maken met de FTP-server.

VSFTPD installeren

VSFTPD (Very Secure FTP Daemon) is een softwareprogramma dat wordt gebruikt om FTP op een server te configureren. In deze zelfstudie wordt VSFTPD gebruikt om de FTP-server op de machine te configureren. Voordat u VSFTPD installeert, moet u de repositories op uw server bijwerken door de volgende opdracht uit te voeren:.

[e-mail beveiligd]:~$ sudo apt-get update -y

Installeer vervolgens VSFTPD met behulp van de volgende opdracht:.

[e-mail beveiligd]:~$ sudo apt-get install vsftpd -y

Controleer ten slotte de installatie door de versie van vsftpd te controleren met de volgende opdracht:.

[e-mail beveiligd]:~$ vsftpd -v

De bovenstaande opdracht zal de versie van vsftpd uitvoeren als de installatie succesvol is.

FTP in actieve modus

In de actieve modus start de FTP-client de sessie door de TCP-besturingsverbinding tot stand te brengen vanaf een willekeurige poort op de clientcomputer naar poort 21 van de server. Vervolgens begint de client op een willekeurige poort X te luisteren naar een gegevensverbinding en informeert de server via de TCP-besturingsverbinding dat de client wacht op de gegevensverbinding op poort X. Hierna brengt de server een dataverbinding tot stand van poort 20 naar poort X op de clientcomputer.

Er kan een probleem optreden wanneer de client zich achter een firewall bevindt en poort X is geblokkeerd. In dit geval kan de server geen dataverbinding met de client tot stand brengen. Om dit probleem te voorkomen, wordt de FTP-server meestal in de passieve modus gebruikt, wat we later in dit artikel zullen bespreken. Standaard gebruikt VSFTPD de passieve modus, dus we zullen deze moeten wijzigen in de actieve modus.

Open eerst het VSFTPD-configuratiebestand.

[e-mail beveiligd]:~$ sudo nano /etc/vsftpd.conf

Voeg de volgende regel toe aan het einde van het bestand:.

pasv_enable=NEE

Zorg er ook voor dat de optie 'connect_from_port_20' is ingesteld op 'JA'.' Deze optie zorgt ervoor dat de dataverbinding tot stand komt op poort 20 van de server.

Maak vervolgens een map die de FTP-server zal gebruiken om bestanden op te slaan. Voor deze tutorial zullen we '/home/ubuntu/ftp/' configureren als het rootpad voor de FTP-server.

[e-mail beveiligd]:~$ sudo mkdir /home/ubuntu/ftp

Geef nu deze map op in het configuratiebestand door de optie 'local_root' te wijzigen. De volgende parameter configureert het rootpad van de server:.

local_root=/home/ubuntu/ftp

De optie 'write_enable' moet zijn ingeschakeld om gebruikers toe te staan ​​naar de FTP-server te schrijven write.

Elke keer dat u het configuratiebestand wijzigt, moet u de server altijd opnieuw opstarten.

[e-mail beveiligd]:~$ sudo systemctl herstart vsftpd

Een wachtwoord instellen voor een gebruiker

De FTP-client maakt verbinding met de server met behulp van een gebruikersnaam en wachtwoord. Stel het wachtwoord voor uw gebruiker op de machine in met de volgende opdracht:.

[e-mail beveiligd]:~$ sudo passwd ubuntu

De bovenstaande opdracht vraagt ​​om het wachtwoord voor de 'ubuntu'-gebruiker.

De firewall configureren voor de actieve modus

Als FTP wordt gebruikt in de actieve modus, gebruikt de FTP-server twee poorten om met de client te communiceren, poorten 21 en 22. Poort 21 wordt gebruikt om opdrachten door te geven aan de client en poort 20 wordt gebruikt om gegevens over te dragen naar een willekeurige poort van de client. We zullen ufw gebruiken om de firewall op de server te configureren. Installeer ufw met behulp van de volgende opdracht:.

[e-mail beveiligd]:~$ sudo apt-get install ufw

Nu, aan de serverkant, zullen we poorten 20, 21 en 22 openen (voor de SSH-verbinding).

[email protected]:~$ sudo ufw toestaan ​​van elke naar elke poort proto tcp

Schakel de status van ufw in en controleer deze met de volgende opdrachten:.

[email protected]:~$ sudo ufw enable
[e-mail beveiligd]:~$ sudo ufw status

OPMERKING: als u uw FTP-server in de cloud configureert, moet u ook poorten 20, 21 en 22 in de beveiligingsgroep toestaan.

WAARSCHUWING: Schakel altijd poort 22 in, samen met de vereiste poorten, voordat u ufw inschakelt op het externe systeem. UFW blokkeert standaard verkeer van poort 22, dus u kunt geen toegang krijgen tot uw externe server via SSH als u ufw inschakelt zonder verkeer van poort 22 toe te staan.

De FTP-client installeren

Nu is onze server geconfigureerd in de actieve modus en hebben we er toegang toe vanaf de clientzijde. Voor de clienttoepassing gebruiken we FileZilla, een ftp-clienttoepassing. Installeer FileZilla met behulp van de volgende opdracht:.

[e-mail beveiligd]:~$ sudo apt-get install filezilla -y

Open de FTP-clienttoepassing en voer het openbare IP-adres en andere referenties van de FTP-server in.

Wanneer u op 'Quickconnect' klikt, maakt u verbinding met de FTP-server en wordt u automatisch naar de map geleid die is opgegeven in de optie 'local_root' in het configuratiebestand '/home/ubuntu/ftp'.

Problemen in de actieve modus

Het gebruik van FTP in de actieve modus geeft problemen wanneer de client zich achter de firewall bevindt. Wanneer de server na het invoeren van de initiële besturingsopdrachten een gegevensverbinding met de client op een willekeurige poort tot stand brengt, kan de poort worden geblokkeerd door de firewall op de client, waardoor de gegevensoverdracht mislukt. FTP kan worden gebruikt in de passieve modus om deze firewallproblemen op te lossen.

FTP in passieve modus

In de passieve modus maakt de client een controleverbinding met de server op poort 21 van de server. De client stuurt vervolgens het speciale 'PASV'-commando om de server te informeren dat de dataverbinding tot stand wordt gebracht door de client in plaats van door de server. Als reactie ontvangt de client het server-IP en het willekeurige poortnummer (dit poortnummer wordt geconfigureerd op de server). De client gebruikt dit IP- en poortnummer om een ​​dataverbinding met de server tot stand te brengen. In de passieve modus worden zowel de data- als de besturingsverbindingen door de client tot stand gebracht, zodat de firewall de communicatie tussen de client en de server niet verstoort.

Open het FTP-configuratiebestand in uw favoriete editor.

[e-mail beveiligd]:~$ sudo nano /etc/vsftpd.conf

Stel de optie 'pasv_enable' in op 'JA' in het bestand zodat de server in passieve modus met de client kan communiceren. Stel ook de optie 'local_root' in om de hoofdmap van de server op te geven en stel de optie 'write_enable' in op 'JA' zodat gebruikers bestanden naar de server kunnen uploaden.

Zoals eerder besproken, wordt de gegevensverbinding tot stand gebracht door de client en verzendt de server zijn openbare IP en een willekeurige poort naar de client om een ​​gegevensverbinding tot stand te brengen. Deze willekeurige poort op de server kan worden gespecificeerd uit een reeks poorten in het configuratiebestand.

De dataverbinding tussen de server en de client wordt tot stand gebracht op een poort tussen 1024 en 1048. Start de FTP-server opnieuw op na het wijzigen van het configuratiebestand.

[e-mail beveiligd]:~$ sudo systemctl herstart vsftpd

De firewall configureren in passieve modus

Als we FTP in de passieve modus gebruiken, wordt de gegevensverbinding tot stand gebracht via elke poort van 1024 tot 1048, dus het is noodzakelijk om al deze poorten op de FTP-server toe te staan.

[email protected]:~$ sudo ufw toestaan ​​van elke naar elke poort proto tcp

Nadat u alle poorten op de firewall hebt toegestaan, activeert u de ufw door de volgende opdracht uit te voeren:.

[email protected]:~$ sudo ufw enable

Sta altijd poorten op de server toe voordat u de firewall inschakelt; anders heb je geen toegang tot je server via SSH als ufw, wat standaard poort 22 blokkeert.

De verbinding testen

Nu hebben we de FTP-server in de passieve modus ingesteld en kunnen we de ftp-verbinding met de clienttoepassing controleren. Open FileZilla in uw systeem om dit te doen.

Nadat u de host, gebruikersnaam, wachtwoord en poort hebt ingevoerd, kunt u nu verbinding maken met uw server. Nu u verbonden bent met de FTP-server die in de passieve modus draait, kunt u bestanden uploaden naar de server.

SSL-certificaten configureren met de FTP-server

Standaard brengt de FTP-server de verbinding tot stand tussen de client en de server via een onbeveiligd kanaal. Dit type communicatie mag niet worden gebruikt als u gevoelige gegevens tussen de client en de server wilt delen. Om via een beveiligd kanaal te communiceren, is het noodzakelijk om SSL-certificaten te gebruiken.

SSL-certificaten genereren

We zullen SSL-certificaten gebruiken om veilige communicatie tussen de client en de server op te zetten. We zullen deze certificaten genereren met openssl. De volgende opdracht genereert SSL-certificaten voor uw server:.

[email protected]:~$ sudo openssl req -x509 -nodes -day 365 -newkey rsa:2048 -keyout /etc/ssl/private/vsftpd.pem -out /etc/ssl/private/vsftpd.pem

Wanneer u de bovenstaande opdracht uitvoert, worden u enkele vragen gesteld. Nadat u deze vragen heeft beantwoord, worden de certificaten gegenereerd. U kunt controleren op de certificaten in de terminal.

[e-mail beveiligd]:~$ sudo ls /etc/ssl/private/

Certificaten gebruiken in het configuratiebestand

Nu zijn onze certificaten klaar voor gebruik. We zullen de 'vsftpd' configureren.conf' bestand om de SSL-certificaten te gebruiken voor communicatie. Open het configuratiebestand met de volgende opdracht:.

[e-mail beveiligd]:~$ sudo nano /etc/vsftpd.conf

Voeg de volgende regels toe aan het einde van de bestanden:. Deze wijzigingen zorgen ervoor dat de FTP-server de nieuw gegenereerde SSL-certificaten gebruikt om veilig met de client te communiceren.

ssl_enable=JA
force_local_data_ssl=NEE
force_local_logins_ssl=NEE
ssl_tlsv1=JA
ssl_sslv2=NEE
ssl_sslv3=NEE
rsa_cert_file=/etc/ssl/private/vsftpd.pem
rsa_private_key_file=/etc/ssl/private/vsftpd.pem

Start de FTP-server opnieuw om deze wijzigingen toe te passen.

[e-mail beveiligd]:~$ sudo systemctl herstart vsftpd

Probeer na het herstarten van de server verbinding te maken met uw server met behulp van de FileZilla-clienttoepassing. Deze keer zal de clienttoepassing u vragen of u deze certificaten wilt vertrouwen.

Als u certificaten heeft van een vertrouwde certificeringsinstantie, mag deze waarschuwing niet verschijnen. We hebben onze certificaten gegenereerd met behulp van openssl, wat geen vertrouwde certificeringsinstantie is, daarom vroeg het in ons geval om certificaatverificatie. Nu kunnen we communiceren tussen de client en de server via een beveiligd kanaal.

Anonieme configuratie

U kunt ook anoniem inloggen op uw FTP-server inschakelen. Als deze configuratie is ingeschakeld, kan elke gebruiker inloggen op de FTP-server met een gebruikersnaam en wachtwoord. De volgende parameters in het configuratiebestand maken de FTP-server anoniem toegankelijk.

De bovenstaande configuratie stelt het rootpad voor anonieme gebruikers in op '/home/ubuntu/ftp/anon' en er wordt niet om het wachtwoord gevraagd wanneer een anonieme gebruiker inlogt.

OPMERKING: Zorg ervoor dat het pad '/home/ubuntu/ftp/anon' bestaat op de FTP-server.

Start nu de FTP-server opnieuw op.

[e-mail beveiligd]:~$ sudo systemctl herstart vsftpd

Nadat de server opnieuw is opgestart, zullen we proberen verbinding te maken met de server via de Google Chrome-browser. Ga naar de volgende URL.

ftp://3.8.12.52

De bovenstaande URL brengt u naar de hoofdmap van de FTP-server, zoals gespecificeerd in het configuratiebestand. Als Anoniem inloggen is uitgeschakeld en u probeert verbinding te maken met de FTP-server via een browser, wordt u eerst om verificatie gevraagd en vervolgens wordt u naar de hoofdmap van de server gebracht.

Lokale toegang configureren

We kunnen ook lokale toegang tot de FTP-server toestaan ​​of blokkeren door het configuratiebestand te wijzigen. Momenteel hebben we lokaal toegang tot onze FTP-server zonder de FTP-clienttoepassing te gebruiken, maar we kunnen deze toegang blokkeren. Om dit te doen, moeten we de parameter 'local_enable' wijzigen.

Start eerst de FTP-server opnieuw op.

[e-mail beveiligd]:~$ sudo systemctl herstart vsftpd

Probeer na het herstarten van de server lokaal toegang te krijgen tot de FTP-server via de opdrachtregelinterface. Log in op uw externe server met SSH.

[e-mail beveiligd]:~$ ssh [email protected] -i

Geef nu de volgende opdracht om lokaal in te loggen op de FTP-server met behulp van de opdrachtregelinterface:.

[e-mail beveiligd]:~$ ftp localhost

Wanneer u de bovenstaande opdracht uitvoert, wordt een 500-fout gegenereerd.

Conclusie

File Transfer Protocol wordt al vele jaren gebruikt om bestanden en documenten via internet over te brengen. VSFTPD is een van de pakketten die als FTP-server op uw computer wordt gebruikt. VSFTPD bevat verschillende configuraties die u kunt gebruiken om uw FTP-server aan te passen. Deze tutorial liet je zien hoe je een FTP-server met TLS configureert voor verbeterde beveiliging. Ga naar de volgende link voor meer informatie over FTP-configuraties:.

http://vsftpd.beesten.org/vsftpd_conf.html

AppyMouse trackpad en muisaanwijzer op het scherm voor Windows-tablets
Tabletgebruikers missen vaak de muisaanwijzer, vooral wanneer ze gewend zijn om de laptop te gebruiken. Het touchscreen Smartphones en tablets hebben ...
Middelste muisknop werkt niet in Windows 10
De middelste muis knop helpt u door lange webpagina's en schermen met veel gegevens te bladeren. Als dat stopt, zul je uiteindelijk het toetsenbord ge...
Hoe de linker- en rechtermuisknop op Windows 10 pc te veranderen
Het is nogal een norm dat alle computermuisapparaten ergonomisch zijn ontworpen voor rechtshandige gebruikers. Maar er zijn muisapparaten beschikbaar ...