Ubuntu Server 18.04.1. Настройка и установка FTP-сервера vsftpd
Innehållsförteckning:
- förutsättningar
- Installera vsftpd på Ubuntu 18.04
- Konfigurera vsftpd
- 1. FTP-åtkomst
- 2. Aktivera överföringar
- 3. Chroot Fängelse
- 4. Passiva FTP-anslutningar
- 5. Begränsa användarinloggning
- 6. Säkra överföringar med SSL / TLS
- Starta om vsftpd-tjänsten
- Öppna brandväggen
- Skapar FTP-användare
- Inaktiverar Shell Access
- Slutsats
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:
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:
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.
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
.
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
/etc/vsftpd.confftp
katalog i användarhemmet som fungerar som chroot och en skrivbaruploads
för att ladda upp filer.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.confallow_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:
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
:
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:
Ö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.
-
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 ubuntuLedamöter av Europaparlamentet kommer att avgöra om en rad frågor, bland annat hur man reglerar telekomföretag i EU, hur man straffar företag som snedvrider konkurrensen, hur man delar radiofrekvenser som släpps av TV: s migrering till digital sändning och hur man skyddar medborgarnas data i den digitala tiden.
Men de är delade om huruvida IP-adresser ska ses som personuppgifter. "Vi kommer att be kommissionen att formellt lägga fram en rapport om detta", säger Malcolm Harbour, en brittisk konservativ parlamentsledamot som spelar en central roll för att hylla den så kallade telekomrevisionen genom parlamentet.
Hur man ställer in dns namnservrar på ubuntu 18.04
DNS-namnservrarna (upplösare) är servrar som används av andra enheter för att utföra DNS-sökning efter en begiven domän. I den här guiden förklarar vi hur du konfigurerar DNS-namnservrar (upplösare) på Ubuntu 18.04.
Hur man ställer in virtuella apache-värdar på Ubuntu 18.04
I den här handledningen ger vi steg för steg instruktioner om hur du ställer in Apache Virtual Hosts på Ubuntu 18.04. Apache Virtual Hosts låter dig köra mer än en webbplats på en enda maskin.