Ferramentas do usuário

Ferramentas do site


linux:fail2ban

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):

  1. /etc/fail2ban/jail.conf
  2. /etc/fail2ban/jail.d/*.conf, ordem alfabética
  3. /etc/fail2ban/jail.local
  4. /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

linux/fail2ban.txt · Última modificação: 27/04/2021 12:05 por 127.0.0.1

Donate Powered by PHP Valid HTML5 Valid CSS Driven by DokuWiki