[GELÖST] ProFTPd zeigt bei TLS-Verbindung keine Inhalte

Probleme mit Samba, NFS, FTP und Co.
Antworten
BrotherJ
Beiträge: 323
Registriert: 15.11.2018 07:56:18

[GELÖST] ProFTPd zeigt bei TLS-Verbindung keine Inhalte

Beitrag von BrotherJ » 20.05.2019 12:16:26

Hallo zusammen,
ich habe Probleme mit TLS auf ProFTPd und Debian Stretch Linux. Ohne TLS klappt die Verbindung und das FTP-Benutzerverzeichnis wird in FileZilla anzeigt.
/etc/proftpd/conf.d/custom.conf

Code: Alles auswählen

<Global>
    RequireValidShell off
</Global>

UseIPv6 off

DefaultRoot ~ ftpuser


<Limit LOGIN>
    DenyGroup !ftpuser
</Limit>
/etc/proftpd/conf.d/tls.conf

Code: Alles auswählen

<IfModule mod_tls.c>
        TLSEngine on
        TLSLog /var/log/proftpd/tls.log
        TLSProtocol TLSv1.2
        TLSRSACertificateFile /etc/ssl/certs/proftpd.crt
        TLSRSACertificateKeyFile /etc/ssl/private/proftpd.key
        TLSVerifyClient off
        TLSRequired on
</IfModule>
Diese Verbindung von der Konsole klappt:

Code: Alles auswählen

openssl s_client -connect 127.0.0.1:21 -starttls ftp
CONNECTED(00000003)
depth=0 C = DE, ST = Germany, L = Kirchentellinsfurt, O = Seicom Verwaltungs GmbH, CN = web.germany.com, emailAddress = info@germany.com
verify error:num=18:self signed certificate
verify return:1
depth=0 C = DE, ST = Germany, L = Kirchentellinsfurt, O = Seicom Verwaltungs GmbH, CN = web.germany.com, emailAddress = info@germany.com
verify return:1
---
Certificate chain
 0 s:/C=DE/ST=Germany/L=Kirchentellinsfurt/O=Seicom Verwaltungs GmbH/CN=web.germany.com/emailAddress=info@germany.com
   i:/C=DE/ST=Germany/L=Kirchentellinsfurt/O=Seicom Verwaltungs GmbH/CN=web.germany.com/emailAddress=info@germany.com
---
Server certificate
-----BEGIN CERTIFICATE-----
MIIECjCCAvKgAwIBAgIJAKEejfpCO1APMA0GCSqGSIb3DQEBCwUAMIGZMQswCQYD
VQQGEwJERTEQMA4GA1UECAwHR2VybWFueTEbMBkGA1UEBwwSS2lyY2hlbnRlbGxp
bnNmdXJ0MSAwHgYDVQQKDBdTZWljb20gVmVyd2FsdHVuZ3MgR21iSDEYMBYGA1UE
AwwPd2ViLmdlcm1hbnkuY29tMR8wHQYJKoZIhvcNAQkBFhBpbmZvQGdlcm1hbnku
Y29tMB4XDTE5MDUyMDA5MDExOVoXDTIzMDUxOTA5MDExOVowgZkxCzAJBgNVBAYT
AkRFMRAwDgYDVQQIDAdHZXJtYW55MRswGQYDVQQHDBJLaXJjaGVudGVsbGluc2Z1
cnQxIDAeBgNVBAoMF1NlaWNvbSBWZXJ3YWx0dW5ncyBHbWJIMRgwFgYDVQQDDA93
ZWIuZ2VybWFueS5jb20xHzAdBgkqhkiG9w0BCQEWEGluZm9AZ2VybWFueS5jb20w
ggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQDgN6RXa6ZJlrDjE0jUIQWL
bGF5YEbxHLhXVbjdYf7RBi0U4yllHalJs5dhZ4hq/Ooo88f7Gl0hFTKyczk6Nq1C
B8U41AAWjJAurkFHrMfC6b3XI22bTeN8cQOytF7/YqQgkoaEIyDa7txSUVpCaBi0
k4sjWJtuxoc+2baTvpOuspXeg1ZVgX6Bp69kZ4MfDe3Mhc9N+LXk6yI90iI13D5o
4vN4jYrzrVHR2wZJXnd19XxqhUkaMut69D23ngvwYaywvgVOqBa1h4jsvfeSmNKK
L4pFEWBMHJ8uP2+BigHQSAhMZ3hmZFdHIRJIGNtPimEh1hf2+Xv3Iz7O4xrMWkvB
AgMBAAGjUzBRMB0GA1UdDgQWBBQRJHwHS37/e2+fZ8ynJoo8R4eBbjAfBgNVHSME
GDAWgBQRJHwHS37/e2+fZ8ynJoo8R4eBbjAPBgNVHRMBAf8EBTADAQH/MA0GCSqG
SIb3DQEBCwUAA4IBAQC571AqfifJnyA4whBkFb1yFnpOiDOaKKg3iTxbgdipXALd
dI4jOancHJBrp7NwU1Xe6u7F9r0YsMRQPAjUKoEJb0VROuFVg2bRjNdPj8szPgDP
62C6D4YJaZLLIemxVoiLyeoSmtqMyC0WQJrGTTW8boKjjqR+T7nez/DlYQbGt2nE
ugCNM5Sa//wk+QcWawzOIucrQiNNSwFrpbD+xPXW7yTFofNUZHleTsmGplyzzcZd
B4OHNhj90Rpc88Tu4IQNmS3gP+nFcE6OXa7tI87SMBNElkgQQa6HMkNg24z8F8Pi
HWpB2GMkpt03MxMX4nGIgQAFvU4e35ikriK3+e70
-----END CERTIFICATE-----
subject=/C=DE/ST=Germany/L=Kirchentellinsfurt/O=/CN=/emailAddress=
issuer=/C=DE/ST=Germany/L=Kirchentellinsfurt/O=/CN=/emailAddress=
---
No client certificate CA names sent
Client Certificate Types: RSA sign, DSA sign, ECDSA sign
Requested Signature Algorithms: RSA+SHA512:DSA+SHA512:ECDSA+SHA512:RSA+SHA384:DSA+SHA384:ECDSA+SHA384:RSA+SHA256:DSA+SHA256:ECDSA+SHA256:RSA+SHA224:DSA+SHA224:ECDSA+SHA224:RSA+SHA1:DSA+SHA1:ECDSA+SHA1
Shared Requested Signature Algorithms: RSA+SHA512:DSA+SHA512:ECDSA+SHA512:RSA+SHA384:DSA+SHA384:ECDSA+SHA384:RSA+SHA256:DSA+SHA256:ECDSA+SHA256:RSA+SHA224:DSA+SHA224:ECDSA+SHA224:RSA+SHA1:DSA+SHA1:ECDSA+SHA1
Peer signing digest: SHA512
Server Temp Key: ECDH, P-256, 256 bits
---
SSL handshake has read 1657 bytes and written 324 bytes
Verification error: self signed certificate
---
New, TLSv1.2, Cipher is ECDHE-RSA-AES256-GCM-SHA384
Server public key is 2048 bit
Secure Renegotiation IS supported
Compression: NONE
Expansion: NONE
No ALPN negotiated
SSL-Session:
    Protocol  : TLSv1.2
    Cipher    : ECDHE-RSA-AES256-GCM-SHA384
    Session-ID: A8F122B2457D29253D32E9AEB749ACCEA9E769DF866610C5D632860541E4C689
    Session-ID-ctx: 
    Master-Key: F88342D78958331A5EBA9FDEE0147E2DCD46325D3B970F2923455C74A9D36C4AC684C4C396DB820BF78250B3A3C9951B
    PSK identity: None
    PSK identity hint: None
    SRP username: None
    Start Time: 1558347055
    Timeout   : 7200 (sec)
    Verify return code: 18 (self signed certificate)
    Extended master secret: no
