Android

Hur man ställer in ftp-server med vsftpd på centos 7

Install Vsftpd to configure FTP Server in centos 7

Install Vsftpd to configure FTP Server in centos 7

Innehållsförteckning:

Anonim

FTP (File Transfer Protocol) är ett vanligt klient-server nätverksprotokoll som gör det möjligt för användare att överföra filer till och från ett fjärrnätverk.

Det finns flera öppna FTP-servrar tillgängliga för Linux. De populäraste och mest använda är PureFTPd, ProFTPD och vsftpd.

I den här tutorialen kommer vi att installera vsftpd (Very Secure Ftp Daemon) på CentOS 7. Det är en stabil, säker och snabb FTP-server. Vi kommer också att visa dig hur du konfigurerar vsftpd för att begränsa användare till deras hemkatalog och kryptera hela överföringen med SSL / TLS.

Använd SCP eller SFTP för säkrare och snabbare dataöverföringar.

förutsättningar

Innan du fortsätter med den här tutorialen, se till att du är inloggad som användare med sudo-privilegier.

Installera vsftpd på CentOS 7

Vsftpd-paketet är tillgängligt i standard CentOS-lagringarna. För att installera det, utfärda följande kommando:

sudo yum install vsftpd

När paketet är installerat, starta vsftpd-demonen och aktivera det automatiskt att starta vid starttid:

sudo systemctl start vsftpd sudo systemctl enable vsftpd

Du kan verifiera att vsftpd-tjänsten körs genom att skriva ut dess status:

sudo systemctl status vsftpd

Utgången ser ut som nedan och visar att vsftpd-tjänsten är aktiv och kör:

● 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

Konfigurera vsftpd

Att konfigurera vsftpd-tjänsten innebär att redigera konfigurationsfilen /etc/vsftpd/vsftpd.conf . De flesta av inställningarna är väl dokumenterade i konfigurationsfilen. Besök den officiella vsftpd-sidan för alla tillgängliga alternativ.

I följande avsnitt kommer vi att gå igenom några viktiga inställningar som krävs för att konfigurera en säker vsftpd-installation.

Börja med att öppna konfigurationsfilen vsftpd:

sudo nano /etc/vsftpd/vsftpd.conf

1. FTP-åtkomst

Vi tillåter åtkomst till FTP-servern endast de lokala användarna, hittar de local_enable och local_enable direktiven och verifierar din konfigurationsmatchning till raderna nedan:

/etc/vsftpd/vsftpd.conf

anonymous_enable=NO local_enable=YES

2. Aktivera överföringar

Avmarkera inställningen write_enable att tillåta ändringar i filsystemet, till exempel att ladda upp och ta bort filer.

/etc/vsftpd/vsftpd.conf

write_enable=YES

3. Chroot Fängelse

Förhindra FTP-användare att komma åt alla filer utanför sina hemmakataloger genom att avmarkera chroot direktivet.

/etc/vsftpd/vsftpd.conf

chroot_local_user=YES

När chroot är aktiverat vägrar vsftpd som standard att ladda upp filer om katalogen som användarna är låsta i är skrivbar. Detta är för att förhindra en säkerhetsproblem.

Använd en av metoderna nedan för att tillåta överföringar när chroot är aktiverat.

  • Metod 1. - Den rekommenderade metoden för att tillåta överföring är att hålla chroot aktiverad och konfigurera FTP-kataloger. I denna handledning skapar vi en ftp katalog i användarhemmet som fungerar som chroot och en skrivbar uploads för att ladda upp filer.

    /etc/vsftpd/vsftpd.conf

    user_sub_token=$USER local_root=/home/$USER/ftp

    Metod 2. - Ett annat alternativ är att lägga till följande direktiv i vsftpd-konfigurationsfilen. Använd det här alternativet om du måste ge skrivbar åtkomst till din användare till sin hemkatalog.

    /etc/vsftpd/vsftpd.conf

    allow_writeable_chroot=YES

4. Passiva FTP-anslutningar

vsftpd kan använda valfri port för passiva FTP-anslutningar. Vi specificerar minsta och maximala portar och öppnar senare intervallet i vår brandvägg.

Lägg till följande rader i konfigurationsfilen:

/etc/vsftpd/vsftpd.conf

pasv_min_port=30000 pasv_max_port=31000

5. Begränsa användarinloggning

