GNU/Linux >> LINUX-Kenntnisse >  >> Cent OS

Sicheres ProFTPD-Server-Setup auf CentOS 7 mit TLS

Ziel

Das Ziel besteht darin, zunächst einen einfachen ProFTPD-Server auf CentOS 7 zu konfigurieren. Sobald wir einen grundlegenden FTP-Server eingerichtet haben, werden wir den passiven FTP-Modus hinzufügen und die Sicherheit erhöhen, indem wir Transport Layer Security ( TLS ) hinzufügen.

Zuletzt fügen wir eine optionale anonyme Konfiguration hinzu, damit sich anonyme Benutzer ohne Benutzername und Passwort beim FTP-Server anmelden können.

Betriebssystem- und Softwareversionen

  • Betriebssystem: – CentOS Linux-Version 7.5.1804
  • Software: – ProFTPD-Version 1.3.5e

Anforderungen

Privilegierter Zugriff auf Ihr Ubuntu-System als root oder über sudo Befehl ist erforderlich.

Schwierigkeit

MITTEL

Konventionen

  • # – erfordert, dass bestimmte Linux-Befehle mit Root-Rechten ausgeführt werden, entweder direkt als Root-Benutzer oder durch Verwendung von sudo Befehl
  • $ – gegebene Linux-Befehle, die als normaler nicht-privilegierter Benutzer ausgeführt werden sollen

Anleitung

Grundlegende FTP-Konfiguration

Beginnen wir mit der grundlegenden Installation und Konfiguration des ProFTP-Servers. Dies umfasst die Installation, Definition von Firewall-Regeln und Client-Tests.

Server-Setup

Der ProFTPD-FTP-Server ist Teil eines EPEL-Repositorys. Daher besteht der erste Schritt darin, das EPEL-Repository zu aktivieren und dann den ProFTPD-Server zu installieren:

# yum install epel-release
# yum install proftpd

Starten Sie als nächstes den ProFTPD-Server und bestätigen Sie den korrekten Start, indem Sie nach einem geöffneten Port 21 suchen

# service proftpd start
# ss -nlt

Als nächstes müssen wir ein Ganzes in die Firewall des Servers stecken, um eingehenden Datenverkehr auf Port 21 zuzulassen

# firewall-cmd --add-port=21/tcp --permanent
# firewall-cmd --reload 

Zum Bestätigen eines geöffneten eingehenden Ports 21 ausführen:

# firewall-cmd --list-ports

Basis-FTP-Server mit ProFTPD unter CentOS 7 konfigurieren

In diesem Stadium kann sich jeder vorhandene Systembenutzer per FTP beim neu konfigurierten ProFTPD-Server anmelden. Optional können wir einen neuen Benutzer erstellen, z. lubos mit einem Zugriff auf das Verzeichnis /var/ftp-share :

# useradd lubos -s /sbin/nologin -d /var/ftp-share
# passwd lubos
# chmod -R 750 /var/ftp-share
# setsebool -P allow_ftpd_full_access=1

Client-Verbindung

An diesem Punkt sollten wir in der Lage sein, eine FTP-Verbindung von einem Remote-Client-Computer herzustellen. Der einfachste Test ist die Verwendung von ftp Befehl.

Da unser ProFTPD-Server über ftp.linuxconfig.org aufgelöst werden kann Hostname und Benutzer lubos ist vorhanden ausführen:

$ ftp ftp.linuxconfig.org
Connected to ftp.linuxconfig.org.
220 FTP Server ready.
Name (ftp.linuxconfig.org:lubos): lubos
331 Password required for lubos
Password:
230 User lubos logged in
Remote system type is UNIX.
Using binary mode to transfer files.
ftp> 
HINWEIS:Bitte beachten Sie, dass wir derzeit nur „aktive FTP-Verbindungen“ herstellen können! Jeder Versuch, eine „passive FTP-Verbindung“ herzustellen, schlägt fehl.

Passiv-Modus-FTP-Konfiguration

Server-Setup

Um unserem FTP-Server zu ermöglichen, auch passive FTP-Verbindungen zu akzeptieren, führen Sie die folgenden Befehle aus, um passive Verbindungen auf dem IANA-registrierten ephemeren Portbereich zu aktivieren:

echo "PassivePorts 49152 65534" >> /etc/proftpd.conf

Starten Sie den ProFTPD-Server neu:

# service proftpd restart

Öffnen Sie die Firewall für Ports im Bereich 49152-65534 :

# firewall-cmd --add-port=49152-65534/tcp --permanent
# firewall-cmd --reload

Bestätigen Sie, dass die Ports korrekt geöffnet wurden:

# firewall-cmd --list-ports

Konfigurieren Sie den ProFTPD-Server, um passive FTP-Verbindungen zu empfangen.

FTP-Client-Verbindung

Wie zuvor können wir jetzt die passive FTP-Verbindung testen, indem wir den ftp verwenden Befehl. Stellen Sie sicher, dass Sie diesmal den -p verwenden Option wie unten gezeigt:

