Primeiro, com iptables
você não pode matar conexões estabelecidas. Depois que uma conexão for aberta (digamos, um download) e você criar uma regra com o destino FORWARD
descartando a conexão, ela será aplicada apenas para novas conexões.
A única maneira de fazer isso é:
- Matando o processo que está criando a conexão
- Desligando a interface
Existem alguns cenários em que as pessoas relatam que até mesmo cria uma rota com a opção rejeitar, executando < href="http://ubuntuforums.org/showthread.php?t=1345837"> ifdown em uma interface ou remover uma regra pós-venda de máscaras não fechou as conexões.
Sobre a condição, a coisa mais próxima que eu posso imaginar para criar uma condição em iptables
sempre que algo acontece, pode ser feito usando o condição correspondência das extensões do Netfilter
Este exemplo rejeitará novas conexões sempre que o servidor estiver em manutenção. É apenas uma questão de ecoar um número 1 para um arquivo dentro de /proc
com o mesmo nome da condição.
# iptables -A FORWARD -p tcp -d 192.168.1.10 --dport http -m condition --condition webdown -j REJECT --reject-with tcp-reset
# echo 1 > /proc/net/ipt_condition/webdown