Linux - FTP Server Setup (vsftpd)
Innholdsfortegnelse:
- Forutsetninger
- Installerer vsftpd på Ubuntu 18.04
- 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. I denne opplæringen installerer vi vsftpd (Very Secure Ftp Daemon). Det er 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.
Selv om denne opplæringen er skrevet for Ubuntu 18.04, gjelder de samme instruksjonene for Ubuntu 16.04 og all Debian-basert distribusjon, inkludert Debian, Linux Mint og Elementary OS.
Forutsetninger
Før du fortsetter med denne opplæringen, må du sørge for at du er logget inn som en bruker med sudo-rettigheter.
Installerer vsftpd på Ubuntu 18.04
Vsftpd-pakken er tilgjengelig i Ubuntu-depotene. For å installere det, kjører du bare følgende kommandoer:
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-10-15 03:38:52 PDT; 10min ago Main PID: 2616 (vsftpd) Tasks: 1 (limit: 2319) CGroup: /system.slice/vsftpd.service `-2616 /usr/sbin/vsftpd /etc/vsftpd.conf
Konfigurere vsftpd
Vsftpd-serveren kan konfigureres ved å redigere filen
/etc/vsftpd.conf
. 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
Vi tillater tilgang til FTP-serveren bare de lokale brukerne, finner de
local_enable
og
local_enable
direktiver og verifiserer konfigurasjonens samsvar med linjene nedenfor:
anonymous_enable=NO local_enable=YES
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 i 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.
Vi vil 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/private/vsftpd.pem rsa_private_key_file=/etc/ssl/private/vsftpd.pem 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
Åpne porten
22
å unngå å være låst:
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å Ubuntu 18.04-systemet.
ftp ubuntuSlik 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 virtuelle apache-verter på ubuntu 18.04

I denne opplæringen vil vi gi trinnvise instruksjoner om hvordan du setter opp Apache Virtual Hosts på Ubuntu 18.04. Apache Virtual Hosts lar deg kjøre mer enn ett nettsted på en enkelt maskin.