OPNsense Forum

International Forums => German - Deutsch => Topic started by: rantwolf on May 06, 2019, 09:44:42 pm

Title: HAproxy härten
Post by: rantwolf on May 06, 2019, 09:44:42 pm
Moinsen.

Hab hier was ansich Schönes gefunden.
Wie man den HAproxy als WAF etwas absichern kann.

https://www.bayreuth.tk/linux-und-bsd/schutz-fuer-webseiten-mit-haproxy-tiny-waf.html (https://www.bayreuth.tk/linux-und-bsd/schutz-fuer-webseiten-mit-haproxy-tiny-waf.html)

Aber welche Werte sind denn damit dann gemeint?
In der Konsole sind die ja dann anders benannt gegenüber der GUI.

Hat da jemand ein wenig Erfahrung damit?
Title: Re: HAproxy härten
Post by: hbc on May 06, 2019, 10:06:58 pm
Aber welche Werte sind denn damit dann gemeint?
In der Konsole sind die ja dann anders benannt gegenüber der GUI.

Im Zweifel einfach mal in GUI paar Werte eintragen und auf der Konsole schauen, wo diese in die Konfiguration eingetragen werden.
Und wenn es nicht gerade haproxy sein muss - das nginx-Modul hat bereits Support für das NAXSI-WAF Modul.
Title: Re: HAproxy härten
Post by: rantwolf on May 06, 2019, 10:46:25 pm
Naja ich tu mich grad ein wenig schwer mit dem nginx plugin.

Ich habs irgendwie nicht geschaft das funktionsfähig einzurichten.
Geschweige denn mit Let'sEncrypt Zertifikaten.
Da war der HAproxy einfacher.
Title: Re: HAproxy härten
Post by: fabian on May 07, 2019, 05:42:25 pm
Naja ich tu mich grad ein wenig schwer mit dem nginx plugin.

Ich habs irgendwie nicht geschaft das funktionsfähig einzurichten.

Die Konfiguration ist fast ident mit HAProxy - die Menüpunkte heißen halt anders (afaik):
Upstream Server -> IP + Port eintragen (HAProxy Real Server)
Upstream: Upsteram Server zu Upstreams zusammenfassen - Wenn es nur einer ist, ist die auswahl eh einfach (HAProxy Backend)
Location: Match "/" Proxy an den Upstream (HAProxy Rule)
HTTP server: Port und Match zusammenführen (HAProxy Frontend)


Geschweige denn mit Let'sEncrypt Zertifikaten.

Checkbox im HTTP server ankreuzen

Da war der HAproxy einfacher.

Das Plugin ist auch nur dafür da, als Load Balancer verwendet zu werden. Das nginx plugin kann wesentlich mehr und das geht auf Kosten der UI, was Anfänger überfordert. Wenn man weiß, welche Felder man ausfüllen muss, ist es auch nicht schwerer.
Title: Re: HAproxy härten
Post by: hbc on May 07, 2019, 06:29:26 pm
Aber welche Werte sind denn damit dann gemeint?
In der Konsole sind die ja dann anders benannt gegenüber der GUI.

Hat da jemand ein wenig Erfahrung damit?
Habe mir das heute mal angeschaut. Eigentlich ganz easy. Gibt ja fast überall das Feld Option passthrough. Das kannst Du diese Werte eintragen.

Die zwei timeouts für Default in den Passthrough bei Defaults und die Einstellung für den Frontendserver bei Deiner Frontendserver-Einstellung ebenfalls unter Passthrough.

Sieht dann später in der Konfiguration so aus, wie in Deinem Link.
Title: Re: HAproxy härten
Post by: rantwolf on May 07, 2019, 11:50:12 pm
Aber welche Werte sind denn damit dann gemeint?
In der Konsole sind die ja dann anders benannt gegenüber der GUI.

Hat da jemand ein wenig Erfahrung damit?
Habe mir das heute mal angeschaut. Eigentlich ganz easy. Gibt ja fast überall das Feld Option passthrough. Das kannst Du diese Werte eintragen.

Die zwei timeouts für Default in den Passthrough bei Defaults und die Einstellung für den Frontendserver bei Deiner Frontendserver-Einstellung ebenfalls unter Passthrough.

Sieht dann später in der Konfiguration so aus, wie in Deinem Link.

Danke dir.
Aber wie es scheint kann man bei pass-through nur immer einen Wert eintragen. Oder gibt es da ne andere Möglichkeit?
So müßte man ja dann immer jede Regel einzeln machen und einbinden.
Sieht dann halt nicht so schön aus.


Naja ich tu mich grad ein wenig schwer mit dem nginx plugin.

Ich habs irgendwie nicht geschaft das funktionsfähig einzurichten.

Die Konfiguration ist fast ident mit HAProxy - die Menüpunkte heißen halt anders (afaik):
Upstream Server -> IP + Port eintragen (HAProxy Real Server)
Upstream: Upsteram Server zu Upstreams zusammenfassen - Wenn es nur einer ist, ist die auswahl eh einfach (HAProxy Backend)
Location: Match "/" Proxy an den Upstream (HAProxy Rule)
HTTP server: Port und Match zusammenführen (HAProxy Frontend)


Geschweige denn mit Let'sEncrypt Zertifikaten.

Checkbox im HTTP server ankreuzen

Da war der HAproxy einfacher.

Das Plugin ist auch nur dafür da, als Load Balancer verwendet zu werden. Das nginx plugin kann wesentlich mehr und das geht auf Kosten der UI, was Anfänger überfordert. Wenn man weiß, welche Felder man ausfüllen muss, ist es auch nicht schwerer.

Danke auch dir nochmal.
So hab das nochmal ganz frisch auf ner andere OPNsense getestet.
Also Zertifikat wird eingebunden und macht auch ne Umleitung von :80 auf :443.
Aber ich bekomm da immer die Meldung: 'Not Found'.
Der interne Server ist auf :8080 und soll von außen auf :80 mit Umleitung auf:443 reagieren.

Ich glaub irgendwo nen Denk- / Klickfehler zu haben.
Title: Re: HAproxy härten
Post by: hbc on May 08, 2019, 06:56:51 am
Quote
Danke dir.
Aber wie es scheint kann man bei pass-through nur immer einen Wert eintragen. Oder gibt es da ne andere Möglichkeit?
So müßte man ja dann immer jede Regel einzeln machen und einbinden.
Sieht dann halt nicht so schön aus.
Also bei den Defaults war das Passthrough eine Textarea. Da konnte man definitiv mehrere Werte/Zeilen eingeben.

Du hast aber recht, bei der Servern ist es nur ein Textfeld. Evtl. kann man die Options mit Semicolon trennen. Müsste man wieder testen, bzw. dürfte das ja bei haproxy irgendwo erläutert stehen.
Title: Re: HAproxy härten
Post by: fabian on May 08, 2019, 05:28:59 pm
Danke auch dir nochmal.
So hab das nochmal ganz frisch auf ner andere OPNsense getestet.
Also Zertifikat wird eingebunden und macht auch ne Umleitung von :80 auf :443.
Aber ich bekomm da immer die Meldung: 'Not Found'.
Der interne Server ist auf :8080 und soll von außen auf :80 mit Umleitung auf:443 reagieren.

Ich glaub irgendwo nen Denk- / Klickfehler zu haben.

das kann drei ursachen haben:

1) server nach der konfiguration nicht richtig neu durchgestartet

2) http server: location vergessen

3) location: upstream vergessen
Title: Re: HAproxy härten
Post by: rantwolf on May 09, 2019, 10:57:53 pm
Quote
Danke dir.
Aber wie es scheint kann man bei pass-through nur immer einen Wert eintragen. Oder gibt es da ne andere Möglichkeit?
So müßte man ja dann immer jede Regel einzeln machen und einbinden.
Sieht dann halt nicht so schön aus.
Also bei den Defaults war das Passthrough eine Textarea. Da konnte man definitiv mehrere Werte/Zeilen eingeben.

Du hast aber recht, bei der Servern ist es nur ein Textfeld. Evtl. kann man die Options mit Semicolon trennen. Müsste man wieder testen, bzw. dürfte das ja bei haproxy irgendwo erläutert stehen.

Grüße.
So hab mal ein wenig rumgespielt.
Hab auch die Textfelder im Frontend gefunden, da muß man nur auf erweitere Ansicht stellen.
Aber ich muß sagen, daß mir das noch nicht so ganz gefällt, was da als Beispiele gezeigt wurden.
Da müßten noch Anpassungen gemacht werden.


Danke auch dir nochmal.
So hab das nochmal ganz frisch auf ner andere OPNsense getestet.
Also Zertifikat wird eingebunden und macht auch ne Umleitung von :80 auf :443.
Aber ich bekomm da immer die Meldung: 'Not Found'.
Der interne Server ist auf :8080 und soll von außen auf :80 mit Umleitung auf:443 reagieren.

Ich glaub irgendwo nen Denk- / Klickfehler zu haben.

das kann drei ursachen haben:

1) server nach der konfiguration nicht richtig neu durchgestartet

2) http server: location vergessen

3) location: upstream vergessen

Sooo Fabian.
Bin etwas schlauer geworden mit dem nginx Modul.
Ich hatte da einen Denkfehler in der Location erzeugt.
Aber nun geht das Ganze recht gut... aber eine Sache hab ich da noch.

Wie kann ich dem nginx sagen, daß er bei der IP keine Seite oder halt ne '404' durchreichen soll?
Er soll halt nur auf den jeweiligen DNS angesprochen werden.
Ist da das SNI richtig? Wenn ja wie gibt man das da richtig an?

MfG
Title: Re: HAproxy härten
Post by: fabian on May 10, 2019, 06:11:08 pm
SNI ist nur für TLS. Ich denke, du willst einfach nen vhost (HTTP Server) mit der IP als Hostname anlegen:

https://nginx.org/en/docs/http/ngx_http_core_module.html#server_name

The model should allow that:
https://github.com/opnsense/plugins/blob/master/www/nginx/src/opnsense/mvc/app/models/OPNsense/Nginx/Nginx.xml#L553