Estou trabalhando no firewall do Ubuntu 12.04. Quero negar qualquer IP em tempo de execução. Estou usando "ufw deny from IP". Está funcionando para conexões futuras. Mas não está cancelando as conexões existentes como o ssh.
Como posso cancelar toda a comunicação atual de um IP específico?
Cumprimentos,
Responder1
A melhor opção que encontrei é usar tcpkill
. Quando instalei, fazia parte do dsniff
pacote, então tive que instalá-lo primeiro. Então você usaria assim:
$ sudo tcpkill ip host 20.129.11.86 and port 22
tcpkill: listening on eth0 [ip host 20.129.11.86 and port 22]
10.206.22.202:42532 > 20.129.11.86:22: R 1785992582:1785992582(0) win 0
10.206.22.202:42532 > 20.129.11.86:22: R 1785992732:1785992732(0) win 0
10.206.22.202:42532 > 20.129.11.86:22: R 1785993032:1785993032(0) win 0
20.129.11.86:22 > 10.206.22.202:42532: R 4065251855:4065251855(0) win 0
20.129.11.86:22 > 10.206.22.202:42532: R 4065301087:4065301087(0) win 0
20.129.11.86:22 > 10.206.22.202:42532: R 4065399551:4065399551(0) win 0
Assim que o tcpkill detectar o tráfego correspondente, ele encerrará a conexão.
Para ver onde mais o IP está atingindo seu sistema, você pode usar netstat -aunt
e grep para o endereço IP. Por exemplo,
$ netstat -aunt | egrep 115.125.
tcp 0 0 10.20.22.25:56156 115.125.225.67:80 ESTABLISHED
tcp 0 0 10.20.22.25:42360 115.125.225.1:80 ESTABLISHED
tcp 0 0 10.20.22.25:35210 115.125.225.64:80 ESTABLISHED
Crie mais regras ufw, se necessário.
Reiniciar o ssh é uma opção?
Você pode usar sudo /etc/init.d/sshd stop
then sudo /etc/init.d/sshd start
ou usar o mecanismo de serviço:
$ sudo service ssh stop
ssh stop/waiting
$ sudo service ssh start
ssh start/running, process 4427
Você pode abandonar a interface temporariamente, se for uma opção.
Existe um aplicativo chamado ‘cutter’ que deve funcionar, tomando o endereço IP e a porta como argumentos. No entanto, não consegui instalar o pacote corretamente em
$ sudo apt-get install cutter
É suposto funcionar mais ou menos assim (assumindo a porta 22 padrão para ssh):
$ cutter 10.10.10.10 22
Você também pode verificar algo como o denyhosts
pacote.
Responder2
Não tenho certeza, mas você pode tentar com iptables
:
sudo iptables -A INPUT -p tcp --dport 22 --source 192.168.1.1 -j REJECT
Ou se você quiser ser pedante
sudo iptables -A INPUT -p tcp --dport 22 --source 192.168.1.1 REJECT --reject-with icmp-host-prohibited
Confira este tutorial:https://help.ubuntu.com/community/IptablesHowTo
Eu espero que isso ajude.