Programa para bloquear um IP temporariamente com iptables

5

Existe um programa no Debian para bloquear um endereço IP temporariamente apenas iniciando um comando (especificando o IP e a duração)?

Com o iptables / ip6tables sozinho eu posso criar uma regra, mas eu teria que deletar manualmente. Eu também uso o fail2ban, mas não acho que eu possa bloquear um endereço IP arbitrário que não satisfazia nenhuma das regras do fail2ban.

    
por JoeWhite 26.06.2015 / 18:18

2 respostas

5

Você precisa criar um ipset para que o iptables possa ser compatível. Nota tempo limite 0 significa que o padrão nunca expira.

ipset create temp_hosts hash:ip timeout 0
iptables -I INPUT 1 -m set -j DROP  --match-set temp_hosts src
iptables -I FORWARD 1 -m set -j DROP  --match-set temp_hosts src

Agora que nosso conjunto é criado, podemos começar a adicionar endereços IP (unidade de tempo limite: segundos).

ipset add temp_hosts 1.1.1.2 timeout 400

Note que você precisa disso para sobreviver a uma reinicialização que precisa salvar e carregar as regras.

ipset save -f /path/ipset.save
ipset restore -f /path/ipset.save

Estes podem ser automatizados com o cron ou o systemd.

    
por 31.12.2016 / 06:12
2

Experimente este script, inspirado pelo comentário de Dan:

#!/bin/bash
iptables -I INPUT -s $1 -j DROP
at ${2:-now+1hour} <<<"iptables -D INPUT -s $1 -j DROP"

Salve como /usr/local/sbin/blockip e execute blockip 1.2.3.4 ou blockip 1.2.3.4 now+2hours . Por padrão, o IP é bloqueado por 1 hora.

Você pode substituir DROP por REJECT se preferir a semântica REJECT.

    
por 27.06.2015 / 10:47