El SysAdmin del 3er Mundo

todo lo que expliqué mientras nadie prestaba atención

cortafuegos ipv6 sencillo

| Comments

En entradas anteriores mencionábamos la necesidad urgente de un cortafuegos para ipv6. Aquí les va uno hipotético y sencillo:

Sean:

  • la red 2001:db8:: /64
  • eth0 interfaz de cara al enlace
  • eth1 interfaz de cara a la LAN
  • 2001:db8::1 servidor DNS
  • 2001:db8::2 servidor de correo
“firewall ipv6”
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
# al piedra angular
ip6tables -A INPUT   -m state --state RELATED,ESTABLISHED -j ACCEPT
ip6tables -A FORWARD -m state --state RELATED,ESTABLISHED -j ACCEPT

# nuestro ruter no tiene ningún servicio corriendo
# así que no permitimos nada pa adentro
ip6tables -A INPUT -j DROP

# el forward desde internet hacia la LAN va descartado
ip6tables -A FORWARD -i eth0 -o eth1 -j DROP

# permitimos que las máquinas en la LAN vean los sitios web de internet
ip6tables -A FORWARD -i eth1 -o eth0 -p tcp --dport 80  -j ACCEPT
ip6tables -A FORWARD -i eth1 -o eth0 -p tcp --dport 443 -j ACCEPT


# al servidor DNS le permitimos que encueste a otros servidores dns
# nuestro servidor dns es un servidor de cache, para la LAN. Dice:
# lo que venga por la lan, a salir por el enlace, proveniente del servidor DNS
# y además, cuto puerto de destino sea el 53, permítelo
ip6tables -A FORWARD -i eth1 -o eth0 -p udp --dport 53 -s 2001:db8::01 -j ACCEPT
ip6tables -A FORWARD -i eth1 -o eth0 -p tcp --dport 53 -s 2001:db8::01 -j ACCEPT

# permitimos que el servidor de correo sea visible desde afuera
# lo que venga, de afuera, pa adentro, protocolo tcp del puerto tal
# y como destino sea la ip del servidor de correo, permítelo
ip6tables -A FORWARD -i eth0 -o eth1 -p tcp --dport 25  -d 2001:db8::2 -j ACCEPT
ip6tables -A FORWARD -i eth0 -o eth1 -p tcp --dport 80  -d 2001:db8::2 -j ACCEPT
ip6tables -A FORWARD -i eth0 -o eth1 -p tcp --dport 110 -d 2001:db8::2 -j ACCEPT

# el resto del tráfico proveniente de la LAN hacia internet, le hacemos reject
# esto evita que los teléfonos no se queden locos intentando buscar salida
ip6tables -A FORWARD -i eth1 -o eth0 -j REJECT

# el resto del tráfico que venga de internet, le hacemos DROP
ip6tables -A FORWARD -i eth0 -o eth1 -j DROP

# habilita el forward
sysctl net.ipv6.conf.all.forwarding=1

Si este artículo te resultó interesante, considere donar 0.003 BTC: 1LgL9cfT2StNk9gdedMJZseMnKJCEgQJdQ

Comments