OPNsense Forum

International Forums => German - Deutsch => Topic started by: W0nderW0lf on October 29, 2021, 08:03:03 AM

Title: Naxsi Rules erstellen - wie richtig whitelisten?
Post by: W0nderW0lf on October 29, 2021, 08:03:03 AM
Moin moin alle,

Ich habe gestern versucht eigene Rules fürs whitelisting zu basteln. Leider finde ich keinen Guide der einen einfachen Weg aufzeigt. Viele verwenden zusätzliche Tools wie "rule generator nxtools"um das Log verständlicher zu machen.
Ich habe versucht anhand der Doku eine Rule zu erstellen. Siehe:
https://github.com/nbs-system/naxsi/wiki/naxsilogs
https://github.com/nbs-system/naxsi/blob/master/naxsi_config/naxsi_core.rules

Mein error log:
2021/10/28 09:36:51 error 8192#100150 *1 NAXSI_EXLOG: ip=111.22.33.44&server=mucke.example.com&uri=%2Frest%2Fstream&id=17&zone=HEADERS&var_name=accept&content=audio%2Fwebm%2Caudio%2Fogg%2Caudio%2Fwav%2Caudio%2F%2A%3Bq%3D0.9%2Capplication%2Fogg%3Bq%3D0.7%2Cvideo%2F%2A%3Bq%3D0.6%2C%2A%2F%2A%3Bq%3D0.5, client: 111.22.33.44, server: mucke.example.com, request: "GET /rest/stream?u=odin&t=1fd5989b84d42d7d017cdb5e69a6d1f2&s=be1ab3&f=json&v=1.8.0&c=NavidromeUI&id=1429d0d6a01880afaecb6705c19d7de3&_=1635406610710 HTTP/2.0", host: "mucke.example.com", referrer: "https://mucke.example.com/app/"
2021/10/28 09:36:51 error 8192#100150 *1 NAXSI_FMT: ip=111.22.33.44&server=mucke.example.com&uri=/rest/stream&vers=1.3&total_processed=11&total_blocked=3&config=learning&cscore0=$LIBINJECTION_SQL&score0=8&zone0=HEADERS&id0=17&var_name0=accept, client: 111.22.33.44, server: mucke.example.com, request: "GET /rest/stream?u=odin&t=1fd5989b84d42d7d017cdb5e69a6d1f2&s=be1ab3&f=json&v=1.8.0&c=NavidromeUI&id=1429d0d6a01880afaecb6705c19d7de3&_=1635406610710 HTTP/2.0", host: "mucke.example.com", referrer: "https://mucke.example.com/app/"
2021/10/28 09:51:06 error 13575#100974 *1 js exception: TypeError: cannot get property "split" of undefined

Was mache ich wenn es kein NAXSI_FMT Log gibt?

2021/10/29 09:52:06 error 61853#101734 *52 NAXSI_EXLOG: ip=111.22.33.442&server=mucke.example.com&uri=%2Frest%2FgetCoverArt.view&id=1000&zone=ARGS&var_name=c&content=substreamer, client: 111.22.33.442, server: mucke.example.com, request: "GET /rest/getCoverArt.view?u=odin&t=b9f082fda448ce38bed40f30dd0abbb0&s=2ImvkNK&v=1.13.0&c=substreamer&f=json&size=500&id=567c7510b719964b11e26c518b2c5f28 HTTP/2.0", host: "mucke.example.com", referrer: "https://localhost/"
2021/10/29 09:52:06 error 61853#101734 *52 no live upstreams while connecting to upstream, client: 111.22.33.442, server: mucke.example.com, request: "GET /rest/getCoverArt.view?u=odin&t=b9f082fda448ce38bed40f30dd0abbb0&s=2ImvkNK&v=1.13.0&c=substreamer&f=json&size=500&id=567c7510b719964b11e26c518b2c5f28 HTTP/2.0", upstream: "http://upstream67c0fb4aebe44d9884a90b4cf7d49264/rest/getCoverArt.view?u=odin&t=b9f082fda448ce38bed40f30dd0abbb0&s=2ImvkNK&v=1.13.0&c=substreamer&f=json&size=500&id=567c7510b719964b11e26c518b2c5f28", host: "mucke.example.com", referrer: "https://localhost/"

Meine Rule: (Siehe Bild)

In der Beschreibung der Rule Types steht auch: Basic rules need to be added to a policy to allow assosciation with a location.
Soll ich auch eine benutzerdefinierte policy erstellen und an meine location anbinden, oder soll ich eine bestehende nutzen?

Wichtigste Frage IMO, gibt's nen trick um herauszufinden welche value man eintragen müsste? $HEADERS_VAR:accept habe ich in einem anderen Forum gefunden, ohne die Syntax dahinter wirklich zu verstehen. siehe: https://issueexplorer.com/issue/nbs-system/naxsi/554

Danke vorab für jede Hilfe!
Title: Re: Naxsi Rules erstellen - wie richtig whitelisten?
Post by: fabian on October 29, 2021, 06:57:18 PM
Ist schon ne Weile her, dass ich das geschrieben habe. Aber soweit ich das noch in Erinnerung habe, kannst du den Header Wert, also nicht den Namen dort whitelisten.
Title: Re: Naxsi Rules erstellen - wie richtig whitelisten?
Post by: W0nderW0lf on October 30, 2021, 01:57:07 PM
Hey Fabian,
auch wenn das nur eine kurze knappe antwort war, war das doch sehr Aussagekräftig.
das mit dem Header hat auch geklappt!
Habe einfach accept in match_value eingetragen.

Hab noch 0 Ahnung von Rule Erstellung für naxsi.
Allerdings frage ich mich auch, warum ich im Learning mode trotzdem fehler auftreten.

Ich weiß auch gar nicht wie ich das whitelisten soll?

4 NAXSI_EXLOG: ip=111.22.33.44&server=mucke.example.com&uri=%2Frest%2Fstream.view&id=1000&zone=ARGS&var_name=c&content=substreamer, client: 111.22.33.44, server: mucke.example.com, request: "GET /rest/stream.view?u=odin&t=2892b6b6e13f6f190d26ed5b90459b7e&s=l0lbM6m&v=1.13.0&c=substreamer&f=json&id=01dd97d35996602c5f9467263b81b581&maxBitRate=320&format=mp3&estimateContentLength=false HTTP/1.1", host: "mucke.example.com"

kann ich mithilfe regulärer ausdrücke (worin ich auch noch ein noob bin) eine rule erstellen mit der ich sagen kann "match_value=content=substreamer"?
Title: Re: Naxsi Rules erstellen - wie richtig whitelisten?
Post by: fabian on October 30, 2021, 06:07:22 PM
Ein paar Regeln sind trotz learning mode aktiv. Das sind built in rules von naxsi, die man explizit abschalten müsste. Die erkennt man an den kleinen IDs (<100).
Title: Re: Naxsi Rules erstellen - wie richtig whitelisten?
Post by: W0nderW0lf on October 31, 2021, 08:00:08 AM
Wo finde ich raus welche Regeln hier noch blocken? Ich habe bisher nur ID 17 gesehen und das habe ich bereits gewhitelisted. Im Learning mode tut sich leider nix mehr im error log.
Title: Re: Naxsi Rules erstellen - wie richtig whitelisten?
Post by: fabian on November 01, 2021, 07:17:25 AM
Naxsi schreibt jede Blocking-Entscheidung ins Log. Daher ist es eher unwahrscheinlich, dass Naxsi blockiert.

Was du noch probieren kannst: Bot Protection im HTTP Server abschalten.