Saltar al contenido principal.

Configuración básica de iptables



Una de las prioridades después de instalar el sistema es configurar correctamente iptables para filtrar el tráfico. La política por defecto permite todo lo que no está prohibido. Este no es el método más exitoso en términos de seguridad, porque en este modo el servidor está expuesto a intrusos.

Puede, por ejemplo, escanear los puertos abiertos en el servidor. Sobre esta base, es posible determinar los servicios utilizados, su versión, el nombre y la versión del sistema operativo. A continuación - la selección de vulnerabilidades a ellos. O algunos icmp - los mensajes pueden dar información extra.



En general, la descripción de por qué necesita configurar el firewall, digno de un artículo separado, que son innumerables. Y si estás leyendo este artículo, definitivamente sabes por qué lo necesitas. ;)

Al igual que todos los artículos en el sitio, esta instrucción está escrita sobre la base de la experiencia personal, a la “Yo hago esto”, otra persona es diferente.



Contenido del artículo:

Instalación de los componentes necesarios.

Y así, el sistema ya tiene el principal de la lista de herramientas necesarias: iptables. Pero esto no es suficiente. También necesitará el filtro de tarpit y iptables-persistent para cargar las reglas en el inicio del sistema.

  # aptitude install iptables-persistent xtables-addons-dkms 

Durante la instalación persistente, se harán dos preguntas sobre cómo guardar las reglas actuales. Puede responder "Sí" y luego en la carpeta / etc / iptables / rules / creará los archivos necesarios con las reglas que editamos.

Reglas de edición para ip versión 4

Abra el archivo /etc/iptables/rules.v4 en su editor favorito. Verá líneas que establecen la política predeterminada para las cadenas. En todos los valores, se aceptará. Para la cadena FORWARD, establezca la política DROP. No somos un enrutador o una computadora que redirige el tráfico a otra parte. :) No cambiamos el resto.


  * filtro
 : ENTRADA ACEPTA [0: 0]
 : ADELANTE DROP [0: 0]
 : ACEPTO DE SALIDA [0: 0]
 COMPROMISO 

Todas las demás reglas se agregarán antes de la línea COMPROMISO. Y ante todo agregamos la regla que permite el tráfico local.

  -A ENTRADA -i lo -j ACEPTAR 

Además, la regla permite todas las conexiones activas ya establecidas para los protocolos tcp y udp. Esto es necesario para el correcto funcionamiento de la red, ya que sin ella se rechazarán las respuestas a las conexiones salientes.

  -A ENTRADA -m estado - Estado RELACIONADO, ESTABLECIDO -p todo -j ACEPTO 

Ahora necesita agregar una regla que permita la instalación de nuevas conexiones entrantes a ciertos servicios. Tengo un servidor web y correo, así como ssh.

Nota importante! Siempre agregue una regla de permiso para ssh, para que no pierda el acceso al servidor después de que se apliquen las reglas.

Puede agregar otros puertos aquí, separados por una coma. La extensión multipuerto le permite especificar varios puertos para no producir reglas casi idénticas para cada uno por separado. ;)

  -A ENTRADA -m estado - estado NUEVO -p tcp -m multipuerto --dport 22,25,80,443 -j ACEPTAR 

Si solo tiene un servicio en el servidor para el que necesita abrir un puerto, la regla será la siguiente:

  -A ENTRADA -m estado - estado NUEVO -p tcp --dport 22 -j ACEPTAR 

Es posible que también necesite abrir algunos puertos udp. La única diferencia con las reglas anteriores es que en lugar de -p tcp debe especificar -p udp .

Y cuando agrega la siguiente regla, el filtro de tarpit es muy útil, que instalamos con el paquete xtables-addon-dkms. En resumen, crea una trampa para las conexiones entrantes, no envía nada de vuelta, pero mantiene la conexión, lo que está desperdiciando los recursos del cliente que se conecta, pero no el servidor. Obtenga más información sobre tarpit en el sitio web de OpenNET. Por ahora, agregue una regla para todas las demás conexiones entrantes.

  -A ENTRADA -p tcp -m tcp -j TARPIT 

Es importante tener en cuenta que la trampa solo funciona con tcp. Del mismo modo, puede implementar una prohibición de ip en el nivel de iptables, en lugar de la eliminación estándar. Desafortunadamente, no es adecuado para udp. Por lo tanto, prohibimos todos los demás paquetes udp entrantes para los que no haya creado una excepción anteriormente.

  -A ENTRADA -p udp -j CAER 

Y tomamos para icmp. Aquí, como el tipo icmp, puede especificar un código o un nombre equivalente. Tengo un codigo :)

Permitimos respuestas de eco entrantes en caso de que hagamos ping a algún otro host desde el servidor.

  -A ENTRADA -p icmp --icmp-type 0 -j ACEPTAR 

Luego, icmp entrante: mensajes sobre la falta de disponibilidad del destinatario.

  -A ENTRADA -p icmp --icmp-type 3 -j ACEPTAR 

Y pings entrantes si alguien hace ping a nuestro servidor.

  -A ENTRADA -p icmp --icmp-type 8 -j ACEPTAR 

Además de un mensaje sobre la caducidad del paquete.

  -A ENTRADA -p icmp --icmp-type 11 -j ACEPTAR 

Este es el mínimo necesario de mensajes para el correcto funcionamiento de la red. Es posible que necesite otros códigos . Cómo resolverlos, ya lo sabes. :)

Ahora vamos a crear reglas para mensajes icmp salientes. Estas reglas parecen similares, pero la cadena ya está SALIDA. Por lo tanto, no tiene sentido describirlos.

  -A SALIDA -p icmp --icmp-type 0 -j ACEPTAR
 -A SALIDA -p icmp --icmp-type 3 -j ACEPTAR
 -A SALIDA -p icmp --icmp-type 8 -j ACEPTAR
 -A SALIDA -p icmp --icmp-type 11 -j ACEPTAR
 -A SALIDA -p icmp --icmp-type 12 -j ACEPTAR 

Excepto el duodécimo. Permite el envío de un mensaje de parámetro no válido (falta el error en el encabezado de IP o la opción requerida).

Todos los demás ICMP salientes están prohibidos para que el servidor no difumine el extra.

  -A SALIDA -p icmp -j CAER 

Eso es todo Guarde el archivo /etc/iptables/rules.v4, active las reglas con el comando:

  cat /etc/iptables/rules.v4 |  iptables-restore -c 


¿Cómo calificas el artículo?
Звёзд: 1Звёзд: 2Звёзд: 3Звёзд: 4Звёзд: 5 ( 6 calificaciones, promedio: 4.17 de 5)
Cargando ...

Añadir un comentario

Su correo electrónico no será publicado.