FTP über TLS (mit proftpd) ?

  • hallo,

    ich versuche gerade FTP über TLS einzurichten.
    hierzu bin ich wie folgt vorgegangen:

    nun kann man sich zwar mit TLS am FTP anmelden
    aber die Datenübertragung klappt nicht...

    im log steht:

    Code
    Dec 31 16:19:08 mod_tls/2.4.2[17560]: using default OpenSSL verification locations (see $SSL_CERT_
    Dec 31 16:19:08 mod_tls/2.4.2[17560]: TLS/TLS-C requested, starting TLS handshake
    Dec 31 16:19:09 mod_tls/2.4.2[17560]: TLSv1/SSLv3 connection accepted, using cipher DHE-RSA-AES256
    Dec 31 16:19:09 mod_tls/2.4.2[17560]: Protection set to Private
    Dec 31 16:19:10 mod_tls/2.4.2[17560]: starting TLS negotiation on data connection
    Dec 31 16:19:10 mod_tls/2.4.2[17560]: TLSv1/SSLv3 renegotiation accepted, using cipher DHE-RSA-AES
    Dec 31 16:19:10 mod_tls/2.4.2[17560]: client did not reuse SSL session, rejecting data connection
    Dec 31 16:19:10 mod_tls/2.4.2[17560]: unable to open data connection: TLS negotiation failed

    ich weiß auch erhlich gesagt nicht genau wie die Datei /etc/proftpd/tls.conf richtig "eingestellt" werden muss,
    derzeit sieht sie wie folgt aus:

    kann jemand helfen ?

    der FTP-Client soll Fire-FTP sein,
    ggf. kann der nur die Auth. per TLS, möchte dann aber die Datenübertragung selbst wieder über FTP machen (?)
    (jedenfalls funkt. es mit Fire-FTP per TLS bei anderen FTP-Servern, bei meinem aber nicht ...)

    Grüße,
    Dirk
    (gekündigt am 06.11.2022, aus Gründen...)

  • vielen Dank.
    ich bin jetzt mit folgender /etc/proftpd/tls.conf weitergekommen

    der Trick war das "NoSessionReuseRequired" ...

    jetzt funktioniert alles,
    aber nur mit abgeschalteter Firewall (im VCP) :(
    schalte ich die Frirewall an, so geht wieder das Auth. aber schon das Directory Listing schlägt fehl.
    welchen Port benötigt denn jetzt das SSL/TLS noch ?
    habe schon 443 freigeschaltet und 990 -> ohne Erfolg...

    weiß noch jemand Rat ?

    Grüße,
    Dirk
    (gekündigt am 06.11.2022, aus Gründen...)

  • Wenn du implizites TLS nicht selber aktiviert hast (= TCP 990 Port), dann wird immer nur explizites verwendet, das über AUTH TLS/SSL gestartet wird.

    Auf welchen Port versuchst du denn mit dem FTP-Client zu verbinden? Und wie sieht deine Firewallregel aus?


    MfG Christian

    "Wer nur noch Enten sieht, hat die Kontrolle über seine Server verloren." (Netzentenfund)

  • mod_tls sichert dir die verbinding aber nicht die eigentliche daten-uebertragung(die geht weiter in clear-text), und hat wie du schon bemerkt hast das problem mit der firewall.
    mod_sftp ist da der bessere weg weil es ueber ssh geht. das mod_sftp ist aber nicht als std. drin dieses muesste kompiliert werden und liegt als std. dem paket bei.

    Logic will take you from A to B. Imagination will take you everywhere.(A.Einstein)
    Nur wer sein Ziel kennt findet auch den Weg!

  • Wenn du implizites TLS nicht selber aktiviert hast (= TCP 990 Port), dann wird immer nur explizites verwendet, das über AUTH TLS/SSL gestartet wird.


    genau so ist es,
    über welche(n) Port(s) läuft dann in diesem Fall die weitere Kommunikation wenn die Authentifizierungsphase erfolgreich beendet ist ?
    (mit ausgeschalteter Firewall geht's ja...)
    (ist ja passives FTP nach wie vor)

    Auf welchen Port versuchst du denn mit dem FTP-Client zu verbinden? Und wie sieht deine Firewallregel aus?

    über Port 21

    Code
    Richtung: INPUT
    Protokoll: tcp
    Quell IP: any
    Ziel IP: 46.4.202.xxx
    Quell Port: any
    Ziel Port: 21
    Zusatz: LIMIT
    Zusatz Wert: 10 
    ACCEPT

    Grüße,
    Dirk
    (gekündigt am 06.11.2022, aus Gründen...)

    Einmal editiert, zuletzt von Dirk67 (31. Dezember 2012 um 18:51)

  • hmmm... hatte wohl ein Brett vorm Kopf ... :whistling:
    ist ja eigentlich ganz logisch:
    bei "AUTH TLS/SSL" werden exakt die selben Ports verwendet wie bei normalem Passiven FTP,
    d.h. auf Port 21 wird connected und dann werden "zufällige" passive Ports verhandelt (z.B. Ports 30000 - 60000) auf denen die Datenübertragung dann abgewickelt wird.
    Jede Firewall, jeder Router bekommt diese Übergabe auf die passiven FTP-Ports mit (quasi per "Connection-Tracking") mit,
    da das Protokoll ja lesbar ist.
    Schaltet man nun TLS/SSL ein, so funktioniert o.g. "Connection-Tracking" nicht mehr:
    Ein Router oder die VCP-Firewall (oder auch per "iptables") kann diese Verbindung nicht mehr überwachen/"tracken", da alles verschlüsselt übertragen wird --> ergo öffnet die Firewall auch keine Ports mehr für passives FTP.

    Die Lösung ist simpel:
    in der Datei /etc/proftpd/proftpd.conf wird ein vorbestimmter Portbereich für passives FTP vorgegeben (50 Ports sollten zunächst reichen) am besten über 50000 (als einfaches Beispiel hier Ports 55001 bis 55050):
    dies geschieht in der Zeile:
    "PassivePorts 55001 55050"
    und genau diesen Portbereich gibt man dann in der VCP-Firewall frei,
    in der ("iptables"-)Schreibweise: 55001:55050

    dann geht es zumindest.

    Ist das ein Sicherheitsrisiko ?

    Grüße,
    Dirk
    (gekündigt am 06.11.2022, aus Gründen...)

  • das kommt drauf an wie du risiko definierst. was du jetzt machst ist, den reinen connect zu sichern. die daten-uebertragung erfolgt weiterhin im clear-text also ungesichert.

    Logic will take you from A to B. Imagination will take you everywhere.(A.Einstein)
    Nur wer sein Ziel kennt findet auch den Weg!