Opsætning af en FTP-server (File Transfer Protocol) på din Linux-pc giver dig mulighed for at overføre filer mellem dit system og en ekstern maskine. Vi viser dig, hvordan du opretter en FTP-server på CentOS.
Linux har allerede masser af open source FTP-servere, som du kan bruge til jobbet. Dette inkluderer populære servere som PureFTPd, ProFTPD samt vsftpd.
Du har tilladelse til at bruge en hvilken som helst af FTP-serverne, som du vil. I denne vejledning installerer og bruger vi dog vsftpd, forkortelse for Very Secure FTP Daemon. Det er en hurtig, stabil og sikker FTP-server, der hjælper dig med at overføre filer til og fra et eksternt system i en smule.
Opsætning af FTP-server på CentOS
Så uden videre, lad os komme i gang:
Installation af vsftpd
Først skal vi installere vsftpd på CentOS. For at gøre dette skal du indtaste følgende kommando i terminalen:
$ sudo dnf installerer vsftpd
Med vsftpd installeret på dit CentOS-system, skal du konfigurere det, så det starter og starter automatisk. Dette kan gøres ved hjælp af følgende kommando:
$ sudo systemctl aktiver vsftpd - nu
Når det er gjort, skal du kontrollere vsftpd-servicestatus ved at indtaste denne kommando:
$ sudo systemctl status vsftpd
En outputskærm svarende til nedenstående vises. Du skal se, at vsftpd ikke er "Aktiv" på dit CentOS-system.
Opsætning vsftpd
Når vsftpd er aktiv og kører på dit system, skal du konfigurere serverindstillingerne. For at gøre det skal du få adgang til / etc / vsftpd / vsftpd.conf konfigurationsfil. Dette kan gøres ved at åbne konfigurationsfilen i nano-editoren ved at indtaste følgende kommando i terminalen:
$ sudo nano / etc / vsftpd / vsftpd.konf
Med filen nu åbnet i editoren, er der flere ændringer, du skal foretage for at konfigurere vsftpd på dit system. Lad os gå over dem en efter en.
1. Konfigurer FTP-adgang
Lad os først konfigurere FTP-serveren, så den kun giver adgang til de lokale brugere. For at gøre dette skal du finde direktiverne anonym_enable og local_enable i filen og redigere dem som vist på billedet nedenfor:
Som du kan se, skal du indstille anonym_enable = NEJ og local_enable = YES.
2. Aktivér uploads
Dernæst skal du konfigurere FTP-serveren, så den kan uploade og slette filer.
For at gøre dette skal du finde directive-direktivet og ændre det til YES, som vist på billedet.
3. Begræns brugerlogins
Når du er færdig, vil du begrænse det samlede antal brugerlogins i.e., du vil kun have, at visse brugere skal logge ind på din FTP-server. For at gøre dette skal du først finde denne linje i .conf-fil - userlist_enable = JA. Derefter tilføjes disse to linjer i filen:
userlist_file = / etc / vsftpd / user_list userlist_deny = NEJ
Brug billedet nedenfor som reference:
Du kan også vælge at aktivere denne mulighed. Hvis du gør det, skal du eksplicit angive, hvilke brugere du vil give adgang til FTP-serveren. For at tillade brugerne skal du tilføje deres brugernavne til / etc / vsftpd / user_list-filen med kun et brugernavn i hver linje.
4. Opsætning af passive FTP-forbindelser
Du vil måske også oprette passive FTP-forbindelser.
Som sådan vil vi her vise dig, hvordan du kan specificere minimums- og maksimumsområderne for portene ved at tilføje et par linjer inde i .conf-fil.
Alt hvad du skal gøre er at rulle ned til slutningen af filen og tilføje disse to linjer som vist på billedet.
pasv_min_port = 30000 pasv_max_port = 31000
Vi diskuterer også, hvordan du kan åbne området i din firewall senere i denne vejledning.
5. Konfigurer sikre transmissioner ved hjælp af SSL / TLS
Endelig kommer der spørgsmålet om at sikre FTP-forbindelsen ved hjælp af SSL / TLS. For at gøre dette skal du have et SSL-certifikat og konfigurere din FTP-server til at bruge det.
Af hensyn til denne vejledning genererer vi dog et selvsigneret SSL-certifikat ved hjælp af OpenSSL-værktøjet og derefter bruger det til at kryptere vores FTP-transmission.
Så først og fremmest skal du bruge OpenSSL til at generere et nyt SSL-certifikat. Du kan gøre dette ved at indtaste følgende kommando i terminalen:
sudo openssl req -x509 -noder -dage 3650 -nykey rsa: 2048 -keyout / etc / vsftpd / vsftpd.pem -out / etc / vsftpd / vsftpd.pem
Kørsel af ovenstående kommando genererer en 2048-bit privat nøgle samt et selvsigneret certifikat. Begge disse er gyldige i ti år og gemmes i den samme fil.
Når du har oprettet dit nye SSL-certifikat, skal du åbne vsftpd-konfigurationsfilen ved hjælp af den forrige kommando:
sudo nano / etc / vsftpd / vsftpd.konf
Rul ned og tilføj følgende linjer som vist på billedet:
rsa_cert_file = / etc / vsftpd / vsftpd.pem rsa_private_key_file = / etc / vsftpd / vsftpd.pem ssl_enable = JA
Og det er det. Du har konfigureret SSL-certifikatet til din FTP-server.
6. Afslut
Når du er færdig, skal du kontrollere vsftpd-konfigurationsfilen for at se, om alle følgende indstillinger er som de er:
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 lyt = NEJ listen_ipv6 = JA pam_service_name = vsftpd brugerliste = bruger_liste = bruger_liste = bruger 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 sørget for, at alle ovenstående ændringer er foretaget i filen, skal du gemme den. Når du er gemt, skal du genstarte vsftpd-tjenesten ved hjælp af følgende kommando:
$ sudo systemctl genstart vsftpd
Konfigurer Firewall
Hvis du har en firewall aktiveret sammen med FTP-serveren, skal du konfigurere firewallen, så den tillader FTP-transmissioner.
For at gøre dette skal du indtaste følgende kommandoer i terminalen:
$ sudo firewall-cmd --permanent --add-port = 20-21 / tcp
Ovenstående kommando åbner port 21 - som er FTP-kommandoporten, og port 20 - som er FTP-dataporten.
Du bliver også nødt til at indtaste denne kommando:
$ sudo firewall-cmd --permanent --add-port = 30000-31000 / tcp
Denne kommando åbner 30000-31000 passive porteintervaller, som vi tidligere har konfigureret.
Når du er færdig, skal du genindlæse firewallen ved hjælp af følgende kommando:
$ firewall-cmd --indlæs
Sådan oprettes en ny FTP-bruger
Nu hvor du har konfigureret din vsftpd-server på dit CentOS-system, er det tid til at oprette en ny FTP-bruger og teste den.
Lad os først oprette en ny FTP-bruger (newftpuser) ved hjælp af følgende kommando:
$ sudo adduser newftpuser
Derefter skal du indstille en adgangskode til den nye bruger. For at gøre dette skal du bruge denne kommando:
$ sudo passwd newftpuser
Sørg for, at adgangskoden er stærk og længere end otte tegn.
Når du har oprettet den nye bruger, skal du føje den til FTP-brugerlisten. Dette kan gøres ved at indtaste følgende kommando i terminalen:
$ echo "newftpuser" | sudo tee -a / etc / vsftpd / user_list
Endelig skal du oprette et FTP-katalogtræ, hvor du vil indstille alle de korrekte tilladelser. For at gøre dette skal du indtaste følgende række kommandoer 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
På nuværende tidspunkt er din FTP-server fuldt funktionel og klar til brug. Du kan nu oprette forbindelse til den ved hjælp af en hvilken som helst FTP-klient som FileZilla. Bare sørg for, at FTP-klienten også kan konfigureres til at bruge TLS-kryptering, da den bruges til at kryptere FTP-transmissioner.
Deaktiver shelladgang
En ting, du skal huske på, når du opretter en ny FTP-bruger, er, medmindre brugeren udtrykkeligt er angivet, vil brugeren have SSH-adgang til serveren.
Hvis du ønsker at deaktivere shelladgang fra brugeren, skal du oprette en ny shell, der udskriver en besked, der informerer brugeren om, at - “Denne konto er kun begrænset til FTP-adgang.”
For at gøre dette skal du indtaste følgende kommando i terminalen:
$ echo -e '#!/ bin / sh \ necho "Denne konto er kun begrænset til FTP-adgang."'| sudo tee -a / bin / ftponly $ sudo chmod a + x / bin / ftponly
Ovenstående kommando opretter shell / bin / ftponly og udfører den.
Derefter skal du tilføje den nye skal til listen over gyldige skaller, der er placeret inde i / etc / skaller fil. Dette gøres ved hjælp af følgende kommando:
$ echo "/ bin / ftponly" | sudo tee -a / etc / skaller
Og som det sidste trin er alt hvad du skal gøre, at ændre brugerskallen til / bin / ftponly ved hjælp af denne kommando:
$ sudo usermod newftpuser -s / bin / ftponly
For alle fremtidige FTP-brugere kan du også bruge den samme kommando til at ændre deres shell, så de kun kan have FTP-adgang.