fbpx

Instalação WordPress no
Ubuntu 20:04 LTS 2022

Instalação e configuração de um servidor Ubuntu para Hospedagem WordPress.

Configurações de Segurança no Nginx

Se você está acompanhando desde o primeiro capítulo o nosso projeto de implantação de um servidor ubuntu para hospedagem wordpress, já viu que temos o nosso ambiente pronto.

Nesse capítulo vamos implementar algumas mudanças no nginx com foco em segurança, no entanto, isso não quer dizer que você está livre de toda e qualquer ameaça de ataques, mas as configurações aqui apresentadas podem minimizar os impactos.

SSL

Proteção no SSL

Nosso site wordpress nesse momento já possui o certificado SSL instalado, isso foi feito no segundo capítulo. No entanto, alguns usuários podem ainda tentar se conectar no nosso site pelo protocolo HTTP, quando nós adicionamos a diretiva Strict-Transport-Security aos cabeçalhos de resposta do servidor, garantirá que todas as futuras conexões sejam feitas sempre com o protocolo HTTPS.

Para realizar o procedimento, edite o nginx.conf com o comando abaixo:

sudo nano /etc/nginx/nginx.conf

E adicione o conteúdo abaixo dentro do bloco http assim como a imagem abaixo

add_header Strict-Transport-Security "max-age=31536000; includeSubdomains";
image 26

Salve o arquivo e de um reload nas configurações do Nginx com o comando:

service nginx reload

Agora acesse o site do Qualys SSL Test e realize um teste de qualidade do nosso SSL.

image 27

Performance do SSL

Normalmente uma conexão HTTPS consome e demanda bastante recurso do servidor em comparação a uma conexão simples HTTP. Isso ocorre por conta do procedimento de handshake adicional necessário ao estabelecer uma conexão.

Mas podemos adicionar em cache os parâmetros da sessão SSL, o que evitará um handshake para cada conexão HTTPS do usuário. Logo, podemos melhorar levemente um pouco mais a performance do servidor.

Abra o arquivo de configuração do nginx novamente

sudo nano /etc/nginx/nginx.conf

Na diretiva abaixo de SSL Settings, adicione o conteúdo abaixo:

ssl_session_cache shared:SSL:10m;
ssl_session_timeout 10m;
image 28

Agora faça um reload do Nginx para que as configurações entrem em vigor:

sudo service nginx reload

Tipos de Ataques e Segurança com Nginx

Cross-Site Scripting (XSS)

Uma das formas que você desenvolvedor pode lidar com o XSS é garantir a validação e limpeza correta de todas as entradas do usuário no seu código, principalmente as áreas de administração do WordPress. Mas sabemos que tudo vira um caos quando existem vários plugins e templates de terceiros, é complicado você manter isso seguro.

Uma das formas que temos para poder diminuir os riscos de ataques XSS é configurando o Nginx para fornecer cabeçalhos de resposta adicionais. Mas como assim?

Imagine que um atacante conseguiu incorporar um arquivo JS malicioso no código-fonte do seu blog/site, seja por meio de um form de comentários ou algo do gênero. Por padrão, o navegador acaba permitindo que esse arquivo externo seja executado no momento do acesso, e poderá infectar o visitante ou até mesmo minerar criptomoedas torrando a CPU do seu usuário.

Quando inserimos uma política de segurança de conteúdo, o que permite definirmos uma lista de permissões de fontes totalmente aprovadas por nós para carregar ativos (JS,CSS,HTML,etc), a coisa muda de cenário. Se o script não estiver na lista de aprovados, ele não poderá ser carregado no browser do seu usuário. Legal, não?

Criar uma política de segurança é bem complicado para falar a verdade, hora ou outra acabamos bloqueando algum recurso de um template ou plugin e desconfigurando nosso site, então fica em um cenário de tentativa e erro.

Clickjacking

Clickjacking é um tipo de ataque que engana o seu usuário para que ele realize uma ação sem que ele perceba (induz o usuário a clicar), e é realizado através de iframes em uma página.
Não sou especialista em segurança, mas você pode ler um artigo que explica como funciona detalhadamente esse tipo de ataque do Clickjacking.

No Nginx podemos mitigar um pouco esse tipo de ataque, desabilitando completamente a incorporação de iframes de terceiros adicionando o cabeçalho X-Xss-Protection no nginx.conf.

Fortalecendo a segurança do WordPress com Nginx

Abra o seu nginx.conf e adicione os cabeçalhos para que os tipos de ataques acima sejam mitigados. Também inclui alguns outros cabeçalhos, que vão nos ajudar a evitar uma série de outros ataques web.

add_header Content-Security-Policy "default-src 'self' https: data: 'unsafe-inline' 'unsafe-eval';" always;
add_header X-Xss-Protection "1; mode=block" always;
add_header X-Frame-Options "SAMEORIGIN" always;
add_header X-Content-Type-Options "nosniff" always;
add_header Referrer-Policy "origin-when-cross-origin" always;
add_header Permissions-Policy interest-cohort=();


image 31

A medida que atualizarmos esse capítulo com novos tipos de ataques iremos atualizar também as configurações do Nginx.

Conclusão

Antes de configurarmos as diretivas de segurança no Nginx com foco no nosso site WordPress, o resultado de um teste e análise dos cabeçalhos resultava a seguinte nota de segurança:

image 32

Após configurarmos os cabeçalhos, os resultados obtidos são maravilhosos:

image 33

Desse modo constatamos que configuramos os cabeçalhos e que ao menos alguns ataques vão ser bem difíceis de serem feitos no nosso servidor wordpress. Se você quer analisar o seu site, acesse o site: https://securityheaders.com/

De uma nota para esse artigo.
[Total: 3 Total: 5]

Gostou deste capítulo ?

Facebook
Twitter
LinkedIn
Telegram
WhatsApp

Receba conteúdos gratuitos incríveis!

Capítulos

01

Configurações Iniciais

Nessa primeira etapa realizamos todo o pré-instalação e configuração do nosso servidor WordPress.

02

Instalação LEMP e SSL

Instalação do Nginx, PHP 7.4 com FPM, MariaDB e também a instalação do Let’s Encrypt SSL.

03

Instalação WordPress

Nesse capítulo vamos instalar um site WordPress no nosso servidor, uma vez que já temos o mínimo.

04

Otimizações Nginx e PHP

Ajustes e tunagens no Nginx e PHP para projetos em WordPress com máxima performance.

05

Configurações de Cache

Configuração de cache de objetos com o Redis e Cache de página com cache Nginx.

06

Configurando CRON e SMTP Relay

Nesse capítulo configuramos tarefas cron e SMTP Relay para que o  wordpress envie notificações.

07

Configurando Backups

Nesse capítulo vamos configurar os backups automáticos do nosso WordPress.

08

Segurança com Nginx

Nesse capítulo vamos configurar uma série de diretivas no Nginx para evitar vários tipos de ataques web.

09

Monitoramento

Nesse capítulo vamos configurar algumas ferramentas com foco em monitoramento do servidor.

10

Considerações Finais

Nesse capítulo vamos falar algumas considerações finais e algumas dicas de boas práticas.

Mais conteúdos incríveis