How to configure ftp Server in ubuntu 18.04 ( User authentication )
Inhoudsopgave:
- voorwaarden
- Vsftpd installeren op Ubuntu 18.04
- Vsftpd configureren
- 1. FTP-toegang
- 2. Uploads inschakelen
- 3. Chroot-gevangenis
- 4. Passieve FTP-verbindingen
- 5. Aanmelding gebruiker beperken
- 6. Beveiliging van transmissies met SSL / TLS
- Start de vsftpd-service opnieuw
- De firewall openen
- FTP-gebruiker maken
- Shell-toegang uitschakelen
- Conclusie
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:
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:
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.
3. Chroot-gevangenis
Om te voorkomen dat FTP-gebruikers toegang krijgen tot bestanden buiten hun homedirectory, moet de
chroot
instelling worden
chroot
.
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
/etc/vsftpd.confftpmap in de startpagina van de gebruiker die als chroot fungeert en een beschrijfbareuploadsvoor het uploaden van bestanden.user_sub_token=$USER local_root=/home/$USER/ftpMethode 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.confallow_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:
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
:
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:
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=YESin uw configuratiebestandallow_writeable_chroot=YESslaat u de derde stap over.
-
Maak een nieuwe gebruiker met de naam
newftpuser:sudo adduser newftpuserVoeg de gebruiker toe aan de lijst met toegestane FTP-gebruikers:
echo "newftpuser" | sudo tee -a /etc/vsftpd.user_listMaak de FTP-mapstructuur en stel de juiste machtigingen in:
sudo mkdir -p /home/newftpuser/ftp/uploadsudo chmod 550 /home/newftpuser/ftpsudo chmod 750 /home/newftpuser/ftp/uploadsudo chown -R newftpuser: /home/newftpuser/ftpZoals 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 ubuntuHoe outlook.com in te stellen met behulp van imap op mac os x mail
Leer hoe u uw Outlook.com-account op Mac Mail kunt gebruiken met het moderne IMAP-e-mailprotocol.
Hoe in te stellen en aan de slag te gaan met mi-band op Android
Als je onlangs de Mi Band van Xiaomi hebt gekocht en wilt weten hoe je deze instelt en aan de slag gaat, hoef je alleen dit artikel te lezen.
Hoe een firewall met ufw op ubuntu 18.04 in te stellen
Ubuntu wordt standaard geleverd met een firewallconfiguratieprogramma genaamd UFW (ongecompliceerde firewall). UFW is een gebruiksvriendelijk front-end voor het beheer van iptables firewall-regels en het belangrijkste doel is om het beheer van iptables eenvoudiger te maken of zoals de naam al zegt ongecompliceerd.







