FTP (File Transfer Protocol) is een relatief oud en meest gebruikte standaard netwerkprotocol dat wordt gebruikt voor het uploaden/downloaden van bestanden tussen twee computers via een netwerk. FTP is echter door zijn oorspronkelijke onveilig, omdat het gegevens samen met gebruikersreferenties (gebruikersnaam en wachtwoord) zonder encryptie verzendt.
waarschuwing: als u van plan bent FTP te gebruiken, overweeg dan om FTP-verbinding met SSL/TLS te configureren (zal in het volgende artikel worden behandeld). Anders is het altijd beter om secure FTP zoals SFTP te gebruiken.,
voorgestelde lees: hoe te installeren en beveiligen FTP-Server in CentOS 7
in deze tutorial zullen we laten zien hoe te installeren, configureren en beveiligen van een FTP-server (vsftpd in volledige “Very Secure FTP Daemon”) in Ubuntu om een krachtige beveiliging tegen FTP kwetsbaarheden.
Stap 1: Vsftp-Server installeren in Ubuntu
1. Eerst moeten we de bronnenlijst van het systeempakket bijwerken en dan VSFTPD binair pakket als volgt installeren:
$ sudo apt-get update$ sudo apt-get install vsftpd
2., Zodra de installatie is voltooid, zal de service in eerste instantie worden uitgeschakeld, daarom moeten we het handmatig starten voor de gemiddelde tijd en ook in staat stellen om automatisch te starten vanaf de volgende systeem boot:
3., Vervolgens, als u UFW firewall hebt ingeschakeld ( het is standaard niet ingeschakeld) op de server, moet u poorten 21 en 20 openen waar de FTP-daemons naar luisteren, om toegang tot FTP-services vanaf externe machines toe te staan, voeg dan de nieuwe firewallregels als volgt toe:
$ sudo ufw allow 20/tcp$ sudo ufw allow 21/tcp$ sudo ufw status
Stap 2: het configureren en beveiligen van de Vsftp-Server in Ubuntu
4. Laten we nu een paar configuraties uitvoeren om onze FTP server in te stellen en te beveiligen, eerst zullen we een backup maken van het originele configuratiebestand /etc/vsftpd/vsftpd.,conf als volgt:
$ sudo cp /etc/vsftpd.conf /etc/vsftpd.conf.orig
volgende, laten we het vsftpd configuratiebestand openen.
$ sudo vi /etc/vsftpd.confOR$ sudo nano /etc/vsftpd.conf
voeg de volgende opties met deze waarden toe/wijzig:
anonymous_enable=NO # disable anonymous loginlocal_enable=YES# permit local loginswrite_enable=YES# enable FTP commands which change the filesystemlocal_umask=022 # value of umask for file creation for local usersdirmessage_enable=YES # enable showing of messages when users first enter a new directoryxferlog_enable=YES# a log file will be maintained detailing uploads and downloadsconnect_from_port_20=YES # use port 20 (ftp-data) on the server machine for PORT style connectionsxferlog_std_format=YES # keep standard log file formatlisten=NO # prevent vsftpd from running in standalone modelisten_ipv6=YES # vsftpd will listen on an IPv6 socket instead of an IPv4 onepam_service_name=vsftpd # name of the PAM service vsftpd will useuserlist_enable=YES # enable vsftpd to load a list of usernamestcp_wrappers=YES # turn on tcp wrappers
5. Configureer nu VSFTPD om FTP-toegang toe te staan/weigeren aan gebruikers gebaseerd op het bestand /etc/vsftpd.gebruikerslijst.
merk op dat standaard gebruikers vermeld in userlist_file=/etc/vsftpd.gebruikerslijst wordt login toegang geweigerd met userlist_deny=YES
optie als userlist_enable=YES
.,
maar de optie userlist_deny=NO
verdraait de Betekenis van de standaardinstelling, dus alleen gebruikers van wie de gebruikersnaam expliciet vermeld staat in userlist_file=/etc/vsftpd.userlist zal worden toegestaan om in te loggen op de FTP-server.
belangrijk: wanneer gebruikers inloggen op de FTP-server, worden ze in een gechrooteerde jail geplaatst, dit is de lokale rootdirectory die alleen zal fungeren als hun thuismap voor de FTP-sessie.
vervolgens zullen we kijken naar twee mogelijke scenario ‘ s van het instellen van de chroted jail (lokale root) directory, zoals hieronder uitgelegd.
6., Laten we op dit punt deze twee volgende opties toevoegen/wijzigen/verwijderen om FTP-gebruikers te beperken tot hun persoonlijke mappen.
chroot_local_user=YESallow_writeable_chroot=YES
de optie chroot_local_user=YES
betekent belangrijk dat lokale gebruikers in een chroot-jail worden geplaatst, hun persoonlijke map standaard na het inloggen.
en we moeten ook begrijpen dat VSFTPD niet toestaat dat de chroot jail directory beschrijfbaar is, standaard om veiligheidsredenen, maar we kunnen de optie allow_writeable_chroot=YES gebruiken om deze instelling uit te schakelen.
sla het bestand op en sluit het., Daarna moeten we VSFTPD services opnieuw opstarten om de bovenstaande wijzigingen door te voeren:
------------- On SystemD ------------- # systemctl restart vsftpd------------- On SysVInit ------------- # service vsftpd restart
Stap 3: het testen van de Vsftp-Server in Ubuntu
7. Nu zullen we FTP server testen door een FTP gebruiker aan te maken met useradd commando als volgt:
$ sudo useradd -m -c "Aaron Kili, Contributor" -s /bin/bash aaronkilik$ sudo passwd aaronkilik
dan moeten we de gebruiker aaronkilik expliciet in het bestand /etc/vsftpd vermelden.gebruikerslijst met het echo-commando en het tee-commando zoals hieronder:
$ echo "aaronkilik" | sudo tee -a /etc/vsftpd.userlist$ cat /etc/vsftpd.userlist
8. Nu is het tijd om te testen onze bovenstaande configuraties functioneren zoals vereist., We zullen beginnen met het testen van anonieme aanmeldingen; we kunnen duidelijk zien aan de uitvoer hieronder dat anonieme aanmeldingen NIET zijn toegestaan op de FTP-server:
9. Laten we vervolgens testen of een gebruiker niet vermeld staat in het bestand /etc/vsftpd.userlist zal toestemming krijgen om in te loggen, wat niet waar is van de uitvoer die volgt:
10. Nu zullen we een laatste test uitvoeren om te bepalen of een gebruiker in het bestand /etc/vsftpd staat.userlist, wordt daadwerkelijk geplaatst in zijn / haar home directory na het inloggen., En dit is waar uit de onderstaande uitvoer:
Waarschuwing: Het instellen van de optie allow_writeable_chroot=YES
kan zo zijn gevaarlijk, het heeft mogelijke veiligheidsimplicaties, vooral als de gebruikers uploadrechten hebben, of meer zo, shell toegang. Gebruik het alleen als je precies weet wat je doet.
We moeten opmerken dat deze beveiligingsimplicaties niet specifiek zijn voor VSFTPD, ze kunnen ook van invloed zijn op alle andere FTP daemons die aanbieden om lokale gebruikers in chroot jails te plaatsen.,
om deze reden zullen we in de paragraaf hieronder een veiliger methode uitleggen om een andere niet-beschrijfbare lokale rootmap voor een gebruiker in te stellen.
Stap 4: configureer FTP – gebruikersmappen in Ubuntu
11. Open nu nog een keer het vsftpd configuratie bestand.,
$ sudo vi /etc/vsftpd.confOR$ sudo nano /etc/vsftpd.conf
en commentaar van de onbeveiligde optie met behulp van de #
teken zoals hieronder getoond:
#allow_writeable_chroot=YES
maak Vervolgens het alternatieve lokale root-directory van de gebruiker (aaronkilik, die van jou is misschien niet het zelfde) en stel de vereiste machtigingen door het uitschakelen van write permissies voor alle andere gebruikers naar deze map:
$ sudo mkdir /home/aaronkilik/ftp$ sudo chown nobody:nogroup /home/aaronkilik/ftp$ sudo chmod a-w /home/aaronkilik/ftp
12., Maak dan een directory aan onder de lokale root met de juiste rechten waar de gebruiker zijn bestanden zal opslaan:
daarna voeg/wijzig de onderstaande opties in het vsftpd configuratiebestand met hun bijbehorende waarden:
sla het bestand op en sluit het. En herstart de vsftpd diensten met de recente instellingen:
------------- On SystemD ------------- # systemctl restart vsftpd------------- On SysVInit ------------- # service vsftpd restart
13. Laten we nu een laatste controle uitvoeren en ervoor zorgen dat de lokale root directory van de gebruiker de FTP directory is die we in zijn Home directory hebben gemaakt.,