Android

Hur man ställer in ftp-server med vsftpd på ubuntu 18.04

Ubuntu Server 18.04.1. Настройка и установка FTP-сервера vsftpd

Ubuntu Server 18.04.1. Настройка и установка FTP-сервера vsftpd

Innehållsförteckning:

Anonim

FTP (File Transfer Protocol) är ett standardnätverksprotokoll som används för att överföra filer till och från ett fjärrnätverk. Använd SCP eller SFTP för säkrare och snabbare dataöverföringar.

Det finns många öppna FTP-servrar tillgängliga för Linux. De populäraste och mest använda är PureFTPd, ProFTPD och vsftpd. I denna handledning installerar vi vsftpd (Very Secure Ftp Daemon). 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.

Även om denna handledning är skriven för Ubuntu 18.04 gäller samma instruktioner för Ubuntu 16.04 och all Debian-baserad distribution, inklusive Debian, Linux Mint och Elementary OS.

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å Ubuntu 18.04

Vsftpd-paketet är tillgängligt i Ubuntu-lagren. För att installera det, kör bara följande kommandon:

sudo apt update sudo apt install vsftpd

vsftpd-tjänsten startar automatiskt när installationen är klar. Verifiera det genom att skriva ut servicestatus:

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 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

Konfigurera vsftpd

Vsftpd-servern kan konfigureras genom att redigera filen /etc/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 behövs för att konfigurera en säker vsftpd-installation.

Börja med att öppna konfigurationsfilen vsftpd:

sudo nano /etc/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.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.conf

write_enable=YES

3. Chroot Fängelse

För att förhindra FTP-användare att komma åt filer utanför sina hemkataloger, avmarkerar inställningen för chroot .

/etc/vsftpd.conf

chroot_local_user=YES

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

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.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.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.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 i slutet av filen:

/etc/vsftpd.conf

userlist_enable=YES userlist_file=/etc/vsftpd.user_list userlist_deny=NO

När det här alternativet är aktiverat måste du specifikt specificera vilka användare som kan logga in genom att lägga till användarnamn i filen /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.

Vi kommer att generera 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/ssl/private/vsftpd.pem -out /etc/ssl/private/vsftpd.pem

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

sudo nano /etc/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.conf

rsa_cert_file=/etc/ssl/private/vsftpd.pem rsa_private_key_file=/etc/ssl/private/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.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

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

sudo systemctl restart vsftpd

Öppna brandväggen

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

sudo ufw allow 20:21/tcp sudo ufw allow 30000:31000/tcp

Öppna porten 22 att undvika att låsas ut:

sudo ufw allow OpenSSH

Ladda om UFW-reglerna genom att inaktivera och aktivera UFW:

sudo ufw disable sudo ufw enable

Så här kontrollerar du ändringarna:

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)

Skapar 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

    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 tidpunkt är din FTP-server fullt fungerande och du borde kunna ansluta till din server med hjälp av 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.

Skapa /bin/ftponly skalet och gör 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 alla användare som du vill ge endast FTP-åtkomst.

Slutsats

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

ftp ubuntu