Dieses Dokument beschreibt, wie man ProFTPD auf einem Debian Wheezy Server installiert und konfiguriert, es funktioniert auch auf Ubuntu 14.04. 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.
Diese Anleitung funktioniert sowohl für Ubuntu- als auch für Debian-Server.
1 Vorbemerkung
Dieses Tutorial basiert auf einem Debian 7.6-Server, daher sollten Sie eine grundlegende Debian 7.6-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:
Wir werden zuerst ProFTPD und OpenSSL wie folgt installieren:
apt-get install proftpd openssl
Es wird nach einer Frage zu ProFTPD fragen, Standalone auswählen und Ok drücken.
Wir können die ProFTPD-Version wie folgt überprüfen:
proftpd -v[E-Mail-geschützt]:~# proftpd -v
ProFTPD Version 1.3.4a
[E-Mail-geschützt]:~#
2.2 Erstellen von ProFTPD-Benutzern
Dazu werde ich eine Gruppe ftpgroup und den Benutzer srijan für ProFTPD erstellen. Ich werde den Benutzer srijan mit Home-Verzeichnis als /ftpshare
einschränkenaddgroup ftpgroup
adduser srijan -shell /bin/false -home /ftpshare
[email protected]:~# adduser srijan -shell /bin/false -home /ftpshare
Adding user `srijan' ...
Adding new group `srijan' (1002) ...
Adding new user `srijan' (1001) with group `srijan' ...
Creating home directory `/ftpshare' ...
Copying files from `/etc/skel' ...
Enter new UNIX password: <--ftppassword
Retype new UNIX password: <--ftppassword
passwd: password updated successfully
Changing the user information for srijan
Enter the new value, or press ENTER for the default<--ENTER
Full Name []: <--ENTER
Room Number []: <--ENTER
Work Phone []: <--ENTER
Home Phone []: <--ENTER
Other []: <--ENTER
Is the information correct? [Y/n] <--Y
[email protected]:~#
Jetzt fügen wir den srijan-Benutzer wie folgt zur ftpgroup hinzu:
adduser srijan ftpgroup
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/
Als nächstes müssen wir ProFTPD wie folgt konfigurieren:
nano /etc/proftpd/proftpd.conf
Nehmen Sie die Änderungen wie gezeigt vor
[...]
UseIPv6 off
[...]
<Global>
RootLogin off RequireValidShell off </Global> DefaultRoot ~ <Limit LOGIN> DenyGroup !ftpgroup </Limit>
Ich verwende kein IPV6, also habe ich oben gemacht, ich deaktiviere die Root-Benutzeranmeldung mit ProFTPD, indem ich RootLogon ausschalte. DefaultRoot wird hinzugefügt, um den Zugriff von Benutzern nur auf ihre Home-Ordner zu beschränken. DenyGroup erlaubt nur den Benutzern der FTP-Gruppe den Zugriff auf den FTP-Server, alle anderen Verbindungen werden abgelehnt.
Starten Sie den Dienst neu als:
service proftpd restart
Manchmal erhalten Sie beim Neustart des Dienstes eine Fehlermeldung wie
[email protected]:~# service proftpd restart[ ok ] FTP-Server wird angehalten:proftpd.
[....] FTP-Server wird gestartet:proftpdserver1 proftpd[6052]:mod_tls_memcache/0.1:Hinweis:nicht möglich 'memcache' SSL-Session-Cache registrieren:Memcache-Unterstützung nicht aktiviert
. ok
[E-Mail geschützt]:~#
Wir können diesen Fehler umgehen, indem wir die Datei /etc/proftpd/modules.conf bearbeiten und die Zeile wie folgt kommentieren:
nano /etc/proftpd/modules.conf
[...]
#LoadModule mod_tls_memcache.c
[...]
Es wird den Fehler sortieren.
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
nano /etc/proftpd/proftpd.conf
Nehmen Sie die Änderungen wie folgt vor und kommentieren Sie die Zeile aus:
[...]
Include /etc/proftpd/tls.conf
[...]
Jetzt werden wir die Originaldatei sichern und dann die Datei wie unten gezeigt bearbeiten:
cp /etc/proftpd/tls.conf /etc/proftpd/tls.conf_orig
cat /dev/null > /etc/proftpd/tls.conf
nano /etc/proftpd/tls.conf
Geben Sie die Einträge wie gezeigt ein
<IfModule mod_tls.c> TLSEngine on TLSLog /var/log/proftpd/tls.log TLSProtocol SSLv23 TLSOptions NoCertRequest TLSRSACertificateFile /etc/proftpd/ssl/proftpd.cert.pem TLSRSACertificateKeyFile /etc/proftpd/ssl/proftpd.key.pem TLSVerifyClient off TLSRequired on </IfModule>
Um TLS verwenden zu können, müssen wir ein SSL-Zertifikat erstellen. Ich werde es in /etc/proftpd/ssl erstellen, daher erstelle ich zuerst dieses Verzeichnis:
mkdir /etc/proftpd/ssl
Anschließend können wir das SSL-Zertifikat wie folgt generieren:
openssl req -new -x509 -days 365 -nodes -out /etc/proftpd/ssl/proftpd.cert.pem -keyout /etc/proftpd/ssl/proftpd.key.pem
Ländername (2-Buchstaben-Code) [AU]: <-- Geben Sie Ihren Ländernamen ein (z. B. "DE").
Name des Bundesstaates oder der Provinz (vollständiger Name) [Some-State]: <-- Geben Sie den Namen Ihres Bundesstaates oder der Provinz ein.
Ortsname (z. B. Stadt) []: <-- Geben Sie Ihre Stadt ein.
Name der Organisation (z. B. Firma) [Internet Widgits Pty Ltd]: <-- Geben Sie den Namen Ihrer Organisation ein (z. B. den Namen Ihrer Firma).
Name der Organisationseinheit (z. B. Abschnitt) []: <-- Geben Sie den Namen Ihrer Organisationseinheit ein (z. B. "IT-Abteilung").
Allgemeiner Name (z. B. IHR Name) []: <-- Geben Sie den vollständig qualifizierten Domänennamen des Systems ein (z. B. "server1.example.com").
E-Mail-Adresse []: <-- Geben Sie Ihre E-Mail-Adresse ein.
Jetzt werde ich aus Sicherheitsgründen die Zertifikate wie folgt nur lesbar machen:
chmod 0440 /etc/proftpd/ssl/proftpd.key.pem
Abschließend starten Sie den ProFTPD-Dienst wie folgt neu:
service proftpd restart
Mit der FileZilla-Software können wir uns 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
Protocol =FTP
User =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 dem freigegebenen FTP-Verzeichnis verbunden.
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/proftpd.conf
Und fügen Sie diese Einträge am Ende der Datei hinzu,
[...]
###Anonymous share##### <Anonymous ~ftp> User ftp Group nogroup <Limit LOGIN> AllowAll </Limit> # We want clients to be able to login with "anonymous" as well as "ftp" UserAlias anonymous ftp # Cosmetic changes, all files belongs to ftp user DirFakeUser on ftp DirFakeGroup on ftp RequireValidShell off # Limit the maximum number of anonymous logins MaxClients 10 # Limit WRITE everywhere in the anonymous chroot <Directory *> <Limit WRITE> DenyAll </Limit> </Directory> </Anonymous> ~
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 anonymem Benutzer verbunden.
Herzliche Glückwünsche! Jetzt haben wir die ProFTPD-Serverumgebung in Debian Wheezy erfolgreich konfiguriert :)
5 Links
- Debian:https://www.debian.org/
- Ubuntu:http://www.ubuntu.com/
- ProFTPD:http://www.proftpd.org/