FTP (File Transfer Protocol) er en relativt gammel og mest anvendte standard netværksprotokol, der bruges til at uploade/do .nloade filer mellem to computere via et netværk. Men FTP ved sin oprindelige usikker, fordi det overfører data sammen med brugeroplysninger (brugernavn og adgangskode) uden kryptering.
advarsel: hvis du planlægger at bruge FTP, overveje at konfigurere FTP-forbindelse med SSL / TLS (vil dække i næste artikel). Ellers er det altid bedre at bruge sikker FTP som SFTP.,
Foreslog, Læs: Sådan Installere og Sikker FTP-Server i CentOS 7
I denne tutorial vil vi vise hvordan du kan installere, konfigurere og sikre en FTP-server (VSFTPD i fuld “Very Secure FTP Daemon”) i Ubuntu for at have en stærk sikkerhed mod FTP-sårbarheder.
Trin 1: installation af VsFTP-Server i Ubuntu
1. Først skal vi opdatere systempakken kilder liste og derefter installere vsftpd binary pakke som følger:
$ sudo apt-get update$ sudo apt-get install vsftpd
2., Når installationen er færdig, vil tjenesten blive deaktiveret i første omgang, derfor er vi nødt til at starte det manuelt for den gennemsnitlige tid, og også gør det muligt at starte automatisk fra den næste opstart af systemet:
3., Næste, hvis du har UFW firewall er aktiveret ( det er ikke aktiveret som standard) på den server, du er nødt til at åbne porte, 21 og 20, hvor FTP dæmoner lytte, for at give adgang til FTP-services fra eksterne maskiner, derefter tilføje den nye firewall-regler, som følger:
$ sudo ufw allow 20/tcp$ sudo ufw allow 21/tcp$ sudo ufw status
Trin 2: Konfiguration og Sikre VsFTP Server i Ubuntu
4. Lad os nu udføre et par konfigurationer for at opsætte og sikre vores FTP-server, først opretter vi en sikkerhedskopi af den originale konfigurationsfil /etc/vsftpd/vsftpd.,conf sådan:
$ sudo cp /etc/vsftpd.conf /etc/vsftpd.conf.orig
lad os derefter åbne vsftpd-konfigurationsfilen.
$ sudo vi /etc/vsftpd.confOR$ sudo nano /etc/vsftpd.conf
Tilføj/ændre følgende indstillinger med disse værdier:
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. Konfigurer nu VSFTPD for at tillade/nægte FTP-adgang til brugere baseret på brugerlistefilen /etc/vsftpd.Brugerliste.
Bemærk, at som standard brugere, der er anført i userlist_file=/etc / vsftpd.Brugerliste nægtes loginadgang med userlist_deny=YES
mulighed, hvis userlist_enable=YES
.,
men indstillingen userlist_deny=NO
vrider betydningen af standardindstillingen, så kun brugere, hvis brugernavn eksplicit er angivet i userlist_file=/etc/vsftpd.userlist vil få lov til at logge ind på FTP-serveren.
vigtigt: når brugere logger ind på FTP-serveren, placeres de i et chrooted Fængsel, dette er den lokale rodmappe, der kun fungerer som deres hjemmemappe for FTP-sessionen.
Dernæst vil vi se på to mulige scenarier for, hvordan du indstiller mappen chrooted jail (local root), som forklaret nedenfor.
6., Lad os på dette tidspunkt tilføje/ændre/afkommentere disse to følgende muligheder for at begrænse FTP-brugere til deres Hjemmekataloger.
chroot_local_user=YESallow_writeable_chroot=YES
indstillingen chroot_local_user=YES
vigtigere betyder, at Lokale brugere vil blive placeret i et chroot-Fængsel, deres hjemmemappe som standard efter login.
Og vi skal også forstå, at VSFTPD ikke tillader chroot-fængsel mappe er skrivbar, som standard af sikkerhedsmæssige årsager, men vi kan bruge den indstilling, allow_writeable_chroot=JA for at deaktivere denne indstilling.
Gem filen og luk den., Derefter skal vi genstarte vsftpd-tjenester for at ændringerne ovenfor kan træde i kraft:
------------- On SystemD ------------- # systemctl restart vsftpd------------- On SysVInit ------------- # service vsftpd restart
Trin 3: Test VsFTP-Server i Ubuntu
7. Nu tester vi FTP-server ved at oprette en FTP-bruger med useradd-kommando som følger:
$ sudo useradd -m -c "Aaron Kili, Contributor" -s /bin/bash aaronkilik$ sudo passwd aaronkilik
derefter skal vi eksplicit liste brugeren aaronkilik i filen /etc/vsftpd.Brugerliste med echo-kommandoen og tee-kommandoen som nedenfor:
$ echo "aaronkilik" | sudo tee -a /etc/vsftpd.userlist$ cat /etc/vsftpd.userlist
8. Nu er det på tide at teste vores ovenstående konfigurationer fungerer efter behov., Vi vil begynde med at teste anonyme logins; vi kan tydeligt se fra output nedenfor, at anonyme logins ikke er tilladt på FTP-serveren:
9. Lad os derefter teste, om en bruger ikke er opført i filen /etc/vsftpd.Brugerliste vil blive givet tilladelse til at logge ind, hvilket ikke er sandt fra output, der følger:
10. Nu vil vi foretage en endelig test for at afgøre, om en bruger, der er anført i filen /etc/vsftpd.userlist, er faktisk placeret i hans / hendes hjemmemappe efter login., Og dette er sandt fra output nedenfor:
Advarsel: indstiller option allow_writeable_chroot=YES
kan være så farlige, at det er muligt sikkerhedsmæssige konsekvenser, især hvis brugerne har upload tilladelse, eller mere, så shell-adgang. Brug det kun, hvis du nøjagtigt ved, hvad du laver.
Vi bør bemærke, at disse sikkerhedsmæssige implikationer ikke er specifikke for VSFTPD, de kan også påvirke alle andre FTP-dæmoner, der tilbyder at placere lokale brugere i chroot-fængsler.,
På grund af denne grund vil vi i afsnittet nedenfor forklare en mere sikker metode til at indstille en anden ikke-skrivbar lokal rodmappe til en bruger.
Trin 4: Konfigurer FTP bruger hjem mapper i Ubuntu
11. Åbn nu vsftpd-konfigurationsfilen endnu en gang.,
$ sudo vi /etc/vsftpd.confOR$ sudo nano /etc/vsftpd.conf
og kommentere det usikkert indstilling ved hjælp af #
tegnet som vist nedenfor:
#allow_writeable_chroot=YES
Næste, skabe alternative lokale root mappe for brugeren (aaronkilik, din er muligvis ikke den samme) og angive de nødvendige tilladelser ved at deaktivere skrive rettigheder til alle andre brugere til denne mappe:
$ sudo mkdir /home/aaronkilik/ftp$ sudo chown nobody:nogroup /home/aaronkilik/ftp$ sudo chmod a-w /home/aaronkilik/ftp
12., Opret derefter en mappe under den lokale rod med de relevante tilladelser, hvor brugeren vil gemme sine filer:
derefter skal du tilføje/ændre indstillingerne nedenfor i vsftpd-konfigurationsfilen med deres tilsvarende værdier:
Gem filen og luk den. Og genstart vsftpd-tjenesterne med de nylige indstillinger:
------------- On SystemD ------------- # systemctl restart vsftpd------------- On SysVInit ------------- # service vsftpd restart
13. Lad os nu udføre en sidste kontrol og sørge for, at brugerens lokale rodmappe er den FTP-mappe, vi oprettede i hans hjemmekatalog.,