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...)

  • Ich würde es einmal mit TLSRenegotiate none versuchen. Ansonsten sind hier einige brauchbare Tipps vorhanden: ProFTPD mini-HOWTO - FTP and SSL/TLS


    Da ich ProFTPd nicht mehr aktiv verwende, könnte ich ansonsten nur mehr in meinen Backups nachsehen, wie meiner damals mit TLS korrekt lief.



    MfG Christian

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

  • 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 ()

  • 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!