NGINX als ReverseProxy

Wie kann man das Konfigurieren?
Post Reply
jean
Posts: 19
Joined: May 28th, 2016, 9:44 am

NGINX als ReverseProxy

Post by jean » May 28th, 2016, 10:10 am

Hallo zusammen,

entweder stehe ich im Moment auf dem Schlauch oder irgendwas stimmt mit NGINX nicht... jedenfalls komme ich keinen Meter weiter.

Ausgangslage:
Ich habe auf meiner Debian-Dom0 mehrere DomUs am Start, darunter einen Mail-Server, Nagios und einen Web-Server.
Bislang habe ich den gesamten Verkehr auf Port 80 & 443 von ipfire an eine DomU weitergeleitet, die dann mittels POUND den Rest für mich erledigt und den Verkehr an die betreffenden Server weitergeleitet hat.
Eigentlich habe ich den Plan, die POUND-DomU aufzulösen und die Aufgaben an ipfire zu übertragen. NGINX ist auch installiert und funktioniert mit der Default-Konfiguration, doch sobald ich meine Konfigurationen lade, knallt es! So motzt NGINX, dass der Port 80 & 443 bereits genutzt sei:

Code: Select all

nginx: [emerg] bind() to 0.0.0.0:80 failed (98: Address already in use)
nginx: [emerg] bind() to 0.0.0.0:443 failed (98: Address already in use)
(Die Prozesse, die auf diesen Ports lauschen kann ich auch nicht killen, weil nicht da!)

Anforderung:
  • Auf Port 80 eintreffender Verkehr soll auf 443 umgeleitet werden.
  • Auf Port 443 eintreffender Verkehr soll an eine betreffende Zielmaschine in DMZ / internes Netz weitergeleitet werden.
Meine Frage ans Forum:
  • Hat jemand eine ähnliche Konfiguration am Start?
  • Kann ich bei irgendwem eine funktionierde Konfig abspicken?
    Habe bereits das hier probiert, geht aber nicht: https://blog.buyenne.com/?p=219524
  • Hat jemand Links, die das Thema behandeln? (Und ja, die Manpages kenne ich bereits)
Vorab vielen Dank und viele Grüße

Jean

ummeegge
Community Developer
Community Developer
Posts: 4899
Joined: October 9th, 2010, 10:00 am

Re: NGINX als ReverseProxy

Post by ummeegge » May 28th, 2016, 1:21 pm

Hallo Jean,
im IPFire Wiki findet sich ein Nginx Artikel der auch gleich noch ein schnell howto für die Reverse Proxy Funktion mit dranhängen hat, kennst du den schon --> http://wiki.ipfire.org/nginx/start ?
jean wrote:So motzt NGINX, dass der Port 80 & 443 bereits genutzt sei:

Code: Select all

nginx: [emerg] bind() to 0.0.0.0:80 failed (98: Address already in use)
nginx: [emerg] bind() to 0.0.0.0:443 failed (98: Address already in use)
(Die Prozesse, die auf diesen Ports lauschen kann ich auch nicht killen, weil nicht da!)
Kann es sein das dass der Nginx selber ist bzw. hast du mal deine Konfig auf Konsistenz gecheckt

Code: Select all

nginx -t
Grüsse,

UE
Image
Image

jean
Posts: 19
Joined: May 28th, 2016, 9:44 am

Re: NGINX als ReverseProxy

Post by jean » May 28th, 2016, 2:09 pm

Hallo ummeegge,

nginx -t gibt das hier aus:

Code: Select all

nginx: the configuration file /etc/nginx/nginx.conf syntax is ok
nginx: configuration file /etc/nginx/nginx.conf test is successful
Und den NGINX selbst hatte ich schon auf Port 81 umgestellt, der kann es dann ja eigentlich nicht sein...

Das Howto gehe ich nochmal durch... wobei ich da - wenn ich richtig liege - schon zwei Fehler gefunden habe:
  • Die Server-Direktive müsste von http umschlossen werden
  • Die "location"-Direktive müsste im Abschnitt "server" liegen
