het internet

ProFTPd FTP-server voor Linux: installatie en configuratie

Momenteel zijn er een groot aantal programma's die fungeren als FTP-servers. Le File Transfer Protocol (FTP) stelt ons in staat om eenvoudig en vooral zeer snel bestanden lokaal en op afstand over te zetten. Het FTP-protocol op zichzelf versleutelt de verzonden gegevens of authenticatie niet met gebruikersnaam en wachtwoord, maar als we: gebruik FTPES al het verkeer wordt versleuteld van de FTP-client naar de FTP-server . Vandaag zullen we u in RedesZone leren hoe u op een geavanceerde manier de . installeert en configureert proFTPd FTP-server, een van de meest complete en krachtige software die beschikbaar is voor Linux-besturingssystemen. Deze FTP-server heeft de voorkeur van veel systeembeheerders vanwege de configureerbaarheid die het ons kan bieden. In dit artikel laten we u zien hoe u het installeert en volledig configureert op een systeem waarop Ubuntu wordt uitgevoerd, zodat meerdere gebruikers er op afstand toegang toe hebben.

Belangrijkste kenmerken van proFTPd

De server proFTPd is compatibel met alle Op Linux en Unix gebaseerde besturingssystemen , dus het is ook compatibel met populaire op FreeBSD gebaseerde besturingssystemen die op grote schaal worden gebruikt voor servers. Deze FTP-server heeft een groot aantal configuratie-opties, zoals: creatie van virtuele gebruikers die alleen op de FTP-server worden gebruikt en die geen deel uitmaken van het besturingssysteem. We kunnen ook virtuele routes definiëren voor elk van deze gebruikers die we eerder hebben gemaakt, de bandbreedte van de verschillende gebruikers op applicatieniveau beperken, en we kunnen zelfs een MaskeradeAdreszodat we geen probleem hebben als we FTP PASV gebruiken, wat het meest wordt aanbevolen om problemen in NAT-omgevingen te voorkomen. Andere opties zijn de mogelijkheid van: geavanceerde regels maken zodat we van een bepaald netwerk een reeks "permissies" hebben, en van een ander netwerk hebben we andere, omdat we de FTP-server in klassen kunnen onderverdelen.

Het FTP-protocol maakt gebruik van een client-server-architectuur, het gebruikt TCP-poort 21 (die kan worden gewijzigd) voor het besturingskanaal, waar de gegevensverbinding tot stand wordt gebracht, de authenticatie van de FTP-client die verbinding maakt met de server, en ook het einde van de dataverbinding. Het besturingskanaal hangt af van hoe we de FTP-server hebben geconfigureerd, voorheen was het de actieve modus die TCP-poort 20 gebruikte om gegevens over te dragen, maar dit veroorzaakt problemen met NAT van netwerken. Momenteel wordt de passieve modus van FTP gebruikt, waar we een reeks passieve poorten hebben, op de FTP-server zullen we de passieve poorten op de router moeten openen om verbindingsproblemen te voorkomen.

Een zeer belangrijke optie vandaag is codering, zowel als het gaat om het authenticeren van clients die verbinding maken met de FTP-server, als als het gaat om het lokaal en op afstand verzenden van alle informatie. Deze proFTPd-software bevat de mogelijkheid om een FTPES-server , het zal daarom de gebruiken TLS 1.2- of TLS 1.3-protocol zodat alle informatie van de oorsprong (FTP-client) tot de bestemming (de FTP-server zelf) wordt versleuteld en geverifieerd. Om de proFTPd met FTPES te configureren, is het nodig om: digitale certificaten makenIn deze tutorial leren we je ook hoe je ze kunt maken en gebruiken, zodat al je communicatie met de FTPES-server veilig is. Dankzij dit protocol worden authenticatie en gegevensoverdracht beschermd, zowel met TLS 1.2 en TLS 1.3 in het besturingskanaal als met AES-256-GCM in het gegevenskanaal, ideaal om een ​​versnelling van hardware-encryptie te hebben en hoge overdrachtssnelheden te bereiken . Als we de prestaties vergelijken die we krijgen met een processor die AES-NI integreert in vergelijking met een processor die dat niet doet, hebben we het over prestaties die ongeveer 10 keer beter zijn, daarom is het erg belangrijk dat onze processor deze technologie integreert.

Zodra we de belangrijkste kenmerken van proFTPd kennen, gaan we kijken hoe we deze server op een Linux- of Unix-distributie kunnen installeren.

ProFTPd installeren

