Após a instalação o fail2ban disponibilizará o diretório de configuração "/etc/fail2ban".
# ls /etc/fail2ban/
action.d fail2ban.conf filter.d jail.conf
Os arquivos interessantes para configuração são os "fail2ban.conf" e "jail.conf", vejamos primeiro o fail2ban.conf.
...
[Definition]
# Option: loglevel
# Notes.: Set the log level output.
# 1 = ERROR
# 2 = WARN
# 3 = INFO
# 4 = DEBUG
# Values: NUM Default: 3
#
loglevel = 3
# Option: logtarget
# Notes.: Set the log target. This could be a file, SYSLOG, STDERR or STDOUT.
# Only one log target can be specified.
# Values: STDOUT STDERR SYSLOG file Default: /var/log/fail2ban.log
#
logtarget = /var/log/fail2ban.log
As linhas importantes deste arquivo são a "loglevel = 3" e "logtarget = /var/log/fail2ban.log", que definem o nível de informação no log e o arquivo de log do fail2ban, para acompanhamento e possíveis correções.
Já no arquivo "/etc/jail.conf", é onde tem-se a maior parte da configuração.
...
[DEFAULT]
# "ignoreip" can be an IP address, a CIDR mask or a DNS host
ignoreip = 127.0.0.1
bantime = 600
maxretry = 3
...
Nas diretivas:
- ignoreip : É listado os endereços de IP (ex.: 127.0.0.1), ou Mascara CIDR-Classless Inter Domain Routing (ex.: 192.168.12.0/23, onde 192.168.12.0/23 = 192.168.12.0/24 + 192.168.13.0/24), ou DNS host (ex.: perfumes.incolume.com.br ou brito.blog.incolume.com.br), que deverão ser ignorados pelo fail2ban;
- bantime : É definido o tempo em segundos, que o IP ofensor ficará banido e/ou bloqueado para o serviço;
- maxretry : É definido a quantidade máxima de tentativas de acesso.
...
# Destination email address used solely for the interpolations in
# jail.{conf,local} configuration files.
destemail = root@localhost
#
...
- destemail : Define o email que receberá as notificações, claro, que somente, se o smtp estiver configurado.
...
# Default banning action (e.g. iptables, iptables-new,
# iptables-multiport, shorewall, etc) It is used to define
# action_* variables. Can be overriden globally or per
# section within jail.local file
banaction = iptables-multiport
...
- banaction : Define qual a ação de banimento será executada, se o firewall for iptables, não modifique.
...
[ssh]
enabled = true
port = ssh
filter = sshd
logpath = /var/log/auth.log
maxretry = 6
sendmail-whois[name=SSH, dest=brito@incolume.com.br, sender=perfumes@incolume.com.br]
...
Finalmente a definição de segurança para os serviços, os quais estão destacados entre colchetes como no fragmento acima, [ssh], [pam-generic], e assim sucessivamente. Estre trecho conterá as mesmas diretivas, para qualquer serviço configurado.
- enabled : habilita ou desabilita a verificação do serviço;
- port : a porta na qual o serviço esculta;
- filter : padrão que será utilizada para identificação do filtro;
- logpath : arquivo de log com caminho completo;
- maxretry : quantidade máxima de tentativas de acesso;
- sendmail-whois : a configuração de notificação por email, sender=remetente, dest = destinatário e name
= Assunto.