---
220 ProFTPD 1.3.5b Server (FTP) [127.0.0.1]
In FileZilla erhalte ich diese Meldungen:
Status: Überprüfe Zertifikat...
Status: TLS-Verbindung hergestellt.
Status: Angemeldet
Status: Empfange Verzeichnisinhalt...
Status: Vom Server gesendete Adresse für den Passiv-Modus ist nicht routingfähig. Benutze stattdessen die Serveradresse.
Befehl: MLSD
Fehler: Zeitüberschreitung der Verbindung nach 20 Sekunden Inaktivität
Fehler: Verzeichnisinhalt konnte nicht empfangen werden
Was mache ich falsch?

Gruß
BrotherJ
Zuletzt geändert von BrotherJ am 23.05.2019 11:08:12, insgesamt 3-mal geändert.

wanne
Moderator
Beiträge: 7447
Registriert: 24.05.2010 12:39:42

Re: ProFTPd zeigt bei TLS-Verbindung keine Inhalte

Beitrag von wanne » 20.05.2019 15:41:40

Status: Vom Server gesendete Adresse für den Passiv-Modus ist nicht routingfähig. Benutze stattdessen die Serveradresse.
Das Klingt jetzt eher so, als ob da der passive Modus kaputt ist. Kann es sein, dass du da irgend wie ein NAT/Forwarding... oder sowas davor hast?
Auf der anderen Seite sagst du ja:
Ohne TLS klappt die Verbindung und das FTP-Benutzerverzeichnis wird in FileZilla anzeigt.
Insofern ist vielleicht auch einfach eine Mögliche Antwort.
Was mache ich falsch?
Dass du filezilla benutzt.
Hast du mal anderen Clienten ausprobiert? Bei deiner Konfig musst du irgend wo sagen, dass du auch auf dem data-Channel TLS machen willst. Das können so einige Clienten nicht. Weiß nicht, wie filezilla sich da verhält.

Ansonsten schlägt dir vielleicht auch ne Klassiche Firewall rein. Wenn du da DPI machst (iptables mit RELATED ist so ein Kandidat, den viele übersehen.) dann geht das kaputt, wenn man verschlüsselt und die nicht mehr mitlesen kann, dann dropt die halt alles weg.
rot: Moderator wanne spricht, default: User wanne spricht.

wanne
Moderator
Beiträge: 7447
Registriert: 24.05.2010 12:39:42

Re: ProFTPd zeigt bei TLS-Verbindung keine Inhalte

Beitrag von wanne » 20.05.2019 15:55:19

Ah und nochmal was: Wenn ich das richtig lese macht der ProFTPd per default explzites TLS: http://www.proftpd.org/docs/contrib/mod ... TLSOptions
Eventuell willst du da implizites TLS nutzen:

