Saltar al contenido

Bloquear la marca de tiempo ICMP y la respuesta de marca de tiempo con firewalld

Mantén la atención porque en esta reseña vas a hallar el arreglo que buscas.

Solución:

firewalld se envía con un conjunto predeterminado de tipos de ICMP predefinidos que puede usar de inmediato:

# firewall-cmd --get-icmptypes
destination-unreachable echo-reply echo-request parameter-problem redirect router-advertisement router-solicitation source-quench time-exceeded timestamp-reply timestamp-request

El analizador (/usr/lib/python2.7/site-packages/firewall/core/io/icmptype.py) no se limita a estos tipos y permite ampliar:

Primero, según man iptables-extensions(8), sección icmp:

icmp (específico de IPv4) Esta extensión se puede utilizar si se especifica `–protocol icmp ‘. Proporciona la siguiente opción:

  [!] --icmp-type typename
          This allows specification of the ICMP type, which can be a numeric ICMP type, type/code pair, or one of the ICMP type names shown by the command
           iptables -p icmp -h

icmp6 (específico de IPv6) Esta extensión se puede utilizar si --protocol ipv6-icmp' or–protocol icmpv6 ‘está especificado. Proporciona la siguiente opción:

  [!] --icmpv6-type type[/code]|typename
          This allows specification of the ICMPv6 type, which can be a numeric ICMPv6 type, type and code, or one of the ICMPv6 type names shown by the command
           ip6tables -p ipv6-icmp -h

Los dos tipos a los que hace referencia son específicos de IPv4, por lo que debe utilizar lo siguiente para averiguar los nombres adecuados reconocidos por iptables:

# iptables -p icmp -h | grep timestamp
timestamp-request
timestamp-reply

Ahora, si comprueba el contenido del firewalld paquete, encontrará dónde se almacenan los tipos de ICMP predefinidos:

# rpm -ql firewalld | grep icmptype
/etc/firewalld/icmptypes
/usr/lib/firewalld/icmptypes/destination-unreachable.xml
/usr/lib/firewalld/icmptypes/echo-reply.xml
/usr/lib/firewalld/icmptypes/echo-request.xml
/usr/lib/firewalld/icmptypes/parameter-problem.xml
/usr/lib/firewalld/icmptypes/redirect.xml
/usr/lib/firewalld/icmptypes/router-advertisement.xml
/usr/lib/firewalld/icmptypes/router-solicitation.xml
/usr/lib/firewalld/icmptypes/source-quench.xml
/usr/lib/firewalld/icmptypes/time-exceeded.xml
/usr/lib/firewalld/xmlschema/icmptype.xsd
/usr/share/man/man5/firewalld.icmptype.5.gz

Si marca el analizador mencionado anteriormente, verá que usa el nombre del archivo XML como tipo ICMP cuando habla con iptables, por lo que debe escribir dos archivos nuevos para los tipos de ICMP que desea utilizar utilizando los tipos de ICMP que se encuentran arriba. Los tipos de ICMP creados por el usuario deben almacenarse en /etc/firewalld/icmptypes.

# cat timestamp-request.xml


  Timestamp Request
  This message is used for time synchronization.
  
  

# cat timestamp-reply.xml


  Timestamp Reply
  This message is used to reply to a timestamp message.
  
  

Terminarás con:

# ll -Z /etc/firewalld/icmptypes
-rw-r--r--. root root system_u:object_r:firewalld_etc_rw_t:s0 timestamp-reply.xml
-rw-r--r--. root root system_u:object_r:firewalld_etc_rw_t:s0 timestamp-request.xml

Valídelos usando el XSD provisto:

# xmllint --schema /usr/lib/firewalld/xmlschema/icmptype.xsd timestamp-request.xml
timestamp-request.xml validates

# xmllint --noout --schema /usr/lib/firewalld/xmlschema/icmptype.xsd timestamp-reply.xml
timestamp-reply.xml validates

Vuelva a cargar el cortafuegos:

# firewall-cmd --reload

Y finalmente agrégalos:

# firewall-cmd --add-icmp-block=timestamp-request
# firewall-cmd --add-icmp-block=timestamp-reply

# firewall-cmd --list-icmp-blocks
timestamp-reply timestamp-request

Puede comprobar que se han añadido mirando el iptables reglas directamente:

iptables -nvL | grep icmp
0     0 ACCEPT     icmp --  *      *       0.0.0.0/0            0.0.0.0/0
0     0 REJECT     all  --  *      *       0.0.0.0/0            0.0.0.0/0            reject-with icmp-host-prohibited
0     0 REJECT     all  --  *      virbr0  0.0.0.0/0            0.0.0.0/0            reject-with icmp-port-unreachable
0     0 REJECT     all  --  virbr0 *       0.0.0.0/0            0.0.0.0/0            reject-with icmp-port-unreachable
0     0 ACCEPT     icmp --  *      *       0.0.0.0/0            0.0.0.0/0
0     0 REJECT     all  --  *      *       0.0.0.0/0            0.0.0.0/0            reject-with icmp-host-prohibited
0     0 REJECT     icmp --  *      *       0.0.0.0/0            0.0.0.0/0            icmptype 13 reject-with icmp-host-prohibited
0     0 REJECT     icmp --  *      *       0.0.0.0/0            0.0.0.0/0            icmptype 14 reject-with icmp-host-prohibited
0     0 REJECT     icmp --  *      *       0.0.0.0/0            0.0.0.0/0            icmptype 13 reject-with icmp-host-prohibited
0     0 REJECT     icmp --  *      *       0.0.0.0/0            0.0.0.0/0            icmptype 14 reject-with icmp-host-prohibited

Los tipos 13 y 14 son los tipos ICMP recién agregados.

Como referencia, puede leer el firewalld.icmptypes(5) página de manual.

Estos tipos de ICMP se han incluido en sentido ascendente.

Sección de Reseñas y Valoraciones

Puedes añadir valor a nuestro contenido añadiendo tu veteranía en los comentarios.

¡Haz clic para puntuar esta entrada!
(Votos: 0 Promedio: 0)



Utiliza Nuestro Buscador

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *