Android

Hoe ftp-server in te stellen met vsftpd op ubuntu 18.04

How to configure ftp Server in ubuntu 18.04 ( User authentication )

How to configure ftp Server in ubuntu 18.04 ( User authentication )

Inhoudsopgave:

Anonim

FTP (File Transfer Protocol) is een standaard netwerkprotocol dat wordt gebruikt om bestanden van en naar een extern netwerk over te dragen. Gebruik SCP of SFTP voor veiligere en snellere gegevensoverdracht.

Er zijn veel open source FTP-servers beschikbaar voor Linux. De meest populaire en meest gebruikte zijn PureFTPd, ProFTPD en vsftpd. In deze tutorial installeren we vsftpd (Very Secure Ftp Daemon). Het is een stabiele, veilige en snelle FTP-server. We laten u ook zien hoe u vsftpd kunt configureren om gebruikers te beperken tot hun thuismap en de volledige overdracht te coderen met SSL / TLS.

Hoewel deze tutorial is geschreven voor Ubuntu 18.04, zijn dezelfde instructies van toepassing op Ubuntu 16.04 en elke op Debian gebaseerde distributie, inclusief Debian, Linux Mint en Elementary OS.

voorwaarden

Zorg ervoor dat u bent aangemeld als een gebruiker met sudo-rechten voordat u doorgaat met deze zelfstudie.

Vsftpd installeren op Ubuntu 18.04

Het vsftpd-pakket is beschikbaar in de Ubuntu-opslagplaatsen. Voer de volgende opdrachten uit om het te installeren:

sudo apt update sudo apt install vsftpd

vsftpd-service wordt automatisch gestart nadat het installatieproces is voltooid. Controleer dit door de servicestatus af te drukken:

sudo systemctl status vsftpd

De output ziet er ongeveer zo uit, wat aangeeft dat de vsftpd-service actief is en actief is:

* vsftpd.service - vsftpd FTP server Loaded: loaded (/lib/systemd/system/vsftpd.service; enabled; vendor preset: enabled) Active: active (running) since Mon 2018-10-15 03:38:52 PDT; 10min ago Main PID: 2616 (vsftpd) Tasks: 1 (limit: 2319) CGroup: /system.slice/vsftpd.service `-2616 /usr/sbin/vsftpd /etc/vsftpd.conf

Vsftpd configureren

De vsftpd-server kan worden geconfigureerd door het bestand /etc/vsftpd.conf bewerken. De meeste instellingen zijn goed gedocumenteerd in het configuratiebestand. Ga voor alle beschikbare opties naar de officiële vsftpd-pagina.

In de volgende secties zullen we enkele belangrijke instellingen bespreken die nodig zijn om een ​​veilige vsftpd-installatie te configureren.

Begin met het openen van het vsftpd configuratiebestand:

sudo nano /etc/vsftpd.conf

1. FTP-toegang

We geven alleen toegang tot de FTP-server voor de lokale gebruikers, vinden de anonymous_enable en local_enable richtlijnen en verifiëren uw configuratieovereenkomst met de onderstaande regels:

/etc/vsftpd.conf

anonymous_enable=NO local_enable=YES

2. Uploads inschakelen

write_enable instelling write_enable om wijzigingen in het bestandssysteem toe te staan, zoals het uploaden en verwijderen van bestanden.

/etc/vsftpd.conf

write_enable=YES

3. Chroot-gevangenis

Om te voorkomen dat FTP-gebruikers toegang krijgen tot bestanden buiten hun homedirectory, moet de chroot instelling worden chroot .

/etc/vsftpd.conf

chroot_local_user=YES

Om een ​​beveiligingslek te voorkomen, weigert vsftpd standaard om bestanden te uploaden als de map waarin gebruikers zijn vergrendeld beschrijfbaar is.

Gebruik een van de onderstaande methoden om uploads toe te staan ​​wanneer chroot is ingeschakeld.

  • Methode 1. - De aanbevolen methode om uploaden toe te staan, is chroot ingeschakeld te houden en FTP-mappen te configureren. In deze zelfstudie maken we een ftp map in de startpagina van de gebruiker die als chroot fungeert en een beschrijfbare uploads voor het uploaden van bestanden.

    /etc/vsftpd.conf

    user_sub_token=$USER local_root=/home/$USER/ftp

    Methode 2. - Een andere optie is om de volgende richtlijn toe te voegen aan het vsftpd-configuratiebestand. Gebruik deze optie als u uw gebruiker schrijfbare toegang tot zijn thuismap moet verlenen.

    /etc/vsftpd.conf

    allow_writeable_chroot=YES

4. Passieve FTP-verbindingen

vsftpd kan elke poort gebruiken voor passieve FTP-verbindingen. We specificeren het minimum en maximum bereik van poorten en openen later het bereik in onze firewall.

Voeg de volgende regels toe aan het configuratiebestand:

/etc/vsftpd.conf

pasv_min_port=30000 pasv_max_port=31000

5. Aanmelding gebruiker beperken

Om alleen bepaalde gebruikers toe te staan ​​zich aan te melden bij de FTP-server, voegt u de volgende regels toe aan het einde van het bestand:

/etc/vsftpd.conf

userlist_enable=YES userlist_file=/etc/vsftpd.user_list userlist_deny=NO

Als deze optie is ingeschakeld, moet u expliciet opgeven welke gebruikers kunnen inloggen door de gebruikersnamen toe te voegen aan het bestand /etc/vsftpd.user_list (één gebruiker per regel).

6. Beveiliging van transmissies met SSL / TLS

Om de FTP-transmissies te coderen met SSL / TLS, moet u een SSL-certificaat hebben en de FTP-server configureren om het te gebruiken.

U kunt een bestaand SSL-certificaat gebruiken dat is ondertekend door een vertrouwde certificeringsinstantie of een zelfondertekend certificaat maken.

We zullen een zelf-ondertekend SSL-certificaat genereren met behulp van de opdracht openssl .

De volgende opdracht maakt een 2048-bits privésleutel en een zelfondertekend certificaat dat 10 jaar geldig is. Zowel de privésleutel als het certificaat worden in hetzelfde bestand opgeslagen:

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

Nadat het SSL-certificaat is gemaakt, opent u het vsftpd-configuratiebestand:

sudo nano /etc/vsftpd.conf

Zoek de richtlijnen rsa_cert_file en rsa_private_key_file , wijzig hun waarden in het pad van het pam bestand en stel de ssl_enable op YES :

/etc/vsftpd.conf

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

Tenzij anders aangegeven, gebruikt de FTP-server alleen TLS om beveiligde verbindingen te maken.

Start de vsftpd-service opnieuw

Als u klaar bent met bewerken, ziet het vsftpd-configuratiebestand (exclusief opmerkingen) er ongeveer zo uit:

/etc/vsftpd.conf

listen=NO listen_ipv6=YES anonymous_enable=NO local_enable=YES write_enable=YES dirmessage_enable=YES use_localtime=YES xferlog_enable=YES connect_from_port_20=YES chroot_local_user=YES secure_chroot_dir=/var/run/vsftpd/empty pam_service_name=vsftpd rsa_cert_file=/etc/ssl/private/vsftpd.pem rsa_private_key_file=/etc/ssl/private/vsftpd.pem ssl_enable=YES user_sub_token=$USER local_root=/home/$USER/ftp pasv_min_port=30000 pasv_max_port=31000 userlist_enable=YES userlist_file=/etc/vsftpd.user_list userlist_deny=NO

Sla het bestand op en start de vsftpd-service opnieuw om de wijzigingen door te voeren:

sudo systemctl restart vsftpd

De firewall openen

Voer de volgende opdrachten uit om poort 21 (FTP-opdrachtpoort), poort 20 (FTP-gegevenspoort) en 30000-31000 (bereik van passieve poorten) te openen:

sudo ufw allow 20:21/tcp sudo ufw allow 30000:31000/tcp

Open poort 22 om te voorkomen dat u wordt vergrendeld:

sudo ufw allow OpenSSH

Laad de UFW-regels opnieuw door UFW uit en weer in te schakelen:

sudo ufw disable sudo ufw enable

Om de wijzigingen te controleren:

sudo ufw status

Status: active To Action From -- ------ ---- 20:21/tcp ALLOW Anywhere 30000:31000/tcp ALLOW Anywhere OpenSSH ALLOW Anywhere 20:21/tcp (v6) ALLOW Anywhere (v6) 30000:31000/tcp (v6) ALLOW Anywhere (v6) OpenSSH (v6) ALLOW Anywhere (v6)

FTP-gebruiker maken

Om onze FTP-server te testen, maken we een nieuwe gebruiker.

  • Als u al een gebruiker hebt die FTP-toegang wilt verlenen, slaat u de eerste stap over. Als u allow_writeable_chroot=YES in uw configuratiebestand allow_writeable_chroot=YES slaat u de derde stap over.
  1. Maak een nieuwe gebruiker met de naam newftpuser :

    sudo adduser newftpuser

    Voeg de gebruiker toe aan de lijst met toegestane FTP-gebruikers:

    echo "newftpuser" | sudo tee -a /etc/vsftpd.user_list

    Maak de FTP-mapstructuur en stel de juiste machtigingen in:

    sudo mkdir -p /home/newftpuser/ftp/upload sudo chmod 550 /home/newftpuser/ftp sudo chmod 750 /home/newftpuser/ftp/upload sudo chown -R newftpuser: /home/newftpuser/ftp

    Zoals besproken in de vorige sectie, kan de gebruiker zijn bestanden uploaden naar de map ftp/upload .

Op dit moment is uw FTP-server volledig functioneel en moet u verbinding kunnen maken met uw server via elke FTP-client die kan worden geconfigureerd om TLS-codering te gebruiken, zoals FileZilla.

Shell-toegang uitschakelen

Bij het aanmaken van een gebruiker heeft de gebruiker standaard SSH-toegang tot de server.

Om shell-toegang uit te schakelen, maken we een nieuwe shell die eenvoudigweg een bericht afdrukt waarin de gebruiker wordt verteld dat hun account beperkt is tot alleen FTP-toegang.

Maak de shell /bin/ftponly en maak deze uitvoerbaar:

echo -e '#!/bin/sh\necho "This account is limited to FTP access only."' | sudo tee -a /bin/ftponly echo -e '#!/bin/sh\necho "This account is limited to FTP access only."' | sudo tee -a /bin/ftponly sudo chmod a+x /bin/ftponly

Voeg de nieuwe shell toe aan de lijst met geldige shells in het bestand /etc/shells :

echo "/bin/ftponly" | sudo tee -a /etc/shells

Wijzig de gebruikersshell in /bin/ftponly :

sudo usermod newftpuser -s /bin/ftponly

Gebruik dezelfde opdracht om de shell te wijzigen van alle gebruikers die u alleen FTP-toegang wilt geven.

Conclusie

In deze zelfstudie hebt u geleerd hoe u een veilige en snelle FTP-server op uw Ubuntu 18.04-systeem installeert en configureert.

ftp ubuntu