Code: Alles auswählen

TLSOptions UseImplicitSSL
Tut glaube ich problemloser. Früher konnte der Firefox das. Das ist auch noch im Sourcecode. Dann haben sie aber in die GUI gepatched, dass er das ftps:// direkt in google haut statt das entsprechende ftps-Modul aufzurufen. – Mozilla halt.
rot: Moderator wanne spricht, default: User wanne spricht.

wanne
Moderator
Beiträge: 7447
Registriert: 24.05.2010 12:39:42

Re: ProFTPd zeigt bei TLS-Verbindung keine Inhalte

Beitrag von wanne » 20.05.2019 15:58:59

Ah und der dritte Post in folge :oops: : Hast du eventuell ein Link auf den Server? Dann kann man sich das mal angucken, was da schief läuft.
rot: Moderator wanne spricht, default: User wanne spricht.

DeletedUserReAsG

Re: ProFTPd zeigt bei TLS-Verbindung keine Inhalte

Beitrag von DeletedUserReAsG » 20.05.2019 17:38:20

In den Logs des proftpd sollte™ was stehen. Außerdem kann man den mit Debug-/Verboseoptionen im Vordergrund starten.
wanne hat geschrieben: ↑ zum Beitrag ↑
20.05.2019 15:58:59
Ah und der dritte Post in folge
Sag halt Feltel mal Bescheid, dass er dir den Edit-Button freischalten soll …

wanne
Moderator
Beiträge: 7447
Registriert: 24.05.2010 12:39:42

Re: ProFTPd zeigt bei TLS-Verbindung keine Inhalte

Beitrag von wanne » 20.05.2019 17:42:26

niemand hat geschrieben: ↑ zum Beitrag ↑
20.05.2019 17:38:20
wanne hat geschrieben: ↑ zum Beitrag ↑
20.05.2019 15:58:59
Ah und der dritte Post in folge
Sag halt Feltel mal Bescheid, dass er dir den Edit-Button freischalten soll …
Das Problem ist, dass die ja doch in einigem zeitlichem Abstand geschrieben wurden. Der Edit Button die Posts aber nicht auf ungelesen zurücksetzt.
Am Ende verursacht das nachträgliche Hinzufügen von Informationen schlicht, dass die nicht gelesen werden.
rot: Moderator wanne spricht, default: User wanne spricht.

BrotherJ
Beiträge: 323
Registriert: 15.11.2018 07:56:18

Re: ProFTPd zeigt bei TLS-Verbindung keine Inhalte

Beitrag von BrotherJ » 20.05.2019 17:43:09

wanne hat geschrieben: ↑ zum Beitrag ↑
20.05.2019 15:41:40
Status: Vom Server gesendete Adresse für den Passiv-Modus ist nicht routingfähig. Benutze stattdessen die Serveradresse.
Das Klingt jetzt eher so, als ob da der passive Modus kaputt ist. Kann es sein, dass du da irgend wie ein NAT/Forwarding... oder sowas davor hast?
Ja, IpTables mit Schorewall - externe IP wird auf interne VM geforwarded.
wanne hat geschrieben: ↑ zum Beitrag ↑
20.05.2019 15:41:40
Auf der anderen Seite sagst du ja:
Ohne TLS klappt die Verbindung und das FTP-Benutzerverzeichnis wird in FileZilla anzeigt.
Insofern ist vielleicht auch einfach eine Mögliche Antwort.

Hast du mal anderen Clienten ausprobiert? Bei deiner Konfig musst du irgend wo sagen, dass du auch auf dem data-Channel TLS machen willst. Das können so einige Clienten nicht. Weiß nicht, wie filezilla sich da verhält.

Ansonsten schlägt dir vielleicht auch ne Klassiche Firewall rein. Wenn du da DPI machst (iptables mit RELATED ist so ein Kandidat, den viele übersehen.) dann geht das kaputt, wenn man verschlüsselt und die nicht mehr mitlesen kann, dann dropt die halt alles weg.
Am Besten wäre eine FTP-Session. Wie gebe ich bei ftp TLS mit? Dann sieht man ob es am Client. Ohnehin werden die User nachher sowieso Ihren eigenen FTP-Client wählen, deswegen will ich mich nicht auf den Client festlegen.
Das mit der Firewall klingt schon mal nachverfolgungswert.

BrotherJ
Beiträge: 323
Registriert: 15.11.2018 07:56:18

Re: ProFTPd zeigt bei TLS-Verbindung keine Inhalte

Beitrag von BrotherJ » 20.05.2019 17:49:10

Mit

Code: Alles auswählen

TLSOptions UseImplicitSSL
erhalte ich diese Meldungen

Code: Alles auswählen

2019-05-20 17:46:49,689 mod_tls/2.6[10622]: TLSOption UseImplicitSSL in effect, starting SSL/TLS handshake
2019-05-20 17:47:09,695 mod_tls/2.6[10622]: unable to accept TLS connection: received EOF that violates protocol
2019-05-20 17:47:09,695 mod_tls/2.6[10622]: panic: SSL_ERROR_SSL, line 4540: 
  (1) error:140E0197:SSL routines:SSL_shutdown:shutdown while in init
