Door een FTP-server (File Transfer Protocol) op uw Linux-pc in te stellen, kunt u bestanden overbrengen tussen uw systeem en een externe machine. We laten u zien hoe u een FTP-server instelt op CentOS.
Linux heeft al een heleboel open-source FTP-servers die je voor de klus kunt gebruiken. Dit omvat populaire servers zoals PureFTPd, ProFTPD en vsftpd.
Je mag een van de FTP-servers gebruiken zoals je wilt. In deze tutorial zullen we echter vsftpd installeren en gebruiken, een afkorting voor Very Secure FTP Daemon. Het is een snelle, stabiele en veilige FTP-server waarmee u in een handomdraai bestanden van en naar een extern systeem kunt overbrengen.
FTP-server instellen op CentOS
Dus zonder verder oponthoud, laten we beginnen:
vsftpd installeren
Eerst moeten we vsftpd installeren op CentOS install. Voer hiervoor de volgende opdracht in de terminal in:
$ sudo dnf install vsftpd
Met vsftpd geïnstalleerd op uw CentOS-systeem, moet u het zo configureren dat het automatisch start en opstart. Dit kan met het volgende commando:
$ sudo systemctl vsftpd inschakelen --nu
Zodra dat is gebeurd, controleert u de vsftpd-servicestatus door deze opdracht in te voeren:
$ sudo systemctl-status vsftpd
Er verschijnt een uitvoerscherm dat lijkt op het onderstaande:. U zou moeten zien dat vsftpd niet "Actief" is op uw CentOS-systeem.
vsftpd instellen
Met vsftpd actief en actief op uw systeem, moet u de serverinstellingen configureren. Om dit te doen, moet u de /etc/vsftpd/vsftpd.conf configuratiebestand. Dit kan door het configuratiebestand in de nano-editor te openen door het volgende commando in de terminal in te voeren:
$ sudo nano /etc/vsftpd/vsftpd.conf
Nu het bestand in de editor is geopend, zijn er verschillende wijzigingen die u moet aanbrengen om vsftpd op uw systeem in te stellen. Laten we ze een voor een doornemen.
1. FTP-toegang configureren
Laten we eerst de FTP-server zo configureren dat alleen de lokale gebruikers toegang hebben. Om dit te doen, moet u de richtlijnen Anonymous_enable en Local_enable in het bestand zoeken en deze bewerken zoals in de onderstaande afbeelding wordt weergegeven:
Zoals u kunt zien, moet u anoniem_enable=NO en local_enable=YES . instellen.
2. Uploaden inschakelen
Vervolgens moet u de FTP-server configureren om het uploaden en verwijderen van bestanden toe te staan.
Om dit te doen, moet u de write_enable-instructie zoeken en deze wijzigen in YES, zoals weergegeven in de afbeelding.
3. Beperk gebruikersaanmeldingen
Als u klaar bent, wilt u het totale aantal gebruikersaanmeldingen beperken i.e., u wilt dat alleen bepaalde gebruikers inloggen op uw FTP-server. Om dit te doen, zoekt u eerst deze regel in de .conf bestand - userlist_enable=JA. Voeg daarna deze twee regels toe aan het bestand:
userlist_file=/etc/vsftpd/user_list userlist_deny=NEE
Gebruik onderstaande afbeelding als referentie:
U kunt er ook voor kiezen om deze optie in te schakelen. Als u dat doet, moet u expliciet aangeven welke gebruikers u toegang wilt geven tot de FTP-server. Om de gebruikers toe te staan, moet u hun gebruikersnamen toevoegen aan het bestand /etc/vsftpd/user_list met slechts één gebruikersnaam in elke regel.
4. Passieve FTP-verbindingen instellen
Misschien wilt u ook passieve FTP-verbindingen instellen.
Daarom laten we u hier zien hoe u de minimum- en maximumbereiken van de poorten kunt specificeren door een paar regels toe te voegen aan de .conf bestand.
Het enige wat u hoeft te doen is naar het einde van het bestand te scrollen en deze twee regels toe te voegen, zoals weergegeven in de afbeelding.
pasv_min_port=30000 pasv_max_port=31000
We zullen later in deze tutorial ook bespreken hoe je het bereik in je firewall kunt openen.
5. Beveiligde verzendingen configureren met SSL/TLS
Ten slotte komt de kwestie van het beveiligen van de FTP-verbinding met behulp van SSL/TLS. Om dit te doen, moet u een SSL-certificaat hebben en uw FTP-server configureren om deze te gebruiken.
Omwille van deze tutorial zullen we echter een zelfondertekend SSL-certificaat genereren met behulp van de OpenSSL-tool en dit vervolgens gebruiken om onze FTP-transmissie te coderen.
Dus eerst moet je OpenSSL gebruiken om een nieuw SSL-certificaat te genereren. U kunt dit doen door het volgende commando in de terminal in te voeren:
sudo openssl req -x509 -nodes -days 3650 -newkey rsa:2048 -keyout /etc/vsftpd/vsftpd.pem -out /etc/vsftpd/vsftpd.pem
Het uitvoeren van de bovenstaande opdracht genereert een 2048-bits privésleutel en een zelfondertekend certificaat. Beide zijn tien jaar geldig en worden in hetzelfde bestand opgeslagen.
Nadat u uw nieuwe SSL-certificaat hebt gemaakt, opent u het vsftpd-configuratiebestand met de vorige opdracht:
sudo nano /etc/vsftpd/vsftpd.conf
Scroll naar beneden en voeg de volgende regels toe zoals weergegeven in de afbeelding:
rsa_cert_file=/etc/vsftpd/vsftpd.pem rsa_private_key_file=/etc/vsftpd/vsftpd.pem ssl_enable=JA
En dat is het. U heeft het SSL-certificaat voor uw FTP-server succesvol geconfigureerd.
6. Afronden
Als u klaar bent, controleert u het vsftpd-configuratiebestand opnieuw om te zien of alle volgende instellingen zijn zoals het is:
anoniem_enable=NEE local_enable=JA write_enable=JA local_umask=022 dirmessage_enable=JA xferlog_enable=JA connect_from_port_20=JA xferlog_std_format=JA listen=NEE listen_ipv6=JA pam_service_name=vsftpdgebruiker=vsftpd_userlist_enable=YetNO userlist_enable=YES userlist_enable=YES userlist_enable=YES userlist_enable pasv_max_port=31000 rsa_cert_file=/etc/vsftpd/vsftpd.pem rsa_private_key_file=/etc/vsftpd/vsftpd.pem ssl_enable=JA
Nadat u ervoor heeft gezorgd dat alle bovenstaande wijzigingen in het bestand zijn aangebracht, moet u het opslaan. Na het opslaan start u de vsftpd-service opnieuw met de volgende opdracht:
$ sudo systemctl herstart vsftpd
Configureer de firewall
Als u een firewall hebt ingeschakeld samen met de FTP-server, moet u de firewall zo configureren dat deze de FTP-transmissies toestaat.
Om dit te doen, moet u de volgende opdrachten in de terminal invoeren:
$ sudo firewall-cmd --permanent --add-port=20-21/tcp
De bovenstaande opdracht opent poort 21 - wat de FTP-opdrachtpoort is, en poort 20 - wat de FTP-gegevenspoort is.
U moet ook deze opdracht invoeren:
$ sudo firewall-cmd --permanent --add-port=30000-31000/tcp
Deze opdracht opent het bereik van 30000-31000 passieve poorten, dat we eerder hebben geconfigureerd.
Als u klaar bent, moet u de firewall opnieuw laden met de volgende opdracht:
$ firewall-cmd --reload
Een nieuwe FTP-gebruiker maken
Nu u uw vsftpd-server op uw CentOS-systeem hebt ingesteld, is het tijd om een nieuwe FTP-gebruiker aan te maken en deze uit te testen.
Laten we eerst een nieuwe FTP-gebruiker (newftpuser) maken met behulp van de volgende opdracht:
$ sudo adduser newftpuser
Vervolgens moet u een wachtwoord instellen voor de nieuwe gebruiker. Gebruik hiervoor deze opdracht:
$ sudo passwd newftpuser
Zorg ervoor dat het wachtwoord sterk is en langer is dan acht tekens.
Nadat u de nieuwe gebruiker hebt gemaakt, moet u deze toevoegen aan de FTP-gebruikerslijst. Dit kan door het volgende commando in de terminal in te voeren:
$ echo "newftpuser" | sudo tee -a /etc/vsftpd/user_list
Ten slotte moet u een FTP-directorystructuur maken waarin u alle juiste machtigingen instelt. Om dit te doen, moet u de volgende reeks opdrachten in de terminal invoeren:
$ 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
Inmiddels is uw FTP-server volledig functioneel en klaar voor gebruik. U kunt er nu verbinding mee maken met elke FTP-client zoals FileZilla. Zorg ervoor dat de FTP-client ook kan worden geconfigureerd om TLS-codering te gebruiken, aangezien deze wordt gebruikt om de FTP-transmissies te coderen.
Shell-toegang uitschakelen
Een ding dat u in gedachten moet houden bij het maken van een nieuwe FTP-gebruiker is dat, tenzij expliciet gespecificeerd, de gebruiker SSH-toegang tot de server heeft.
Als u shell-toegang van de gebruiker wilt uitschakelen, moet u een nieuwe shell maken die een bericht zal afdrukken waarin de gebruiker wordt geïnformeerd dat - "Dit account is beperkt tot alleen FTP-toegang.”
Om dit te doen, moet u de volgende opdracht in de terminal invoeren:
$ echo -e '#!/bin/sh\necho "Dit account is alleen beperkt tot FTP-toegang."' | sudo tee -a /bin/ftponly $ sudo chmod a+x /bin/ftponly
De bovenstaande opdracht maakt de shell /bin/ftponly aan en voert deze uit.
Vervolgens moet u de nieuwe shell toevoegen aan de lijst met geldige shells die zich in de /etc/schelpen het dossier. Dit wordt gedaan met behulp van het volgende commando:
$ echo "/bin/ftponly" | sudo tee -a /etc/shells
En als laatste stap hoef je alleen maar de gebruikersshell te wijzigen in /bin/ftponly met deze opdracht:
$ sudo usermod newftpuser -s /bin/ftponly
Ook voor toekomstige FTP-gebruikers kun je hetzelfde commando gebruiken om hun shell te wijzigen, zodat ze alleen FTP-toegang hebben.