$ ftp -p ftp.linuxconfig.org
Connected to ftp.linuxconfig.org.
220 FTP Server ready.
Name (ftp.linuxconfig.org:lubos): lubos
331 Password required for lubos
Password:
230 User lubos logged in
Remote system type is UNIX.
Using binary mode to transfer files.
ftp> ls
227 Entering Passive Mode (192,168,1,111,209,252).
150 Opening ASCII mode data connection for file list
226 Transfer complete
ftp> 

Alles funktioniert wie erwartet!

Sicherer FTP-Server mit TLS

Server-Setup

Falls Sie vorhaben, Ihren FTP-Server außerhalb Ihres lokalen Netzwerks zu verwenden, wird empfohlen, eine Art Verschlüsselung zu verwenden. Glücklicherweise ist die Konfiguration von ProFTPD mit TLS extrem einfach. Installieren Sie zuerst, falls noch nicht vorhanden, den openssl Paket:

# yum install openssl

Erstellen Sie als Nächstes ein Zertifikat mit dem folgenden Befehl. Der einzige erforderliche Wert ist Common Name das ist der Hostname Ihres FTP-Servers :

# openssl req -x509 -nodes -newkey rsa:1024 -keyout /etc/pki/tls/certs/proftpd.pem -out /etc/pki/tls/certs/proftpd.pem
Generating a 1024 bit RSA private key
...++++++
.......++++++
writing new private key to '/etc/pki/tls/certs/proftpd.pem'
-----
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) [XX]:
State or Province Name (full name) []:
Locality Name (eg, city) [Default City]:
Organization Name (eg, company) [Default Company Ltd]:
Organizational Unit Name (eg, section) []:
Common Name (eg, your name or your server's hostname) []:ftp.linuxconfig.org
Email Address []:

Öffnen Sie als Nächstes als Root-Benutzer /etc/sysconfig/proftpd Verwenden Sie Ihren bevorzugten Texteditor und ändern Sie:

FROM:
PROFTPD_OPTIONS=""
TO:
PROFTPD_OPTIONS="-DTLS"

Sobald Sie fertig sind, starten Sie den ProFTPD-Server neu:

# service proftpd restart

Clientverbindung

Dieses Mal verwenden wir FileZilla als unseren FTP-Testclient:

Erstellen Sie eine neue FTP-Verbindung. Stellen Sie zum Testen von TLS sicher, dass Sie eine korrekte Encryption auswählen und Logon Type .

Der FTP-Client warnt Sie vor dem Unknown Certificate . Aktivieren Sie Always Trust und drücken Sie OK .

TLS-verschlüsselte Verbindung erfolgreich.

Anonymen FTP-Benutzer konfigurieren

Server-Setup

Um anonymen Benutzern die Anmeldung beim FTP-Server zu ermöglichen, öffnen Sie /etc/sysconfig/proftpd Verwenden Sie Ihren bevorzugten Texteditor und ändern Sie:

FROM:
PROFTPD_OPTIONS="-DTLS"
TO:
PROFTPD_OPTIONS="-DTLS -DANONYMOUS_FTP"

Oben gehen wir davon aus, dass Sie TLS bereits zuvor aktiviert haben. Wenn Sie fertig sind, starten Sie den FTP-Server neu:

# service proftpd restart

Clientverbindung

Verwenden von FileZilla als unseren FTP-Testclient:

Als Logon Type Wählen Sie Anonymous

Anonyme FTP-Verbindung erfolgreich.

Anhang

FTP-Zugriff des Benutzers sperren/verweigern

Falls Sie den Zugriff auf den FTP-Server eines Systembenutzers sperren/verweigern müssen, fügen Sie seinen/ihren Benutzernamen in /etc/ftpusers ein . Ein Benutzername pro Zeile. Dadurch schlägt jeder Benutzerversuch, sich anzumelden, mit 530 fehl Anmeldefehler:

$ ftp ftp.linuxconfig.org
Connected to ftp.linuxconfig.org.
220 FTP Server ready.
Name (ftp.linuxconfig.org:lubos): lubos
331 Password required for lubos
Password:
530 Login incorrect.
Login failed.
Remote system type is UNIX.
Using binary mode to transfer files.
ftp>

Cent OS
  1. So installieren Sie einen FTP-Server unter CentOS 7 mit VSFTPD

  2. So richten Sie einen FTP-Server mit VSFTPD unter Ubuntu 20.04 ein

  3. ProFTPD-Server

  4. Richten Sie den IPSec-VPN-Server mit Libreswan auf CentOS 8 ein

  5. So installieren Sie einen FTP-Server unter CentOS 7

So installieren Sie den vsftpd-FTP-Server mit SSL/TLS unter CentOS 8

So installieren Sie ProFTPD mit TLS auf CentOS 7.2

So sichern Sie den CentOS 7-Server mit ModSecurity

So richten Sie einen zentralen Sicherungsserver mit Amanda unter CentOS 7 ein

So richten Sie einen FTP-Server unter CentOS ein und konfigurieren ihn

So richten Sie einen FTP-Server mit ProFTPD in Ubuntu 18.04 ein