Autor: F4RR3LL|sven
E-Mail: sven.richter@nixhelp.de
Stand: 01.04.2015
In diesem Howto erkläre ich die Installation von proftpd unter Linux Debian
Der Start der Installation ist denkbar einfach
apt-get install proftpd
Ihr werdet während der Installation gefragt ob der FTP als Inetd oder Daemon gestartet werden soll.
Lasst die Einstellung stehen die bereits ausgewählt ist Daemon.
Das wars auch schon proftpd ist installiert und rennt bereits auf dem System.
Mit den folgenden Befehlen könnt ihr nun euren FTP Server starten und stoppen.
/etc/init.d/proftpd start /etc/init.d/proftpd stop
Nun habt ihr zwar einen laufenden FTP Server doch macht dieser bisher noch gar nicht das was er soll.
Die Einstellungen im proftpd verändert man in der Datei
/etc/proftpd/proftpd.conf
Diese Datei öffnet ihr nun mit dem Editor eures Vertrauens.
Wer nichts spezielles auf dem System hat macht einfach
nano /etc/proftpd/proftpd.conf
Die Datei ist nun offen. Ich erläre im folgenden wo man nun was verändern kann.
UseIPv6 on
Das kann man getrost auf off stellen. Es führt sonst nur zu Fehlern beim Start des FTP Servers.
# Port 21 is the standard FTP port. Port 21 # In some cases you have to specify passive ports range to by-pass # firewall limitations. Ephemeral ports can be used for that, but # feel free to use a more narrow range. # PassivePorts 49152 65534
Den Standartport kann man lassen, muss man nicht. Wichtiger ist der Part der PassivePorts.
Wer mit IPTABLES arbeitet muss hier die # vor dem # PassivePorts 49152 65534 entfernen, die Range für die Datenübertragung einstellen und auch entsprechend in IPTABLES diese Ports freischalten.
Dies hat den Hintergrund, das die Datenübertragung selber nicht auf Port 21 stattfindet, sondern auf einem Passivport.
Die Range für diesen Passiveport könnt ihr frei wählen.
Je mehr gleichzeitige Connections der Server erhalten soll, desto mehr Ports müsst ihr öffnen.
Jedoch gilt aufgrund der Sicherheit: Weniger ist im Zweifel mehr :)
Natürlich wollen wir nicht das der root User sich per ftp einloggen kann.
Ebenso verlangen wir eine gültige Shell für den User der sich einloggt.
(wie man die gültige Shell anlegt wird bei Anlegen von Usern und Gruppen chrooted erklärt)
Hierzu tragen wir folgendes in die proftpd.conf ein:
<Global> RootLogin off RequireValidShell on </Global>
Und schlussendlich noch zwei Einstellungen um ein bissl die Verbindungsgeschwindigkeit des FTP zu erhöhen.
Hierzu folgendes in die proftpd.conf eintragen.
UseReverseDNS off IdentLookups off
Um den FXP Transfer zu erlauben muss folgende Zeile in die Config eingetragen werden.
AllowForeignAddress on
Nachdem ihr nun die Änderungen alle eingetragen habt müsst ihr die config speichern und den FTP Server neu starten.
/etc/init.d/proftpd restart
Wer debian etch benutzt (Postfixversion: 1.3.0-19etch2) könnte hier Probleme bekommen,
die Installation mit TLS funktioniert zwar einwandfrei,
allerdings gibt es beim späteren Verbinden Probleme.
Lösung: Proftpd selber compilieren
Für die TLS Installation gehts so weiter:
apt-get install openssl mkdir /etc/proftpd/ssl openssl req -x509 -newkey rsa:1024 -keyout /etc/proftpd/ssl/proftpd.key -out /etc/proftpd/ssl/proftpd.crt -nodes -days 365 chmod 0600 /etc/proftpd/ssl/proftpd.key chmod 0644 /etc/proftpd/ssl/proftpd.crt
Nun werden euch ein paar Fragen gestellt..die könnt ihr beantworten…müsst ihr aber nicht.
Geht auch so ;)
Anschließend wieder zurück in die proftpd.conf
nano /etc/proftpd/proftpd.conf
Dort nun diesen Part löschen
<IfModule mod_tls.c> TLSEngine off </IfModule>
und mit diesem ersetzen
<IfModule mod_tls.c> TLSEngine on TLSLog /var/log/proftpd/tls.log TLSProtocol SSLv23 TLSOptions NoCertRequest TLSRSACertificateFile /etc/proftpd/ssl/proftpd.crt TLSRSACertificateKeyFile /etc/proftpd/ssl/proftpd.key TLSVerifyClient off TLSRequired on </IfModule>
Hier müsst ihr euch überlegen ob ihr TLSRequired on lasst oder auf off setzt.
Auf on sind nur noch Verbindungen mit TLS Auth möglich.
Wenn ihrs off stellt geht sowohl als auch.
Wir erstellen eine Gruppe nur für FTP User:
addgroup ftpuser
Später möchten wir, unabhängig von der SSH Configuration, das unsere FTP User sich nur am FTP nicht aber am System anmelden können.
Das geht so.
Ihr kopiert die Shell ohne Anmeldung:
cp /bin/false /bin/ftp echo "/bin/ftp" >> /etc/shells
Anlegen von Usern für den FTP:
useradd -s /bin/ftp -G ftpuser -d /HOME/VERZEICHNIS FTP-USERNAME passwd FTP-USERNAME
Dieses -s /bin/ftp ist überigens die valid Shell die wir oben in der config eigetragen haben.
Um diese Usergruppe nun noch zu chrooten fügt ihr in der /etc/proftpd/proftpd.conf folgende Zeile hinzu:
DefaultRoot ~ ftpuser
Um Sicherzustellen das sich nur Mitglieder der Gruppe ftpuser einloggen können noch folgendes einfügen:
<Limit LOGIN> DenyGroup !ftpuser </Limit>
Auch nach dieser Änderung heißt es wieder.. neustart des FTP. Wie das geht ist ja nun bekannt.
Die ftpuser sind nun in ihr /home eingeschlossen und können dort nicht hinauswechseln.
Wenn ihr mal einen User wieder löschen wollt oder das homeverzeichnis eines Users ändern wollt,
so findet ihr die User alle in der Datei /etc/passwd
Zum Löschen einfach die Datei mit dem Editor eures Vertrauens öffnen und die Zeile mit dem User löschen, speichern, fertig.
Das Passwort des Users befindet sich in /etc/shadow auch hier einfach →User+Pass löschen, speichern, fertig.
Zum Ändern des Homeverzeichnisses den Pfad zum Homeverzeichniss in der /etc/passwd anpassen, speichern, fertig.
Das wars. Viel Spaß mit proftpd ;)
Gruß
F4RR3LL/Sven
Zurück zum Index