Viele Grüße

Jean

ummeegge
Community Developer
Community Developer
Posts: 4899
Joined: October 9th, 2010, 10:00 am

Re: NGINX als ReverseProxy

Post by ummeegge » May 28th, 2016, 2:26 pm

O.K.
diese Meldungen

Code: Select all

nginx: [emerg] bind() to 0.0.0.0:80 failed (98: Address already in use)
nginx: [emerg] bind() to 0.0.0.0:443 failed (98: Address already in use)
können scheinbar auch an einer alten Syntax liegen wie z.b. hier --> https://chrisjean.com/fix-nginx-emerg-b ... dy-in-use/ . Dachte das sich das dann mittels 'nginx -t' event. checken lässt.

netstat zeigt dir auch nichts an ?
jean wrote: Das Howto gehe ich nochmal durch... wobei ich da - wenn ich richtig liege - schon zwei Fehler gefunden habe:
  • Die Server-Direktive müsste von http umschlossen werden
  • Die "location"-Direktive müsste im Abschnitt "server" liegen
Ja leider ist das Wiki nicht so richtig 1. ausführlich und 2. auch fehlerfrei. Hatte auch schon eben auf die Schnelle was gefixt da ein Semikolon in der 'ssl_ciphers' Zeile gefehlt hatte.

Wäre Klasse wenn du, sollte es dann doch laufen, nochmal rüberschaust und event. das Wiki dann ein wenig auffrischen würdest.

Grüsse,

UE
Image
Image

jean
Posts: 19
Joined: May 28th, 2016, 9:44 am

Re: NGINX als ReverseProxy

Post by jean » May 28th, 2016, 5:14 pm

Nein, netstat hat kurioserweise auch nichts ausgeworfen...

Ich habe eben wieder eine Rolle rückwärts gemacht, aus meinem Pound die selbst-signierten Zertifikate rausgeworfen, neue Zertifikate bei startSSL geholt und meinen POUND auf Vordermann gebracht!

Ich bleibe aber am Thema dran und werde - wenn ich weiter komme und Erfolge vermelden kann - gerne was zum Wiki beisteuern.... ist klar!

Schon mal Danke für das Feedback... und noch ein schönes WE!

Viele Grüße

Jean

ummeegge
Community Developer
Community Developer
Posts: 4899
Joined: October 9th, 2010, 10:00 am

Re: NGINX als ReverseProxy

Post by ummeegge » May 30th, 2016, 2:09 pm

Hi jean,
jean wrote: Schon mal Danke für das Feedback... und noch ein schönes WE!
ja gerne.
jean wrote:Ich bleibe aber am Thema dran und werde - wenn ich weiter komme und Erfolge vermelden kann - gerne was zum Wiki beisteuern.... ist klar
Das wäre nett, da das Nginx Wiki bestimmt noch ausbaufähig wäre ;) . Es gab im Forum mal einen Tread wo das Mailproxy Feature vom Nginx mal angetestet wurde, wäre auch eine nette Erweiterung für´s Wiki <-- schaue mal ob ich da noch was wieder finde.

Grüsse,

UE
Image
Image

jean
Posts: 19
Joined: May 28th, 2016, 9:44 am

Re: NGINX als ReverseProxy

Post by jean » May 30th, 2016, 2:30 pm

Hallo ummeegge,

