FTP (File Transfer Protocol) er et relativt gammelt og mest brukte standard nettverksprotokoll som brukes for opplasting/nedlasting av filer mellom to datamaskiner over et nettverk. Imidlertid, FTP ved sin opprinnelige usikre, fordi den overfører data sammen med legitimasjon (brukernavn og passord) uten kryptering.
Advarsel: Hvis du planlegger å bruke FTP, vurdere å konfigurere FTP-tilkobling med SSL/TLS (vil dekke det i neste artikkel). Ellers, er det alltid bedre å bruke secure FTP som SFTP.,
Foreslått Les: Hvordan du Installerer og Sikker FTP Server i CentOS 7
I denne opplæringen vil vi vise hvordan du kan installere, konfigurere og sikre en FTP-server (VSFTPD i full «Veldig Sikker FTP Daemon») i Ubuntu å ha en kraftig sikkerhet mot FTP-sårbarheter.
Trinn 1: Installere VsFTP Server i Ubuntu
1. Først trenger vi å oppdatere systemet på pakken kilder listen og deretter installere VSFTPD binære pakken som følger:
$ sudo apt-get update$ sudo apt-get install vsftpd
2., Når installasjonen er ferdig, vil tjenesten bli deaktivert i utgangspunktet, derfor trenger vi å starte det manuelt for gjennomsnittlig tid, og også gjør det mulig å starte automatisk fra neste system oppstart:
3., Neste, hvis du har UFW-brannmur aktivert ( det er ikke aktivert som standard) på serveren, må du åpne porter 21 og 20 der FTP daemoner er å lytte, for å gi tilgang til FTP-tjenester fra eksterne maskiner, og deretter legge til den nye brannmuren regler som følger:
$ sudo ufw allow 20/tcp$ sudo ufw allow 21/tcp$ sudo ufw status
Trinn 2: Konfigurere og Sikre VsFTP Server i Ubuntu
4. La oss nå utføre noen konfigurasjoner med å sette opp og sikre vår FTP-server, må du først vil vi opprette en sikkerhetskopi av den opprinnelige config filen /etc/vsftpd/vsftpd.,conf som så:
$ sudo cp /etc/vsftpd.conf /etc/vsftpd.conf.orig
Neste, la oss åpne vsftpd config fil.
$ sudo vi /etc/vsftpd.confOR$ sudo nano /etc/vsftpd.conf
Legg til/endre følgende valg med disse verdiene:
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. Nå, konfigurere VSFTPD å tillate/nekte FTP-tilgang til brukere basert på brukerens liste filen /etc/vsftpd.liste over.
Merk som standard, brukere oppført i userlist_file=/etc/vsftpd.liste over er nektet pålogging med userlist_deny=YES
alternativet hvis userlist_enable=YES
.,
Men, alternativet userlist_deny=NO
vendinger betydningen av standardinnstillingen, slik at kun brukere med brukernavn er uttrykkelig nevnt i userlist_file=/etc/vsftpd.liste over vil være tillatt å logge inn på FTP-server.
Viktig: Når brukere pålogging til FTP-server, plasseres de i et chrooted fengsel, dette er den lokale root-katalogen, som vil fungere som deres hjem katalog for FTP-økten.
Neste, vil vi se på to mulige scenarier for hvordan du skal sette de chrooted fengsel (lokale root) katalog, som forklart nedenfor.
6., På dette punktet, la oss legge til/endre/uncomment disse to følgende alternativer for å begrense FTP-brukere til sine hjemmeområder.
chroot_local_user=YESallow_writeable_chroot=YES
alternativet chroot_local_user=YES
viktigere betyr at lokale brukere vil bli plassert i en chroot fengsel, deres hjem-mappe som standard etter innlogging.
– Og vi må også forstå at VSFTPD tillater ikke chroot fengsel katalog for å være skrivbar standard for sikkerhetsmessige årsaker, men vi kan bruke alternativet allow_writeable_chroot=JA for å deaktivere denne innstillingen.
Lagre og lukk filen., Så vi må starte VSFTPD tjenester for endringer over for å ta effekt:
------------- On SystemD ------------- # systemctl restart vsftpd------------- On SysVInit ------------- # service vsftpd restart
Trinn 3: Testing VsFTP Server i Ubuntu
7. Nå vil vi teste FTP-server ved å opprette en FTP-bruker med useradd-kommandoen slik:
$ sudo useradd -m -c "Aaron Kili, Contributor" -s /bin/bash aaronkilik$ sudo passwd aaronkilik
Da må vi eksplisitt liste brukeren aaronkilik i filen /etc/vsftpd.liste over med echo-kommandoen og tee-kommandoen som nedenfor:
$ echo "aaronkilik" | sudo tee -a /etc/vsftpd.userlist$ cat /etc/vsftpd.userlist
8. Nå er det på tide å teste våre over konfigurasjoner fungerer som kreves., Vi vil begynne med testing anonym innlogging, og vi kan tydelig se fra produksjonen under at anonyme pålogginger er ikke tillatt på FTP-server:
9. Neste, la oss teste om en bruker som ikke er oppført i filen /etc/vsftpd.liste over vil bli gitt tillatelse til å logge inn, som ikke er sanne fra det resultat som følger:
10. Nå skal vi gjennomføre en siste test for å avgjøre om en bruker som er oppført i filen /etc/vsftpd.liste over, er faktisk plassert i hans/hennes hjem katalogen etter innlogging., Og dette er sant av produksjonen under:
Advarsel: hvis du setter dette alternativet allow_writeable_chroot=YES
kan være så farlig, det har mulige sikkerhetsmessige implikasjoner, spesielt hvis brukerne laster opp tillatelse, eller mer så, et skall. Bare bruke den hvis du nøyaktig vet hva du gjør.
– Vi skal merke oss at disse sikkerhetsbrudd er ikke spesifikke for VSFTPD, de kan også påvirke alle andre FTP daemoner som tilbyr å sette lokale brukere i chroot arresten.,
på Grunn av denne grunn, i avsnittet nedenfor vil vi gjøre rede for en mer sikker metode for å sette en annen ikke-skrivbare lokale rotkatalogen for en bruker.
Trinn 4: Konfigurere FTP-Bruker Hjemme-Kataloger i Ubuntu
11. Nå, åpne VSFTPD konfigurasjonsfilen gang til gang.,
$ sudo vi /etc/vsftpd.confOR$ sudo nano /etc/vsftpd.conf
og kommentere ut usikkert alternativ bruk av #
– tegn som vist nedenfor:
#allow_writeable_chroot=YES
Neste, lage alternative lokale rotkatalogen for brukeren (aaronkilik, din er muligens ikke det samme) og du vil angi de nødvendige tillatelser ved å deaktivere skriverettigheter til alle andre brukere til denne katalogen:
$ sudo mkdir /home/aaronkilik/ftp$ sudo chown nobody:nogroup /home/aaronkilik/ftp$ sudo chmod a-w /home/aaronkilik/ftp
12., Deretter oppretter du en mappe under den lokale rot med de riktige tillatelsene, der brukeren vil lagre sine filer:
Etterpå, legge til/endre alternativene nedenfor i VSFTPD config-filen med de tilsvarende verdier:
Lagre og lukk filen. Og start VSFTPD tjenester med de siste innstillingene:
------------- On SystemD ------------- # systemctl restart vsftpd------------- On SysVInit ------------- # service vsftpd restart
13. Nå, la oss utføre en siste sjekk og sørg for at brukerens lokale rotkatalogen er FTP-katalogen vi skapte i sin hjemmekatalog.,