crie uma cadeia BANS
( iptables -N BANS
) inserida na parte superior da cadeia de entrada ( iptables -I INPUT 1 -j BANS
) e, em seguida, defina chain=BANS
em fail2ban.
Eu usei o fail2ban há algum tempo agora. Hoje eu queria aprender mais sobre o iptables e encontrei o iptables-persistent.
Depois de instalar, salvar e limpar as regras do iptables em /etc/iptables/rules.v4, ele se parece com isso
# Generated by iptables-save v1.6.0 on Thu Aug 24 15:18:11 2017
*filter
:INPUT DROP [107:22965]
:FORWARD ACCEPT [0:0]
:OUTPUT ACCEPT [267:46575]
-A INPUT -p tcp -m tcp --dport 22 -j ACCEPT
-A INPUT -p tcp -m tcp --sport 53 -j ACCEPT
-A INPUT -p udp -m udp --sport 53 -j ACCEPT
-A INPUT -p tcp -m tcp --sport 80 -j ACCEPT
COMMIT
# Completed on Thu Aug 24 15:18:11 2017
Meu /etc/fail2ban/jail.local contém as seguintes linhas
[...]
bantime = 3600
maxretry = 2
[...]
protocol = tcp
chain = INPUT
[...]
Depois de reiniciar o servidor, a regra fail2ban é anexada em vez de inserida na parte superior.
Chain INPUT (policy DROP)
target prot opt source destination
ACCEPT tcp -- anywhere anywhere tcp dpt:22
ACCEPT tcp -- anywhere anywhere tcp spt:domain
ACCEPT udp -- anywhere anywhere udp spt:domain
ACCEPT tcp -- anywhere anywhere tcp spt:http
f2b-sshd tcp -- anywhere anywhere multiport dports 22
Se eu digitar um login errado, serei banido e terminarei na cadeia. Mas a regra do fail2ban está no final da cadeia de entrada, então eu ainda posso tentar entrar se usar as informações corretas de login.
Como posso garantir que o fail2ban seja inserido no topo da cadeia?
Obrigado
crie uma cadeia BANS
( iptables -N BANS
) inserida na parte superior da cadeia de entrada ( iptables -I INPUT 1 -j BANS
) e, em seguida, defina chain=BANS
em fail2ban.