Install Vsftpd to configure FTP Server in centos 7
Innehållsförteckning:
- förutsättningar
- Installera vsftpd på CentOS 7
- 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
- Skapa en FTP-användare
- Inaktiverar Shell Access
- Slutsats
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:
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örhindra FTP-användare att komma åt alla filer utanför sina hemmakataloger genom att avmarkera
chroot
direktivet.
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
/etc/vsftpd/vsftpd.confftpkatalog i användarhemmet som fungerar som chroot och en skrivbaruploadsför att ladda upp filer.user_sub_token=$USER local_root=/home/$USER/ftpMetod 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.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/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
:
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
:
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:
Ö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:
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=YESi din konfigurationsfil hoppar du över det tredje steget.
-
Skapa en ny användare med namnet
newftpuser:sudo adduser newftpuserDärefter måste du ange användarlösenordet:
sudo passwd newftpuserLägg till användaren i den tillåtna FTP-användarlistan:
echo "newftpuser" | sudo tee -a /etc/vsftpd/user_listSkapa FTP-katalogträdet och ställ in rätt behörigheter:
sudo mkdir -p /home/newftpuser/ftp/uploadsudo chmod 550 /home/newftpuser/ftpsudo chmod 750 /home/newftpuser/ftp/uploadsudo chown -R newftpuser: /home/newftpuser/ftpSom diskuterats i föregående avsnitt kan användaren ladda upp sina filer till
ftp/uploadkatalogen.
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 centosLedamö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 eller ändrar tidszon på centos 7
På CentOS är systemets tidszon inställd under installationen, men det kan enkelt ändras vid ett senare tillfälle. Denna handledning förklarar hur du ställer in eller ändrar tidszonen på CentOS 7.
Hur man ställer in virtuella apache-värdar på centos 7
I den här handledningen ger vi steg för steg instruktioner om hur du ställer in Apache Virtual Hosts på en CentOS 7-server. Apache Virtual Hosts tillåter flera webbplatser att köra på en webbserver.