habe vorhin gesehen, das PAKFIRE auch "Pound" bereit hält. Also Pound installiert, im Wiki gespickelt, konfiguriert, Zertifikate von meiner POUND-DomU auf IPFIRE kopiert und ... auf die Fresse gefallen :-(

Es geht schon damit los, dass mir nicht klar ist, welche IP-Adresse ich in der pound-Konfig unter "Address" eintragen muss: die externe IP oder die IP der IPFIRE im internen Netz? Habe in der POUND-Konfig auch schon 0.0.0.0 eingetragen, doch dann kommt nichts. Selbst wenn ich aus dem internen Netz die IP des IPFIRE mit dem geünschten Port angebe, so kommt nichts.
"pound -c" sagt, dass alles OK sei...

Außerdem: wie ist das denn nun mit den Firewall-Regeln? Kann auch gut sein, dass ich einfach nur zu blöde bin, die Regeln richtig einzutragen. (Ganz ehrlich: lieber 5 Digitalisierungsboxen von der Telekom einrichten als eine IPFIRE, da wünsche ich mir doch die GUI von Endian.)

Viele Grüße

ummeegge
Community Developer
Community Developer
Posts: 4899
Joined: October 9th, 2010, 10:00 am

Re: NGINX als ReverseProxy

Post by ummeegge » May 30th, 2016, 3:13 pm

Hi jean,
jean wrote:habe vorhin gesehen, das PAKFIRE auch "Pound" bereit hält. Also Pound installiert, im Wiki gespickelt, konfiguriert, Zertifikate von meiner POUND-DomU auf IPFIRE kopiert und ... auf die Fresse gefallen :-(
beide Wikis zählen leider nicht zu den ausführlichsten aber gut das ist halt ein Community Projekt ohne Community/Bezahlversion wo jeder gerne mithelfen kann und es auch einem kleinen Dankeschön gleich kommt wenn man eine Lösung gefunden hat und diese dann auch im Wiki/mit_allen_anderen_wieder_teilt und erweitert ;) was leider nicht soo oft der Fall ist...

Hab das mal mit dem Pound fix im LAN ausprobiert ob es da Antwort gibt, also
über Pakfire installiert, test pound.cfg aus dem Wiki auf einen Dienst begrenzt nach /etc/pound.cfg geschrieben

Code: Select all

    ListenHTTP
    Address 0.0.0.0
    Port    89
    Service
      HeadRequire "Host: .*www.test0.com.*"
      BackEnd
        Address 192.168.7.7
        Port    84
      End
    End
  End
und Pound gestartet

Code: Select all

-> /etc/init.d/pound start
Starting pound reverse-proxy...
starting... 													[  OK  ]
mal bei netstat nachgefragt

Code: Select all

tcp        0      0 0.0.0.0:89              0.0.0.0:*               LISTEN      23930/pound
und aus dem LAN ohne FW Regeln mittels Browser mal geschaut und auch eine ganz nette Anwort bekommen

Code: Select all

The service is not available. Please try again later.
, ist auch klar da ich da keinen Service anbiete aber Pound redet schonmal...
Ansonsten scheint hier Pound ohne viel hin und her erstmal zulaufen. Es gibt im Forum dazu auch einiges erinnere ich mich dunkel.
jean wrote:Es geht schon damit los, dass mir nicht klar ist, welche IP-Adresse ich in der pound-Konfig unter "Address" eintragen muss: die externe IP oder die IP der IPFIRE im internen Netz? Habe in der POUND-Konfig auch schon 0.0.0.0 eingetragen, doch dann kommt nichts. Selbst wenn ich aus dem internen Netz die IP des IPFIRE mit dem geünschten Port angebe, so kommt nichts.
Ich würde unter Adresse das Interface auf dem Fire eintragen wo die Anfragen landen sollen, 0.0.0.0 ging bei mir halt auch vom LAN aus. Wenn die Pakete z.b. auf red0 reinkommen sollen und du da eine private IP hast dann würde ich die da auch reinschreiben, ein event. vorgeschaltetes Gateway macht ja dann auch das entsprechende DNAT, bei öffentlicher IP kommt die dann rein.
jean wrote:Außerdem: wie ist das denn nun mit den Firewall-Regeln? Kann auch gut sein, dass ich einfach nur zu blöde bin, die Regeln richtig einzutragen. (Ganz ehrlich: lieber 5 Digitalisierungsboxen von der Telekom einrichten als eine IPFIRE, da wünsche ich mir doch die GUI von Endian.)
Kann gut sein das dass die FW Einstellungen sind die da nicht passen. Hast du denn mal nach FW DROP´s für den Port im Log geschaut ? Kommt da irgendwas im Nginx Log an ? Pound hat soweit ich das sehen kann keins und Loggt auch nicht nach messages ?!

FW Regeln: Das wäre in dem Fall ein Externer Zugang da die Pakete ja direkt den Fire ansprechen sollen. Das wäre dann bei spezifischer IP/Subnetz aus dem WAN
Quelladresse (IP/MAC-Adresse oder Netzwerk): IP/Subnetz --> Ziel: Firewall Rot --> Protokoll: TCP mit dem entsprechenden ListenHTTP Port <-- weiterleiten macht ja Pound dann.
bzw. bei allen möglichen IP´s aus dem WAN
Standard-Netzwerke: Alle --> Ziel: Firewall Rot --> Protokoll: TCP mit dem entsprechenden Port .

Viel mehr sollte es da nicht brauchen.

Grüsse,

UE
Image
Image

jean
Posts: 19
Joined: May 28th, 2016, 9:44 am

Re: NGINX als ReverseProxy

Post by jean » May 31st, 2016, 12:00 am

Hurra... Pound läuft!

POUND ist garnicht erst hoch gekommen ist, denn die Anweisung ...

Code: Select all

Control "/var/run/pound/poundctl.socket"
... funzte nicht so wie ich das auf meiner POUND-DomU eingerichtet hatte.

Der Test auf SSLLabs belohnt mich noch immer mit "Ranking A-", so dass ich in Kürze (und wenn tatsächlich alles rund läuft) die DomU abschalten kann.

Ganz herzlichen Dank an ummeegge für die tolle Hilfe.

Viele Grüße

jean
Posts: 19
Joined: May 28th, 2016, 9:44 am

Re: NGINX als ReverseProxy

Post by jean » June 3rd, 2016, 10:48 pm

Kurzes Update:

Ich habe POUND wieder runter geworfen!
Das Phänomen: Alles lief "dem Anschein nach" einwandfrei, lediglich z-Push machte Probleme. Kurioserweise aber nicht bei bestehenden Mail-Konfigurationen, sondern nur dann, wenn man ein neuen Zugang zu einem Mailkonto einrichten wollte.

Anfänglich hatte ich z-push, den Apachen und Android im Verdacht, doch dann habe ich im ersten Schritt die Anfragen ohne Umweg direkt auf den Mailserver durchgelassen... und siehe da: beim ersten Schuß ein Treffer - hat funktioniert!

Demnach liegt das Problem also bei Pound (Zerifikate konnten es nicht sein: sind auf Proxy und Zielsystem gleich): Also weiter an Pound rumgeschraubt, ich habe in meiner Verzweiflung sogar in der für Pound erforderlichen PEM die Reihenfolge der Einträge für key, chain und cert geändert... nix hat geholfen!

Also: Pound runtergekratzt und jetzt habe ich nginx am Start ... und das läuft nun!

Ich habe mich schon an das Hardening gemacht und hätte noch ein Hinweis für Wiki!
Mit dieser Konfig...

Code: Select all

ssl_dhparam                   /etc/nginx/ssl/dh2048.pem;
ssl_protocols                 TLSv1.1 TLSv1.2 TLSv1;

ssl_ciphers                   ECDH+AESGCM:DH+AESGCM:ECDH+AES256:DH+AES256:ECDH+AES128:DH+AES:ECDH+3DES:DH+3DES:RSA+AESGCM:RSA+AES:RSA+3DES:!aNULL:!MD5:!DSS;

... erhält man bei Qualys schonmal ein "Overall Rating" mit der Note "A" (Mit den Ciphers aus dem Wiki nur ein B)

Wer in Kauf nehmen kann, dass alte Clients (Win XP oder alte Java) keine Verbindung aufnehmen können, der kann zusätzlich in den Serverblock einer Server-Konfig die Anweisung...

Code: Select all

add_header Strict-Transport-Security "max-age=63072000; includeSubdomains; preload";
und erhält ein A+, da mit dieser Einstellung "HTTP Strict Transport Security " (HSTS) unterstützt wird.
;-)


