Linux - FTP Server Setup (vsftpd)
Innholdsfortegnelse:
- Forutsetninger
- Installerer vsftpd på Debian 9
- Konfigurere vsftpd
- 1. FTP-tilgang
- 2. Aktivering av opplastinger
- 3. Chroot fengsel
- 4. Passive FTP-tilkoblinger
- 5. Begrense brukerpålogging
- 6. Sikre overføringer med SSL / TLS
- Start vsftpd-tjenesten på nytt
- Åpne brannmuren
- Oppretter FTP-bruker
- Deaktiver Shell Access
- Konklusjon
FTP (File Transfer Protocol) er en standard nettverksprotokoll som brukes til å overføre filer til og fra et eksternt nettverk. Bruk SCP eller SFTP for sikrere og raskere dataoverføringer.
Det er mange open source FTP-servere tilgjengelig for Linux. De mest populære og mest brukte er PureFTPd, ProFTPD og vsftpd.
Denne veiledningen forklarer hvordan du installerer og konfigurerer vsftpd (Very Secure Ftp Daemon) på Debian 9. vsftpd en stabil, sikker og rask FTP-server. Vi vil også vise deg hvordan du konfigurerer vsftpd for å begrense brukere til deres hjemmekatalog og kryptere hele overføringen med SSL / TLS.
Forutsetninger
Brukeren du er logget inn som, må ha sudo-rettigheter for å kunne installere pakker.
Installerer vsftpd på Debian 9
Vsftpd-pakken er tilgjengelig i Debian-depotene. Installasjonen er ganske grei:
sudo apt update
sudo apt install vsftpd
vsftpd-tjenesten starter automatisk etter at installasjonsprosessen er fullført. Bekreft det ved å skrive ut tjenestestatusen:
sudo systemctl status vsftpd
Produksjonen vil se noe slik ut nedenfor, og viser at vsftpd-tjenesten er aktiv og kjører:
● vsftpd.service - vsftpd FTP server Loaded: loaded (/lib/systemd/system/vsftpd.service; enabled; vendor preset: enabled) Active: active (running) since Mon 2018-12-10 11:42:51 UTC; 53s ago Main PID: 1394 (vsftpd) CGroup: /system.slice/vsftpd.service └─1394 /usr/sbin/vsftpd /etc/vsftpd.conf
Konfigurere vsftpd
Vsftpd-serveren kan konfigureres ved å endre
vsftpd.conf
filen, funnet i
/etc
katalogen.
De fleste av innstillingene er godt dokumentert i konfigurasjonsfilen. For alle tilgjengelige alternativer, besøk den offisielle vsftpd-siden.
I de følgende seksjoner vil vi gå over noen viktige innstillinger som er nødvendige for å konfigurere en sikker vsftpd-installasjon.
Start med å åpne vsftpd konfigurasjonsfil:
1. FTP-tilgang
Finn de
local_enable
og
local_enable
direktivene, og bekreft konfigurasjonens samsvar med linjene nedenfor:
anonymous_enable=NO local_enable=YES
Dette sikrer at bare de lokale brukerne kan få tilgang til FTP-serveren.
2. Aktivering av opplastinger
Fjern
write_enable
innstillingen
write_enable
for å tillate endringer i filsystemet, for eksempel å laste opp og slette filer.
3. Chroot fengsel
For å forhindre at FTP-brukere får tilgang til filer utenfor hjemmekatalogene, fjerner du
chroot
innstillingen.
chroot_local_user=YES
Som standard for å forhindre et sikkerhetsproblem, vil når chroot er aktivert, vsftpd nekte å laste opp filer hvis katalogen som brukerne er låst i, kan skrives.
Bruk en av metodene nedenfor for å tillate opplasting når chroot er aktivert.
-
Metode 1. - Den anbefalte metoden for å tillate opplasting er å holde chroot aktivert og konfigurere FTP-kataloger. I denne opplæringen vil vi opprette en
/etc/vsftpd.confftp
katalog inne i brukerhjemmet som vil fungere som chroot og en skrivbaruploads
for å laste opp filer.user_sub_token=$USER local_root=/home/$USER/ftp
Metode 2. - Et annet alternativ er å legge til følgende direktiv i konfigurasjonsfilen vsftpd. Bruk dette alternativet hvis du må for å gi skrivbar tilgang til brukeren til hjemmekatalogen.
/etc/vsftpd.confallow_writeable_chroot=YES
4. Passive FTP-tilkoblinger
vsftpd kan bruke hvilken som helst port for passive FTP-tilkoblinger. Vi vil spesifisere minimums- og maksimumsområdet for porter og senere åpne området i brannmuren vår.
Legg til følgende linjer i konfigurasjonsfilen:
/etc/vsftpd.conf
pasv_min_port=30000 pasv_max_port=31000
5. Begrense brukerpålogging
For å la bare bestemte brukere logge seg på FTP-serveren, legger du til følgende linjer på slutten av filen:
userlist_enable=YES userlist_file=/etc/vsftpd.user_list userlist_deny=NO
Når dette alternativet er aktivert, må du spesifikt spesifisere hvilke brukere som kan logge på ved å legge til brukernavnene til filen
/etc/vsftpd.user_list
(en bruker per linje).
6. Sikre overføringer med SSL / TLS
For å kryptere FTP-overføringer med SSL / TLS, må du ha et SSL-sertifikat og konfigurere FTP-serveren til å bruke den.
Du kan bruke et eksisterende SSL-sertifikat signert av en klarert Certificate Authority eller opprette et selvsignert sertifikat.
I denne opplæringen vil vi generere et selvsignert SSL-sertifikat ved å bruke kommandoen
openssl
.
Følgende kommando oppretter en 2048-bit privat nøkkel og selvsignert sertifikat som er gyldig i 10 år. Både den private nøkkelen og sertifikatet blir lagret i samme fil:
sudo openssl req -x509 -nodes -days 3650 -newkey rsa:2048 -keyout /etc/ssl/private/vsftpd.pem -out /etc/ssl/private/vsftpd.pem
Når SSL-sertifikatet er opprettet, åpner du vsftpd-konfigurasjonsfilen:
sudo nano /etc/vsftpd.conf
Finn
rsa_cert_file
og
rsa_private_key_file
direktivene, endre verdiene til
pam
-filstien og sett
ssl_enable
direktivet til
YES
:
rsa_cert_file=/etc/ssl/private/vsftpd.pem rsa_private_key_file=/etc/ssl/private/vsftpd.pem ssl_enable=YES
Hvis ikke annet er spesifisert, vil FTP-serveren bare bruke TLS for å opprette sikre tilkoblinger.
Start vsftpd-tjenesten på nytt
Når du er ferdig med å redigere, skal konfigurasjonen av vsftpd (unntatt kommentarer) se slik ut:
/etc/vsftpd.conf
listen=NO listen_ipv6=YES anonymous_enable=NO local_enable=YES write_enable=YES dirmessage_enable=YES use_localtime=YES xferlog_enable=YES connect_from_port_20=YES chroot_local_user=YES secure_chroot_dir=/var/run/vsftpd/empty pam_service_name=vsftpd rsa_cert_file=/etc/ssl/certs/ssl-cert-snakeoil.pem rsa_private_key_file=/etc/ssl/private/ssl-cert-snakeoil.key ssl_enable=YES user_sub_token=$USER local_root=/home/$USER/ftp pasv_min_port=30000 pasv_max_port=31000 userlist_enable=YES userlist_file=/etc/vsftpd.user_list userlist_deny=NO
Lagre filen og start vsftpd-tjenesten på nytt for at endringer skal tre i kraft:
Åpne brannmuren
Følg kommandoene for å åpne port
21
(FTP-kommandoport), port
20
(FTP-dataport) og
30000-31000
(passive porter).
sudo ufw allow 20:21/tcp
sudo ufw allow 30000:31000/tcp
For å unngå å være innelåst vil vi også åpne port
22
:
sudo ufw allow OpenSSH
Last inn UFW-reglene på nytt ved å deaktivere og aktivere UFW på nytt:
sudo ufw disable
sudo ufw enable
Slik bekrefter du endringene:
sudo ufw status
Status: active To Action From -- ------ ---- 20:21/tcp ALLOW Anywhere 30000:31000/tcp ALLOW Anywhere OpenSSH ALLOW Anywhere 20:21/tcp (v6) ALLOW Anywhere (v6) 30000:31000/tcp (v6) ALLOW Anywhere (v6) OpenSSH (v6) ALLOW Anywhere (v6)
Oppretter FTP-bruker
For å teste FTP-serveren vår vil vi opprette en ny bruker.
- Hvis du allerede har en bruker som du vil gi FTP-tilgang, hopp over det første trinnet. Hvis du angir
allow_writeable_chroot=YES
i konfigurasjonsfilen, hopp over det tredje trinnet.
-
Opprett en ny bruker som heter
newftpuser
:sudo adduser newftpuser
Legg brukeren til listen over tillatte FTP-brukere:
echo "newftpuser" | sudo tee -a /etc/vsftpd.user_list
Opprett FTP-katalogtreet og angi riktige tillatelser:
sudo mkdir -p /home/newftpuser/ftp/upload
sudo chmod 550 /home/newftpuser/ftp
sudo chmod 750 /home/newftpuser/ftp/upload
sudo chown -R newftpuser: /home/newftpuser/ftp
Som omtalt i forrige seksjon, vil brukeren kunne laste opp filene sine til
ftp/upload
katalogen.
På dette tidspunktet er FTP-serveren din fullstendig funksjonell, og du bør kunne koble til serveren din ved å bruke en hvilken som helst FTP-klient som kan konfigureres til å bruke TLS-kryptering, for eksempel FileZilla.
Deaktiver Shell Access
Ved opprettelse av en bruker, hvis ikke spesifikt spesifisert, vil brukeren som standard ha SSH-tilgang til serveren.
For å deaktivere skalltilgang, vil vi opprette et nytt skall som ganske enkelt vil skrive ut en melding som forteller brukeren at kontoen deres bare er begrenset til FTP-tilgang.
Lag
/bin/ftponly
shell og gjør det kjørbart:
echo -e '#!/bin/sh\necho "This account is limited to FTP access only."' | sudo tee -a /bin/ftponly
echo -e '#!/bin/sh\necho "This account is limited to FTP access only."' | sudo tee -a /bin/ftponly
sudo chmod a+x /bin/ftponly
Legg det nye skallet til listen over gyldige skjell i filen
/etc/shells
:
echo "/bin/ftponly" | sudo tee -a /etc/shells
Endre brukerskallet til
/bin/ftponly
:
sudo usermod newftpuser -s /bin/ftponly
Bruk den samme kommandoen for å endre skallet til alle brukere du vil gi bare FTP-tilgang.
Konklusjon
I denne opplæringen lærte du hvordan du installerer og konfigurerer en sikker og rask FTP-server på Debian 9-systemet.
ftp debianSlik konfigurerer du chat med Google-kontakter i Outlook.com eller SkyDrive.com

Finn ut hvordan du setter inn opp chat med Google Kontakter, Google Talk fra Outlook.com Innboks. Konfigurer chat med Google-kontakter i Outlook.com eller SkyDrive.
Slik konfigurerer og konfigurerer du innstillingene for rutemannbrannmur

Lær hvordan du konfigurerer rutem brannmuren, få tilgang til maskinvareruter siden, konfigurer rutemannbrannmurinnstillinger. Finn ut hvilke porter som er nødvendige på datamaskinen.
Slik konfigurerer du nginx-serverblokker på debian 9

I denne opplæringen vil vi vise deg hvordan du konfigurerer Nginx-serverblokker på Debian 9. Serverblocks lar deg kjøre mer enn ett nettsted på en enkelt maskin.