Script Ip6tables para um roteador ipv6

2

Estou usando o gogoc tunnel broker no meu pc do ubuntu para ativar o ipv6. Eu quero usar meu pc do Ubuntu como roteador ipv6. Eu habilitei o modo roteador no cliente gogoc. Estou usando o radvd para anunciar o roteador na LAN local. tun é a interface do túnel (WAN). br0 é a interface da LAN (wan0 e eth0 foram conectadas para tornar o laptop um ponto de acesso sem fio). Quais regras de firewall eu posso usar para habilitar o encaminhamento de pacotes e ter uma segurança razoavelmente boa para o roteador e para a LAN?

    
por nixnotwin 06.05.2011 / 19:28

2 respostas

1

Eu não posso dizer que estou familiarizado com esse corretor de túneis específico, estou assumindo que você recebeu um / 64 para seus hosts. Existem alguns corretores de túneis que fornecem um / 48 caso em que você precisará ajustar as regras um pouco. Estes estão no formato iptables-save:

*filter
:INPUT DROP [0:0]
:FORWARD DROP [0:0]
:OUTPUT ACCEPT [0:0]

# Allow established connections
-A INPUT -m state --state RELATED,ESTABLISHED -j ACCEPT
-A FORWARD -m state --state RELATED,ESTABLISHED -j ACCEPT

# Allow ICMPv6 traffic (required for IPv6) This could be tightened up but it must
# be done very carefully unless you know what you're doing. It could block all
# routing
-A INPUT -p ipv6-icmp -j ACCEPT
-A FORWARD -p ipv6-icmp -j ACCEPT

# Allow traffic from your internal hosts to the outside world
-A FORWARD -s <your address block>::/64 -j ACCEPT

COMMIT

Você precisará substituir "< seu bloco de endereço > :: / 64" por qualquer intervalo de endereço atribuído a você.

Esse firewall impedirá todas as conexões externas com os endereços IPv6 locais, permitindo acesso a tudo. Se você precisar fornecer serviços em seus hosts IPv6 internos, precisará adicionar regras de permissão na cadeia FORWARD no final (mas antes do COMMIT).

    
por 06.05.2011 / 21:19
2

Para roteadores baseados em Linux, acho que shorewall6 --- uma ferramenta de firewall baseada em ip6tables --- funciona muito bem. Usando uma ferramenta de front end como shorewall6 em vez de ip6tables , você pode dispensar alguns detalhes importantes, mas complicados, como perguntar sobre os vaguários do ICMPv6 (quais tipos eu preciso aceitar? Quais rejeitar?) , como eles já foram competentemente tratados.

Para configurar o shorewall6 , edite um pequeno número de arquivos de configuração bem documentados em /etc/shorewall6 . No mínimo, você modificaria esses arquivos:

  • zones , onde você dá nomes às suas redes;
  • interfaces , onde você lista suas interfaces de rede e as zonas às quais elas estão anexadas;
  • policy , onde você define suas políticas padrão para encaminhamento entre zonas (ACCEPT, DROP, etc);
  • e rules , onde você pode criar exceções específicas para suas políticas.

(Existem alguns outros arquivos também, mas para a maioria das situações, os padrões são bons.)

No seu caso, você pode definir duas zonas, digamos lan e wan . Sua política wan -to- lan padrão seria DROP, enquanto sua política lan -to- wan padrão seria ACCEPT. Então, se, por exemplo, você quisesse permitir conexões ssh para determinados hosts na sua lan zone da wan zone, você adicionaria essas exceções ao arquivo rules .

Em resumo, usar uma ferramenta de front end como shorewall6 torna muito fácil criar um roteador / firewall robusto e seguro --- certamente mais fácil do que usar ip6tables - porque cria algumas abstrações facilmente compreensíveis para você configurar (zonas, políticas, regras) e, em seguida, cuida dos detalhes subjacentes.

    
por 06.05.2011 / 21:42