Viele Grüße
Last edited by jean on June 4th, 2016, 10:54 am, edited 2 times in total.

ummeegge
Community Developer
Community Developer
Posts: 4899
Joined: October 9th, 2010, 10:00 am

Re: NGINX als ReverseProxy

Post by ummeegge » June 4th, 2016, 8:29 am

Hallo jean ,
das sieht doch schon mal ganz nett aus :) .
Was hältst du von einer, sagen wir mal erweiterten Vorschlagskonfig im Wiki Bereich bzw. Ergänzungen zu deiner Konfig:

1) SPDY bzw. HTTP/2 aktivieren ? Sollte mit 1.5.10 auf SPDY Version 3.1 laufen. Ist aber leider nicht ganz aktuell da SPDY scheinbar mit Nginx Version 1.9.5 auf das HTTP/2 Modul gesetzt wird... Zusatz wäre dennoch in der nginx.conf

Code: Select all

listen 443 ssl spdy;
allerdings funktioniert

Code: Select all

listen 443 ssl http2;

auch.

2) Cipher Art und Reihenfolge:

Code: Select all

    ssl_ciphers EECDH+AESGCM:EDH+AESGCM:EECDH:EDH:!MD5:!RC4:!LOW:!MEDIUM:!CAMELLIA:!ECDSA:!DES:!DSS:!3DES:!NULL;
    ssl_prefer_server_ciphers on;