2019-05-20 17:47:09,695 mod_tls/2.6[10622]: unexpected OpenSSL error, disconnecting
2019-05-20 17:47:14,752 mod_tls/2.6[10623]: TLSOption UseImplicitSSL in effect, starting SSL/TLS handshake
2019-05-20 17:47:34,795 mod_tls/2.6[10623]: unable to accept TLS connection: received EOF that violates protocol
2019-05-20 17:47:34,795 mod_tls/2.6[10623]: panic: SSL_ERROR_SSL, line 4540: 
  (1) error:140E0197:SSL routines:SSL_shutdown:shutdown while in init
2019-05-20 17:47:34,795 mod_tls/2.6[10623]: unexpected OpenSSL error, disconnecting
Gruß
BrotherJ


wanne
Moderator
Beiträge: 7447
Registriert: 24.05.2010 12:39:42

Re: ProFTPd zeigt bei TLS-Verbindung keine Inhalte

Beitrag von wanne » 20.05.2019 18:43:10

BrotherJ hat geschrieben: ↑ zum Beitrag ↑
20.05.2019 17:43:09
Ja, IpTables mit Schorewall - externe IP wird auf interne VM geforwarded.
OK, dann hatte das FileZilla doch recht und das Setup war von Anfang an kaputt und FileZilla hat das nur nachträglich wieder zurecht gefummelt.
Du kannst das damit zurechtbiegen:

Code: Alles auswählen

