El protocolo de mensajes de control de Internet, también conocido como ICMP, es un protocolo utilizado para verificar la conectividad de los hosts en una red. También podemos usar este protocolo para diagnosticar los problemas en una red. Pero desde un punto de vista de seguridad, alguien también puede ser utilizado por alguien para realizar un ataque DDoS. Una inundación de ping o un ataque de denegación de servicio distribuido (DDoS) es una forma de ataque en el que alguien envía muchas solicitudes de ping a un anfitrión y el anfitrión se vuelve casi inaccesible para el tráfico de rutina. Para evitar este tipo de situación, los administradores de red generalmente bloquean el ICMP en su red. En este artículo, aprenderemos cómo las tablas IP se pueden usar para bloquear ICMP en nuestro servidor.
¿Cuáles son las tablas IP??
Las tablas IP es un programa de servicios públicos de firewall para sistemas operativos de Linux. Se puede utilizar para aceptar, negar o devolver el tráfico de red hacia o desde una fuente. Observa el próximo tráfico de red utilizando diferentes conjuntos de reglas definidas en una tabla. Estos conjuntos de reglas se llaman cadenas. Las tablas IP observan paquetes de datos y qué coincidencias de paquetes con reglas se dirigen a otra cadena o se asigna uno de los siguientes valores.
Instalación de tablas IP
Para la mayoría de las distribuciones de Linux, las tablas IP vienen preinstaladas. Puede verificar si las tablas IP están instaladas o no escribiendo el siguiente comando en el terminal.
ubuntu@ubuntu: ~ $ iptables --versionSi no se instalan tablas IP, puede instalarlas ejecutando el siguiente comando en el terminal.
ubuntu@ubuntu: ~ $ sudo apt-get actualizaciónPodemos verificar el estado predeterminado de las tablas IP ejecutando el siguiente comando en el terminal.
ubuntu@ubuntu: ~ $ sudo iptables -l -vLa bandera '-l' enumera todas las reglas, y el indicador '-v' muestra información detallada.
Alternativamente, también podemos enumerar todas las reglas agregadas a las tablas IP ejecutando el siguiente comando en el terminal.
ubuntu@ubuntu: ~ $ sudo iptable -sPor defecto, todas las cadenas aceptan los paquetes y estas cadenas no tienen regla asignada.
Asignación de reglas a las cadenas
Inicialmente, no se asigna ninguna regla a ninguna cadena, y todos aceptan el tráfico de la red. Ahora en esta sección, veremos cómo podemos definir reglas personalizadas para bloquear o permitir el tráfico de la red. Para definir una nueva regla, usamos el indicador 'A' (agregar), que le dice a las tablas IP que se va a definir una nueva regla. Las siguientes opciones también se usan junto con la bandera 'A' para describir la regla.
-i (interfaz): esta opción indica a través de qué interfaz desea que se permita o bloquee su tráfico de red. Puede obtener una lista de todas las interfaces en su sistema ejecutando el siguiente comando en el terminal.
ubuntu@ubuntu: ~ $ ifconfig-pag (Protocolo): esta opción define qué protocolo desea filtrar usando tablas IP. Esto puede ser TCP, UDP, ICMP, ICMPV6, etc. Puede aplicar reglas a todos los protocolos utilizando todas las opciones.
-s (fuente): esta opción muestra la fuente de tráfico de red como dirección IP o nombre de dominio.
-dport (puerto de destino): esta opción se utiliza para indicar el puerto de destino para el tráfico de red.
-j (objetivo): esta opción se usa para mostrar el objetivo. Puede ser aceptado, deja, rechazar o regresar. Esta opción es obligatoria para cada regla.
En general, la sintaxis básica para agregar una regla será la siguiente:
ubuntu@ubuntu: ~ $ sudo iptable -a -i -jBloqueo de ICMP usando tablas IP
Hasta ahora, tenemos una comprensión básica de las tablas IP y su uso para permitir o bloquear el tráfico en puertos específicos a través de interfaces específicas. Ahora, usaremos tablas IP para bloquear ICMP en nuestro servidor.
El siguiente comando agregará una regla para bloquear ICMP en su máquina:
ubuntu@ubuntu: ~ $ sudo iptable -a input -j rechazado -p icmp --icmp -type echo -requestDespués de ejecutar el comando anterior, ahora verifique el estado de las tablas IP.
ubuntu@ubuntu: ~ $ sudo iptables -l -vPodemos ver que se ha agregado una regla a la cadena de entrada, que muestra que todo el tráfico ICMP será rechazado. Ahora, si hacemos ping a nuestro sistema desde cualquier otro sistema de la misma red, rechazará la solicitud. Podemos ver el resultado haciendo una solicitud de ping del localhost
ubuntu@ubuntu: ~ $ ping 127.0.0.1Podemos ver que estamos recibiendo mensajes de rechazo del sistema si intentamos hacerle una solicitud de ping.
Alternativamente, los siguientes dos comandos se pueden usar para agregar reglas para bloquear ICMP en nuestro servidor.
ubuntu@ubuntu: ~ $ sudo iptable -a entrada -p icmp -j drop --icmp -type echo -requestDespués de agregar estas dos reglas, ahora verifique el estado de las tablas IP.
ubuntu@ubuntu: ~ $ sudo iptables -l -vPodemos ver que el comando anterior agregó dos reglas, una a la cadena de entrada y la otra a la cadena de salida.
La diferencia entre la caída y el rechazo es que cuando usamos rechazo, nos muestra una advertencia (puerto de destino inalcanzable) cuando hacemos ping porque la solicitud es rechazada y no llega al puerto. Por otro lado, cuando usamos una caída, simplemente deja caer la salida. La entrada no se rechaza, se procesa, pero la salida no se muestra como se muestra a continuación
Conclusión
Los piratas informáticos adoptan diferentes métodos para realizar ataques de denegación de servicio distribuido (DDoS) a los servidores. Ping Flood también es una forma de ataque DDoS. Los piratas informáticos envían tantas solicitudes de ping al servidor que el servidor usa toda su potencia de cálculo para procesar las solicitudes de ping y no realiza su procesamiento real. En este escenario o en varios otros escenarios, es posible que deba bloquear ICMP en su servidor.
En este artículo, hemos aprendido diferentes formas de bloquear ICMP usando tablas IP. Discutimos cómo podemos agregar diferentes reglas para bloquear ICMP en nuestro servidor. De la misma manera, podemos usar tablas IP para bloquear cualquier tipo de tráfico en cualquier puerto utilizando tablas IP.