proFTPd is heel eenvoudig te installeren omdat het te vinden is in de softwarebronnen van alle Linux- en Unix-distributies, maar je kunt het ook downloaden van de officiële site om het later handmatig te installeren. Om het op een Linux-distributie zoals Debian of Ubuntu te installeren, installeert u eenvoudig het "proftpd" -pakket vanaf een terminal met de volgende opdracht:

sudo apt install proftpd

Tijdens de installatie zal hij ons vragen welk type installatie we willen. Bij weinig gebruik van de FTP-server kunnen we de optie " intd Om systeembronnen te besparen. Als we de FTP-server uitgebreid gaan gebruiken met meerdere gebruikers en voor een lange tijd, moeten we deze installeren als " standalone "Of" onafhankelijk ". Deze configuratie kan later worden gewijzigd, maar we raden u aan om "standalone" te selecteren, omdat het als een onafhankelijke server zal werken en bij veel verkeer beter voor u zal werken.

We selecteren de optie die het beste bij onze behoeften past en voltooien de serverinstallatie. Net als bij andere programma's in Linux, is het niet nodig om de computer of de server opnieuw op te starten, we kunnen er direct mee aan de slag.

Start, stop, herstart en laad het proFTPd-proces opnieuw

Als u het proFTPd-proces moet starten, stoppen of herstarten en u gebruik typisch SysVinit-systeem , kunt u de volgende opdrachten uitvoeren om alle acties uit te voeren.

Om de proFTPD-server te starten:

/etc/init.d/proftpd start

of je kunt ook gebruiken:

service proftpd start

Om de proFTPD-server te stoppen:

/etc/init.d/proftpd stop

of je kunt ook gebruiken:

service proftpd stop

Als u de proFTPd-server opnieuw wilt starten, kunt u het volgende gebruiken:

/etc/init.d/proftpd restart

of je kunt ook gebruiken:

service proftpd restart

Als u het proFTPd-proces moet starten, stoppen of herstarten en u gebruik systemd systeem , kunt u de volgende opdrachten uitvoeren om alle acties uit te voeren.

Om de proFTPD-server te starten:

systemctl start proftpd

of je kunt ook gebruiken:

systemctl start proftpd.service

Om de proFTPD-server te stoppen:

systemctl stop proftpd

of je kunt ook gebruiken:

systemctl stop proftpd.service

Als u de proFTPd-server opnieuw wilt starten, kunt u het volgende gebruiken:

systemctl restartproftpd

of je kunt ook gebruiken:

systemctl restart proftpd.service

Wanneer zouden we een "reload" moeten doen om de proFTPd-service opnieuw te laden? Wanneer we een wijziging aanbrengen in de configuratie, zodat deze automatisch wordt toegepast. In het geval dat u SysVinit gebruikt om het "opnieuw laden" uit te voeren, moet u de volgende elementen plaatsen:

/etc/init.d/proftpd reload

of je kunt ook gebruiken:

service proftpd reload

In het geval van het gebruik van Systemd, moet u het volgende plaatsen:

systemctl reload proftpd

of je kunt ook gebruiken:

systemctl reload proftpd.service

Als u ten slotte de huidige status van de proFTPd-server wilt zien, kunt u de volgende opdrachten uitvoeren, afhankelijk van of u SysVinit of Systemd gebruikt, moet u de volgende opdrachten gebruiken. Als u SysVinit gebruikt, moet u het volgende gebruiken:

service proftpd status

of

/etc/init.d/proftpd status

en als u Systemd gebruikt:

systemctl status proftpd

of

systemctl status proftpd.service

Als u eenmaal weet hoe u de configuratie moet starten, stoppen, herstellen, opnieuw laden en de status van proFTPd-software ziet, laten we eens kijken hoe we deze kunnen configureren met systeemstart.

Configureer proFTPd bij het opstarten van het systeem

Wanneer we proFTPd installeren, zullen we het automatisch instellen bij het opstarten, dat wil zeggen, wanneer het systeem opstart, start het proFTPd-proces zodat we verbinding kunnen maken. Als dat niet gebeurt, kunnen we het altijd handmatig activeren door de volgende opdrachten uit te voeren:

Als u SysVinit gebruikt:

chkconfig proftpd on

Als u systemd gebruikt:

systemctl enable proftpd
systemctl enable proftpd.service

Zodra we weten hoe we het met het systeem moeten starten, zullen we elk van de proFTPd-instellingen zien, zodat u alles tot in detail kunt configureren.

ProFTPd-configuratie

Het hoofdconfiguratiebestand van proFTPd bevindt zich in: /etc/proftpd/proftpd.conf . Van daaruit moeten we de meeste aspecten van onze FTP-server configureren. Het eerste dat we moeten doen, is een map instellen als de thuismap voor alle FTP-gebruikers. Om dit te doen, openen we het vorige configuratiebestand met onze favoriete teksteditor:

