ProFTPD Passive Mode + IPtables freischalten

Kleine Stolperfalle: In ProFTPD ist per Default der „Passive Mode“ deaktiviert.

Sieht dann so aus:

Antwort:	227 Entering Passive Mode (78,46,247,91,245,27).
Befehl:	MLSD
Fehler:	Zeitüberschreitung der Verbindung
Fehler:	Verzeichnisinhalt konnte nicht empfangen werden

Dieser wird in „/etc/proftpd/proftpd.conf“ mit dem auskommentieren von

PassivePorts                  49152 65534

aktiviert. Noch ein beherzter

service proftpd restart

Weiteres Problem: IPtables blocken natürlich alles – wenn man seine Firewall gut eingestellt hat. Dazu einfach folgendes in „/etc/default/iptables“ ein:

-A INPUT -p tcp --destination-port 49152:65534 -j ACCEPT

und ein:

service iptables restart

NACHTRAG

Wem die Highport Freigabe zu riskant ist, kann mittels dem Modul „ip_conntrack_ftp“ das ganze umgehen:

In der proftpd.conf den Port entsprechend einstellen, z.B.

...
Port  42142
...

Und ein kleines Shellscript zum öffnen der Ports

#!/bin/bash
modprobe ip_conntrack_ftp
#FTP
iptables -A INPUT -p tcp --dport 42142 -j ACCEPT
iptables -A OUTPUT -p tcp --dport 42142 -j ACCEPT
7 Kommentare
  1. teco
    teco sagte:

    Hallo
    dein Kommentar hat mir weitergeholfen einen nicht lauffähigen PLESK 11.5 proftpd Server zum Laufen zu bekommen.
    Was mich verwundert: früher habe ich die iptables Firewall Config nicht gebraucht und trotzdem ging FTP.
    Ist das nicht ein großes Sicherheitsrisiko dermaßen viele Ports zu „öffnen“?

    Wäre dir dankbar wenn du das kurz erläutern kannst aus Sicherheitsaspekten.

    Danke Teco

    Antworten
    • Franz Kinader
      Franz Kinader sagte:

      Hi,

      aus meiner Sicht habe ich mittels fail2ban (mit 1 Fehllogin -> Aussperren für 1000 Minuten) eine recht gute Sicherheit und alle Pakete werden mittels IPtables von der IP Adresse einfach gedropped.
      Aber ich habe etwas rumexperementiert und meinen Beitrag aktualisiert 🙂

      LG

      Antworten
  2. Folke
    Folke sagte:

    Bei ip_conntrack_ftp (oder nf_conntrack_ftp) reicht es aber den Port 21 zu öffnen, das aufmachen von 42142 (aus- wie eingehend) wie im Beispiel ist nicht nötig.
    Wichtig aber ist dann vor allem das hier:
    # iptables -A INPUT -m state –state ESTABLISHED,RELATED -j ACCEPT

    Der Kernel liest mit, sieht den „PASV“ Befehl und den Port, den sich dort der FTP-Server ausgedacht hat und öffnet diesen, da RELATED.

    Klappt leider nicht mit mit TLS, denn dann kann keiner mehr mitlesen.

    VG

    Antworten

Hinterlasse einen Kommentar

An der Diskussion beteiligen?
Hinterlasse uns deinen Kommentar!

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert.