Install and Configure FTP Server with User based Authentication in Centos 7 / Redhat 7,8 / Fedora
Innholdsfortegnelse:
- Forutsetninger
- Installerer vsftpd på CentOS 7
- 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
- Opprette en FTP-bruker
- Deaktiver Shell Access
- Konklusjon
FTP (File Transfer Protocol) er en standard klient-server nettverksprotokoll som lar brukere overføre filer til og fra et eksternt nettverk.
Det er flere åpen kildekode 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) på CentOS 7. 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.
Bruk SCP eller SFTP for sikrere og raskere dataoverføringer.
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å CentOS 7
Vsftpd-pakken er tilgjengelig i standard CentOS-lagringene. For å installere den, utgiv følgende kommando:
sudo yum install vsftpd
Når pakken er installert, start vsftpd-demonet og aktiver den automatisk å starte ved oppstarttid:
sudo systemctl start vsftpd
sudo systemctl enable vsftpd
Du kan bekrefte at vsftpd-tjenesten kjører ved å skrive ut statusen:
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 daemon Loaded: loaded (/usr/lib/systemd/system/vsftpd.service; enabled; vendor preset: disabled) Active: active (running) since Thu 2018-11-22 09:42:37 UTC; 6s ago Main PID: 29612 (vsftpd) CGroup: /system.slice/vsftpd.service └─29612 /usr/sbin/vsftpd /etc/vsftpd/vsftpd.conf
Konfigurere vsftpd
Konfigurering av vsftpd-tjenesten innebærer redigering av
/etc/vsftpd/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 kreves for å konfigurere en sikker vsftpd-installasjon.
Start med å åpne vsftpd konfigurasjonsfil:
sudo nano /etc/vsftpd/vsftpd.conf
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
Hindre FTP-brukere å få tilgang til filer utenfor hjemmekatalogene sine ved å fjerne komplettering av
chroot
direktivet.
chroot_local_user=YES
Når chroot er aktivert, vil vsftpd som standard nekte å laste opp filer hvis katalogen som brukerne er låst i, kan skrives. Dette er for å forhindre et sikkerhetsproblem.
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/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/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/vsftpd.conf
pasv_min_port=30000 pasv_max_port=31000
5. Begrense brukerpålogging
For å la enkelte brukere logge seg på FTP-serveren legger du til følgende linjer etter
userlist_enable=YES
linjen:
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/vsftpd/vsftpd.pem -out /etc/vsftpd/vsftpd.pem
Når SSL-sertifikatet er opprettet, åpner du vsftpd-konfigurasjonsfilen:
sudo nano /etc/vsftpd/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/vsftpd/vsftpd.pem rsa_private_key_file=/etc/vsftpd/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/vsftpd.conf
anonymous_enable=NO local_enable=YES write_enable=YES local_umask=022 dirmessage_enable=YES xferlog_enable=YES connect_from_port_20=YES xferlog_std_format=YES chroot_local_user=YES listen=NO listen_ipv6=YES pam_service_name=vsftpd userlist_enable=YES userlist_file=/etc/vsftpd/user_list userlist_deny=NO tcp_wrappers=YES user_sub_token=$USER local_root=/home/$USER/ftp pasv_min_port=30000 pasv_max_port=31000 rsa_cert_file=/etc/vsftpd/vsftpd.pem rsa_private_key_file=/etc/vsftpd/vsftpd.pem ssl_enable=YES
Lagre filen og start vsftpd-tjenesten på nytt for at endringer skal tre i kraft:
Åpne brannmuren
Slik åpner du port
21
(FTP-kommandoport), port
20
(FTP-dataport) og
30000-31000
(passive porter).
sudo firewall-cmd --permanent --add-port=20-21/tcp
sudo firewall-cmd --permanent --add-port=30000-31000/tcp
Last brannmurreglene på nytt ved å skrive:
Opprette en 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
Deretter må du angi brukerpassord:
sudo passwd 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 med 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.
Kjør følgende kommandoer for å opprette
/bin/ftponly
shell og gjøre 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 for andre brukere du bare vil gi FTP-tilgang.
Konklusjon
I denne opplæringen lærte du hvordan du installerer og konfigurerer en sikker og rask FTP-server på CentOS 7-systemet.
ftp centosSlik 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å centos 7
Nginx Server Blocks lar deg kjøre mer enn ett nettsted på en enkelt maskin. I denne opplæringen skal vi forklare hvordan du konfigurerer Nginx-serverblokker på CentOS 7.