Sempre que possível, preferimos executar serviços como um usuário não root. fail2ban também suporta isso, no entanto, os documentos run-rootless.txt não detalham totalmente todas as etapas necessárias.
Algumas das etapas são explicadas no /etc/default/fail2ban
script de configuração. Além dessas, algumas outras etapas são necessárias. Abaixo estão todas as etapas para obter um fail2ban sem raiz funcional no debian wheezy.
- Editar
/etc/default/fail2ban
- defina a variável na última linha
FAIL2BAN_USER="fail2ban"
- defina a variável na última linha
- Execute o comando para criar o usuário
useradd --system --no-create-home --home-dir / --groups adm fail2ban
- Edite seu
/etc/fail2ban/jail.local
com as substituições para seu ambiente local.- O principal argumento aqui é o
banaction
. - Adicione qualquer outro IP confiável à
igonreip
configuração.
- O principal argumento aqui é o
[DEFAULT]
banaction = iptables-xt_recent-echo
ignoreip = 127.0.0.1/8 10.1.1.0/24
bantime = 3600
destemail = ops@domain.org
chain = F2B
- Adicione a seguinte linha a
/etc/fail2ban/action.d/iptables-xt_recent-echo.local
- Uma vez que fail2ban é executado como um usuário não root, não será capaz de adicionar a entrada de módulo “recente” necessária do iptables. Vamos adicionar isso manualmente mais tarde.
[Definition]
actionstart =
- Configure o iptables com linhas como as seguintes.
- NOTA ESTE NÃO É UM CONJUNTO DE REGRAS COMPLETAS DE IPTABLES, SOMENTE AS LINHAS PARA FAIL2BAN !!
- Eles dizem ao iptables para usar o módulo “recente” para procurar IPs dos quais ele descartará os pacotes. A tabela referenciada é
/proc/net/recent/fail2ban-ssh
referenciada pelo argumento –name. Este é o arquivo ao qual fail2ban adicionará IPs, e iptables será responsável por remover esses IPs após o tempo limite de –seconds.
$IPTABLES -N F2B
$IPTABLES -A INPUT -i eth0 -p tcp --dport 22 -j F2B
$IPTABLES -A INPUT -i eth0 -p tcp --dport 22 -j ACCEPT
$IPTABLES -A FORWARD -i eth0 -p tcp --dport 22 -j F2B
$IPTABLES -A FORWARD -i eth0 -p tcp --dport 22 -j ACCEPT
$IPTABLES -A F2B -p tcp --dport 22 -m recent --update --seconds 3600 --name fail2ban-ssh -j DROP
$IPTABLES -A F2B -j RETURN
- Reinicie fail2ban e teste
/etc/init.d/fail2ban restart
- Se você receber o erro , significa que você não ativou a regra iptables com o módulo “recente” da etapa anterior.
Restarting authentication failure monitor: fail2banfind: '/proc/net/xt_recent': No such file or directory