Tutorial CDN-WAF
CDN, rede de distribuição de conteúdo ou Content Distribution Network, é uma rede de servidores distribuídos em diferentes partes do mundo. Esses servidores armazenam as informações da Web às quais você deseja acessar e as fornecem a partir do ponto mais próximo onde o usuário está localizado. Isso facilita a conexão é usuarios.Con mais rápido para tudo isso é conseguido impedir que todos os usuários tentam acessar o mesmo servidor central que pode chegar a um colapso.
Além disso, este aplicativo contém regras do WAF (Web Application Firewall) para proteger o conteúdo a ser distribuído.
Os primeiros passos como usar o CDN app explicado no seguinte link https://soporte.planisys.net/general/introduccion-cdn-app/. O site cdn da Planisys é dividido em diferentes seções. Neste tutorial, diferentes seções e suas funcionalidades serão explicadas.
Tenha em mente que o CDN de Planisys não suporta TLS v1.3 por falta de consolidação do openssl-1.1.1 que é esperado no começo de 2019
A home page do Planisys CDN (https://cdn-app.planisys.net/) se parece com isso:
A página principal apresenta todos os cdn’s, clicando na lupa podemos acessar a configuração de cada cdn.
No lado direito, clicando no botão de menu, algumas configurações da página web aparecem. Essas configurações serão explicadas em detalhes posteriormente.
Explicação de cada cdn
Clicando na lupa de um cdn em particular, abrimos uma nova janela com todas as informações gerais e configuração deste cdn.
Como podemos ver na página principal de cada cdn, um pouco é explicado sobre o cdn, o nome do cdn-host que ele usa, o tráfego. Mas há também mais ferramentas para cada cdn, como você pode ver na mesma página acima, há uma lista de opções, que será explicada abaixo.
Importante: toda vez que você fizer uma alteração, precisará salvar essa alteração.
Informação Geral
Explicação geral sobre o cdn, como o nome deste, o Ip’s com o qual ele está conectado, etc.
Configuração Geral
Nesta seção, você pode criar e excluir sites diferentes. Cada site tem 6 configurações definidas (domínios, protocolo, upstream, regras, sinalizadores globais e personalizados).
Domínios
Nesta seção, todos os domínios relacionados a um site específico são apresentados. Você pode adicionar domínios ao mesmo site.
O redirecionamento serve quando há mais de um domínio, podemos escolher o principal. Ou seja, temos dois domínios e escolhemos um com redirecionamento, o que vai acontecer é que entrar com o segundo domínio nos redireciona para o primeiro.
Protocolo
Dois protocolos para transferência de hipertexto são apresentados, qualquer um dos quais pode ser escolhido.
O segundo protocolo, https, apresenta uma maneira de proteger a página com o certificado e a chave privada, já que a chave privada é secreta e a chave pública faz parte do certificado SSL.
Planisys CDN-WAF opera em HTTP / 2 quando se trata de HTTPS, o que permite um grau significativo de paralelismo e, portanto, aceleração ao carregar as páginas.
Upstream
Essa configuração nos permite criar diferentes upstreams para um site. Na criação do upstream definimos o nome do mesmo, a porta e no servidor escrevemos o servidor do qual queremos fazer o upstream.
Por exemplo, podemos servir conteúdo HTTPS, mas pegar conteúdo de um upstream em HTTP.
Regras
Expressões regulares são usadas para comparar e combinar o texto. Essas regras são definidas para permitir diferentes formatos, os arquivos são usados na página da web.
Global Flags
Nesta seção, vamos explicar quais são os sinalizadores e suas funcionalidades. As bandeiras apresentadas abaixo têm a atividade de permitir ou bloquear algumas funcionalidades
Bloquear injeção de SQL: em princípio, esses ataques são combinações de técnicas para se conhecer a configuração de um servidor e seu banco de dados. Ou seja, ao inserir esse código, o invasor pode fazer alterações, excluir dados etc. Essa sinalização nos permite bloquear esses ataques analisando padrões na query_string.
Bloquear Injeção de Arquivo: a inclusão de arquivos permite que invasores acessem arquivos não autorizados ou confidenciais apresentados no servidor web. Este processo também permite a execução de arquivos maliciosos. Basicamente, esta vulnerabilidade ocorre quando o aplicativo da Web permite o upload de arquivos para sua página. Quando o sinalizador é definido como ‘Sim’, ele bloqueia a inclusão de arquivos analisando padrões na cadeia_de_consultas.
Bloqueie explorações: uma exploração é um tipo de malware. Estes são programas maliciosos que contêm dados ou códigos executáveis. Estes aproveitam as vulnerabilidades de software em um computador local ou remoto. Esse sinalizador permite bloquear explorações por meio de uma análise de padrão no query_string.
Bloquear agente de usuário perigoso: um agente de usuário é um aplicativo de computador que funciona como um cliente em um protocolo da web. Em outras palavras, o agente do usuário é o aplicativo responsável pela conexão com a web que queremos acessar. O sinalizador bloqueia os User Agents suspeitos de hackear ou usar ferramentas que consomem muita largura de banda, ou seja, programas destinados a consumir largura de banda sem fins úteis ou fins comerciais.
Usar o HostHeader da request: cabeçalhos HTTP são os parâmetros que são enviados em uma solicitação HTTP ou resposta para o cliente ou servidor para fornecer informações sobre a transação atual. Definir o sinalizador como ‘yes’ permite usar o cabeçalho do host fornecido com a solicitação ou sem forçar um específico. O padrão é passar o cabeçalho do Host para a parte upstream da solicitação do navegador do usuário.
Ignorar Cadeia de consulta na URL: A bandeira ignora o query_string, só este vai ser armazenado em cache como uma cópia do conteúdo da URI antes do sinal ‘?’. Se você não é o query-string é ignorado (tudo o que vem na URL depois do “?” Ele irá armazenar em cache o URL completo, incluindo query-string.
Forçar Cache: ativar esse sinalizador ativa o Force-cache. Onde ele define um TTL (Time to Live é um parâmetro que define o tempo em que os dados são retidos no cache do navegador) e cabeçalhos de upstream não são levados em conta. Um dos cabeçalhos upstream é o X-Accel Expires Cache-Control Vary. Ao forçar o cache, os cabeçalhos vindos do upstream são ocultados e um cache é forçado no navegador.
Detectar cookie: Se você decidir detectar cookie, você deve especificar o nome dele e o cache serão segmentados de acordo com os diferentes valores que você tem esse cookie no navegador do usuário final. Um cookie é um arquivo criado pelo site que contém pequenas quantidades de dados e que é enviado entre um remetente e um destinatário.
Detectar WEBP: o webp é um formato gráfico em forma de contêiner que suporta compactação com e sem perdas. Este sinalizador permite manter um cache duplo para navegadores que suportam este formato ou não. Isso depende do navegador, ao solicitar a imagem do CDN, para especificar que aceita, por exemplo, jpg, mas também webp.
Ativar GEOIP: quando este sinalizador é ativado, ele pode ser mantido diferenciado pelo código do país detectado de acordo com o IP que está conectado ao CDN. Desta forma, o cache é particionado automaticamente por país.
Nota: numa versão futura, será permitido segmentar por cidade, se o conteúdo variar por cidade. No entanto, deve-se levar em conta que endereços IP geolocalizados nem sempre representam a localização exata do navegador, mas sim a localização declarada pelo provedor de conectividade.
Protegendo o WordPress: no caso em que o upstream é um site WordPress. No WordPress existe um arquivo xmlrpc.php, este arquivo é muito vulnerável a ataques. É muito fraco em ataques como força bruta ou ataques offline, como ataques DDoS. Esse sinalizador permite bloquear o acesso a arquivos .php em wp-includes e wp-content e geralmente contém regras de proteção, pois o WordPress pronto para uso ou após a instalação de um plug-in é conhecido por deixar vulnerabilidades.
Clickjacking, sniffing e XSS proteção: – clickjacking é uma técnica maliciosos para enganar os usuários da Internet para revelar informações confidenciais ou assumir o controle de seu computador quando você clica em páginas da web de primeira vista são inocentes. Sniffing é o roubo de informações com base na técnica pela qual você pode ouvir tudo o que circula na web. O XSS ocorre quando um invasor consegue injetar um script, geralmente Javascript, na saída de um aplicativo da Web para que ele seja executado no navegador do cliente. Ativar esta bandeira nos permite proteção
contra Cross-Site Scripting, injeção de scripts maliciosos, Clickjacking em frames ocultos e sniffing de conteúdo (OWASP Headers).
Segurança estrita de transporte: permite setar o cabeçalho HSTS para manter a conexão em HTTPS e evitar downgrades HTTP que permitem sniffing de cookies e captura de sessões (Cabeçalhos OWASP, RFC 6797).
Política de segurança de conteúdo: este sinalizador apresenta três perfis diferentes para evitar a injeção de código Javascript externo. O primeiro perfil é chamado de Estrito, onde a injeção de scripts que não são do mesmo domínio que o site é evitada. Outro perfil chamado Google permite a injeção de conteúdo do Google, como fontes, análises, etc. Último perfil é o Relaxado que permite a injeção de conteúdo Javascript do Google, Facebook e Zendesk.
Ativar hotlinking: hotlinking é o roubo de informações ou links de outro site. Ao ativar esta bandeira, b é permitido
loquear link externo de conteúdo próprio.
Detectar celular:
permite redirecionar para outra URL se for detectado celular (FQDN Mobile) ou segmentar o cache na área de trabalho / móvel (Conteúdo para celular)
Personalizado
Esta seção nos permite criar diferentes respostas no caso, se ocorrer um erro. Você pode copiar e colar uma página HTML personalizada a ser mostrada, no caso de o upstream falhar e o CDN não ter conteúdo para exibir (não tem “conteúdo obsoleto”).
Limpar cache
História
Aqui todas as alterações feitas em um site são definidas. Cada alteração é identificada por um hash, o autor e quando a alteração foi feita.
Testando
Nesta seção, testamos diferentes domínios com diferentes cdn-host, usando os métodos Get e Post. Para fazer o teste, definimos qual método usar, o protocolo, o domínio e em ‘send request to’ definimos o cdn-host.
Quando clicamos no botão ‘enviar’ no lado direito, a resposta do teste é exibida, onde o status, o servidor usado, o conteúdo, etc. são especificados. Na imagem a seguir, você pode ver um exemplo da resposta.
Billing
Esta seção nos fornece informações sobre o pagamento.
Como discutido no começo, há uma barra de menu no lado direito da página principal. Este menu apresenta três opções diferentes.
1.- Suporte: clicar nessas opções abre uma nova janela onde podemos escrever os problemas que temos com o uso.
2.- Painel de controle: mostra o tráfego e o que cada CDN consumiu.
3.- SSL Tools: são as ferramentas do SSL. Explicação mais detalhada está nos tutoriais de ‘Gerar novo CSR e KEY com o link https://soporte.planisys.net/general/gerar-csr-e-chave-privada/, e Verificar o par de CSR E a chave privada com link https://soporte.planisys.net/general/cdn-verifique-o-par-crt-e-chave-privada/.