LinuxParty
Para poder tener un firewall sencillo de mantener y no un conjunto disperso de reglas podemos crear chains reutilizables para agregarlas a diversos puntos del proceso o simplemente para agrupar parte de la lógica del filtrado.
Vamos a suponer un caso simplificado con una única regla: Teniendo un sistema con un conjunto de proxys (puerto 3128) se quiere habilitar el acceso remoto desde unos determinados rangos. Hasta el momento existe la siguiente regla: :
# iptables -L Chain INPUT (policy ACCEPT) target prot opt source destination REJECT tcp -- anywhere anywhere tcp dpt:squid reject-with tcp-reset Chain FORWARD (policy ACCEPT) target prot opt source destination Chain OUTPUT (policy ACCEPT) target prot opt source destination
Lo simple sería agrear a la chain INPUT el listado de rangos permitidos, pero si crecen mucho los rangos o bien se desean abrir otros puertos para los mismos rangos acabaremos teniendo un listado de reglas imposible de tratar. Para evitar esto podemos crear una nueva chain:
# iptables -N EXTERNOS
Mediante iptables -L podremos verla:
# iptables -L Chain INPUT (policy ACCEPT) target prot opt source destination REJECT tcp -- anywhere anywhere tcp dpt:squid reject-with tcp-reset Chain FORWARD (policy ACCEPT) target prot opt source destination Chain OUTPUT (policy ACCEPT) target prot opt source destination Chain EXTERNOS (0 references) target prot opt source destination
A continuación añadiremos los rangos o conjuntos de IPs de una forma genérica para luego poder reaprovechar la chain:
# iptables -A EXTERNOS -s 84.88.0.0/24 -j ACCEPT # iptables -A EXTERNOS -s 213.55.111.66/32 -j ACCEPT
Como regla final añadiremos un REJECT con un tcp-reset para evitar que aparezca como filtered con nmap y el resto un DROP:
# iptables -A EXTERNOS -p tcp -j REJECT --reject-with tcp-reset # iptables -A EXTERNOS -j DROP
A continuación eliminaremos la regla genérica de REJECT que teníamos definida al principio:
# iptables -D INPUT -i eth0+ -p tcp -m tcp --dport 3128 -j REJECT --reject-with tcp-reset
Y añadiremos el acceso a la chain especificando el tráfico que queremos filtrar:
# iptables -A INPUT -i eth0+ -p tcp -m tcp --dport 3128 -j EXTERNOS
Con esto ya tendremos la regla substituida por un acceso filtrado según la chain:
# iptables -L -nv Chain INPUT (policy ACCEPT 363M packets, 86G bytes) pkts bytes target prot opt in out source destination 10 440 EXTERNOS tcp -- eth0+ * 0.0.0.0/0 0.0.0.0/0 tcp dpt:3128 Chain FORWARD (policy ACCEPT 0 packets, 0 bytes) pkts bytes target prot opt in out source destination Chain OUTPUT (policy ACCEPT 529M packets, 671G bytes) pkts bytes target prot opt in out source destination Chain EXTERNOS (1 references) pkts bytes target prot opt in out source destination 8 336 ACCEPT all -- * * 84.88.0.0/24 0.0.0.0/0 0 0 ACCEPT all -- * * 213.55.111.66 0.0.0.0/0 2 104 REJECT tcp -- * * 0.0.0.0/0 0.0.0.0/0 reject-with tcp-reset 0 0 DROP all -- * * 0.0.0.0/0 0.0.0.0/0
Una vez comprobada la nueva configuración podremos guardarla permanentemente mediante un iptables save:
# /etc/init.d/iptables save Saving firewall rules to /etc/sysconfig/iptables: [ OK ]
En el caso tanto de querer dar acceso a los mismos clientes por otros puertos sólo se debería añadir una regla para el puerto en concreto, de la misma manera si se quiere añadir una nueva red sólo se deberá modificar la chain independientemente del número de puertos.
Vía: systemadmin

-
Educación
- ¿Los adultos están olvidando cómo leer?
- Las 5 mejores plataformas de aprendizaje electrónico de código abierto para Linux en 2024
- Un estudio innovador muestra que los niños aprenden mejor en papel, no en pantallas. ¿Y ahora qué?
- Impresionante Selección de Más de 100 Cursos Gratuitos en Harvard para 2023
- Las escuelas ahora están enseñando sobre ChatGPT e IA para que sus estudiantes no se queden atrás
- Títulos sin valor están creando una generación desempleada en la India
- Pizarra, escanner y borrador todo en uno equipado en una clase de Corea.
- La Locura de Hacienda, la tasa "Amazon" el robo a mano armada que castigará la clase trabajadora y sobre todo las zonas rurales
- Cuando Caín mató a Abel O los 100 mil años de guerra entre neandertales y sapiens
- Descubren una escuela de 400.000 años en Israel que obliga a reescribir la historia
- ¿Los gerentes de ingeniería deben ser 'técnicos'?
- Ejecutar Linux o un viejo Windows 98 en tu navegador.
- Bill Gates. "Si un robot reemplaza a un humano en el trabajo, ese robots debe pagar impuestos"
- KeepCoding apuesta por el desarrollo tecnológico con su iniciativa Ctrl+Alt+España
- Para "IgnoranTOS e ignoranTAS"