Inhaltsverzeichnis

proftpd Installation


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

Die Installation

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


Einstellungen in der proftpd.conf


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


TLS Auth


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.

Anlegen von Usern und Gruppen chrooted


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