MasqueradeAddress [EXTERNE IP] 
Ist aber ganz sicher nicht dein einziges Problem.
Ohnehin werden die User nachher sowieso Ihren eigenen FTP-Client wählen, deswegen will ich mich nicht auf den Client festlegen.
Leider Schwierig.
Prinzipiell gibt es die implizites TLS (ftps://), explizites TLS (ftpes://), und natürlich kein TLS (ftp://) und das dann noch jeweils wahlweise auf dem Daten und/oder dem Kontrollkanal.
Macht zusammen ~7 Varianten. Die wenigsten Clienten sprechen alle. Auf der anderen Seite kannst du aber auch mit deinem Server nur eine gewisse Anzahl von Kombinationen unterstützen. Implizit und explizit widersprechen sich halt. Kannst du natürlich auch sagen, was du willst und die Nutzer müssen dann einen Client suchen, der das kann.
Eventuell gibt dir eine Kombo aus Implizit auf Port 990 und explizit auf Port 21 ganz guten Support. Leider können die Browser, wie gesagt alle gar kein TLS. (Außer Konqueror.)
Das mit der Firewall klingt schon mal nachverfolgungswert.
Ich nehme an dein Forwarding ist kaputt. Und das wird nicht so einfach zu fixen sein.
Am Ende ist FTP und Firewall eher was, dass sich halt nicht verträgt. bzw. nur wenn du wie iptables einen halben FTP-Server in die Firewall baust der dann MitM spielt. Ob der Sicherheitsgerichtet dann wirklich da ist würde ich bezweifeln. Und vor allem funktioneirt das halt nicht mehr, wenn du TLS machst. Ist ja die Idee, dass das die kommunikation vor dritten schützt.
Würde die IP ohne Firewall der VM geben dann kann dein proftpd arbeiten. Wenn du Netzwerkzugriff einschränken willst, machst du das besser mit SELINUX oder ähnlichem.
Alternativ kannst du die passenden passiven Ports auch forwarden

Code: Alles auswählen

PassivePorts 60000 65535
Und dann halt im iptables 21,60000-65535,20,990 und 989 forwarden.

Code: Alles auswählen

TLSOptions UseImplicitSSL
Vielleicht versuchst du erstmal das explizite zum laufen zu bekommen.
rot: Moderator wanne spricht, default: User wanne spricht.

wanne
Moderator
Beiträge: 7447
Registriert: 24.05.2010 12:39:42

Re: ProFTPd zeigt bei TLS-Verbindung keine Inhalte

Beitrag von wanne » 20.05.2019 18:47:14

BrotherJ hat geschrieben: ↑ zum Beitrag ↑
20.05.2019 18:24:39
http://shorewall.org/FTP.html
Because the ftp helper modules must read and modify commands being sent over the command channel, they won't work when the command channel is encrypted through use of TLS/SSL.
Oder kurz ist so nicht.
rot: Moderator wanne spricht, default: User wanne spricht.

BrotherJ
Beiträge: 323
Registriert: 15.11.2018 07:56:18

Re: ProFTPd zeigt bei TLS-Verbindung keine Inhalte

Beitrag von BrotherJ » 20.05.2019 19:01:24

Ich habe wieder "explizit" umgestellt und "ftp-ssl" installiert. Mit diesem Befehl bekomme ich bei unveränderter Firewall eine FTP-Sitzung unter TLS hin. Also stimmt die Firewall und FileZilla blockiert. Wie gesagt, ich kann von hieraus nicht die FTP-Clients bestimmen, wichtig ist, dass der Server TLS anbietet.

Jedenfalls vielen Dank für Deine Anregungen und vielen Inputs.

Gruß
BrotherJ

wanne
Moderator
Beiträge: 7447
Registriert: 24.05.2010 12:39:42

Re: ProFTPd zeigt bei TLS-Verbindung keine Inhalte

Beitrag von wanne » 21.05.2019 09:18:41

BrotherJ hat geschrieben: ↑ zum Beitrag ↑
20.05.2019 19:01:24
Ich habe wieder "explizit" umgestellt und "ftp-ssl" installiert.
Ich würde mal drauf wetten das nicht.
Dein Setup kann einfach nicht funktionieren.
Eventuell das -z secure als Option vergessen? (Sonst macht der einfach Plaintext.)
Oder Eventuell nicht versucht eine Datei runter zu laden? (Anzeigen des Inhalts eines Ordners kann gehen. Nur kein download/upload.)
rot: Moderator wanne spricht, default: User wanne spricht.

BrotherJ
Beiträge: 323
Registriert: 15.11.2018 07:56:18

Re: ProFTPd zeigt bei TLS-Verbindung keine Inhalte

Beitrag von BrotherJ » 22.05.2019 11:04:42

wanne hat geschrieben: ↑ zum Beitrag ↑
20.05.2019 18:43:10
Ich nehme an dein Forwarding ist kaputt. Und das wird nicht so einfach zu fixen sein.
Am Ende ist FTP und Firewall eher was, dass sich halt nicht verträgt. bzw. nur wenn du wie iptables einen halben FTP-Server in die Firewall baust der dann MitM spielt. Ob der Sicherheitsgerichtet dann wirklich da ist würde ich bezweifeln. Und vor allem funktioneirt das halt nicht mehr, wenn du TLS machst. Ist ja die Idee, dass das die kommunikation vor dritten schützt.
Würde die IP ohne Firewall der VM geben dann kann dein proftpd arbeiten. Wenn du Netzwerkzugriff einschränken willst, machst du das besser mit SELINUX oder ähnlichem.
Das Forwarding funktioniert ja auch so, wie es ursprünglich angedacht. Ich habe hier einen KVM-Host mit mehreren externen IP-Adressen, die über Shorewall (IPTables) an die VMs geforwarded werden. gesperrt ist alles, was von aussen tabu ist. Somit sind nur solche Services offen wie HTTP, HTTPS, SMTPs, IMAPs, DNS, SSH (eingeschränkt) und eben FTP. Da der ProFTPd-Server auf dem Apache liegt, um die Webspaces befüllen zu können, der eben wie alle Anderen geschützt sein will, macht Dein Vorschlag keinen Sinn. Ohnehin sollte auch ein FTP-Server als VM geschützt sein, somit wäre auch hier die Firewall unabdingbar.
Dann sagst Du ja selbst, dass FTP und Firewall sich beissen. Also warum dann dennoch weiter machen?

Wenn es hier jemanden gibt, der Shorewall diesbezüglich kennt, bin für jede Unterstützung offen. Nur reine IPTABLES-Befehle würde ich da nicht hinzufügen, da das Konzept mit definierten Zonen (FW, net, loc) arbeitet. Deswegen bin ich auch auf der Suche nach FAQs und HowTos, wie das in die Shorewall-Rules eingepflegt wird.

BrotherJ
Beiträge: 323
Registriert: 15.11.2018 07:56:18

Re: [GELÖST] ProFTPd zeigt bei TLS-Verbindung keine Inhalte

Beitrag von BrotherJ » 22.05.2019 12:19:42

Ich habe jetzt Folgendes probiert:
conf.d/custom.conf:

Code: Alles auswählen

<Global>
    RequireValidShell off
    [b]PassivePorts 49152 65535[/b]    
</Global>

UseIPv6 off

DefaultRoot ~

<Limit LOGIN>
    DenyGroup !ftpuser
</Limit>
und conf.d/tls.conf wieder included.
Auf der Firewall Shorewall des KVM-Host habe ich diesen Befehl abgesetzt:

Code: Alles auswählen

iptables -I net-loc 2 -p tcp --match multiport --dports 49152:65535 --dst 192.168.1.75 -j ACCEPT

Code: Alles auswählen

shorewall list net-loc
Shorewall 5.0.15.6 Chain net-loc at neckar - Wed May 22 12:17:32 CEST 2019

Counters reset Wed May 22 12:10:35 CEST 2019

Chain net-loc (1 references)
 pkts bytes target     prot opt in     out     source               destination         
 7947 2613K ACCEPT     all  --  *      *       0.0.0.0/0            0.0.0.0/0            ctstate RELATED,ESTABLISHED
    1    40 ACCEPT     tcp  --  *      *       0.0.0.0/0            192.168.1.75         multiport dports 49152:65535
    0     0 ACCEPT     icmp --  *      *       0.0.0.0/0            0.0.0.0/0           
    1    40 ACCEPT     tcp  --  *      *       0.0.0.0/0            192.168.1.70         tcp dpt:80 /* HTTP */
    4   220 ACCEPT     tcp  --  *      *       0.0.0.0/0            192.168.1.75         tcp dpt:80 /* HTTP */
    1    40 ACCEPT     tcp  --  *      *       0.0.0.0/0            192.168.1.84         tcp dpt:80 /* HTTP */
    0     0 ACCEPT     tcp  --  *      *       0.0.0.0/0            192.168.1.70         tcp dpt:443 /* HTTPS */
    0     0 ACCEPT     tcp  --  *      *       0.0.0.0/0            192.168.1.84         tcp dpt:443 /* HTTPS */
    6   360 ACCEPT     tcp  --  *      *       0.0.0.0/0            192.168.1.75         tcp dpt:443 /* HTTPS */
    0     0 ACCEPT     udp  --  *      *       0.0.0.0/0            192.168.1.70         udp dpt:53 /* DNS */
    0     0 ACCEPT     tcp  --  *      *       0.0.0.0/0            192.168.1.70         tcp dpt:53 /* DNS */
    0     0 ACCEPT     udp  --  *      *       0.0.0.0/0            192.168.1.75         udp dpt:53 /* DNS */
    0     0 ACCEPT     tcp  --  *      *       0.0.0.0/0            192.168.1.75         tcp dpt:53 /* DNS */
   39  2817 ACCEPT     udp  --  *      *       0.0.0.0/0            192.168.1.84         udp dpt:53 /* DNS */
    0     0 ACCEPT     tcp  --  *      *       0.0.0.0/0            192.168.1.84         tcp dpt:53 /* DNS */
   50  3747 ACCEPT     udp  --  *      *       0.0.0.0/0            192.168.1.85         udp dpt:53 /* DNS */
    0     0 ACCEPT     tcp  --  *      *       0.0.0.0/0            192.168.1.85         tcp dpt:53 /* DNS */
  351 18444 ACCEPT     tcp  --  *      *       0.0.0.0/0            192.168.1.70         tcp dpt:25 /* SMTP */
   73  4356 ACCEPT     tcp  --  *      *       0.0.0.0/0            192.168.1.70         tcp dpt:465 /* SMTPS */
    2   120 ACCEPT     tcp  --  *      *       0.0.0.0/0            192.168.1.70         tcp dpt:587 /* SUBM */
   10   604 ACCEPT     tcp  --  *      *       0.0.0.0/0            192.168.1.70         tcp dpt:143 /* IMAP */
    8   476 ACCEPT     tcp  --  *      *       0.0.0.0/0            192.168.1.70         tcp dpt:993 /* IMAPS */
    1    52 ACCEPT     tcp  --  *      *       0.0.0.0/0            192.168.1.70         tcp dpt:110 /* POP3 */
    2    96 ACCEPT     tcp  --  *      *       0.0.0.0/0            192.168.1.70         tcp dpt:995 /* POP3S */
    0     0 ACCEPT     tcp  --  *      *       0.0.0.0/0            192.168.1.70         tcp dpt:4190 /* SIEVE */
    1    60 ACCEPT     tcp  --  *      *       0.0.0.0/0            192.168.1.75         tcp dpt:21 /* FTP */
  100  4036 Drop       all  --  *      *       0.0.0.0/0            0.0.0.0/0           
   89  3568 LOG        all  --  *      *       0.0.0.0/0            0.0.0.0/0            LOG flags 0 level 6 prefix "Shorewall:net-loc:DROP:"
   89  3568 DROP       all  --  *      *       0.0.0.0/0            0.0.0.0/0     
Wenn ich jetzt mit FileZilla eine Verbindung aufbaue, bekomme ich diese Meldungen:

Code: Alles auswählen

2019-05-22 12:12:28,653 web proftpd[22871] web.example.com (p52.dip0.t-ipconnect.de[]): USER ftpuser: Login successful.
2019-05-22 12:12:28,731 web proftpd[22871] web.example.com (p52.dip0.t-ipconnect.de[]): Refused PORT 192,168,0,2,227,231 (address mismatch)

wanne
Moderator
Beiträge: 7447
Registriert: 24.05.2010 12:39:42

Re: ProFTPd zeigt bei TLS-Verbindung keine Inhalte

Beitrag von wanne » 22.05.2019 17:28:11

(address mismatch)
Da fehlt noch immer:

Code: Alles auswählen

MasqueradeAddress [EXTERNE IP] 
PORT
Äh das ist Aktives FTP. Das tut nicht hinter NAT. Du solltest dein FileZilla wieder auf passiv stellen. (Oder auf IPv6 umstellen ;-) .)
gesperrt ist alles, was von aussen tabu ist.
Offensichtlich halt auch dein FTP.
Somit sind nur solche Services offen wie HTTP, HTTPS, SMTPs, IMAPs, DNS, SSH (eingeschränkt) und eben FTP.
Services kannst du mit selinux freischalten.
Was du machst ist zu versuchen an irgend welchen Port-Nummern zu raten zu welchem Service das gehört.
Das hilft sicherheitstechnisch nichts, weil Angreifer sich garantiert nicht Standardkonform verhalten und für ihre Malware einen Port bei der IANA-Beantragen und den dann nutzen. Jede Malware nutzt heute Port 443 und kommt damit durch deine HTTPS-Regel. Völlig Wurst, was die wirklich macht. Einziger Schutz ist der dagegen, dass du versehentlich selbst einen sich dann standardkonform verhaltende Software startest und die in der Firewall nicht freischaltest. Auf einem PC kann ich das verstehen, da macht man vielleicht mal was unüberlgtes und will eine zweite "nachfrage". Aber auf der anderen Seite verursacht das halt Probleme bei FTP, Bittorrent, Telefonie... die eben mehr als einen Port benötigen. Auf nem Server finde ich das deswegen absolut fehl am Platz.
Ohnehin sollte auch ein FTP-Server als VM geschützt sein, somit wäre auch hier die Firewall unabdingbar.
Ohne ist dein FTP einfach nicht sicher. In irgend einer weise mit von wegen "geschützt" zu reden bevor das Ding TLS spricht ist absoluter Quatsch.
Mit dem dst würde ich aufpassen. Machst du das masquerading
dst 192.168.1.75
bBist du dir da sicher? Wenn du das NAT Postrouting machst.hat der noch eine alte Adresse. Machst du es im PREROUTING ist es die FRWARD-Chain
rot: Moderator wanne spricht, default: User wanne spricht.

