Cloudflare: DynDNS & anti-DDOS

Olá a todos,

Desde o fim do capitulo “gratuito” do dyndns, muitos optaram por mudar o seu dynamic dns host para providers como o dtdns e outros semelhantes.

Na altura, esta movimentação mereceu um post meu, que explicava como fazerem o vosso próprio servidor de dyndns que pode ser consultado aqui.

Isto aconteceu em 2014 e está na altura de fazer um revamp ao mesmo e corrigir uma injustiça colocando aqui uma excelente alternativa, tanto ao nível do dynamic dns providing como ao nível de anti-ddos, para empresas e privados.

O provider em questão é a muito conhecida CloudFlare que é um provider de produtos de CDN (content delivery network), mitigação de DDoS, Internet security services e serviços distribuídos de DNS, colocando-se entre o utilizador final e o site em si, tendo um comportamento de reverse proxy.

A ideia em si é excelente.

Tendo do lado da CloudFlare uma banda de internet disponível muito mais alta que a empresa ou o privado provavelmente terão :), esta fornece um ponto de entrada controlada para aumentos de tráfego imprevistos, como por exemplo uma afluência anormal ao vosso site, ou mitigando uma situação de distributed denial of service (DDOS).

O processo de funcionamento em si é extremamente simples:

A CloudFlare irá gerir os vossos registos de DNS, quem os recebe e como, desviando ataques para becos sem saída, e garantido que acessos legítimos são entregues no vosso servidor.
A auxiliar a isto, a CloudFlare fornece ainda um serviço de CDN o que irá permitir que o vosso site não seja tão bombardeado por pedidos, sendo os repetidos servidos pelo app engine na cloud da CloudFlare.
O CDN, devido ao seu comportamento de cache, irá  aumentar em muito a resposta e velocidade do vosso site.

O processo de gestão de DDOS é igualmente visível através desta ilustração:

Outras vantagens da CloudFlare são a sua gestão de DNS para quem não está a vontade com configurações de BIND e a oferta de certificado SSL com wildcard incluído.

Para empresas, as ofertas são bem mais complexas, e recheadas de possibilidades:

Aplicações de performance: https://www.cloudflare.com/performance/
Aplicações de segurança e mitigação: https://www.cloudflare.com/security/

Recomendo vivamente que visitem a página da CloudFlare e validem qual das ofertas melhor se adapta a vossa necessidade.

E para o pequeno entusiasta de homelabbing? O que posso usar e o que irá melhorar a minha vida?

a) A possibilidade de terem o vosso cliente de dyndns ajustado ao vosso domínio.
b) Certificado SSL gratis com wildcard.
c) Gestão avançada gratuita de registos de DNS.
d) Banda, banda, banda.

O processo em si é bastante simples, sendo necessário apenas criar uma conta gratuita, e escolher o vosso domínio que querem adicionar á gestão e defesa da CloudFlare:

Adicionar o vosso site, e aguardar o carregamento do mesmo:

Nota: Recomendo vivamente que caso tenham acesso ao ficheiro da vossa zona de DNS efetuem o upload do mesmo para a webgui garantido o melhor resultado possível na importação.

Em seguida, ser-vos-á indicado os vossos novos NS1 e NS2 a configurar para o vosso domínio. Deverão alterar estes registos no vosso registar de DNS (godaddy, hover, etc).

Finalmente, e após a alteração irão ter o vosso domínio com este aspecto na CloudFlare:

Como podem observar, existem muitas opções disponíveis nos menus do topo da página que que eu recomendo vivamente que visitem e explorem.
As opções são fantásticas mesmo na versão gratuita do serviço.

Finalmente e em relação ao vosso cliente de dyndns, podem usar o ddclient ou um script vosso que faça o mesmo. A API da cloudflare é excelente e poder ser invocada via CURL:

(exemplo de atualização de IP).

 

Sendo que a <a_key_da_vossa_zona> pode ser obtida na seção principal do site referente ao vosso domínio:

A vossa key de autenticação poderá ser obtida na secção de autenticação pessoal:

Como exemplo deixo parte da configuração para um dos meus domínios (com as secções importantes censuradas):

DNS_ZONE=a_api_id_da_vossa_zona_de_dns
IDENTIFIER=a_api_id_do_vosso_record_de_dns 
[email protected]
AUTH_KEY=a_api_key_da_vossa_conta

DOMAIN_NAME="batatinhas.nuneshiggs.com"

_UPDATE=$(cat <<EOF
{ "type": "A",
  "name": "$DOMAIN_NAME",
  "content": "$_IP",
  "ttl": 120,
  "proxied": false }
EOF
)

curl "https://api.cloudflare.com/client/v4/zones/$DNS_ZONE/dns_records/$IDENTIFIER" \
     --silent \
     -X PUT \
     -H "Content-Type: application/json" \
     -H "X-Auth-Email: $AUTH_EMAIL" \
     -H "X-Auth-Key: $AUTH_KEY" \
     -d "$_UPDATE" >> /var/log/dyndns.log &&

Nota: Os ID’s de DNS para o vosso host que querem mudar o IP, assim bem como o API_ID da vossa zona de DNS pode ser obtiver através da receita que se encontra aqui.

Concluindo, para mim, a CloudFlare está a fornecer um serviço muito perto do espetacular.

Só tive oportunidade de explorar as versões free, pro e enterprise e ainda estou de queixo caído com a versatilidade e extensão das ofertas, a todos os níveis e em todos os níveis.

Com a altura dos DDOS causados por hacks em equipamentos IOT a chegarem e com o aumento exponencial de banda a ser disponibilizada aos clientes de ISP’s a Cloudflare será uma uma excelente fora de se manterem a frente da onda!

Caso tenham duvidas ou sugestões, sabem onde me encontrar, ou em alternativa podem enviar as vossas mensagens para nuno[at]nuneshiggs.com

Abraço!
Nuno