Tabela de conteúdos
fail2ban
Instalação
CentOS
# yum install epel-release # yum install fail2ban
Debian
# apt-get install fail2ban
Configuração em /etc/fail2ban
O arquivo padrão de configuração é o jail.conf
. Não é recomendável alterar esse arquivo, ao invés você pode criar o arquivo jail.local
, que terá prioridade na leitura da configuração.
jail.conf
contém uma seção [DEFAULT]
, seguido por serviços individuais. jail.local
sobrescreve esses valores. Adicionalmente, pode-se usar arquivos em /etc/fail2ban/jail.d/
que tem precedência sobre o conf
e o local
. Eles podem ser aplicados na seguinte ordem (precedência do último ao primeiro):
- /etc/fail2ban/jail.conf
- /etc/fail2ban/jail.d/*.conf, ordem alfabética
- /etc/fail2ban/jail.local
- /etc/fail2ban/jail.d/*.local, ordem alfabética
Qualquer arquivo deve conter a seção [DEFAULT], executada primeiro, e pode conter seções individuais. o último valor aplicado tem precedência.
SSH
Criar o arquivo /etc/fail2ban/jail.local
.
[DEFAULT] # Ban hosts for one hour: bantime = 3600 # Override /etc/fail2ban/jail.d/00-firewalld.conf: banaction = iptables-multiport [sshd] enabled = true
Fonte: https://www.digitalocean.com/community/tutorials/how-to-protect-ssh-with-fail2ban-on-centos-7
Ignore IP
[DEFAULT] # "ignoreip" can be an IP address, a CIDR mask or a DNS host. Fail2ban will not # ban a host which matches an address in this list. Several addresses can be # defined using space separator. ignoreip = 127.0.0.1 192.168.1.0/24 8.8.8.8
Nginx
/etc/fail2ban/filter.d/nginx-req-limit.conf
# Fail2Ban configuration file # # supports: ngx_http_limit_req_module module [Definition] failregex = limiting requests, excess:.* by zone.*client: <HOST> # Option: ignoreregex # Notes.: regex to ignore. If this regex matches, the line is ignored. # Values: TEXT # ignoreregex =
/etc/fail2ban/jail.local
[nginx-req-limit] enabled = true filter = nginx-req-limit action = iptables-multiport[name=ReqLimit, port="http,https", protocol=tcp] logpath = /var/log/nginx/*error.log findtime = 600 bantime = 7200 maxretry = 10
# service fail2ban restart
Apache HTTPD
Editar o arquivo /etc/fail2ban/jail.local
:
# detect password authentication failures [apache] enabled = true port = http,https filter = apache-auth logpath = /var/log/httpd/*error_log maxretry = 6 # detect spammer robots crawling email addresses [apache-badbots] enabled = true port = http,https filter = apache-badbots logpath = /var/log/httpd/*access_log bantime = 172800 maxretry = 1 # detect potential search for exploits and php vulnerabilities [apache-noscript] enabled = true port = http,https filter = apache-noscript logpath = /var/log/httpd/*error_log maxretry = 6 # detect Apache overflow attempts [apache-overflows] enabled = true port = http,https filter = apache-overflows logpath = /var/log/httpd/*error_log maxretry = 2 # detect failures to find a home directory on a server [apache-nohome] enabled = true port = http,https filter = apache-nohome logpath = /var/log/httpd/*error_log maxretry = 2 # detect failures to execute non-existing scripts that # are associated with several popular web services # e.g. webmail, phpMyAdmin, WordPress port = http,https filter = apache-botsearch logpath = /var/log/httpd/*error_log maxretry = 2
Fonte: http://xmodulo.com/configure-fail2ban-apache-http-server.html