BrotherJ
Beiträge: 323
Registriert: 15.11.2018 07:56:18

Re: ProFTPd zeigt bei TLS-Verbindung keine Inhalte

Beitrag von BrotherJ » 22.05.2019 18:49:00

wanne hat geschrieben: ↑ zum Beitrag ↑
22.05.2019 17:28:11
Da fehlt noch immer:

Code: Alles auswählen

MasqueradeAddress [EXTERNE IP] 
Wo und wie? Es hilft mir gar nichts, wenn ich Deine Gedankengänge reflektieren soll.
wanne hat geschrieben: ↑ zum Beitrag ↑
22.05.2019 17:28:11
PORT
Äh das ist Aktives FTP. Das tut nicht hinter NAT. Du solltest dein FileZilla wieder auf passiv stellen. (Oder auf IPv6 umstellen ;-) .)
Das genauso: Was zitierst Du mit "PORT"? Das steht nirgends in meinem Post, vor allem nicht in dieser Art. Respektive in der Config ist Passiv eingetragen. Bitte etwas ausführlicher formuliert wäre wesentlich effizienter für die Kommunikation.
wanne hat geschrieben: ↑ zum Beitrag ↑
22.05.2019 17:28:11
Services kannst du mit selinux freischalten.
Weiß ich auch, steht aber auf dieser Maschine nicht zur Debatte.
wanne hat geschrieben: ↑ zum Beitrag ↑
22.05.2019 17:28:11
dst 192.168.1.75
bBist du dir da sicher? Wenn du das NAT Postrouting machst.hat der noch eine alte Adresse. Machst du es im PREROUTING ist es die FRWARD-Chain
Worin bin ich mir sicher?
Prinzipiell begrüsse ich jede Unterstützung, aber sobald sie unverständlich wird, wird sie eine Qual.

