Genom att ställa in en FTP-server (File Transfer Protocol) på din Linux-dator kan du överföra filer mellan ditt system och en fjärrmaskin. Vi visar dig hur du ställer in en FTP-server på CentOS.
Linux har redan massor av FTP-servrar med öppen källkod som du kan använda för jobbet. Detta inkluderar populära servrar som PureFTPd, ProFTPD, samt vsftpd.
Du får använda någon av FTP-servrarna som du vill. I denna handledning kommer vi dock att installera och använda vsftpd, förkortning för Very Secure FTP Daemon. Det är en snabb, stabil och säker FTP-server som hjälper dig att snabbt överföra filer till och från ett fjärrsystem.
Konfigurera FTP-server på CentOS
Så utan vidare, låt oss komma igång:
Installerar vsftpd
Först måste vi installera vsftpd på CentOS. För att göra detta, ange följande kommando i terminalen:
$ sudo dnf installera vsftpd
Med vsftpd installerat på ditt CentOS-system bör du konfigurera det så att det startar och startar automatiskt. Detta kan göras med följande kommando:
$ sudo systemctl aktiverar vsftpd - nu
När det är klart, verifiera vsftpd-tjänstens status genom att ange det här kommandot:
$ sudo systemctl status vsftpd
En utskärm liknande den nedan visas. Du bör se att vsftpd inte är "Aktiv" på ditt CentOS-system.
Konfigurera vsftpd
När vsftpd är aktivt och körs på ditt system måste du konfigurera serverinställningarna. För att göra det måste du komma åt / etc / vsftpd / vsftpd.conf konfigurationsfil. Detta kan göras genom att öppna konfigurationsfilen i nano-redigeraren genom att ange följande kommando i terminalen:
$ sudo nano / etc / vsftpd / vsftpd.konf
Med filen nu öppnad i redigeraren finns det flera ändringar du behöver göra för att konfigurera vsftpd på ditt system. Låt oss gå över dem en efter en.
1. Konfigurera FTP-åtkomst
Låt oss först konfigurera FTP-servern så att den endast tillåter åtkomst till de lokala användarna. För att göra detta måste du hitta direktivet anonym_enable och local_enable i filen och redigera dem enligt bilden nedan:
Som du kan se måste du ange anonym_enable = NO och local_enable = YES.
2. Aktivera uppladdningar
Därefter måste du konfigurera FTP-servern så att du kan ladda upp och radera filer.
För att göra detta måste du lokalisera direktivet write_enable och ändra det till YES, som visas på bilden.
3. Begränsa användarinloggningar
När du är klar vill du begränsa det totala antalet inloggningar i.e., du vill bara att vissa användare ska logga in på din FTP-server. För att göra detta ska du först hitta den här raden i .conf-fil - userlist_enable = JA. Lägg sedan till dessa två rader i filen:
userlist_file = / etc / vsftpd / user_list userlist_deny = NEJ
Använd bilden nedan som referens:
Du kan också välja att aktivera det här alternativet. Om du gör det måste du uttryckligen ange vilka användare du vill ge åtkomst till FTP-servern. För att tillåta användarna måste du lägga till deras användarnamn i filen / etc / vsftpd / user_list med endast ett användarnamn i varje rad.
4. Ställ in passiva FTP-anslutningar
Du kanske också vill konfigurera passiva FTP-anslutningar.
Som sådan kommer vi här att visa dig hur du kan ange minsta och högsta intervall för portarna genom att lägga till ett par rader inuti .conf-fil.
Allt du behöver göra är att bläddra ner till slutet av filen och lägga till dessa två rader, som visas på bilden.
pasv_min_port = 30000 pasv_max_port = 31000
Vi kommer också att diskutera hur du kan öppna intervallet i din brandvägg senare i denna handledning.
5. Konfigurera säkra överföringar med SSL / TLS
Slutligen kommer frågan om att säkra FTP-anslutningen med SSL / TLS. För att göra detta måste du ha ett SSL-certifikat och konfigurera din FTP-server för att använda den.
För denna handledning kommer vi dock att generera ett självsignerat SSL-certifikat med OpenSSL-verktyget och sedan använda det för att kryptera vår FTP-överföring.
Så först måste du använda OpenSSL för att generera ett nytt SSL-certifikat. Du kan göra detta genom att ange följande kommando i terminalen:
sudo openssl req -x509 -noder -dagar 3650 -nyckel rsa: 2048 -keyout / etc / vsftpd / vsftpd.pem -out / etc / vsftpd / vsftpd.pem
Att köra ovanstående kommando genererar en 2048-bitars privat nyckel samt ett självsignerat certifikat. Båda dessa är giltiga i tio år och sparas i samma fil.
När du har skapat ditt nya SSL-certifikat öppnar du konfigurationsfilen vsftpd med föregående kommando:
sudo nano / etc / vsftpd / vsftpd.konf
Rulla ner och lägg till följande rader som visas på bilden:
rsa_cert_file = / etc / vsftpd / vsftpd.pem rsa_private_key_file = / etc / vsftpd / vsftpd.pem ssl_enable = JA
Och det är allt. Du har konfigurerat SSL-certifikatet för din FTP-server.
6. Avsluta
När du är klar kontrollerar du vsftpd-konfigurationsfilen för att se om alla följande inställningar är som de är:
anonym_enable = NEJ local_enable = JA write_enable = JA local_umask = 022 dirmessage_enable = JA xferlog_enable = JA connect_from_port_20 = JA xferlog_std_format = JA lyssna = NEJ lyssna_ipv6 = JA pam_service_name = vsftpd användarlista = användarlista = användarlista = pasv_max_port = 31000 rsa_cert_file = / etc / vsftpd / vsftpd.pem rsa_private_key_file = / etc / vsftpd / vsftpd.pem ssl_enable = JA
När du har kontrollerat att alla ovanstående ändringar har gjorts i filen måste du spara den. När du har sparat startar du om vsftpd-tjänsten med följande kommando:
$ sudo systemctl startar om vsftpd
Konfigurera brandväggen
Om du har en brandvägg aktiverad tillsammans med FTP-servern måste du konfigurera brandväggen så att den tillåter FTP-överföringar.
För att göra detta måste du ange följande kommandon i terminalen:
$ sudo firewall-cmd --permanent --add-port = 20-21 / tcp
Ovanstående kommando öppnar port 21 - som är FTP-kommandoporten och port 20 - som är FTP-dataporten.
Du måste också ange detta kommando också:
$ sudo firewall-cmd --permanent --add-port = 30000-31000 / tcp
Det här kommandot öppnar 30000-31000 passiva portar, som vi konfigurerade tidigare.
När du är klar måste du ladda om brandväggen med följande kommando:
$ firewall-cmd --reload
Hur man skapar en ny FTP-användare
Nu när du har konfigurerat din vsftpd-server på ditt CentOS-system är det dags att skapa en ny FTP-användare och testa den.
Låt oss först skapa en ny FTP-användare (newftpuser) med följande kommando:
$ sudo adduser newftpuser
Därefter måste du ställa in ett lösenord för den nya användaren. Använd detta kommando för att göra detta:
$ sudo passwd newftpuser
Se till att lösenordet är starkt och längre än åtta tecken.
När du har skapat den nya användaren måste du lägga till den i FTP-användarlistan. Detta kan göras genom att ange följande kommando i terminalen:
$ echo "newftpuser" | sudo tee -a / etc / vsftpd / user_list
Slutligen måste du skapa ett FTP-katalogträd där du ställer in alla rätt behörigheter. För att göra detta måste du ange följande kommandaserier i terminalen:
$ 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
Nu är din FTP-server helt funktionell och redo att gå. Du kan nu ansluta till den med valfri FTP-klient som FileZilla. Se bara till att FTP-klienten också kan konfigureras för att använda TLS-kryptering eftersom den används för att kryptera FTP-överföringar.
Inaktivera skalåtkomst
En sak du bör tänka på när du skapar en ny FTP-användare är att användaren har SSH-åtkomst till servern om det inte uttryckligen anges.
Om du vill inaktivera skalåtkomst från användaren måste du skapa ett nytt skal som kommer att skriva ut ett meddelande som informerar användaren om att - ”Detta konto är begränsat till endast FTP-åtkomst.”
För att göra detta måste du ange följande kommando i terminalen:
$ echo -e '#!/ bin / sh \ necho "Detta konto är endast begränsat till FTP-åtkomst."'| sudo tee -a / bin / ftponly $ sudo chmod a + x / bin / ftponly
Kommandot ovan skapar / bin / ftponly-skalet och kör det.
Därefter måste du lägga till det nya skalet i listan över giltiga skal som finns inuti / etc / skal fil. Detta görs med följande kommando:
$ echo "/ bin / ftponly" | sudo tee -a / etc / skal
Och som det sista steget är allt du behöver göra att ändra användarskalet till / bin / ftponly med det här kommandot:
$ sudo usermod newftpuser -s / bin / ftponly
För alla framtida FTP-användare kan du också använda samma kommando för att ändra deras skal så att de bara kan ha FTP-åtkomst.