Stunnel PSK Fehler

987
Hartman

Ich habe einen anonymen Stunnel 5.29 + Squid 3.3 SSL-Proxyserver für wenige Zwecke gebaut und möchte die PSK-Autorisierung aktivieren. Die Konfiguration des Stunnel-Servers:

pid = /run/stunnel.pid chroot = /var/lib/stunnel client = no setuid = stunnel setgid = stunnel cert = /etc/stunnel/stunnel.pem  debug = 7 ;output = stunnel.log foreground = yes  [server_psk] accept = 443 accept = :::443 connect = 127.0.0.1:8443 ciphers = PSK PSKsecrets = /etc/stunnel/psk.txt  [server_proxy] accept = 8443 connect = 127.0.1:3128 sslVersion = all ciphers = ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-AES256-GCM-SHA384:DHE-RSA-AES128-GCM-SHA256:DHE-DSS-AES128-GCM-SHA256:kEDH+AESGCM:ECDHE-RSA-AES128-SHA256:ECDHE-ECDSA-AES128-SHA256:ECDHE-RSA-AES128-SHA:ECDHE-ECDSA-AES128-SHA:ECDHE-RSA-AES256-SHA384:ECDHE-ECDSA-AES256-SHA384:ECDHE-RSA-AES256-SHA:ECDHE-ECDSA-AES256-SHA:DHE-RSA-AES128-SHA256:DHE-RSA-AES128-SHA:DHE-DSS-AES128-SHA256:DHE-RSA-AES256-SHA256:DHE-DSS-AES256-SHA:DHE-RSA-AES256-SHA:!aNULL:!eNULL:!EXPORT:!DES:!RC4:!3DES:!MD5:!PS options = NO_SSLv2 options = NO_SSLv3 options = CIPHER_SERVER_PREFERENCE 

Ich stelle jedoch fest, dass ich keine Internetverbindung herstellen kann und erhalte diese Nachricht auf der Clientseite:

LOG5[676]: Service [squid] accepted connection from 127.0.0.1:60216 LOG3[676]: s_connect: s_poll_wait 192.169.169.152:443: TIMEOUTconnect exceeded LOG5[676]: Connection reset: 0 byte(s) sent to SSL, 0 byte(s) sent to socket 

Der Browser (Firefox 43) meldet zwei Fehler, SSL Errorwenn ich mit HTTPS auf Google und Connection Resetauf eine nicht HTTPS-fähige Site zugreifen. Hier ist die clientseitige Konfiguration:

client = yes  [local_proxy] accept = 127.0.0.1:8089 connect = 192.169.169.152:443 PSKsecrets = psk.txt CAfile = ca-certs.pem sslVersion = all options = NO_SSLv2 options = NO_SSLv3 

Ich habe bestätigt, dass die Konfiguration von Tintenfischen gut ist und funktioniert, daher bin ich sicher, dass das Problem bei stunnel auftritt. Gibt es jemanden, der Erfahrung im Stunnel hat und mir helfen kann?

1

1 Antwort auf die Frage

1
Hartman

Nach einem Forschungstag entdecke ich endlich den Weg, um das Problem zu lösen. Der Tipp ist: Die Clientseite muss sich wie die Serverseite in zwei Abschnitte trennen. Also ändere ich die clientseitige Konfiguration folgendermaßen:

[local_psk] client = yes accept = 127.0.0.1:8443 connect = 192.168.169.152:443 PSKsecrets = psk.txt  [local_proxy] client = yes accept = 127.0.0.1:8089 connect = 127.0.0.1:8443 sslVersion = all options = NO_SSLv2 options = NO_SSLv3 

Der Vorgang ist also folgendermaßen:

browser <--> [local_proxy] <--> [local_psk] <==> [server_psk] <--> [server_proxy] <==> website 

Dabei -bedeutet lokaler Verkehr, =Internetverkehr und []die Konfigurationsabschnitte in stunnel

Und ich aktualisieren Sie die Serverkonfiguration [squid]Abschnitt acceptOption 8443zu 127.0.0.1:8443. Dieser Tellstunnel akzeptiert nur die Verbindung von localhost, andernfalls wird der [PSK]Abschnitt unbrauchbar. So sieht es nach der Veränderung aus:

[server_proxy] accept = 127.0.0.1:8443 connect = 127.0.1:3128 sslVersion = all ciphers = ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-AES256-GCM-SHA384:DHE-RSA-AES128-GCM-SHA256:DHE-DSS-AES128-GCM-SHA256:kEDH+AESGCM:ECDHE-RSA-AES128-SHA256:ECDHE-ECDSA-AES128-SHA256:ECDHE-RSA-AES128-SHA:ECDHE-ECDSA-AES128-SHA:ECDHE-RSA-AES256-SHA384:ECDHE-ECDSA-AES256-SHA384:ECDHE-RSA-AES256-SHA:ECDHE-ECDSA-AES256-SHA:DHE-RSA-AES128-SHA256:DHE-RSA-AES128-SHA:DHE-DSS-AES128-SHA256:DHE-RSA-AES256-SHA256:DHE-DSS-AES256-SHA:DHE-RSA-AES256-SHA:!aNULL:!eNULL:!EXPORT:!DES:!RC4:!3DES:!MD5:!PS options = NO_SSLv2 options = NO_SSLv3 options = CIPHER_SERVER_PREFERENCE 

HINWEIS

Diese Konfigurationen dienen nur zur Entwicklung / zum Testen. Wenn Sie einen hochsicheren anonymen Proxy-Server wünschen, müssen Sie debug = 0die Protokollierung und die foreground = noDaemon-Konfiguration in der Stunnel-Konfigurationsdatei deaktivieren, indem Sie die Squid-Konfigurations- und iptables-Regeln richtig einstellen.