Før du begynner…
Det er overraskende hvor mange web-utviklere er fortsatt uvitende om SFTP og fordeler over FTP/FTPS. SFTP kommer med Linux Server forhåndsinstallert, og fungerer akkurat som vanlig FTP, men er mer sikre og mindre stresset til å sette opp. Hvis FTP-klient støtter SFTP, bør du bruke den!
- Hvordan du konfigurerer SFTP for en web-server dokument rot
Installer vsftpd
La oss begynne med å oppdatere pakkelisten og installere vsftpd på Ubuntu 18.04 / 18.10 / 19.04 / 19.10.,
Nedenfor har vi to kommandoer adskilt med &&
. Den første kommandoen vil oppdatere pakkelisten for å sikre at du får den nyeste versjonen og avhengigheter for vsftpd. Den andre kommandoen vil deretter laste ned og installere vsftpd. Trykk på y
og ENTER
når du blir bedt om å fortsette.
sudo apt update && sudo apt install vsftpd
Når programmet er installert, kan du sjekke status for vsftpd
sudo service vsftpd status
Over kan vi se vår FTP-serveren er nå oppe og kjører.,
Konfigurere Firewall
Hvis du ikke allerede har gjort det, så det anbefales at du aktiverer ufw
brannmur for Ubuntu 18.04 / 18.10 / 19.04 / 19.10. Før du aktiverer ufw
brannmur, må du legge til en regel for SSH, ellers kan du få låst ut av din server hvis du er tilkoblet eksternt. Hvis du ikke ønsker å sette opp en brannmur, kan du gå til Trinn 3.
sudo ufw allow OpenSSH
La oss åpne port 20 og 21 for FTP, og havner 40000-50000 for passiv FTP. Vi vil også åpne port 990 for TLS, som vi vil sette opp senere.,
sudo ufw allow 20/tcp
sudo ufw allow 21/tcp
sudo ufw allow 40000:50000/tcp
sudo ufw allow 990/tcp
Nå, kan du aktivere brannmuren hvis det ikke allerede er det. Trykk på y
og ENTER
hvis advart om å forstyrre SSH-tilkobling.
sudo ufw enable
for Å sjekke status på brannmuren, kan du kjøre:
sudo ufw status
Hvis brannmuren er i gang, skal du se Status: active
og brannmurregler vi nettopp har lagt til.
Opprette FTP Bruker
Vi vil nå opprette en ny bruker, som vi vil bruke til å logge inn på FTP., I dette eksemplet vil vi lage en ny bruker som heter ftpuser
.
sudo adduser ftpuser
Generere sterke passord og holde det trygt.
Du kan også bli bedt om å skrive inn noen kontakt informasjon. Du kan bare trykk på ENTER
til hver av disse.
Hvis du bare vil ftpuser
for å logge inn via FTP, bør du deaktivere sine SSH tilgang med svartelister brukernavn i SSH-config-filen. Ellers går du til Trinn 4.
Åpne SSH config i nano.,
sudo nano /etc/ssh/sshd_config
Legg til følgende til bunnen av filen skifte ftpuser
med brukeren du ønsker å nekte SSH og SFTP-tilgang. Du kan legge til flere brukere her, atskilt med et enkelt mellomrom. (Du kan lime inn i nano, og trykk høyre museknapp).
DenyUsers ftpuser
for Å lagre og avslutte, trykk på CTRL
+ X
, trykk på Y
og deretter på ENTER
.
Starte SSH-tjeneste.,
sudo service sshd restart
– Katalogen Tillatelser
Du trenger nå å bestemme hvor denne nye FTP-bruker har lov til å vise og laste opp filer.
vsftpd bruker chroot arrester for å begrense brukere til sine hjemmeområder og krever at hjemmekatalogen er ikke skrivbar. Av den grunn har vi til å sette opp noen kataloger og tillatelser.
Hvis du planlegger å bruke denne FTP-brukerkonto for å laste opp filer til en webserver, kan du fortsette til Trinn 4.1. Hvis du bare ønsker å laste opp til en hjem-mappen, går du til Trinn 4.2.
4.1., Opplasting til en Web-Server
I mange tilfeller, du vil være i stand til å laste opp filer til dokumentet rot på web-serveren.
Hvis du har fulgt en tidligere guide her for å sette opp flere domener, dokumentet root kan være plassert på et sted som /var/www/test1.com/public_html
– i dette tilfellet, må du angi hjem-mappe for ftpuser
til mappen over dokument som root: /var/www/test1.com
(erstatter test1.com for ditt eget domene).,
Hvis du ikke bruker flere domener, vil vi anta at du bruker standard dokument rot /var/www/html
for både Apache og Nginx i Ubuntu 18.04 / 18.10 / 19.04 / 19.10. I dette tilfellet har vi å gjøre /var/www/
hjemmekatalogen for våre bruker ftpuser
.
La oss sette mappe over dokumentet roten som hjemmekatalogen for ftpuser
.
sudo usermod -d /var/www ftpuser
Dette vil tillate vår FTP-bruker til å skrive og endre filene i dokumentet root directory.,
sudo chown ftpuser:ftpuser /var/www/html
Nå kan du gå til Trinn 5 for å konfigurere vsftpd.
4.2 Laste opp til en Hjem-Mappe
Hvis du i stedet vil denne brukeren laste opp filer til hjemmekatalogen, oppretter du en ny mappe som heter ftp
i brukerens hjemmekatalog og annet innen det som kalles files
. I dette eksemplet nedenfor vår brukeren er kalt ftpuser
.
sudo mkdir /home/ftpuser/ftp
Angi eierskap av ftp
– katalog for å nei nobody:nogroup
.,
sudo chown nobody:nogroup /home/ftpuser/ftp
Angi tillatelser for ftp
directory ved hjelp av chmod
slik at det er ikke skrivbar av alle, ellers vsftpd vil ikke tillate deg å logge inn. a-w
midler a
= alle/alle -
= fjern w
= skriv tillatelse, så, ta skriverettigheter for alle.
sudo chmod a-w /home/ftpuser/ftp
Neste vi vil opprette en ny mappe innenfor /ftp
der brukeren kan vise og laste opp filer.,
sudo mkdir /home/ftpuser/ftp/files
Tildel eierskap til denne katalogen til vår nye FTP-bruker-ellers vil de ikke være i stand til å skrive til den.
sudo chown ftpuser:ftpuser /home/ftpuser/ftp/files
Konfigurer vsftpd
Det er noen endringer vi har å gjøre til vsftpd konfigurasjon filen før du kan begynne å bruke FTP på Ubuntu 18.04 / 18.10 / 19.04 / 19.10.
Før du redigere config fil, opprette en sikkerhetskopi.
sudo cp /etc/vsftpd.conf /etc/vsftpd.conf.bak
Nå, åpne konfigurasjonsfilen i nano
redaktør.,
sudo nano /etc/vsftpd.conf
Dette er en ganske stor fil, men det er for det meste fylt med kommentarer for å hjelpe deg underveis.
Du trenger å gå ned filen og kontrollere at innstillingene samsvarer med de nedenfor. Merk: du kan søke i nano
med CTRL
+ W
Se etter #write_enable=YES
og uncomment det ved å fjerne # – tegnet. Dette vil tillate FTP-brukere å lagre filer til serveren.
write_enable=YES
Se etter #chroot_local_user=YES
og uncomment det ved å fjerne # – tegnet. Dette vil hindre FTP-brukere kan se utenfor sin egen katalog.
chroot_local_user=YES
Se etter #local_umask=022
og uncomment det ved å fjerne # – tegnet. Dette vil gi opplastede filer og mapper riktige tillatelser.
local_umask=022
Vi trenger nå å legge til noen direktiver som ikke finnes i filen.,
Siden Linux ikke vise filer som begynner med punktum, filer som .htaccess
vil ikke være synlig i FTP. Dette kan være et problem hvis du har tenkt å bruke Apache og ønsker å jobbe med .htaccess
.
for Å tvinge vsftpd for å vise filnavn som begynner med punktum, lim inn følgende til bunnen av filen. (Du kan lime inn i nano, og trykk høyre museknapp)
force_dot_files=YES
til Slutt, la oss legge til noen portområder for passiv FTP til å sørge for at nok tilkoblinger er tilgjengelige. Lim inn følgende til bunnen av filen., (Du kan lime inn i nano, og trykk høyre museknapp)
pasv_min_port=40000pasv_max_port=50000
Hvis du har fulgt Trinn 4.2 tidligere og bare vil denne brukeren laste opp filer til hjem-mappen, må vi fortelle vsftpd at local_root
er /ftp
mappe vi har opprettet tidligere.
ikke legg disse to linjene hvis du ønsker brukeren å laste opp til web-dokument rot!
user_sub_token=$USERlocal_root=/home/$USER/ftp
Vi er ferdig med vsftpd.conf for øyeblikket, men vil komme tilbake til i senere trinnene for å konfigurere sikkerhet og SSL.,
for Å lagre og avslutte, trykk på CTRL
+ X
, trykk på Y
og deretter på ENTER
.
Start på nytt vsftpd.
sudo systemctl restart vsftpd
Test FTP
Vi kan nå teste vsftpd for å se om vi kan logge inn som en bruker-vi har opprettet tidligere. Vi anbefaler FileZilla, som fungerer på Windows, Mac og Linux.
skriv Inn serverens IP, FTP-brukernavnet og passordet som du opprettet tidligere, og klikk Quickconnect.,
Over kan vi se at vi har koblet riktig og web root katalogen html
vises, selv om dette kan være annerledes på din server.
Prøv opplasting, opprette og redigere mapper og filer innen web root-katalogen for å sikre tillatelser fungerer som de skal.
vil Du merke at vi har en advarsel i FileZilla «Status: Usikker server, er det ikke støtte for FTP over TLS.»Det er sterkt anbefalt at du konfigurere TLS, slik at påloggingsinformasjon og trafikk er kryptert over FTP-tilkobling.,
Hvis du har problemer med pålogging til FTP-server, kan du prøve å sjekke vsftpd logg. For å vise de siste 200 oppføringer ved hjelp av tail
:
sudo tail /var/log/vsftpd.log -n 200
Sikker FTP med TLS (valgfritt)
Det er viktig å holde noen ting i tankene når du bruker FTP – det er som standard ikke kryptert betyr legitimasjon og filer som du vil sende, er sårbare for avskjæring. For å løse dette bør du koble til vsftpd ved hjelp av FTP (FTP over SSL/TLS).
La oss begynne med å lage et nytt sertifikat med openssl
verktøy.,
sudo openssl req -x509 -nodes -days 365 -newkey rsa:2048 -keyout /etc/ssl/private/vsftpd.pem -out /etc/ssl/private/vsftpd.pem
Du vil bli bedt om å oppgi noen detaljer som land, etc. Du trenger ikke å fylle disse. Du kan bare trykk på ENTER
for standarder.
Nå som private nøkkelen har blitt opprettet, er det noen endringer vi har å gjøre til vsftpd konfigurasjonsfilen.
Åpne konfigurasjonsfilen i nano
redaktør.
sudo nano /etc/vsftpd.conf
Finn følgende linje: (Merk: du kan søke i nano
med CTRL
+ W
)
ssl_enable=NO
Endre det slik:
ssl_enable=YES
Lim inn i den følgende under den.
Lagre filen, og avslutt (trykk på CTRL
+ X
, trykk på Y
og deretter på ENTER
).
Start på nytt vsftpd.
sudo systemctl restart vsftpd
Testing TLS med FileZilla
Vi kan nå teste TLS. Vi anbefaler FileZilla, som fungerer på Windows, Mac og Linux.,
skriv Inn serverens IP, FTP-brukernavnet og passordet som du opprettet tidligere, og klikk Quickconnect.
Du kan bli presentert med et Ukjent Sertifikat advarsel. Klikk Alltid stole på at dette sertifikatet i fremtidige økter og klikk på OK.
Hvis du er koblet over TLS, det vil fortelle deg i forbindelse logg. Du vil også se en hengelås nederst i høyre hjørne.
Du er ferdig!,
La meg vet hvis dette hjalp. Følg meg på Twitter, Facebook og YouTube, eller 🍊 kjøpe meg en smoothie.
p.s. Jeg økte min AdSense-inntekter 68% ved hjelp av AI 🤖. Les min Ezoic anmeldelsen for å finne ut hvordan.
Legg igjen en kommentar