BrotherJ
Beiträge: 323
Registriert: 15.11.2018 07:56:18

Re: ProFTPd zeigt bei TLS-Verbindung keine Inhalte

Beitrag von BrotherJ » 22.05.2019 19:22:11

Ich sage es mal anders herum. Du kommentierst zwar meine Posts, aber woher soll ich denn verifizieren, dass das auch stimmt?

Code: Alles auswählen

iptables -I net-loc 2 -p tcp --match multiport --dports 49152:65535 --dst 192.168.1.75 -j ACCEPT
habe ich zusammen mit den dazu geladenen Kernelmodulen auf einer entsprechenden Webseite gefunden, auf der das Thema ProFTPd hinter einer IPTABLES-Firewall erläutert wird.
Und damit das überall 0.0.0.0 landet, habe ich die IP des internen Servers mit in den Befehl gesetzt.
Solange Du die Dinge ohne Begründung/Erläuterung anbietest, bleibt das ein Ratespiel, es sei denn ich habe exakt Deinen Wissensstand.

Ich denke, wir helfen uns hier gegenseitig und machen uns nicht fertig. Es bringt nichts, den Leuten andere Lösungen zu bieten, wenn diese aus welchem Grund auch immer nicht zur Debatte stehen - siehe Dein wiederholtes Erwähnen von SELINUX. Die Situation ist wie sie ist:
1 KVM-Host mit mehreren VMs, eine davon hat einen Apache und einen ProFTPd. Der Host hat zur Absicherung eine IPTABLES-Shorewall-Firewall. Und jetzt gilt es FTP mit TLS von aussen zur VM mit der IP 192.168.1.75 zuzulassen. Alles Andere ist für die Lösung tabu und nur hinderlich. Auch wie das gelöst ist, gut oder schlecht, steht nicht zur Debatte, denn jeder Schritt in diese Diskussion blockiert bei einer Lösungsfindung.
Wenn Du der Meinung bist, es ist Deine Art so kommunizieren und zu erklären, dann ist das auch okay. Aber dann können wir beide nicht miteinander kommunizieren, denn ich brauche ein klare und eindeutige Kommunikation, nicht etwas das hingeklatscht wird.

wanne
Moderator
Beiträge: 7447
Registriert: 24.05.2010 12:39:42

Re: ProFTPd zeigt bei TLS-Verbindung keine Inhalte

Beitrag von wanne » 22.05.2019 20:00:50

Ohne folgende Zeile ist der FTP halt fehlerhaft.

Code: Alles auswählen

