Dieses Dokument beschreibt die Installation und Konfiguration von ProFTPD in CentOS 7.0 Server. ProFTPD ist ein FTP-Daemon für Unix und unixähnliche Betriebssysteme. ProFTPD wird unter der GNU Public License (GPL) entwickelt, veröffentlicht und vertrieben, die es im Grunde als freie Software etabliert, was bedeutet, dass es verkauft, lizenziert und anderweitig auf jede gewünschte Weise manipuliert werden kann, solange der vollständige Quellcode mitgeliefert wird ProFTPD-Pakete oder wird von allen Websites zur Verfügung gestellt, die vorkompilierte Binärdateien verteilen. Die Software kann jederzeit von jedem modifiziert werden, solange alle abgeleiteten Werke ebenfalls unter der GNU Public License lizenziert sind.
1 Vorbemerkung
Dieses Tutorial basiert auf dem CentOS 7.0-Server, daher sollten Sie eine grundlegende CentOS 7.0-Serverinstallation einrichten, bevor Sie mit diesem Tutorial fortfahren. Das System sollte eine statische IP-Adresse haben. Ich verwende in diesem Tutorial 192.168.0.100 als IP-Adresse und server1.example.com als Hostnamen.
2 Installieren Sie ProFTPD
2.1 Installation:
Aktivieren Sie dazu EPEL wie folgt:
rpm -ivh http://dl.fedoraproject.org/pub/epel/7/x86_64/e/epel-release-7-2.noarch.rpm
Zuerst installieren wir ProFTPD und OpenSSL wie folgt:
yum install -y proftpd openssl proftpd-utils
Wir müssen die Dienste starten
systemctl start proftpd.service
systemctl enable proftpd.service
Zusätzlich in CentOS 7.0 müssen wir Firewall-cmd für den FTP-Dienst wie folgt konfigurieren:
firewall-cmd --add-service=ftp --permanent
firewall-cmd --reload
Wir können die ProFTPD-Version wie folgt überprüfen:
proftpd -v[[email protected] ~]# proftpd -v
ProFTPD Version 1.3.5
[[email protected] ~]#
2.2 Erstellen von ProFTPD-Benutzern
Dazu werde ich eine Gruppe ftpgroup und einen Benutzer srijan für ProFTPD erstellen. Ich werde den Benutzer srijan mit Home-Verzeichnis als /ftpshare
einschränkengroupadd ftpgroup
Als nächstes werde ich den Benutzer srijan in ftpgroup hinzufügen:
useradd -G ftpgroup srijan -s /sbin/nologin -d /ftpshare
passwd srijan
[[email protected] ~]# passwd srijan
Changing password for user srijan.
New password: <--ftppassword
Retype new password: <--ftppassword
passwd: all authentication tokens updated successfully.
[[email protected] ~]#
Als nächstes müssen wir das Verzeichnis vor dem Entfernen und Umbenennen seines Inhalts durch einen beliebigen Benutzer schützen, also werden wir die Verzeichnisberechtigungen wie folgt ändern:
chmod -R 1777 /ftpshare/
Jetzt sind wir bereit für die ProFTPD-Verbindung
Jetzt können wir uns mit dem Benutzer srijan und dem Passwort unter ftp://192.168.0.100
anmelden
3 Aktivieren von TLS in ProFTPD
Um TLS in ProFTPD zu aktivieren, öffnen Sie /etc/proftpd/proftpd.conf, bevor Sie die Datei bearbeiten. Es ist besser, die Originaldatei zu sichern und dann die Datei wie unten gezeigt zu bearbeiten:
cp /etc/proftpd.conf /etc/proftpd.conf.bak
nano /etc/proftpd.conf
Geben Sie die Einträge wie gezeigt ein
[...]
DefaultRoot ~ !adm PassivePorts 6000 6100
[...]
#<IfDefine TLS> TLSEngine on TLSRequired on TLSRSACertificateFile /etc/pki/tls/certs/proftpd.pem TLSRSACertificateKeyFile /etc/pki/tls/certs/proftpd.pem TLSCipherSuite ALL:!ADH:!DES TLSOptions NoCertRequest TLSVerifyClient off TLSRenegotiate ctrl 3600 data 512000 required off timeout 300 TLSLog /var/log/proftpd/tls.log # <IfModule mod_tls_shmcache.c> # TLSSessionCache shm:/file=/var/run/proftpd/sesscache # </IfModule> #</IfDefine>
[...]
Ich habe 6000- und 6100-Ports hinzugefügt, um den passiven FTP-Modus zuzulassen, ebenso werde ich den passiven Modus über den CentOS-Firewalld-Dienst wie folgt zulassen:
firewall-cmd --add-port=6000-6100/tcp --permanent
firewall-cmd --reload
Wir können den Status der Ports wie folgt überprüfen:
firewall-cmd --list-ports
[[email protected] ~]# firewall-cmd --list-ports
6000-6100/tcp
[[email protected] ~]#
Zusätzlich müssen wir SELINUX mitteilen, dass es das Lesen/Schreiben der Dateien erlauben soll.
setsebool -P allow_ftpd_full_access=1
Um TLS verwenden zu können, müssen wir ein SSL-Zertifikat erstellen. Ich werde es in /etc/pki/tls/certs erstellen, wir können das SSL-Zertifikat wie folgt generieren:
openssl req -x509 -nodes -newkey rsa:1024 -keyout /etc/pki/tls/certs/proftpd.pem -out /etc/pki/tls/certs/proftpd.pem
[[email protected] certs]# openssl req -x509 -nodes -newkey rsa:1024 -keyout /etc/pki/tls/certs/proftpd.pem -out /etc/pki/tls/certs/proftpd.pem
Generieren eines privaten 1024-Bit-RSA-Schlüssels
....................................+++ ++
.........++++++
Neuen privaten Schlüssel in '/etc/pki/tls/certs/proftpd.pem' schreiben
- ----
Sie werden gleich aufgefordert, Informationen einzugeben, die
in Ihre Zertifikatsanforderung aufgenommen werden.
Was Sie gleich eingeben werden, ist ein sogenannter Distinguished Name oder DN .
Es gibt einige Felder, aber Sie können einige leer lassen
Für einige Felder gibt es einen Standardwert,
Wenn Sie '.' eingeben, bleibt das Feld leer.
-----
Ländername (2-Buchstaben-Code) [XX]:<--DE
Staats- oder Provinzname (vollständiger Name) []:<-- Hamburg
Ortsname (z. B. Stadt) [Standardstadt]: <-- Lüneberg
Organisationsname (z. B. Unternehmen) [Standardunternehmen GmbH]:<-- ISPConfig
Name der Organisationseinheit (zB Abschnitt) []:<-- Entwicklung
Allgemeiner Name (z. B. Ihr Name oder der Hostname Ihres Servers) []:<-- server1.example.com
E-Mail-Adresse []:<-- [E-Mail-geschützt]
[[E-Mail-geschützte] Zertifikate]#
Geben Sie die obigen Werte nach Ihrer Wahl in Rot ein, ich habe nur ein Beispiel gegeben.
Jetzt werde ich aus Sicherheitsgründen die Zertifikate wie folgt nur lesbar machen:
chmod 0440 /etc/pki/tls/certs/proftpd.pem
Abschließend starten Sie den ProFTPD-Dienst wie folgt neu:
systemctl restart proftpd.service
Wir können uns mit der Filezilla-Software mit dem ProFTPD-Server verbinden, Sie müssen Filezilla auf dem Client installiert haben, um sich mit dem Server zu verbinden. Öffnen Sie Filezilla und geben Sie die Details wie folgt ein:
Details werden
Host =192.168.0.100
Protokoll =FTP
Benutzer =srijan
Port =kann leer sein, wenn Sie keinen anderen Port als 21 angepasst haben
Password =ftppassword (gerade oben erstellt)
Hinweis:Da wir unsere Verbindung im obigen Schritt verschlüsselt haben, verwenden wir die Verschlüsselung mit Explizites FTP über TLS erforderlich
Wenn Sie TLS nicht konfiguriert haben, können Sie Plain FTP verwenden verwenden
Es wird gefragt, ob Sie den Zertifikaten vertrauen möchten, drücken Sie OK
Es wird mit TLS mit dem freigegebenen FTP-Verzeichnis verbunden Verbindung.
4 Anonymer FTP-Zugriff in ProFTPD
Wir können ein anonymes FTP-Konto in ProFTPD erstellen, fügen Sie einfach diese Einträge in die ProFTPD-Konfigurationsdatei hinzu:
nano /etc/proftpd.conf
Und fügen Sie diese Einträge am Ende der Datei hinzu,
[...]
###Anonymous share##### <Anonymous ~ftp> User ftp Group ftp UserAlias anonymous ftp DirFakeUser on ftp DirFakeGroup on ftp MaxClients 10 <Directory *> <Limit WRITE> DenyAll </Limit> </Directory> </Anonymous>
Jetzt müssen wir die Dienste neu starten:
systemctl restart proftpd.service
Verbinden Sie es nun über Filezilla wie folgt:
Hinweis:Da wir unsere Verbindung im obigen Schritt verschlüsselt haben, verwenden wir die Verschlüsselung mit Explizites FTP über TLS erforderlich
Wenn Sie TLS nicht konfiguriert haben, können Sie Plain FTP verwenden verwenden
Drücken Sie Verbinden:
Es wird gefragt, ob Sie den Zertifikaten vertrauen möchten, drücken Sie OK
Wir haben uns erfolgreich mit dem Server mit dem anonymen Benutzer verbunden.
Herzliche Glückwünsche! Jetzt haben wir die ProFTPD-Serverumgebung in CentOS 7.0 erfolgreich konfiguriert :)
5 Links
- CentOS:http://www.centos.org/
- ProFTPD:http://www.proftpd.org/