sudo gedit /etc/proftpd/proftpd.conf

Eenmaal daar zoeken we naar de becommentarieerde regel "DefaultRoot" en verwijderen we het commentaar door de hash #. Dit stelt ons in staat dat wanneer elke gebruiker zijn FTP-account opent, hij rechtstreeks toegang heeft tot zijn "home"-map.

Als we willen dat alle gebruikers die inloggen naar dezelfde standaardmap gaan, moeten we de DefaultRoot-instelling wijzigen en het pad toevoegen waarnaar we willen dat ze gaan. In ons geval hebben we bijvoorbeeld een map gemaakt met de naam "proftpd" in / home / en we willen dat alle gebruikers er standaard toegang toe hebben. Het configuratiebestand ziet er als volgt uit:

We kunnen ook alle gebruikers naar een standaardmap laten gaan (zoals in de vorige stap), behalve één gebruiker die we naar een andere willen gaan of alleen beheerdersrechten hebben en toegang hebben tot de hele schijf.

Hiervoor moeten we de volgende aspecten aanpassen:

De parameter DefaultRoot heeft de volgende structuur:

DefaultRoot [directorio] [grupo de usuarios que tendrán ese directorio por defecto] [Grupo de usuarios a los que no se les aplicará ese directorio]

Dat wil zeggen dat we het voorbeeld gaan geven van het hebben van 2 gebruikers, A en B. A heeft alleen toegang tot zijn directory, terwijl B toegang heeft tot de hele harde schijf. De volgende regels moeten worden toegevoegd:

DefaultRoot /home/ftp A

DefaultRoot / B

Op deze manier heeft gebruiker B, wanneer hij toegang heeft tot de server, volledige controle over alle bestanden op de schijf, terwijl als A toegang heeft, hij alleen zijn map kan beheren.

Andere interessante parameters om te configureren zijn:

  • ServerName: hiermee kunt u een naam voor de server instellen.
  • AccessGrantMsg: welkomstbericht. (U moet het handmatig toevoegen aan het einde van het bestand).
  • AccessDenyMsg: Foutmelding bij opstarten. (U moet het handmatig toevoegen aan het einde van het bestand).

Vervolgens zullen we de server opnieuw opstarten om de aangebrachte wijzigingen door te voeren door te typen:

sudo /etc/init.d/proftpd restart

We zullen controleren of de server voor ons werkt. Hiervoor gebruiken we een client zoals FileZilla en maken we verbinding met ons account.

Gebruikers en wachtwoorden aanmaken voor FTP

Het proces voor het aanmaken van gebruikers is hetzelfde als het aanmaken ervan op het systeem, aangezien proftpd standaard systeemgebruikers gebruikt. U moet de volgende parameters in een terminal typen:

sudo adduser usuario

(we creëren de gebruiker)

Vervolgens stellen we het wachtwoord ervoor in:

sudo passwd usuario

(we creëren het wachtwoord voor de gebruiker "gebruiker")

Vanaf nu kan "gebruiker" verbinding maken met de FTP en heeft hij standaard toegang tot de map die is opgegeven in DefaultRoot.

Gebruikers toestaan ​​en weigeren

We kunnen op een zeer eenvoudige manier bepalen welke gebruikers wel en niet verbinding kunnen maken met onze server. Om dit te doen, openen we het configuratiebestand en voegen aan het einde het volgende toe:

<Limit LOGIN>

AllowUser ruvelro

DenyAll

</Limit>

De andere parameters die we hier kunnen gebruiken zijn:

  • AllowUser: Hiermee kunnen we een specifieke gebruiker toestaan.
  • DenyUser: we blokkeren de toegang voor een specifieke gebruiker.
  • DenyAll: we blokkeren de toegang voor alle gebruikers, behalve die gespecificeerd met AllowUser.
  • AllowAll: hiermee kunnen gebruikers als "anoniem" verbinding maken met FTP.

Als we bijvoorbeeld anonieme verbindingen met onze FTP willen toestaan, moeten we de parameter AllowAll toevoegen aan de vorige groep, en deze als volgt laten staan:

<Limit LOGIN>

AllowUser ruvelro

AllowAll

</Limit>

Om een ​​nieuwe gebruiker toe te voegen, moeten we een gebruikersaccount aanmaken in onze Ubuntu en toegang krijgen tot de FTP-server met uw accountgegevens.

Andere handige commando's voor proFTPd

We kunnen een verbindings- en activiteitenlogboek opvragen met de volgende parameter:

sudo cat /var/log/proftpd/proftpd.log

We kunnen de gebruikers die op onze FTP-server zijn aangesloten in realtime raadplegen met de volgende opdrachten:

ftpwho
ftptop

Configureer FTPES op de proFTPd-server voor beveiliging

FTPES staat bekend als Expliciete FTP , stelt dit protocol ons in staat om verbinding te maken met de TCP-poort 21 van de FTP-server, en voordat we authenticeren en beginnen met het overdragen van informatie, een TLS 1.2 of TLS 1.3 laag is toegevoegd om alle informatie te beschermen. Daarom zullen we met FTPES de populaire poort 21 blijven gebruiken, of welke poort je ook wilt gebruiken. We hebben ook de mogelijkheid om alleen FTPES-verbindingen toestaan , en laat FTP-verbindingen weg, zodat authenticatie en bestandsoverdracht veilig zijn. Vanwege het gebruik van het TLS / SSL-protocol, moeten we een RSA- of vergelijkbaar certificaat op de server configureren, samen met de openbare sleutel en de privésleutel, om de FTP-service correct te kunnen configureren.

Het eerste dat we moeten doen, is de richtlijn in het hoofdconfiguratiebestand van proFTPd activeren, waarbij het gedeelte van "Include /etc/proftpd/tls.conf" wordt verwijderd, zoals u hieronder kunt zien:

Nu gaan we het digitale RSA-certificaat maken, we hebben zowel de openbare sleutel als de privésleutel nodig die het genereert, zodat de clients correct verbinding kunnen maken met de proFTPd-server met FTPES. ProFTPd zelf bevat een tool die het proces voor het maken van certificaten aanzienlijk automatiseert, deze tool heet proftpd-gencert, en het is heel gemakkelijk te gebruiken:

root@debian-vm:/home/bron# proftpd-gencert
Generating a RSA private key
.............................................................................................................+++++
...............+++++
writing new private key to '/etc/ssl/private/proftpd.key'
-----
You are about to be asked to enter information that will be incorporated
into your certificate request.
What you are about to enter is what is called a Distinguished Name or a DN.
There are quite a few fields but you can leave some blank
For some fields there will be a default value,
If you enter '.', the field will be left blank.
-----
Country Name (2 letter code) [AU]:ES
State or Province Name (full name) [Some-State]:RedesZone
Locality Name (eg, city) []:RedesZone
Organization Name (eg, company) [Internet Widgits Pty Ltd]:RZ
Organizational Unit Name (eg, section) []:RZ
Common Name (e.g. server FQDN or YOUR name) []:RedesZone.NET
Email Address []:webmaster

Use the following information in your ProFTPD configuration:

TLSRSACertificateFile /etc/ssl/certs/proftpd.crt
TLSRSACertificateKeyFile /etc/ssl/private/proftpd.key

See /etc/proftpd/tls.conf for suggested TLS related configuration
items and include that file in your /etc/proftpd/proftpd.conf file.

root@debian-vm:/home/bron#

Maar we laten u zien hoe u dit "handmatig" doet om de gewenste RSA-sleutellengte te selecteren. Om dit te doen, moeten we de volgende opdracht uitvoeren:

openssl genrsa -out /etc/ssl/private/proftpd.key 4096

Deze opdracht genereert de privésleutel met RSA 4096 bits, later zullen we het openbare digitale certificaat moeten genereren dat met de clients zal worden gedeeld:

openssl req -new -x509 -days 1460 -key /etc/ssl/private/proftpd.key -out /etc/ssl/certs/proftpd.crt

We geven aan dat we willen dat het over 1460 dagen verloopt, en hier zullen we de privésleutel moeten importeren en vervolgens het proftpd.crt-certificaat naar deze map moeten exporteren. Het proces dat we hebben doorlopen is als volgt, zoals je kunt zien in deze map:

root@debian-vm:/home/bron# openssl genrsa -out /etc/ssl/private/proftpd.key 4096
Generating RSA private key, 4096 bit long modulus (2 primes)
...................................................................................................................................................................++++
..................................................++++
e is 65537 (0x010001)
root@debian-vm:/home/bron# openssl req -new -x509 -days 1460 -key /etc/ssl/private/proftpd.key -out /etc/ssl/certs/proftpd.crt
You are about to be asked to enter information that will be incorporated
into your certificate request.
What you are about to enter is what is called a Distinguished Name or a DN.
There are quite a few fields but you can leave some blank
For some fields there will be a default value,
If you enter '.', the field will be left blank.
-----
Country Name (2 letter code) [AU]:ES
State or Province Name (full name) [Some-State]:RedesZone
Locality Name (eg, city) []:RZ
Organization Name (eg, company) [Internet Widgits Pty Ltd]:RZ
Organizational Unit Name (eg, section) []:RZ
Common Name (e.g. server FQDN or YOUR name) []:RZ
Email Address []:webmaster
root@debian-vm:/home/bron#

Zodra we dat hebben gedaan, kunnen we het configuratiebestand "etc / proftpd / tls.conf" bewerken, dat deze standaardconfiguratie heeft:

# Proftpd sample configuration for FTPS connections.
#
# Note that FTPS impose some limitations in NAT traversing.
# See http://www.castaglia.org/proftpd/doc/contrib/ProFTPD-mini-HOWTO-TLS.html
# for more information.
##TLSEngine on
#TLSLog /var/log/proftpd/tls.log
#TLSProtocol SSLv23
#
# Server SSL certificate. You can generate a self-signed certificate using
# a command like:
#
# openssl req -x509 -newkey rsa:1024
# -keyout /etc/ssl/private/proftpd.key -out /etc/ssl/certs/proftpd.crt
# -nodes -days 365
#
# The proftpd.key file must be readable by root only. The other file can be
# readable by anyone.
#
# chmod 0600 /etc/ssl/private/proftpd.key
# chmod 0640 /etc/ssl/private/proftpd.key
#
#TLSRSACertificateFile /etc/ssl/certs/proftpd.crt
#TLSRSACertificateKeyFile /etc/ssl/private/proftpd.key
#
# CA the server trusts...
#TLSCACertificateFile /etc/ssl/certs/CA.pem
# ...or avoid CA cert and be verbose
#TLSOptions NoCertRequest EnableDiags
# ... or the same with relaxed session use for some clients (e.g. FireFtp)
#TLSOptions NoCertRequest EnableDiags NoSessionReuseRequired
#
#
# Per default drop connection if client tries to start a renegotiate
# This is a fix for CVE-2009-3555 but could break some clients.
#
#TLSOptions AllowClientRenegotiations
#
# Authenticate clients that want to use FTP over TLS?
#
#TLSVerifyClient off
#
# Are clients required to use FTP over TLS when talking to this server?
#
#TLSRequired on
#
# Allow SSL/TLS renegotiations when the client requests them, but
# do not force the renegotations. Some clients do not support
# SSL/TLS renegotiations; when mod_tls forces a renegotiation, these
# clients will close the data connection, or there will be a timeout
# on an idle data connection.
#
#TLSRenegotiate required off

Het configuratiebestand dat we nodig hebben in /etc/proftpd/tls.conf is als volgt:

TLSE-engine aan

TLSLog /var/ftpd/tls.log

TLS-protocol TLSv1.2 TLSv1.3

TLSVereist uitgeschakeld

TLSRSACertificateFile /etc/ssl/certs/proftpd.crt

TLSRSACertificateKeyFile /etc/ssl/certs/proftpd.key

TLSVerifyClient uitgeschakeld

TLS Opnieuw onderhandelen Geen

We slaan het bestand op en gaan verder met het herstarten van de proFTPd-service met wat we eerder hebben geleerd. Wanneer we verbinding gaan maken, zullen we zien dat we efficiënt verbinding maken met TLS 1.3 met veilige sleuteluitwisseling en met AES-256-GCM-codering die ons de beste beveiliging en prestaties zal bieden.

U kunt ook certificaten maken op basis van ECC, aangezien proFTPd hiervoor "TLSECCertificateFile" en ook "TLSECCertificateKeyFile" -richtlijnen integreert. U kunt alle beschikbare opties op FTPES en TLS in proFTPd zien op de mod_tls officiële website .

Zoals we kunnen zien, is proFTPd een zeer krachtige en eenvoudig te configureren FTP-server. Met ProFTPd zullen we bijvoorbeeld geen problemen hebben wanneer we de server met meerdere gebruikers tegelijk moeten gebruiken of wanneer we bestanden met meerdere gebruikers tegelijk moeten delen. Dankzij de geavanceerde configuratie-opties hebben we de mogelijkheid om alle parameters van de FTP-server in detail in te stellen, deze software is krachtiger en geavanceerder dan vsftpd, een andere van de typische software om een ​​FTP-server op Linux-systemen te creëren.

Proftpd is ook compatibel met FreeBSD en afgeleide besturingssystemen, om deze reden hebben NAS-servergeoriënteerde besturingssystemen zoals XigmaNAS of TrueNAS deze software om te functioneren als een FTP-server.

Vergelijkbare items

Laat een reactie achter

Uw e-mailadres wordt niet gepubliceerd. Verplichte velden zijn gemarkeerd met *

Terug naar boven knop