El documento describe fw-admin, una herramienta de línea de comandos para administrar cortafuegos duales IPv4 e IPv6 en Linux de forma unificada. Fw-admin usa variables para declarar direcciones y aplicar reglas a iptables e ip6tables simultáneamente, evitando tener que mantener dos conjuntos de reglas separados.
1. Cortafuegos doble pila en Linux
IPv4 & IPv6
Arturo Borrero Gonzalez <aborrero@cica.es>
Centro Informático Científico de Andalucía – CICA
Consejería de Economía, Innovación, Ciencia y Empleo
Junta de Andalucía
La licencia de este documento es CC-BY-SA.
Noviembre 2013
2. Recordatorio IPv4 & IPv6
Tamaño:
IPv4 → 232 direcciones
IPv6 → 2128 direcciones
Del tipo:
IPv4 → 192.168.1.1 - 150.214.5.83
IPv6 → fc00::1:1 - 2a00:9ac0:c1ca:6::83
En DNS:
IPv4 → Registro tipo A
IPv6 → Registro tipo AAAA
CICA - 2013
Junta de Andalucía
Arturo Borrero González <aborrero@cica.es>
3. Recordatorio cortafuegos Linux
· Proyecto Netfilter <netfilter.org>
· Desde Linux ~ 2.4
· Evolución del framework:
ipchains → iptables → nftables
· Actualmente:
iptables -A FORWARD -m conntrack –ctstate ESTABLISHED -j ACCEPT
iptables -A FORWARD -p tcp –dport 22 -m conntrack –ctstate NEW -j ACCEPT
ip6tables -A FORWARD -p udp –dport 53 -m conntrack –ctstate NEW -j ACCEPT
CICA - 2013
Junta de Andalucía
Arturo Borrero González <aborrero@cica.es>
4. Dual stack IPv4 & IPv6
· Descrito en RFC-4213
· Método recomendado para despliegue IPv6 (vs tunel y otros)
· Basado en DNS:
→ Un FQDN (www.cica.es) tiene doble resolución
www.cica.es
IN
IN
A
AAAA
150.214.5.137
2a00:9ac0:c1ca:6::137
→ El cliente obtiene ambos registros y decide
qué protocolo usar
CICA - 2013
Junta de Andalucía
Arturo Borrero González <aborrero@cica.es>
5. Dual stack IPv4 & IPv6
Idealmente, todo el direccionamiento es doble
CICA - 2013
Junta de Andalucía
Arturo Borrero González <aborrero@cica.es>
6. Dual stack, consideraciones
¡Gestión por duplicado de la red!
• 2x direccionamientos para gestionar
• 2x tablas de enrutamiento
• 2x registros en DNS
• 2x cortafuegos ← !!
CICA - 2013
Junta de Andalucía
Arturo Borrero González <aborrero@cica.es>
7. Dual stack, consideraciones
¿2 cortafuegos?
• Netfilter no trabajar en dual stack :-(
• Dos familias distintas: iptables vs ip6tables
• Hay que escribir el cortafuegos 2 veces:
root@debian:~# iptables -A FORWARD -p tcp -j ACCEPT
root@debian:~# ip6tables -A FORWARD -p tcp -j ACCEPT
CICA - 2013
Junta de Andalucía
Arturo Borrero González <aborrero@cica.es>
8. El problema del cortafuegos
Elige sólo una opción:
• No usar cortafuegos para IPv6 (no hay tráfico)
• No usar cortafuegos para IPv6 (se acepta todo)
• Gestionar 2 cortafuegos, 2 rulesets
¡El cortafuegos puede ser un gran problema en IPv6!
CICA - 2013
Junta de Andalucía
Arturo Borrero González <aborrero@cica.es>
9. La propuesta de CICA
Condiciones previas:
• Red dual stack IPv4 & IPv6 basada en DNS al 99.99%
• Queremos usar Linux y Netfilter
• No queremos demasiada abstracción a Netfilter
• No queremos escribir 2 rulesets
• Queremos software libre, a prueba de NSA ;-)
CICA - 2013
Junta de Andalucía
Arturo Borrero González <aborrero@cica.es>
10. La propuesta de CICA
fw-admin
• Herramienta CLI, escrita en shell
• Pequeña capa de abstracción sobre iptables/ip6tables
• Ruleset válido para ambas familias
• Algunos extras
• Software libre!
CICA - 2013
Junta de Andalucía
Arturo Borrero González <aborrero@cica.es>
11. fw-admin
¿Que situaciones soporta?
• Reglas de iptables con y sin dual stack
• Resoluciones múltiples en DNS, tipo www.google.es
• No todo es filtrado: NAT, ipset, etc...
• Cortafuegos en alta disponibilidad (otra historia...)
CICA - 2013
Junta de Andalucía
Arturo Borrero González <aborrero@cica.es>
14. fw-admin
Declaración de reglas usando variables
Toda la funcionalidad de Netfilter es accesible directamente
CICA - 2013
Junta de Andalucía
Arturo Borrero González <aborrero@cica.es>
19. fw-admin
¿puntos fuertes?
• ¡Documentado!
• Muy flexible
• Desarrollo muy abierto a mejoras y nuevas funciones
¿puntos débiles?
• Poco extendido (quizás nada)
• Demasiado enfocado al entorno CICA (evidente)
CICA - 2013
Junta de Andalucía
Arturo Borrero González <aborrero@cica.es>
20. ¡Justo lo que estaba buscando!
Contáctame a <aborrero@cica.es> y te ayudo a implementarlo
CICA - 2013
Junta de Andalucía
Arturo Borrero González <aborrero@cica.es>
21. !Lo quiero ya!
Código: https://github.com/aborrero/fw-admin
Paquete DEB o RPM: <aborrero@cica.es>
CICA - 2013
Junta de Andalucía
Arturo Borrero González <aborrero@cica.es>