Estoy trabajando en el firewall de Ubuntu 12.04. Quiero negar cualquier IP en tiempo de ejecución. Estoy usando "ufw denegar desde IP". Está funcionando para futuras conexiones. Pero no cancela las conexiones existentes como ssh.
¿Cómo puedo cancelar todas las comunicaciones actuales desde una IP particular?
Saludos,
Respuesta1
La mejor opción que he encontrado es usar tcpkill
. Cuando lo instalé, era parte del dsniff
paquete, así que tuve que instalarlo primero. Entonces lo usarías así:
$ 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
Tan pronto como tcpkill detecte tráfico coincidente, finalizará la conexión.
Para ver dónde más llega la IP a su sistema, puede usar netstat -aunt
y buscar la dirección IP. P.ej,
$ 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
Cree más reglas ufw si es necesario.
¿Reiniciar ssh es una opción?
Puedes usar sudo /etc/init.d/sshd stop
then sudo /etc/init.d/sshd start
o usar el mecanismo de servicio:
$ sudo service ssh stop
ssh stop/waiting
$ sudo service ssh start
ssh start/running, process 4427
Podrías eliminar la interfaz temporalmente, si esa es una opción.
Hay una aplicación llamada 'cutter' que debería funcionar, tomando la dirección IP y el puerto como argumentos. Sin embargo, no pude instalar el paquete correctamente desde
$ sudo apt-get install cutter
Se supone que funciona de esta manera (asumiendo el puerto estándar 22 para ssh):
$ cutter 10.10.10.10 22
También puedes consultar algo como el denyhosts
paquete.
Respuesta2
No estoy seguro, pero puedes intentar con iptables
:
sudo iptables -A INPUT -p tcp --dport 22 --source 192.168.1.1 -j REJECT
O si quieres ser pedante
sudo iptables -A INPUT -p tcp --dport 22 --source 192.168.1.1 REJECT --reject-with icmp-host-prohibited
Mira este tutorial:https://help.ubuntu.com/community/IptablesHowTo
Espero que esto ayude.