Índice
Sobre el comando ping
Mediante el protocolo ICMP, o sea, el tan popular comando ping podemos saber si determinado ordenador está vivo en la red, si tenemos rutas, camino hacia él sin problemas.
Hasta aquí parece beneficioso y lo es, no obstante como muchas buenas herramientas o aplicaciones, puede ser usado con fines perjudiciales, por ejemplo un DDoS con ping, lo cual se puede traducir en 100.000 peticiones con ping por minuto o por segundo, lo cual podría colapsar el ordenador final o nuestra red.
Sea como fuere, en determinadas ocasiones nosotros deseamos que nuestro ordenador no responda a las solicitudes de ping por parte de otros en la red, o sea, que aparente no estar conectado, para ello debemos deshabilitar la respuesta del protocolo ICMP en nuestro sistema.
Cómo verificar si tenemos habilitado la opción de respuesta al ping
Existe en nuestro sistema un archivo que nos permite definir de forma extremadamente simple, si tenemos habilitado la respuesta al ping o no, es: /proc/sys/net/ipv4/icmp_echo_ignore_all
Si ese archivo contiene un 0 (cero), entonces todo aquel que nos haga un ping obtendrá una respuesta siempre que nuestro ordenador esté online, no obstante, si le ponemos un 1 (uno) entonces no importa si nuestra PC está conectada o no, aparentará no estarlo.
O sea, con el siguiente comando editaremos ese archivo:
sudo nano /proc/sys/net/ipv4/icmp_echo_ignore_all
Cambiamos el 0 por un 1 y presionamos [Ctrl] + [O] para guardar, y luego [Ctrl] + [X] para salir.
Listo, ya nuestro ordenador NO responde a los ping de otros.
Alternativas para protegernos de ataques de ping
Otra alternativa es evidentemente usando un firewall, mediante iptables se puede hacer también sin muchos líos:
sudo iptables -A INPUT -p icmp -j DROP
Luego recuerden, las reglas de iptables se limpian cuando se reinicia el ordenador, debemos mediante algún método guardar los cambios, bien mediante iptables-save e iptables-restore, como haciendo nosotros mismos un script.
Y esto ha sido todo 🙂
17 comentarios, deja el tuyo
exelente aporte. dime, serviria para evitar peticiones de desconeccion??? como cuando quieren crackearnos la red usando aircrack-ng. digo porque si aparentemente estamos desconectados tampoco nos podran mandar dichas peticiones. gracias por el aporte
No funciona de esa manera, esto solo bloque los icmp echo response, asi si alguien quiere probar la conexion con un icmp echo request tu computadora va a hacer icmp echo ignore y por lo tanto la persona que esta tratando de probar conexion va a obtener una respuesta tipo «host seems to be down or blocking ping probes», pero si alguien esta monitorizando la red con airodump o alguna herramienta similar va a poder ver que estas conectado por que esas herramientas lo que hacen es que analizan los paquetes que se mandan al AP o que se reciben del AP
Cabe anotar, que solo es temporal, luego de reiniciar tu pc volvera a recibir pings, para dejarlo permanente, con respecto al primer truco configura el archivo /etc/sysctl.conf y al final agregar net.ipv4.icmp_echo_ignore_all = 1 y con respecto al segundo tip es similar pero mas «Largo» (Guarda Conf de Iptables, hacer un script de interface up que se ejecute al iniciar el sistema, y esas cosas)
Hola. Puede ser que esté algo mal?? o qué podría ser? porque en ubuntu no existe tal fichero……
Estuvo impecable como siempre.
Una pequeña observación, a la hora de cerrar nano no es mas rápido Ctrl+X y después salir con Y ó S
Respetos
Excelente tip, @KZKG, yo hago uso del mismo tip entre muchos otros con el fin de mejorar la seguridad de mi PC y de los dos servidores con los que trabajo, pero para evitarme la regla iptables, hago uso de sysctl y de su carpeta de configuracion /etc/sysctl.d/ con un archivo al que adjunto los comandos necesarios para que con cada reinicio se carguen y mi sistema bootee con todos los valores ya modificados.
En el caso de usar ese metodo solo creen un archivo XX-local.conf (XX puede ser un numero del 1 al 99, yo lo tengo en 50) y escriban:
net.ipv4.icmp_echo_ignore_all=1
Ya con eso tienen el mismo resultado.
Solución bastante simple, gracias
¿Cuáles otros comandos tienes en dicho archivo?
Cualquier comando que tenga que ver con variables de sysctl y pueda ser manipulado por medio de sysctl puede ser utilizado de esta manera.
Para ver los diferentes valores que puedes ingresar al sysctl escribe en tu terminal sysctl -a
En openSUSE no he podido editarlo.
Buenas.
Otra manera mas rapida seria utilizando sysctl
#sysctl -w net.ipv4.icmp_echo_ignore_all=1
Como se dijo, en IPTABLES también se puede rechazar una petición de ping para todo mediante:
iptables -A INPUT -p icmp -j DROP
Ahora, si queremos rechazar cualquier petición menos una en específico podemos hacerlo de la siguiente manera:
Declaramois variables:
IFEXT = 192.168.16.1 #mi IP
IPAUTORIZADA = 192.168.16.5
iptables -A INPUT -i $IFEXT -s $IPAUTORIZADA -p icmp -m icmp –icmp-type echo-request -m length –length 28:1322 -m limit –limit 2/sec –limit-burst 4 -j ACCEPT
De esta forma autorizamos solo a esa IP a que de ping a nuestra PC (pero con límites).
Espero les sea útil.
Salu2
vaya,las diferencias entre usuarios;mientras que los windowseros hablamos de cómo jugar halo o the evil within los de Linux aburren al mundo con cosas como esta.
Y es por eso que los Windowseros luego solo saben jugar, mientras que los Linuxeros son los que realmente saben administración avanzada de OS, redes, etc.
Gracias por regalarnos tu visita 😀
Coordiales Saludos
El tema de es muy util y ayuda en alguna medida.
Gracias.
cuando se enteren los de windows de esto ya veras se vuelven locos
en iptables que hay que poner la ip en el IMPUT y en el DROP algo mas?