Acabou levando mais tempo do que eu gostaria, mas como culpa é algo que não me pertence, vamos seguindo.

Bom, já temos quase tudo pronto no que diz respeito à rede IPv4. Faltam algumas últimas peças se encaixarem para que ela esteja completa, habilitar alguns serviços e pronto, poderemos partir para a rede IPv6.

DNS Dinâmico

No artigo anterior eu disse:

Acontece que os P-U-T-O-S das operadoras te dão um negócio chamado IP dinâmico que, como nome diz, muda de tempos em tempos.

Na prática, isso significa que para acessar o seu NAS fora da sua casa, a partir da internet, você precisa saber qual é o IP que a V-A-C-A da operadora está dando para a sua conexão em casa, o que pode ser complicado e certamente é chato de fazer toda vez que você precisa acessar algo em sua própria casa.

O meio mais fácil de resolver esse incômodo é usar algo que atende pelo nome DDNS (ou Dynamic DNS, de DNS Dinâmico). Felizmente há uma miríade de serviços disponíveis para isso internet afora, muitos deles gratuitos. Aqui você poderá encontrar uma lista enorme com vários serviços do gênero. Basta escolher um compatível com o seu NAS ou roteador e criar uma conta.

Com um NAS (ou roteador) em casa, é bastante fácil configurar este recurso. Aqui vou mostrar como isso é feito no NAS da Synology, mas como eu disse em todos os artigos e repito, você está livre para implementar do jeito que quiser.

A Synology é honesta o suficiente para prover o seu próprio serviço de DDNS, o MyDS. Não há nenhuma razão prática para que eu não use-o e recomende-o, sendo que ele provê alguns benefícios interessantes para quem possui um Synology. Se você não tem um Synology, qualquer DDNS serve.

Com uma conta DDNS criada, acesse o seu NAS (ou roteador) e configure-o.

Configurações de DDNS no NAS.

Quando você aplicar estas configurações, seu NAS vai responder de qualquer lugar fora da sua casa através do endereço http://zezinho.myds.me. Esta será a porta de entrada para a sua casa a partir de qualquer outro lugar fora dela.

Se você tiver o seu próprio domínio, agora é a hora de fazer aquele CNAME em seu DNS para xibiu.sararacrioulo.com.br ser um apelido para zezinho.myds.me. A partir daí, você poderá acessar a rede da sua casa pelo endereço http://xibiu.sararacrioulo.com.br.

E com isso quase finalizamos a parte complicada da coisa. Daqui pra frente é só habilitar os serviços que você deseja ter rodando e, como a última parte complicada, configurar a parte de segurança, o firewall. Veremos isso já.

Serviços

Como vimos lááá no primeiro artigo desta série, o objetivo disso tudo é rodar alguns serviços em nossa rede doméstica dual stack e sermos capazes de acessar esses serviços de qualquer lugar do planeta também em dual stack.

Aqui não vou perder muito do meu e do seu tempo com pormenores de como configurar cada serviço, pois isso é um tema muito particular e subjetivo. Vou apenas recomendar algumas coisas com base no gráfico da implementação que já vimos antes. Também não vou tratar dos serviços que já vimos detalhadamente antes (DHCP e DNS).

NTP: Serviço de Hora Certa

É muito legal e útil ter a hora precisamente certa em casa. Todos os dispositivos em sua rede podem ter a hora perfeitamente sincronizada com o seu servidor de hora certa, com precisão atômica. Afinal, um relógio com atraso ou adiantamento <=1s a cada 10 milhões de anos (!!!) é um privilégio.

Para isto, você precisa habilitar o servidor NTP do seu NAS. A minha sugestão para a configuração dele é (geralmente /etc/ntp.conf no Synology, /etc/ntp/ntp.conf em outros Linux):

server 127.127.1.0
fudge 127.127.1.0 stratum 9
server pool.ntp.br minpoll 6 maxpoll 10 iburst prefer
driftfile /var/lib/ntp/ntp.drift
restrict default nomodify notrap noquery
restrict -6 default nomodify notrap noquery
restrict 127.0.0.1
restrict -6 ::1
restrict 192.0.2.0 mask 255.255.255.224 nomodify notrap
restrict -6 2001:db8:abcd:1234: mask ffff:ffff:ffff:ffff:: nomodify notrap
disable monitor
restrict default kod nomodify notrap nopeer noquery
restrict -6 default kod nomodify notrap nopeer noquery

Se você quiser saber o que tudo isso significa, sugiro a leitura deste documento. Não esqueça de alterar os IPs v4 e v6 para os que você estiver efetivamente utilizando, sendo que o v6 não precisa ser incluído agora.

