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

Publicado por Fernando em 18/02/2013

[ Hits: 12.110 ]

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

MATE Desktop no Slackware - Compilação

Encriptando sua partição SWAP

MPlayer - Como utilizar sem bloquear o prompt

Broadcom BCM43225 no FreeBSD

Leitura recomendada

Vídeo laboratório de Pentest - LFI a code execution

IPCop Firewall de rede grátis

Como proteger seus dados no computador e smartphone?

"Macete" para autenticar com pam_auth

Filtros adicionais para o Squid bloquear malwares

  

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
Linux banner
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts