Zoeken op website

Veilige ProFTPD-verbindingen met behulp van het TLS/SSL-protocol op RHEL/CentOS 7


Door zijn aard is het FTP-protocol ontworpen als een onveilig protocol en worden alle gegevens en wachtwoorden in platte tekst overgedragen, waardoor de taak van een derde partij zeer eenvoudig is om alle FTP-client-server-transacties te onderscheppen, vooral gebruikersnamen en wachtwoorden die worden gebruikt in het authenticatieproces.

Vereisten

  1. ProFTPD-server installeren op RHEL/CentOS 7
  2. Anonieme account inschakelen voor Proftpd Server in RHEL/CentOS 7

In deze tutorial wordt uitgelegd hoe u FTP-communicatie op de ProFTPd-server in CentOS/RHEL 7 kunt beveiligen en coderen , met behulp van TLS (Transport Layer Security) met expliciete FTPS-extensie (denk aan FTPS als wat HTTPS is voor HTTP-protocol).

Stap 1: Maak een Proftpd TLS-moduleconfiguratiebestand

1. Zoals besproken in de vorige Proftpd-tutorial over Anonymous-account, zal deze gids ook dezelfde aanpak gebruiken voor het beheren van toekomstige Proftpd-configuratiebestanden als modules, met behulp van enabled_mod en < b>disabled_mod mappen, die alle uitgebreide mogelijkheden van de server zullen hosten.

Maak dus een nieuw bestand met uw favoriete teksteditor met de naam tls.conf in het disabled_mod Proftpd-pad en voeg de volgende richtlijnen toe.

nano /etc/proftpd/disabled_mod/tls.conf

Voeg het volgende TLS-bestandsconfiguratiefragment toe.

<IfModule mod_tls.c>
TLSEngine                               on
TLSLog                                  /var/log/proftpd/tls.log
TLSProtocol                             SSLv23
 
TLSRSACertificateFile                   /etc/ssl/certs/proftpd.crt
TLSRSACertificateKeyFile                /etc/ssl/private/proftpd.key

#TLSCACertificateFile                                     /etc/ssl/certs/CA.pem
TLSOptions                      NoCertRequest EnableDiags NoSessionReuseRequired
TLSVerifyClient                         off
TLSRequired                             on
TLSRenegotiate                          required on
</IfModule>

2. Als u browsers of FTP-clients gebruikt die geen TLS-verbindingen ondersteunen, plaats dan een commentaar op de regel TLSRequired on om TLS- en niet-TLS-verbindingen tegelijkertijd toe te staan en vermijd de foutmelding zoals in de onderstaande schermafbeelding.

Stap 2: Maak SSL-certificaatbestanden voor TLS

3. Nadat u het configuratiebestand van de TLS-module heeft gemaakt. waarmee FTP via TLS op Proftpd mogelijk wordt gemaakt, moet u een SSL-certificaat en -sleutel genereren om beveiligde communicatie via de ProFTPD-server te kunnen gebruiken met behulp van het OpenSSL-pakket.

yum install openssl

U kunt één enkele lange opdracht gebruiken om SSL-certificaat- en sleutelparen te genereren, maar om de zaken te vereenvoudigen kunt u een eenvoudig bash-script maken dat SSL-paren met de door u gewenste naam genereert en de juiste machtigingen voor het sleutelbestand toewijst.

Maak een bash-bestand met de naam proftpd_gen_ssl op /usr/local/bin/ of op een ander uitvoerbaar systeempad (gedefinieerd door de variabele ` PATH ).

nano /usr/local/bin/proftpd_gen_ssl

Voeg er de volgende inhoud aan toe.

#!/bin/bash
echo -e "\nPlease enter a name for your SSL Certificate and Key pairs:"
read name
 openssl req -x509 -newkey rsa:1024 \
          -keyout /etc/ssl/private/$name.key -out /etc/ssl/certs/$name.crt \
          -nodes -days 365\

 chmod 0600 /etc/ssl/private/$name.key

4. Nadat u het bovenstaande bestand heeft gemaakt, wijst u het uitvoeringsrechten toe, zorgt u ervoor dat de map /etc/ssl/private bestaat en voert u het script uit om een SSL-certificaat en sleutel te maken paren.

chmod +x /usr/local/bin/proftpd_gen_ssl
mkdir -p /etc/ssl/private
proftpd_gen_ssl

Geef het SSL-certificaat de vereiste informatie op. Dit spreekt voor zich, maar let op de Common Name die overeenkomt met de Fully Qualified Domain Name van uw host – FQDN b>.

Stap 3: Schakel TLS in op de ProFTPD-server

5. Omdat het eerder gemaakte TLS-configuratiebestand al naar het juiste SSL-certificaat en sleutelbestand verwijst, hoeft u alleen nog maar de TLS-module te activeren door een symbolische link te maken van tls.conf-bestand naar de map enabled-mod en herstart de ProFTPD-daemon om de wijzigingen toe te passen.

ln -s /etc/proftpd/disabled_mod/tls.conf  /etc/proftpd/enabled_mod/
systemctl restart proftpd

6. Om de TLS-module uit te schakelen, verwijdert u de symlink tls.conf uit de directory enabled_mod en start u de ProFTPD-server opnieuw op om de wijzigingen toe te passen.

rm /etc/proftpd/enabled_mod/tls.conf
systemctl restart proftpd

Stap 4: Open Firewall om FTP via TLS-communicatie toe te staan

7. Om ervoor te zorgen dat clients toegang krijgen tot ProFTPD en overdrachtsbestanden kunnen beveiligen in de Passieve modus, moet u het volledige poortbereik tussen 1024 en openen 65534 op RHEL/CentOS Firewall, met behulp van de volgende opdrachten.

firewall-cmd --add-port=1024-65534/tcp  
firewall-cmd --add-port=1024-65534/tcp --permanent
firewall-cmd --list-ports
firewall-cmd --list-services
firewall-cmd --reload

Dat is het. Nu is uw systeem klaar om FTP-communicatie via TLS vanaf een client te accepteren.

Stap 5: Toegang tot ProFTPD via TLS vanaf clients

8. Webbrowsers hebben doorgaans geen ingebouwde ondersteuning voor het FTP via TLS-protocol, dus alle transacties worden afgeleverd via niet-gecodeerde FTP. Een van de beste FTP-clients is FileZilla, dat volledig Open Source is en op vrijwel alle grote besturingssystemen kan draaien.

Om toegang te krijgen tot FTP via TLS vanuit FileZilla, opent u Site Manager, kiest u FTP bij Protocol en Expliciete FTP via TLS vereisen bij Versleuteling vervolgkeuzemenu, selecteer Aanmeldingstype als Normaal, voer uw FTP-inloggegevens in en klik op Verbinden om te communiceren met de server.

9. Als dit de eerste keer is dat u verbinding maakt met ProFTPD Server, zou er een pop-up met het nieuwe certificaat moeten verschijnen, vink het vakje aan met de tekst Certificaat altijd vertrouwen voor de toekomst sessies en druk op OK om het certificaat te accepteren en te authenticeren bij de ProFTPD-server.

Als u van plan bent andere clients dan FileZilla te gebruiken om veilig toegang te krijgen tot FTP-bronnen, zorg er dan voor dat deze het FTP via TLS-protocol ondersteunen. Enkele goede voorbeelden van FTP-clients die FTPS kunnen spreken zijn WinSCP voor Windows-platforms en gFTP of LFTP (opdrachtregel) voor NIX.