HTTP: Serviço Web

Particularmente, eu não rodo um servidor web para desenvolvimento no NAS. De qualquer modo, ele já possui um servidor Web rodando para o DSM (a interface de configuração e outros serviços) e poderia muito bem servir como o servidor web dos meus projetos pessoais ou de trabalho. Mas eu prefiro ter isso em minha própria máquina ou em uma VM com o Vagrant.

NFS, AFP: Serviço de Arquivos

Para compartilhar arquivos entre os diversos dispositivos em sua rede, você precisa habilitar em seu NAS algum serviço de arquivos.

Se você possui apenas máquinas Linux, será muito feliz só com o NFS. Simples, rápido, robusto e seguro. O único detalhe aqui é que o NFS como implementado pela Synology no DSM só funciona com IPv4. Nada de IPv6. Pelo menos era assim até o DSM 4.3. Atualizei recentemente para o DSM 5, mas ainda não testei isso para ver se o NFS agora suporta IPv6. Nos Linux 'normais' isso não deve ser um problema, pois o NFS na maioria das distribuições falam IPv4 e IPv6.

Se você tem Mac, então poderá precisar também do AFP. Ele é quase tão rápido e seguro quanto o NFS, definitivamente não é tão robusto ou simples, mas dá para o gasto. É bom lembrar que Macs também 'falam' NFS, então pode ser que só com o NFS você já tenha tudo o que precisa para alimentar também os seus Macs. É certo que a E-S-C-R-O-T-A da Apple está fazendo de tudo para complicar a vida de quem tenta usar as coisas que não são dela, como o NFS. Por exemplo: do Mac OS X 10.8+ em adiante, a opção de montar NFS pelo 'Utilitário de Disco' não existe mais. Agora só pela linha de comando. Feliz o dia que eu decidi abandonar o Mac OS X.

Eu não tenho nenhuma máquina com Windows em casa. E recomendo veementemente que você também não tenha uma (se precisar de uma, use uma VM). Se você seguir esta recomendação, não vai precisar rodar em seu NAS um servidor CIFS/SMB, que é o protocolo de compartilhamento de arquivos do Windows. Complicado, lento, sensível, inseguro e porco. Se você precisa do CIFS/SMB para as suas máquinas Windows, meu 'booooua' sorte. Não encontrará nada aqui sobre isso.

Outros Serviços

Um serviço que dever ser considerado em sua rede é a VPN (Virtual Private Network). Se você configurar um servidor de VPN em seu NAS, você pode aumentar a segurança da sua rede como um todo. Pode ser PPTP, OpenVPN ou L2TP/IPSec, apenas um deles resolve. Feche todos os serviços para o mundo exterior e abra apenas as portas necessárias para a VPN. Quando estiver fora de casa, conecte-se à VPN e navegue em sua rede local como se você estivesse em casa. Um detalhe a ser observado sobre a VPN: ela só funciona para o IPv4. Ou seja, implementar uma VPN vai fazer você perder o dual stack a partir da internet e não o desobriga de tomar os devidos cuidados com a segurança da rede IPv6. IPv4 e IPv6 são duas redes completamente diferentes.

Outro serviço bastante útil é um servidor de log centralizado. No DSM, da Synology, esse serviço atende pelo nome de Log Center. Uma vez habilitado, você pode colocar todas as suas máquinas para enviar logs (/var/log/messages e /var/log/syslog, por exemplo) para o NAS. A partir dele você pode pesquisar com facilidade os logs de todo mundo, em um só lugar. É ótimo para resolver problemas do dia a dia. Se você não possui um Synology, a mesma coisa pode ser feita com o RSYSLOG ou o syslog-ng. O Log Center é só uma carinha bonitinha para o RSYSLOG.

O rsync também pode ser um dos serviços que você pode rodar em sua rede. Você TEM QUE e VAI fazer backups, não é? Pois bem, use o rsync para isso.

Recentemente eu comecei a usar os serviços PXE e TFTP para boot e instalação remota do Slackware (vou escrever sobre isso depois, em outro artigo, fora desta série). É uma grande mão na roda fazer isso só pela rede, sem ter que de baixar imagens de DVD, queimar um disco ou gravar um pendrive.

Há inúmeros outros serviços que podem ser executados em seu NAS. Experimente e escolha os que forem úteis para você. E por favor, fique atento para desligar os que você não usa. Isso é bom para economizar recursos do seu NAS e também para a segurança de sua rede e dos dispositivos conectados a ela como um todo, já que cada serviço em execução trás suas próprias brechas de segurança. Em tempos de backdoors governamentais, NSA, Heartbleed e Snowden, muito é pouco para cuidar disso.