was dann dieser dynamischen Liste entspricht
ECDHE-RSA-AES256-GCM-SHA384
ECDHE-RSA-AES128-GCM-SHA256
DHE-RSA-AES256-GCM-SHA384
DHE-RSA-AES128-GCM-SHA256
ECDHE-RSA-AES256-SHA384
ECDHE-RSA-AES256-SHA
ECDHE-RSA-AES128-SHA256
ECDHE-RSA-AES128-SHA
DHE-RSA-AES256-SHA256
DHE-RSA-AES256-SHA
DHE-RSA-AES128-SHA256
DHE-RSA-AES128-SHA
ist also ähnlich wie bei dir.

3) Diffie-Hellman: Wie wäre es mit einer secp384r1 Kurve ?

Code: Select all

	ssl_dhparam /etc/nginx/tls/dhparam3072.pem;
	ssl_ecdh_curve secp384r1;
was auch noch mit einem 2048 Bit RSA Key Sinn machen würde. Nginx nimmt glaube ich per Default secp256r1 und die secp521r1 macht denke ich erstmal weniger Sinn da der IE diese z.b. nicht kann.

openssl s_client sagt bei mir:

Code: Select all

-> openssl s_client -connect 192.168.5.8:4321
CONNECTED(00000003)
depth=0 C = DE, ST = BW, L = Berlin, O = IPFire, OU = FZeit, CN = ipfire-prime, emailAddress = ue@xx.org
verify error:num=18:self signed certificate
verify return:1
depth=0 C = DE, ST = BW, L = Berlin, O = IPFire, OU = FZeit, CN = ipfire-prime, emailAddress = ue@xx.org
verify return:1
---
Certificate chain
 0 s:/C=DE/ST=BW/L=Berlin/O=IPFire/OU=FZeit/CN=ipfire-prime/emailAddress=ue@xx.org
   i:/C=DE/ST=BW/L=Berlin/O=IPFire/OU=FZeit/CN=ipfire-prime/emailAddress=ue@xx.org
