¿Cómo configurar iptables para los puertos que deben abrirse?

3

En mi máquina hay servicios web a los que se puede acceder desde cualquier PC conectada al mismo segmento de red (WiFi, por ejemplo). Quiero utilizar IPtables en la máquina para evitar que los hosts de Internet accedan a los servicios web.

  • ¿Con qué reglas debo configurar IPtables?

  • ¿Cómo puedo proteger un puerto que siempre está abierto?

pregunta sophist 04.03.2013 - 17:34
fuente

2 respuestas

3
  1. Establezca la política predeterminada para denegar todo. ( iptables -P INPUT DENY )
  2. Permitir ICMP
  3. Agregue las reglas mínimas requeridas para los servicios que necesita.

Si tiene puertos que solo usan las máquinas locales, establezca reglas de permiso para esa combinación de puerto y rango de IP solamente.

iptables -A INPUT -p tcp --dport 80 -s 192.168.1.0/24 -j ACCEPT

El tráfico de salida también necesita reglas (permitir consultas de DNS, permitir que los servicios respondan a las conexiones, etc.). Usar reglas relacionadas / establecidas puede ayudar con esto. Incluso entre los cortafuegos bloqueados, permitir que todo el tráfico saliente por simplicidad sea común.

Si tiene tiempo, un caso ideal aunque laborioso sería utilizar SELinux para restringir aún más las cosas, por ejemplo, permitiendo que las bibliotecas de resolución de DNS consulten DNS, etc.

En cuanto a la "protección de un puerto abierto" que se reduce a configurar el software escuchándolo correctamente y garantizando que se solucionen los problemas de seguridad dentro de él.

    
respondido por el Jeff Ferland 04.03.2013 - 18:03
fuente
1

iptables es adecuado para esto, pero hay un par de enfoques que tomaría primero;

  1. Interfaz de escucha; Dígale a sus servicios web que escuchen solo en su IP local. Normalmente, están configurados para escuchar todas las interfaces ( 0.0.0.0 , o simplemente * ). En su lugar, debería establecer esto en 192.168.0.88 o similar.
  2. Configuración del servicio web; puede decirle al propio servicio web que solo permita ciertas IP de origen. Esto es algo menos seguro que los otros métodos, ya que la conexión aún se establece y luego se cae por el servidor web. Sin embargo, es un método fácil y rápido, y está perfectamente bien para la mayoría de los escenarios. En apache, esto sería con la directiva Allow From . Otros demonios web tienen otros mecanismos de configuración.

Finalmente, si desea utilizar iptables , está buscando un par de reglas que parezcan;

iptables -A INPUT -p tcp --dport 80 --source 192.168.0.0/24 -j ACCEPT
iptables -A INPUT -p tcp --dport 80 -j DROP
    
respondido por el lynks 04.03.2013 - 17:58
fuente

Lea otras preguntas en las etiquetas