MasqueradeAddress [EXTERNE IP]
FileZilla mag Workarounds haben, um mit fehlerhaften Konfigurationen umzugehen (Erkennen der Adresse als privat und dann raten welches die öffentlich sein könnte) aber a) würde ich mich nicht darauf verlassen, dass das funktioniert und b) wird das auch mit anderen Clients kaputt gehen.
Was zitierst Du mit "PORT"? Das steht nirgends in meinem Post
Dein FileZilla hat das im Log stehen. PORT ist das Kommando mit dem aktives FTP angestoßen wird. => Irgend jemand spricht mit dem Server aktives FTP. Da aktives FTP und NAT nicht funktionieren, würde ich sagen, dass da fehlerhafter weise aktives statt passives FTP genutzt wird.
Könnte mir vorstellen, dass dein FileZilla das absichtlich als Fallback macht, wen passives fehlschlägt.
Auf der Firewall Shorewall des KVM-Host habe ich diesen Befehl abgesetzt:[…] Worin bin ich mir sicher?
Mir sieht das mit der internen Adresse in der INPUT-Chain komisch aus ich kann mir kein Setup vorstellen, bei dem das eine korrekte Regel wäre. Da ich den Rest der Regeln nicht kenne kann ich nur raten was da schief läuft.
Kannst du mal die Regel für HTTPs zeigen. Die müsste sich ganz gut auf FTPs anpassen lassen. (Vorraussetzung ist, dass die tut.)
rot: Moderator wanne spricht, default: User wanne spricht.

BrotherJ
Beiträge: 323
Registriert: 15.11.2018 07:56:18

Re: ProFTPd zeigt bei TLS-Verbindung keine Inhalte

Beitrag von BrotherJ » 23.05.2019 07:40:02

Danke,
das liest sich bereits besser und ich weis, wo ich weiter suchen kann.

BrotherJ

BrotherJ
Beiträge: 323
Registriert: 15.11.2018 07:56:18

Re: ProFTPd zeigt bei TLS-Verbindung keine Inhalte

Beitrag von BrotherJ » 23.05.2019 11:07:48

Abschliessende Lösung

Code: Alles auswählen

cat conf.d/custom.conf 
<Global>
    RequireValidShell off
    PassivePorts 49152 65535
</Global>

MasqueradeAddress IPextern

UseIPv6 off

DefaultRoot ~

<Limit LOGIN>
    DenyGroup !ftpuser
</Limit>
plus bereits genannte conf.d/tls.conf und proftd.conf führen zusammen mit dem IPTABLES-Befehl auf dem KVM-Host

Code: Alles auswählen

iptables -I net-loc 2 -p tcp --match multiport --dports 49152:65535 --dst 192.168.1.75 -j ACCEPT
zur vollen Funktionsweise des ProFTPd-Servers hinter der Firewall.
Gefehlt hatten gegenüber meiner ursprünglichen Konfiguration lediglich

Code: Alles auswählen

PassivePorts 49152 65535
und

Code: Alles auswählen

MasqueradeAddress IPextern
entweder in der "/etc/proftpd/proftd.conf" oder /etc/proftpd/conf.d/custom.conf explizit bei mir.

Lediglich den Befehl von IPTABLES habe ich noch in die Shorewall-Syntax einzubauen.
Shorewall arbeitet mit Zonen zones

Code: Alles auswählen

###############################################################################
#ZONE           TYPE            OPTIONS         IN_OPTIONS      OUT_OPTIONS
fw              firewall
net             ipv4
loc             ipv4
Macros wie

Code: Alles auswählen

#
# Shorewall -- /usr/share/shorewall/macro.FTP
#
# This macro handles FTP traffic.
#
###############################################################################
#ACTION SOURCE  DEST    PROTO   DPORT   SPORT   ORIGDEST        RATE    USER

?if ( __CT_TARGET && ! $AUTOHELPERS && __FTP_HELPER  )
 PARAM  -       -       tcp     21 { helper=ftp }
?else
 PARAM  -       -       tcp     21
?endif
mit Policies

Code: Alles auswählen

###############################################################################
#SOURCE         DEST            POLICY          LOG LEVEL       LIMIT:BURST

loc             net             ACCEPT
net             all             DROP            info
fw              all             ACCEPT          info
# THE FOLLOWING POLICY MUST BE LAST
all             all             REJECT          info
und rules, in denen die Regeln aufgestellt werden, wie hier FTP

Code: Alles auswählen

######################################################################################################################################################################################################
#ACTION         SOURCE          DEST            PROTO   DEST    SOURCE          ORIGINAL        RATE            USER/   MARK    CONNLIMIT       TIME            HEADERS         SWITCH          HELPER
#                                                       PORT    PORT(S)         DEST            LIMIT           GROUP
?SECTION ALL
?SECTION ESTABLISHED
?SECTION RELATED
?SECTION INVALID
?SECTION UNTRACKED
?SECTION NEW
#       Don't allow connection pickup from the net
#
Invalid(DROP)   net             $FW             tcp

SSH(ACCEPT)     net             $FW
SSH(ACCEPT)     loc             $FW
SSH(ACCEPT)     $FW             loc

# Allow FTP and TFTP traffic to the apache2 server
# 
FTP(ACCEPT)     net             loc:192.168.1.75
FTP(ACCEPT)     loc:192.168.1.75 net
Gruß
BrotherJ

BrotherJ
Beiträge: 323
Registriert: 15.11.2018 07:56:18

Re: [GELÖST] ProFTPd zeigt bei TLS-Verbindung keine Inhalte

Beitrag von BrotherJ » 27.05.2019 19:17:14

Statt

Code: Alles auswählen

iptables -I net-loc 2 -p tcp --match multiport --dports 49152:65535 --dst 192.168.1.75 -j ACCEPT
geht auch in der
/etc/shorewall/rules

Code: Alles auswählen

ACCEPT          net             loc:192.168.1.75        tcp     49152:65535
Gruß

BrotherJ

Antworten