Sziasztok!

Nem tudom, hogy létezik-e már ilyen téma, találtam ugyan hasonlókat, de ott mindenkinek a log az IP címmel indult.
Nekem az első helyen a DOMAIN:PORT van. Ebből adódóan elgondolásaim alapján a szerver önmagát akarja tiltani, hiszen a domain rá mutat. Ezt a usedns = no beállítással feltételezem megoldottam, és kivételeknek felvettem a szerver saját IP címét.

Viszont egyetlen IP-t sem tilt a következő szabály:

^<HOST>.*\"POST /admin/ HTTP/1.1"[^\"]200.*

Nagyon szépen köszönöm a segítséget! 🍻 Nem vagyok egy nagy regex guru sajnos. 🙅

A log mintája a következő:

weboldal.hu:443 107.170.105.6 - - [06/Nov/2022:11:03:08 +0100] "POST /admin/ HTTP/1.1" 200 7152 "-" "Mozilla/5.0 (X11; Ubuntu; Linux x86_64; rv:62.0) Gecko/20100101 Firefox/62.0"
weboldal.hu:443 162.241.120.106 - - [06/Nov/2022:11:03:13 +0100] "POST /admin/ HTTP/1.1" 200 7154 "-" "Mozilla/5.0 (X11; Ubuntu; Linux x86_64; rv:62.0) Gecko/20100101 Firefox/62.0"
weboldal.hu:443 107.170.39.149 - - [06/Nov/2022:11:03:14 +0100] "POST /admin/ HTTP/1.1" 200 7153 "-" "Mozilla/5.0 (X11; Ubuntu; Linux x86_64; rv:62.0) Gecko/20100101 Firefox/62.0"
weboldal.hu:443 197.221.95.53 - - [06/Nov/2022:11:03:14 +0100] "POST /admin/ HTTP/1.1" 200 7151 "-" "Mozilla/5.0 (X11; Ubuntu; Linux x86_64; rv:62.0) Gecko/20100101 Firefox/62.0"
weboldal.hu:443 46.101.142.107 - - [06/Nov/2022:11:03:14 +0100] "POST /admin/ HTTP/1.1" 200 7152 "-" "Mozilla/5.0 (X11; Ubuntu; Linux x86_64; rv:62.0) Gecko/20100101 Firefox/62.0"
weboldal.hu:443 197.231.181.250 - - [06/Nov/2022:11:03:15 +0100] "POST /admin/ HTTP/1.1" 200 7152 "-" "Mozilla/5.0 (X11; Ubuntu; Linux x86_64; rv:62.0) Gecko/20100101 Firefox/62.0"
weboldal.hu:443 217.160.255.170 - - [06/Nov/2022:11:03:23 +0100] "POST /admin/ HTTP/1.1" 200 7154 "-" "Mozilla/5.0 (X11; Ubuntu; Linux x86_64; rv:62.0) Gecko/20100101 Firefox/62.0"
weboldal.hu:443 82.165.163.177 - - [06/Nov/2022:11:03:25 +0100] "POST /admin/ HTTP/1.1" 200 7155 "-" "Mozilla/5.0 (X11; Ubuntu; Linux x86_64; rv:62.0) Gecko/20100101 Firefox/62.0"
    ubuntulover a következőre módosította a címet: Apache2 log alapján Fail2ban tiltás ("POST /admin/ HTTP/1.1" 200).

    ubuntulover
    Én sem vagyok egy nagy regexp guru, de ha pl csak az első sort szeretném szűrni akkor én ilyen regexpet tennék bele:

    (?<host>\S+) (?:\d\d\d.\d\d\d.\d\d\d.\d) - - \[\d{2}\/\w{3}\/\d{4}:\d{2}:\d{2}:\d{2} \+\d{4}\] .*"POST \/admin\/ HTTP\/1.1" 200.*

    Bár ez hevenyészett IP match és így talán neked túl specifikus.
    Elvileg megengedőbb ez a forma:

    (?<host>\S+) (?:[0-9]{1,3}.[0-9]{1,3}.[0-9]{1,3}.[0-9]{1,3}) - - \[\d{2}\/\w{3}\/\d{4}:\d{2}:\d{2}:\d{2} \+\d{4}\] .*"POST \/admin\/ HTTP\/1.1" 200.*
      Ennyivel később: 20 nap

      Kittus2
      az IP rész talan igy jobb lenne:
      \d+.\d+.\d+.\d+
      Amennyiben csak ipv4 kell
      IPv6-hoz \w+ kell meg a kettospont
      Vagy a \w ill \d ket pontosithatod [a-zA-Z0-9] stb modon de nem szukseges mert a logban nem igen lesz egy sorban tobbszor ilyen

        Ennyivel később: 9 nap

        Kittus2
        Nm
        De most nezem hogy meg ezt is lehet tokeletesiteni.
        Maga a pont a regexben barmilyen karaktert jelent. Escape kell ele ha kifejezetten a pontot definialom, ergo: \.
        Szoval az ipv4 regex: \d+\.\d+\.\d+\.\d+
        Na ez mar konkretan csak IP cimet keres.
        Mert az elozo pl ezt is talalatnak venne:
        9,999,999.999
        Ja es lehet fokozni meg, hogy a szam skala 0-255 mehet. De ezesetben sokkal komplikaltabb lenne a regex es szereny velemenyem szerint konkretan erre a peldara igy \d+ a szamokra kimeletesebb a procival es rammal mint egy agyon csurt csavart 100% csak IP-t kereso regex.

        Ennyivel később: egy év