---
Server certificate
-----BEGIN CERTIFICATE-----
MIIFbjCCA9agAwIBAgIJAJAjKZu9NJq5MA0GCSqGSIb3DQEBCwUAMIGAMQswCQYD
VQQGEwJERTELMAkGA1UECBMCQlcxEjAQBgNVBAcTCUthcmxzcnVoZTEPMA0GA1UE
ChMGSVBGaXJlMQ4wDAYDVQQLEwVGWmVpdDEVMBMGA1UEAxMMaXBmaXJlLXByaW1l
MRgwFgYJKoZIhvcNAQkBFgl1ZUB1ZS5vcmcwHhcNMTYwNjA0MDUzMzE0WhcNMTkw
NjA0MDUzMzE0WjCBgDELMAkGA1UEBhMCREUxCzAJBgNVBAgTAkJXMRIwEAYDVQQH
EwlLYXJsc3J1aGUxDzANBgNVBAoTBklQRmlyZTEOMAwGA1IAPxMFRlplaXQxFTAT
BgNVBAMTDGlwZmlyZS1wcmltZTEYMBYGCSqGSIb3DQEJARYJdWVAdWUub3JnMIIB
ojANBgkqhkiG9w0BAQEFAAOCAY8AMIIBigKCAYEA3gUmae4cwSOZZdhSDLdgOtM3
O/I59BGFtHzhlQNDhoFo6qoZL8eAingEsa3/7enZB2/LAAYByyApMH1ncM3NoxlH
lOfqkh3TJ+9kGLiYWYtvBz+9KPiJK77lpXf3hPOasme9phYRg2zp8p3mJcWQRWAs
7XWkP8rq59mKcqUbOYW0snIdOJPCyExM6DpSxJcVKrUOmq9e9cvOUL9DlOkeU1IB
GBrA9ahu8jaHmbfQxmoAqqcyQJ9Tsbs3U4/DqozGvEp5Llc+lvZFPtnE/wivTLo1
2813ElvB3aBYUlkP8O1ON9O7GZndORZTAbAlA3Z53H8FfsPaio0mK1viwPpEObNH
2c1PBaIg9HhGheKPJhw4kjFTq8dXDh7C5uPXqmgi6/BI/J0HXwW5c3tht/iYDZSP
A5h73By+UWpBzn1cj+Qsbkzy2KLId7zWSMu9qSyTEx3la/w4S4TFtSDdFa//GJAF
bCdFtSXCEx01D1XQt5M3ar6fdzDORjTWchtGrIIFAgMBAAGjgegwgeUwHQYDVR0O
BBYEFAOWMe03FvS9giAwCOGBM214W9AQMIG1BgNVHSMEga0wgaqAFAOWMe03FvS9
giAwCOGBM214W9AQoYGGpIGDMIGAMQswCQYDVQQGEwJERTELMAkGA1UECBMCQlcx
EjAQBgNVBAcTCUthcmxzcnVoZTEPMA0GA1UEChMGSVBGaKolMQ4wDAYDVQQLEwVG
WmVpdDEVMBMGA1UEAxMMaXBmaXJlLXByaW1lMRgwFgYJKoZIhvcNAQkBFgl1ZUB1
ZS5vcmeCCQCQIymbvTSauTAMBgNVHRMEBTADAQH/MA0GCSqGSIb3DQEBCwUAA4IB
gQAe++s+GGSkGauCPJCD50kMoOok5G3Vzsvdk1C/uD/ICSpkbSpGvQlFKQ3K074O
Rlwbp4IyBcnaMXXD9JR7lQ9qGvdh0XcV3LSpo+EWslFKqd76rT7HlgrkFsSw+ziz
TsvnCzxC0q2N3bCRoql0rjEWGQ8Tt1ZQAXNMmQ2n/8gMOlb0+XIjg1GWxGzZG281
wjDA6kiSs4Ad1TUXXI2IhkpHaiPB4g3NlBksXgik2eL/td0VYggOdNK03Q06TA0W
doRSLSqa8jwEFjMfLqeOJHuEfYxiqrdZSE5VCZfHem8fUL0j8UE94PbMxIid45TT
Y/xqr2vSsYOqtIPsGIT5vwyjNXcjI0J2t4mCt4d6ATMLgKd5pDIS4DLo6G9VPz0N
doaGdwMiGqmir5AHwXxNRooAoIS01KAIqOR2qDrdWOSvpE3eBO9Dh0wZwW+4Vzhh
T7c5HhO3SEPCdxdXQLpMJHc6BeFBcqzc9g2RJbbuHcB2rE/scNr4WXUb7Y6H4Vvt
fWE=
-----END CERTIFICATE-----
subject=/C=DE/ST=BW/L=Berlin/O=IPFire/OU=FZeit/CN=ipfire-prime/emailAddress=ue@xx.org
issuer=/C=DE/ST=BW/L=Berlin/O=IPFire/OU=FZeit/CN=ipfire-prime/emailAddress=ue@xx.org
---
No client certificate CA names sent
Peer signing digest: SHA512
Server Temp Key: ECDH, P-384, 384 bits
---
SSL handshake has read 2229 bytes and written 464 bytes
---
New, TLSv1/SSLv3, Cipher is ECDHE-RSA-AES256-GCM-SHA384
Server public key is 3072 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: 3A9FA90A721A0EF6EDA0CF2DBD0E2731OIUZ049D45377B07387A735AD6622317
    Session-ID-ctx: 
    Master-Key: DE0ABDC13C3495093E638AE7CAD8D2DB70EDE0101CD823650B67F340B38A6FBF38B91D7E23B26OOILK53D4A17B08A618A
    Key-Arg   : None
    PSK identity: None
    PSK identity hint: None
    TLS session ticket lifetime hint: 600 (seconds)
    TLS session ticket:
    0000 - 50 a3 3f 03 57 31 62 fc-23 dd e9 8a 31 3b ea 9c   P.?.W1b.#...1;..
    0010 - 61 b3 54 0e c5 14 7a 96-f1 10 31 88 31 39 af e5   a.T...z...1.19..
    0020 - b6 3c 4c f3 c4 73 56 b9-36 16 42 51 b0 54 6c d3   .<L..sV.6.BQ.ul.
    0030 - 40 e8 a6 b0 6e 1f 8a 62-6a f8 4f 65 51 6c b9 91   @...n..bj.OeQl..
    0040 - 4a ea 24 e4 0d d5 c8 83-30 33 04 26 0f 85 b6 1a   J.$.....03.&....
    0050 - 9b f3 3f 7d b9 3d 29 4b-04 3e 5d 0d 35 69 06 4f   ..?}.=)K.>].5i.O
    0060 - 2e 64 56 a1 f9 53 52 82-79 21 2a 74 a4 01 f2 fd   .dV..SR.y.*t....
    0070 - 80 19 16 60 7b e4 9f 9d-8e 9b 8f 0b 7c 1e a6 f3   ...`{.......|...
    0080 - 6e 40 ca 9a b7 2a 89 81-1a a3 bf 18 9b 25 01 fd   n@...*.......%..
    0090 - 9e a1 57 10 3a 7a 6e cd-eb 47 1b 50 0d 0b 3a b2   ..W.:zn..G.P..:.
    00a0 - c4 e0 d6 p9 8f c1 2a 66-cb 2b ae 35 22 89 6b 3c   ......*f.+.5".k<

    Start Time: 1465028370
    Timeout   : 300 (sec)
    Verify return code: 18 (self signed certificate)
---
closed
3) HSTS ?

4) HPKP ?
jean wrote: Wer in Kauf nehmen kann, dass alte Clients (Win XP oder alte Java) keine Verbindung aufnehmen können, der kann zusätzlich in den Serverblock einer Server-Konfig die Anweisung...

Code: Select all

add_header Strict-Transport-Security "max-age=63072000; includeSubdomains; preload";
Ich glaube gleiche Kompatibilitätsvorraussetzungen gibt es auch bei ECDHE also:
Android < 3.0.0
Java < 7
OpenSSL < 1.0.0

Windows XP unterstützt zwar DHE, aber nur mit DSA Keys --> https://wiki.mozilla.org/Security/Server_Side_TLS

Ganz interessante Lektüre --> https://www.sherbers.de/howto/nginx/ gerade auch zu Punk 3) und 4) .

Als ein paar weitere Ideen mal.

Grüsse,

UE

P.S. Nginx 1.10.1 ist draussen. Weisst du von irgendwelchen neuen Bahnbrechenden O0 Features bzw. lohnt es sich den mal zu bauen und mal zu testen ?
Image
Image

jean
Posts: 19
Joined: May 28th, 2016, 9:44 am

Re: NGINX als ReverseProxy

Post by jean » June 4th, 2016, 10:36 am

Hi,

ich glaube, ich sollte da ein wenig zurück rudern, denn soooo der Fachmann bin ich nicht. Ich habe mich zwar ein wenig eingelesen, aber letztlich sind meine Konfigurationen nur Copy'n'Paste aus Fundstücken im Netz. Deswegen bin ich ja auch auf die Ergebnisse des Assessments meiner Hardenings (https://www.ssllabs.com/ssltest/) angewiesen.
Wenn Du mich dann nach den Kurven von secp384r1 fragst, dann kann ich nur sagen, dass ich das Mädel nicht kenne... [OMG... war der schlecht]
Spass ohne: Wenn Du mich also nach Details fragst, dann muss ich passen, teste aber gerne durch...

Was die Ergänzungen im Wiki betrifft:
Das Hardening von Webservern & Proxies ist ein eigenes, aber weitaus umfangreicheres Thema.
Da sind so viele Fallstricke, angefangen bei den OpenSSL-Versionen... das würde den Rahmen eines NGINX-Artikels sprengen. Ich würde das auslagern, oder bestensfalls im NGINX oder POUND-Artikel anreißen und stattdessen "eindringlich" auf Quellen verweisen... nicht das später noch einer heult, wenn die Konfig dann doch löchrig ist ;-) Auch sollte jedem Leser klar gemacht werden, dass eine heute im Wiki empfohlene Konfig schon morgen veraltet sein kann (Heartbleed & Konsorten) und die aktuelle Konfiguration der regelmäßigen Prüfung bedarf!

Hier noch 'nen Linktipp: https://raymii.org/s/tags/ssl.html
M.E. eine super Quelle, da der Schreiber nicht nur "SSL in Theorie" behandelt, sondern für verschiedene Systeme auch Beispiele aufzeigt.

Stattdessen sollten die NGINX oder POUND-Artikel um weitere Konfigurationsbeispiele ergänzt werden.
Meine NGINX-Konfigurationen, die meine jeweils eigenständigen Zielsysteme "ZARAFA", "NAGIOS" und einen weiteren Standard-Indianer von außen erreichbar machen, werfe ich Dir gerne per PN über den Zaun.

BTW: Heute teste ich noch, wie ich mein DMS (Alfresco) nach außen bringen kann. Das wäre mal noch interessant, denn mit Pound bin ich immer wieder auf die Schnauze gefallen...

Viele Grüße

Jean

ummeegge
Community Developer
Community Developer
Posts: 4899
Joined: October 9th, 2010, 10:00 am

Re: NGINX als ReverseProxy

Post by ummeegge » June 5th, 2016, 5:59 pm

Hi jean,
jean wrote:Wenn Du mich dann nach den Kurven von secp384r1 fragst, dann kann ich nur sagen, dass ich das Mädel nicht kenne...
das war das "Mädel" von deinem Diffie-Hellman Eintrag :D ....

Immer gemach, wenn du Lust und Zeit zum Testen hast bin ich gerne dabei wenn´s passt...

Liebe Grüsse,

UE
Image
Image

Post Reply