För att endast vissa användare kan logga in på FTP-servern lägger du till följande rader efter userlist_enable=YES :

/etc/vsftpd/vsftpd.conf

userlist_file=/etc/vsftpd/user_list userlist_deny=NO

När det här alternativet är aktiverat måste du specifikt ange vilka användare som kan logga in genom att lägga till användarnamn i /etc/vsftpd/user_list (en användare per rad).

6. Säkra överföringar med SSL / TLS

För att kryptera FTP-överföringarna med SSL / TLS måste du ha ett SSL-certifikat och konfigurera FTP-servern för att använda det.

Du kan använda ett befintligt SSL-certifikat undertecknat av en betrodd certifikatutfärdare eller skapa ett självsignerat certifikat.

I denna handledning genererar vi ett openssl SSL-certifikat med hjälp av kommandot openssl .

Följande kommando skapar en 2048-bitars privat nyckel och självsignerat certifikat giltigt i 10 år. Både den privata nyckeln och certifikatet sparas i samma fil:

sudo openssl req -x509 -nodes -days 3650 -newkey rsa:2048 -keyout /etc/vsftpd/vsftpd.pem -out /etc/vsftpd/vsftpd.pem

När SSL-certifikatet har skapats öppnar du vsftpd-konfigurationsfilen:

sudo nano /etc/vsftpd/vsftpd.conf

Hitta rsa_cert_file och rsa_private_key_file , ändra deras värden till rsa_cert_file rsa_private_key_file och ställ ssl_enable direktivet till YES :

/etc/vsftpd/vsftpd.conf

rsa_cert_file=/etc/vsftpd/vsftpd.pem rsa_private_key_file=/etc/vsftpd/vsftpd.pem ssl_enable=YES

Om inte annat anges använder FTP-servern endast TLS för att skapa säkra anslutningar.

Starta om vsftpd-tjänsten

När du är klar med att redigera bör vsftpd-konfigurationsfilen (exklusive kommentarer) se ut så här:

/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

Spara filen och starta om vsftpd-tjänsten så att ändringar träder i kraft:

sudo systemctl restart vsftpd

Öppna brandväggen

För att öppna port 21 (FTP-kommandoport), port 20 (FTP- 30000-31000 ) och 30000-31000 (passiva 30000-31000 ), utfärda följande kommandon:

sudo firewall-cmd --permanent --add-port=20-21/tcp sudo firewall-cmd --permanent --add-port=30000-31000/tcp

Ladda om brandväggsreglerna genom att skriva:

firewall-cmd --reload

Skapa en FTP-användare

För att testa vår FTP-server skapar vi en ny användare.

  • Om du redan har en användare som du vill bevilja FTP-åtkomst hoppar du över det första steget. Om du ställer allow_writeable_chroot=YES i din konfigurationsfil hoppar du över det tredje steget.
  1. Skapa en ny användare med namnet newftpuser :

    sudo adduser newftpuser

    Därefter måste du ange användarlösenordet:

    sudo passwd newftpuser

    Lägg till användaren i den tillåtna FTP-användarlistan:

    echo "newftpuser" | sudo tee -a /etc/vsftpd/user_list

    Skapa FTP-katalogträdet och ställ in rätt behörigheter:

    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 diskuterats i föregående avsnitt kan användaren ladda upp sina filer till ftp/upload katalogen.

Vid denna punkt är din FTP-server fullt fungerande och du borde kunna ansluta till din server med alla FTP-klienter som kan konfigureras för att använda TLS-kryptering, t.ex. FileZilla.

Inaktiverar Shell Access

Som standard kommer användaren att ha SSH-åtkomst till servern, om den inte uttryckligen anges.

För att inaktivera skalåtkomst skapar vi ett nytt skal som helt enkelt skriver ut ett meddelande som säger användaren att deras konto endast är begränsat till FTP-åtkomst.

Kör följande kommandon för att skapa /bin/ftponly skalet och göra det kö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

Lägg till det nya skalet i listan över giltiga skal i /etc/shells :

echo "/bin/ftponly" | sudo tee -a /etc/shells

Ändra användarskalet till /bin/ftponly :

sudo usermod newftpuser -s /bin/ftponly

Använd samma kommando för att ändra skalet för andra användare som du bara vill ge FTP-åtkomst.

Slutsats

I denna handledning lärde du dig hur du installerar och konfigurerar en säker och snabb FTP-server på ditt CentOS 7-system.

ftp centos