FTP (File Transfer Protocol) är ett relativt gammalt och mest använda standardnätverksprotokoll som används för att ladda upp/ladda ner filer mellan två datorer via ett nätverk. FTP med sin ursprungliga osäkra, eftersom den överför data tillsammans med användaruppgifter (användarnamn och lösenord) utan kryptering.
varning: om du planerar att använda FTP, överväga att konfigurera FTP-anslutning med SSL / TLS (kommer att täcka i nästa artikel). Annars är det alltid bättre att använda säker FTP som SFTP.,
föreslog läs: Hur man installerar och säkra FTP-Server i CentOS 7
i den här handledningen visar vi hur man installerar, konfigurerar och säkrar en FTP-server (VSFTPD i sin helhet ”Very Secure FTP Daemon”) i Ubuntu för att ha en kraftfull säkerhet mot FTP-sårbarheter.
Steg 1: Installera VsFTP-Server i Ubuntu
1. Först måste vi uppdatera listan systempaket källor och sedan installera VSFTPD binärpaket enligt följande:
$ sudo apt-get update$ sudo apt-get install vsftpd
2., När installationen är klar kommer tjänsten att inaktiveras från början, därför måste vi starta den manuellt under tiden och även aktivera den för att starta automatiskt från nästa systemstart:
3., Nästa, om du har UFW-brandväggen är aktiverad ( det är inte aktiverat som standard) på servern, måste du öppna portar 21 och 20 där de FTP-servrar som lyssnar, för att möjliggöra åtkomst till FTP-tjänster från avlägsna maskiner, lägg sedan till den nya brandväggsregler som följande:
$ sudo ufw allow 20/tcp$ sudo ufw allow 21/tcp$ sudo ufw status
Steg 2: Konfigurera och Säkra VsFTP Server i Ubuntu
4. Låt oss nu utföra några konfigurationer för att installera och säkra vår FTP-server, först kommer vi att skapa en säkerhetskopia av den ursprungliga konfigurationsfilen /etc/vsftpd/vsftpd.,conf like so:
$ sudo cp /etc/vsftpd.conf /etc/vsftpd.conf.orig
låt oss sedan öppna vsftpd-konfigurationsfilen.
$ sudo vi /etc/vsftpd.confOR$ sudo nano /etc/vsftpd.conf
Lägg till/ändra följande alternativ med dessa värden:
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. Konfigurera nu VSFTPD för att tillåta / neka FTP-åtkomst till användare baserat på användarlistfilen /etc/vsftpd.användarlista.
Observera att som standard, användare som anges i userlist_file=/etc / vsftpd.userlist nekas inloggningsåtkomst med userlist_deny=YES
alternativ om userlist_enable=YES
.,
men alternativetuserlist_deny=NO
vrider innebörden av standardinställningen, så endast användare vars användarnamn uttryckligen anges i userlist_file=/etc / vsftpd.userlist kommer att tillåtas att logga in på FTP-servern.
viktigt: när användare loggar in på FTP-servern placeras de i ett chrooted fängelse, det här är den lokala rotkatalogen som endast fungerar som hemkatalog för FTP-sessionen.
därefter kommer vi att titta på två möjliga scenarier för hur du ställer in chrooted jail (local root) – katalogen, som förklaras nedan.
6., Vid denna punkt, låt oss lägga till/ändra / Avkommentera dessa två följande alternativ för att begränsa FTP-användare till sina hemkataloger.
chroot_local_user=YESallow_writeable_chroot=YES
alternativetchroot_local_user=YES
viktigt betyder att lokala användare kommer att placeras i en chroot fängelse, deras hemkatalog som standard efter inloggning.
Och vi måste också förstå att VSFTPD inte tillåter chroot fängelse katalog för att vara skrivbar, som standard av säkerhetsskäl kan vi dock använda alternativet allow_writeable_chroot=JA för att inaktivera den här inställningen.
spara filen och stäng den., Då måste vi starta om VSFTPD-tjänster för att ändringarna ovan ska träda i kraft:
------------- On SystemD ------------- # systemctl restart vsftpd------------- On SysVInit ------------- # service vsftpd restart
steg 3: Testa VsFTP-servern i Ubuntu
7. Nu kommer vi att testa FTP-servern genom att skapa en FTP-användare med useradd-kommandot enligt följande:
$ sudo useradd -m -c "Aaron Kili, Contributor" -s /bin/bash aaronkilik$ sudo passwd aaronkilik
då måste vi uttryckligen lista användaren aaronkilik i filen/etc / vsftpd.userlist med kommandot echo och tee enligt nedan:
$ echo "aaronkilik" | sudo tee -a /etc/vsftpd.userlist$ cat /etc/vsftpd.userlist
8. Nu är det dags att testa våra ovanstående konfigurationer fungerar som krävs., Vi börjar med att testa anonyma inloggningar; vi kan tydligt se från utgången nedan att anonyma inloggningar inte är tillåtna på FTP-servern:
9. Låt oss sedan testa om en användare inte är listad i filen /etc/vsftpd.userlist kommer att beviljas behörighet att logga in, vilket inte är sant från utgången som följer:
10. Nu ska vi genomföra ett slutligt test för att avgöra om en användare som anges i filen /etc/vsftpd.userlist, faktiskt placeras i hans / hennes hemkatalog efter inloggning., Och det här är sant från utgången nedan:
Varning: ställa in alternativet allow_writeable_chroot=YES
kan vara så farligt, det har möjliga säkerhetskonsekvenser, särskilt om användarna inte har några säkerhetsproblem.har uppladdningsbehörighet, eller mer så, shell access. Använd det bara om du exakt vet vad du gör.
Vi bör notera att dessa säkerhetskonsekvenser inte är specifika för VSFTPD, de kan också påverka alla andra FTP-daemoner som erbjuder att sätta lokala användare i chroot-fängelser.,
på grund av detta kommer vi i avsnittet nedan att förklara en säkrare metod för att ställa in en annan icke-skrivbar lokal rotkatalog för en användare.
steg 4: konfigurera FTP – Användarhemkataloger i Ubuntu
11. Öppna nu konfigurationsfilen för VSFTPD en gång till.,
$ sudo vi /etc/vsftpd.confOR$ sudo nano /etc/vsftpd.conf
och kommentera det osäkra alternativet med hjälp av tecknet#
som visas nedan:
#allow_writeable_chroot=YES
skapa sedan den alternativa lokala rotkatalogen för användaren (aaronkilik, din är möjligen inte densamma) och ställ in de nödvändiga behörigheterna genom att inaktivera skrivbehörigheter till alla andra användare till den här katalogen:
12., Skapa sedan en katalog under den lokala roten med lämpliga behörigheter där användaren kommer att lagra sina filer:
efteråt, Lägg till / ändra alternativen nedan i VSFTPD-konfigurationsfilen med motsvarande värden:
spara filen och stäng den. Och starta om VSFTPD-tjänsterna med de senaste inställningarna:
------------- On SystemD ------------- # systemctl restart vsftpd------------- On SysVInit ------------- # service vsftpd restart
13. Låt oss nu göra en sista kontroll och se till att användarens lokala rotkatalog är FTP-katalogen som vi skapade i hans hemkatalog.,