Não se esqueça do IPv6 no seu Firewall

Publicado por Fernando em 18/02/2013

[ Hits: 17.697 ]

Blog: https://github.com/phoemur/

 


Não se esqueça do IPv6 no seu Firewall



Apesar de instituído há alguns anos, a adoção do protocolo IPv6 é, na melhor das hipóteses, vagarosa. O kernel do GNU/Linux já tem suporte ao IPv6 já há muitas versões, porém, o fato é que quase ninguém o usa.

E justamente aí está uma possível fonte de dores de cabeça. Todos sabem que manter serviços rodando sem necessidade em seu servidor, e por isso esquecidos e mal configurados, é uma das maiores fontes de vulnerabilidades. E com o IPv6 não é diferente.

Experimente rodar o comando:

# netstat -nta

Se o IPv6 está habilitado, é grande a possibilidade de os mesmos serviços que estão com portas abertas no IPv4, também o estarem no IPv6.

E o problema está justamente aí, pois normalmente nos preocupamos com Firewall, IDS e outras coisas com o IPv4 e esquecemos do IPv6.

Aqui em minha casa, por exemplo, temos:

# nmap -sS <ip do servidor>
Starting Nmap 6.01 ( http://nmap.org ) at 2013-02-09 16:11 BRST
Nmap scan report for localhost (127.0.0.1)
Host is up (0.0000060s latency).
All 1000 scanned ports on <ip do servidor> are filtered

Já a versão IPv6 do mesmo comando, retorna:

# nmap -6 -sS <IPv6 do servidor>
Starting Nmap 6.01 ( http://nmap.org ) at 2013-02-09 16:17 BRST
Nmap scan report for localhost (::1)
Host is up (0.0000050s latency).
Interesting ports on ip6-localhost (::1):
Not shown: 997 closed ports
PORT STATE SERVICE
22/tcp open ssh
53/tcp open domain
80/tcp open http

PERIGO!!!!

Isso acontece, entre outras coisas, porque muitos programas, como o IPtables, só lidam com o protocolo IPv4, deixando as portas IPv6 livres para serem abusadas por terceiros.

Para solucionar isso você pode usar o IP6tables, que é a versão IPv6 do mesmo programa e colocar em seu firewall:

/usr/sbin/ip6tables -P INPUT DROP
/usr/sbin/ip6tables -P OUTPUT DROP
/usr/sbin/ip6tables -P FORWARD DROP

Desta forma o firewall irá dropar (negar) todo o tráfego IPv6 sem distinção. Experimente rodar o mesmo comando anterior.

Se você tiver necessidade de usar o IPv6 para serviços específicos, há pessoas que fazem 2 scripts de firewall, um com IPtables e um com IP6tables, praticamente idênticos, para filtrar os dois protocolos.

Agora, se você não usa o protocolo IPv6 para nada mesmo, você pode também colocar no script do seu firewall:

echo "1" > /proc/sys/net/ipv6/conf/all/disable_ipv6

E desta forma colocar um ponto final e desabilitar o protocolo IPv6 ao nível do kernel.

Abraços, espero ter contribuído com alguma coisa.

Outras dicas deste autor

Consertando codificação de arquivos - UTF-8 x ISO-8859-1

Encriptando sua partição SWAP

Broadcom BCM43225 no FreeBSD

MATE Desktop no Slackware - Compilação

Como utilizar os SlackBuilds 14.1 no seu sbopkg

Leitura recomendada

NetGrok, uma ótima ferramenta para monitoramento

Criando volumes criptografados

Redirecionando porta de saída no IPTABLES

Desabilitar login do root via SSH no ESXi

Protegendo arquivo com comando chattr

  

Comentários
[1] Comentário enviado por phoemur em 27/04/2013 - 18:14h

Gostaria de acrescentar que essa dica só funciona se o ipv6 for compilado como módulo no seu kernel... Se ele estiver compilado como built-in não dá pra desabilitar o ipv6 com o echo "1" > /proc/sys/net/ipv6/conf/all/disable_ipv6. A solução seria desabilitar com ip6tables ou recompilar o kernel...

Abraços



Contribuir com comentário




Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts