Firewall IPv6 básico para Mikrotik

    

Muitos se perguntam como fica a segurança da rede em IPv6, já que todos os hosts internos estarão "expostos" na Internet. O NAT por si só já funciona como um firewall statefull, o que lhe dá uma segurança mínima na rede. Por isso muitos se quer conseguem imaginar um firewall sem NAT. Mas a coisa é muito mais simples do que você imagina. Um firewall IPv6 basicamente não vai aceitar estabelecimento de conexões que vêm de fora, apenas pacotes de conexões já estabelecidas.

Basicamente, a única novidade em firewall IPv6 é que VOCÊ NÃO PODE FILTRAR PACOTES ICMPv6. Vou repetir para que fique claro: Você não pode filtrar pacotes ICMPv6. O ICMPv6 acumula várias funcionalidades que eram desempenhadas por outros protocolos e processos no IPv4. Não vem ao caso discutir isso agora, mas sem ICMPv6 a rede simplesmente não funciona.

Baseado neste artigo, que é baseado na RFC 4890, fiz um firewall IPv6 básico para Mikrotik que serve bem para ambientes domésticos ou pequenas empresas. Você pode usar como base para fazer o seu, e tem os exemplos para abertura de portas no próprio firewall(input) ou em hosts dentro da rede(forward).

Fique tranquilo e veja que isso oferece uma segurança tão boa quanto, ou melhor que o NAT:

#
# Cria lista de interfaces LAN.
#
/interface list
add name=LAN-interfaces comment="Interfaces LAN"
member add interface=bridge list=LAN-interfaces

#
# Cria Lista de Bogons IPv6.
#
/ipv6 firewall address-list
add address=::/128 list=IPv6_Bogons comment="unspecified address"
add address=::1/128 list=IPv6_Bogons comment="loopback"
add address=fec0::/10 list=IPv6_Bogons comment="site-local"
add address=::ffff:0.0.0.0/96 list=IPv6_Bogons comment="IPv4-mapped"
add address=::/96 list=IPv6_Bogons comment="IPv4 compat"
add address=100::/64 list=IPv6_Bogons comment="discard only"
add address=2001:db8::/32 list=IPv6_Bogons comment="documentation"
add address=2001:10::/28 list=IPv6_Bogons comment="ORCHID"
add address=3ffe::/16 list=IPv6_Bogons comment="6bone"
add address=::224.0.0.0/100 list=IPv6_Bogons comment="IPv4 compat Multicast"
add address=::127.0.0.0/104 list=IPv6_Bogons comment="IPv4 compat loopback"
add address=::/104 list=IPv6_Bogons comment="IPv4 compat unspacified"
add address=::255.0.0.0/104 list=IPv6_Bogons comment="IPv4 compat uso futuro"

/ipv6 firewall filter
#
# Regras de INPUT - Validas para conexoes diretas ao Roteador/Firewall.
#

add action=accept chain=input comment="Aceita conexoes estabelecidas" connection-state=established,related,untracked
add action=drop chain=input comment="Drop em conexoes invalidas" connection-state=invalid
add action=accept chain=input comment="Aceita ICMPv6" protocol=icmpv6

#
# A regra abaixo libera as portas do Winbox e ssh no Mikrotik/Firewall.
# Use como exemplo, mas JAMAIS deixe-as abertas para a Internet!
#
add action=accept chain=input comment="Libera portas 8291 e 22 no Mikrotik" dst-port=8291,22 protocol=tcp

add action=accept chain=input comment="Aceita traceroute UDP" port=33434-33534 protocol=udp
add action=accept chain=input comment="Aceita DHCPv6-Client prefix delegation." dst-port=546 protocol=udp src-address=fe80::/10
add action=accept chain=input comment="Aceita IKE" dst-port=500,4500 protocol=udp
add action=accept chain=input comment="Aceita ipsec AH" protocol=ipsec-ah
add action=accept chain=input comment="Aceita ipsec ESP" protocol=ipsec-esp
add action=accept chain=input comment="Aceita tudo dentro da politica de IPsec" ipsec-policy=in,ipsec
add action=drop chain=input comment="Drop em tudo mais que não veio da LAN" in-interface-list=!LAN-interfaces

#
# Regras de FORWARD - Validas para conexoes dos hosts internos.
#

add action=accept chain=forward comment="Aceita conexoes estabelecidas" connection-state=established,related,untracked
add action=drop chain=forward comment="Drop em conexoes invalidas" connection-state=invalid
add action=drop chain=forward comment="Drop pacotes com Bogons de origem" src-address-list=IPv6_Bogons
add action=drop chain=forward comment="Drop pacotes com Bogons de destino" dst-address-list=IPv6_Bogons
add action=drop chain=forward comment="Drop ICMPv6 com hop-limit de 1." hop-limit=equal:1 protocol=icmpv6
add action=accept chain=forward comment="Aceita ICMPv6" protocol=icmpv6

#
# Regra de exemplo para liberação de portas 80 e 22 em host interno.
# Altere as portas e endereço de destino.
#
add action=accept chain=forward comment="Libera portas 80 e 22 em host interno" dst-port=80,22 protocol=tcp dst-address=2001:db8:BEBA:CAFE::1

add action=accept chain=forward comment="Aceita HIP" protocol=139
add action=accept chain=forward comment="Aceita IKE" dst-port=500,4500 protocol=udp
add action=accept chain=forward comment="Aceita ipsec AH" protocol=ipsec-ah
add action=accept chain=forward comment="Aceita ipsec ESP" protocol=ipsec-esp
add action=accept chain=forward comment="Aceita tudo dentro da politica de IPsec" ipsec-policy=in,ipsec
add action=drop chain=forward comment="Drop em tudo mais que não veio da LAN" in-interface-list=!LAN-interfaces


Você poder fazer os testes de portas usando este link.

Comentários

Postagens mais visitadas deste blog

Script para configurar Proxy.

Entendendo as VLAN's