Fail2ban logging ip correto no verniz, mas ainda não bloqueado

2

Estou tentando configurar o fail2ban para banir as tentativas ruins de login do WordPress , mas não estou tendo muito sucesso.

Estou usando o WP fail2ban 3.0.0 , que registra corretamente tentativas de login inválidas em /var/log/secure , até o momento como eu posso dizer (se alguém estiver interessado, estou fornecendo abaixo minha configuração para o plugin):

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

O filter também parece estar configurado corretamente. Na verdade, se eu executar fail2ban-client status wordpress , posso ver meu ip sendo banido:

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

E também fail2ban-regex /var/log/secure /etc/fail2ban/filter.d/wordpress.conf encontra Failregex: 102 total .

Ainda assim, sou perfeitamente capaz de navegar no site e acessar a página de login.

É claro que ainda falta alguma coisa, talvez no lado do verniz? Eu não consegui descobrir, alguma ideia?

Estou executando CentOS 7.2.1511 , Apache/2.4.6 e Varnish 4.0.3 .

Caso alguém esteja interessado, aqui está como eu configurei o WP fail2ban para fazê-lo funcionar com Varnish :

  1. Ativou o plug-in
  2. Copiado sobre o arquivo wordpress.conf (contido na pasta do plug-in) em /etc/fail2ban/filters.d/
  3. Adicionadas as linhas a seguir a /etc/fail2ban/jail.local

    [wordpress]
    enabled = true
    port = http,https
    filter = wordpress
    logpath = /var/log/secure
    
  4. Adicionadas as seguintes linhas a wp-config.php :

    define('WP_FAIL2BAN_PROXIES','my.ser.ver.ip');
    define('WP_FAIL2BAN_AUTH_LOG',LOG_AUTHPRIV);
    
  5. Adicionadas as linhas a seguir em /etc/varnish/default.vcl no bloco sub vcl_recv :

    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. Adicionadas as linhas a seguir em /etc/varnish/default.vcl no bloco sub vcl_pipe :

    set bereq.http.connection = "close";
    return (pipe);
    
por cellulosa 19.04.2016 / 19:34

1 resposta

1

Ok, encontrei a resposta. Eu simplesmente tive que adicionar a ação de proibição no bloco jail.local relevante. Então agora parece com isso:

[wordpress]
enabled = true
port = http,https
filter = wordpress
logpath = /var/log/secure
action = iptables-allports
    
por 20.04.2016 / 16:17