Firewall

E por último, embora de modo algum menos importante, vamos falar de segurança na camada IPv4 da nossa rede profissa em casa. Por enquanto ela é um queijo suíço, cheia de buracos para ser atacada por pessoas e instituições mal intencionadas. O firewall é quem nos proverá alguma paz de espírito.

Minha abordagem para segurança de rede é simples, como tudo que eu procuro fazer. Funciona assim e nesta ordem:

  1. Desative tudo que não for absolutamente essencial;
  2. Nos serviços estritamente administrativos (ssh por exemplo), permita o acesso somente de umas poucas máquinas administrativas (por exemplo, somente o seu notebook ou desktop);
  3. Nos serviços compartilhados da rede (NFS e syslog por exemplo), permita o acesso somente à máquinas especificas e conectadas diretamente na rede;
  4. Nos serviços que devem ser acessados fora de casa (VPN ou servidor web por exemplo), permita o acesso a partir de toda a internet, seja cuidadoso nas configurações, prefira SSL/TLS e use senhas fortes (>=15 caracteres com números e símbolos);
  5. Feche todo o resto.

O DSM, da Synology, implementa, como todo Linux, o iptables como firewall. Acontece que o DSM tem uma carinha bonitinha para criar as regras. Se você tem um Synology, basta ir no Painel de Controle e configurar a segurança da sua rede IPv4. Se não tem, tudo bem. Basta criar as regras.

As regras abaixo são um ponto de partida decente.

# Tabela de regras NAT da rede VPN OpenVPN
*nat
:PREROUTING ACCEPT [0:0]
:POSTROUTING ACCEPT [0:0]
:OUTPUT ACCEPT [0:0]
-A POSTROUTING -s 198.51.100.0/24 -j MASQUERADE
COMMIT

# Tabela de regras de filtros do firewall
*filter
:INPUT ACCEPT [0:0]
:FORWARD ACCEPT [0:0]
:OUTPUT ACCEPT [0:0]
:DOS_PROTECT - [0:0]

# Proteção contra ataques DDOS
-A INPUT -i eth0 -j DOS_PROTECT

# Permite o tráfego de serviços relacionados e previamente estabelecidos
-A INPUT -m state --state RELATED,ESTABLISHED -j ACCEPT

# Permite DHCP (absolutamente necessário, sem isso seu DHCP não funciona)
-A INPUT -i eth0 -p udp -m multiport --dports 68,67 -j ACCEPT

# Permite todos os serviços a partir da rede interna
-A INPUT -s 192.0.2.1/27 -i eth0 -j ACCEPT

# Permite a conexão à VPN OpenVPN e ao servidor web a partir da internet
-A INPUT -i eth0 -p tcp -m multiport --dports 1194,8443 -j ACCEPT

# Descarta os pacotes de todos os demais serviços a partir da internet
-A INPUT -i eth0 -j DROP

# Complemento da proteção contra ataques DDOS
-A DOS_PROTECT -i eth0 -p icmp -m icmp --icmp-type 8 -m limit --limit 1/sec -j RETURN
-A DOS_PROTECT -i eth0 -p icmp -m icmp --icmp-type 8 -j DROP
-A DOS_PROTECT -i eth0 -p tcp -m tcp --tcp-flags FIN,SYN,RST,ACK RST -m limit --limit 1/sec -j RETURN
-A DOS_PROTECT -i eth0 -p tcp -m tcp --tcp-flags FIN,SYN,RST,ACK RST -j DROP
-A DOS_PROTECT -i eth0 -p tcp -m tcp --tcp-flags FIN,SYN,RST,ACK SYN -m limit --limit 10000/sec --limit-burst 100 -j RETURN
-A DOS_PROTECT -i eth0 -p tcp -m tcp --tcp-flags FIN,SYN,RST,ACK SYN -j DROP
COMMIT

Com o conjunto de regras acima, sua rede deixará de ser um queijo suíço. Mas nunca é demais avisar: seja cuidadoso nas configurações, prefira SSL/TLS e use senhas fortes (>=15 caracteres com números e símbolos).

Lembre-se que as regras acima só valem para a rede IPv4. As regras para a rede IPv6 serão mostradas depois, quando tivermos uma rede IPv6.

Isso encerra os trabalhos com a rede IPv4. No próximo artigo cairemos dentro da rede IPv6.