Fail2ban loguje poprawne IP na Varnish, ale nadal nie jest zablokowane

2

Usiłuję skonfigurować, fail2banaby blokować złe WordPresspróby logowania, ale nie odnoszę wielkiego sukcesu.

Korzystam z WP fail2ban 3.0.0 , który poprawnie loguje błędne próby logowania /var/log/secure, o ile mi wiadomo (jeśli ktoś jest zainteresowany, podaję poniżej mojej konfiguracji wtyczki):

Apr 19 18:21:42 droplet wordpress(website.com)[17157]: Authentication failure for admin from my.ip.add.ress

filterRównież wydaje się być poprawnie skonfigurowany. W rzeczywistości, jeśli uruchomię fail2ban-client status wordpress, mogę zobaczyć, że mój ip jest zbanowany:

Status for the jail: wordpress
|- Filter
|  |- Currently failed: 2
|  |- Total failed: 15
|  `- File list:    /var/log/secure
`- Actions
   |- Currently banned: 1
   |- Total banned: 1
   `- Banned IP list:   my.ip.add.ress

I także fail2ban-regex /var/log/secure /etc/fail2ban/filter.d/wordpress.confznajduje Failregex: 102 total.

Mimo to jestem w pełni zdolny do przeglądania strony i dostępu do strony logowania.

Oczywiście wciąż czegoś brakuje, może po stronie Lakieru? Naprawdę nie mogłem się dowiedzieć, jakiś pomysł?

Używam CentOS 7.2.1511, Apache/2.4.6oraz Varnish 4.0.3.


Jeśli ktoś jest zainteresowany, oto jak skonfigurowałem, WP fail2banaby działał z Varnish:

  1. Włączono wtyczkę
  2. Skopiowano plik wordpress.conf(zawarty w folderze wtyczek) do/etc/fail2ban/filters.d/
  3. Dodano następujące linie do /etc/fail2ban/jail.local

    [wordpress]
    enabled = true
    port = http,https
    filter = wordpress
    logpath = /var/log/secure
    
  4. Dodano następujące wiersze do wp-config.php:

    define('WP_FAIL2BAN_PROXIES','my.ser.ver.ip');
    define('WP_FAIL2BAN_AUTH_LOG',LOG_AUTHPRIV);
    
  5. Dodano poniższe linie do /etc/varnish/default.vclw sub vcl_recvbloku:

    if (req.restarts == 0) {
        if (req.http.X-Forwarded-For) {
            set req.http.X-Forwarded-For = req.http.X-Forwarded-For + ", " + client.ip;
        } else {
            set req.http.X-Forwarded-For = client.ip;
        }
    }
    
  6. Dodano poniższe linie do /etc/varnish/default.vclw sub vcl_pipebloku:

    set bereq.http.connection = "close";
    return (pipe);
    
celuloza
źródło

Odpowiedzi:

1

Ok, znalazłem odpowiedź. Po prostu musiałem dodać akcję zakazu w odpowiednim jail.localbloku. Teraz wygląda to tak:

[wordpress]
enabled = true
port = http,https
filter = wordpress
logpath = /var/log/secure
action = iptables-allports
celuloza
źródło