Lista blanca de IP permitidas (entrada / salida) usando iptables


21

Tengo algunos rangos de IP a los que quiero que mi servidor pueda conectarse y desde donde los usuarios puedan conectarse. Todo lo demás debe estar bloqueado.

¿Cómo debo hacer eso con iptables?

Mi sistema operativo es distribución de Linux basada en Debian.

Respuestas:


27

Sugeriría tomar una herramienta de configuración de firewall, como Firestarter , y partir desde allí. Aquí hay algunos conceptos básicos para usted, sin embargo.

#Flush existing rules
iptables -F
# Set up default DROP rule for eth0
iptables -P INPUT DROP
# Allow existing connections to continue
iptables -A INPUT -i eth0 -m state --state ESTABLISHED,RELATED -j ACCEPT
# Accept everything from the 192.168.1.x network
iptables -A INPUT -i eth0 -s 192.168.1.0/24 -j ACCEPT
# Allow connections from this host to 192.168.2.10
iptables -A OUTPUT -o eth0 -d 192.168.2.10 -j ACCEPT

3
Sabes que puedes formatear tu código en publicaciones predeterminadas del servidor, usando el botón 101010. De esa manera sus comentarios no saldrán como gritos. Simplemente seleccione (arrastre el mouse) el código y luego haga clic en el botón 101010 sobre el campo de texto.
Jason Tan

2
Ahhh gracias, no me di cuenta de eso. Ahora lo sé :)
Zenham

1
+1 por EXISTENTE, RELACIONADO: demasiadas personas no hacen esto.
Alnitak

1
¡Por el amor de Dios, establezca la regla DROP predeterminada ÚLTIMO! Me encerré (¡y todo lo demás!) Fuera de una máquina siguiendo ese orden de operaciones.
Bendoh

1
Pésima respuesta. OP no dice nada sobre dejar caer todas las conexiones actuales. Ahora estoy bloqueado porque asumí que la respuesta principal tenía sentido.
omikes

14
iptables -I INPUT -s <allowed_ip> -j ACCEPT #(repeat this line as needed)
iptables -P INPUT DROP

Esto convertirá su sistema en un sistema inexistente para computadoras no permitidas.


7

Si desea permitir rangos arbitrarios en lugar de subredes completas, puede usar el módulo iptables 'iprange':

iptables -P INPUT DROP

iptables -A INPUT -m iprange --src-range 192.168.1.30-50 -j ACCEPT

por ejemplo, permitirá el tráfico proveniente de todas las máquinas con direcciones entre 192.168.1.30 y 192.168.1.50.

Si desea permitir el tráfico entrante y saliente al mismo rango de IP, le sugiero que cree una cadena específica que permita esas IP y apunte a todos los objetivos de entrada y salida:

- Defina las políticas predeterminadas para descartar todo:

iptables -P INPUT DROP

iptables -P OUTPUT DROP

--crear la nueva cadena:

iptables -N allowed_ips

- si la fuente es parte del rango permitido, acepte

iptables -A allowed_ips -m iprange --src-range 192.168.1.30-50 -j ACCEPT

- si no, regrese a la cadena de llamadas para continuar el procesamiento

iptables -A allowed_ips -j RETURN

- haga que todo el tráfico que ingrese y salga de la máquina pase por nuestra nueva cadena

iptables -A INPUT -j allowed_ips

iptables -A OUTPUT -j allowed_ips

¡y eso es! por supuesto, es posible que necesite reglas adicionales, como una que permita todo el tráfico desde / hacia la interfaz lo, etc.


1

Una vez que esté satisfecho con sus reglas, probablemente quiera guardarlas . Los comentarios en este enlace tienen varias opciones sobre cómo hacerlo.

Un generador de reglas de iptables fácil de usar para necesidades simples es ufw . El paquete está disponible en debian inestable.

Prueba también Firestarter . Disponible en lenny.


0

También puede usar ferm, que también utilicé durante el año pasado y me ha ayudado mucho con casos como las reglas de firewall condicionales.

Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.