VPS Nginx WordPress: configurando a segurança inicial da VPS em 2023

VPS Nginx WordPress: configurando a segurança inicial da VPS

Para começar este tutorial primeiro você precisa ter uma ótima hospedagem de sites. Se o seu site é pequeno ou estático, recomendamos uma hospedagem de sites compartilhada. No entanto, se o site tem muitos acessos, recomendamos o uso de uma VPS. Neste artigo, vamos orientar como configurar uma VPS de maneira segura para posteriormente instalar o PHP 8.2, NGINX, MariaDB e WordPress. Dito isso, você vai precisar de acesso SSH ao servidor. Vamos dividir este tutorial em várias etapas, nesta primeira etapa vamos configurar a VPS, trocando usuários, criando regras de firewall e em seguida configuramos tudo para ser utilizado com o WordPress super rápido com NGINX, cache de objetos e até o FastCGI.

Além disso, vamos também nos próximos capítulos configurar cache de página e cache de objetos, mas é muito importante que você nunca pule nenhuma etapa. Assim, vamos inicialmente fazer alguns ajustes antes mesmo de configurar um servidor WordPress com NGINX, PHP e MariaDB ou MySQL. Se você tem dúvidas, pode ler o artigo sobre como escolher uma hospedagem de sites.

Configurando o hostname da nossa VPS

VPS Nginx WordPress: configurando a segurança inicial da VPS

Para começar a manter tudo organizado, vamos atribuir um nome a nossa máquina. Este nome, que é o hostname, não vai influenciar em nada em seu domínio final. Mas, eu prefiro manter tudo organizado e padronizado, se você não gosta disso pode pular para a próxima etapa.

No entanto, caso queira, pode ajuste o hostname tendo como exemplo o comando abaixo, troque o “vps.sempreupdate.com.br”, pelo nome que desejar, lembre-se de manter as aspas.

echo "vps.sempreupdate.com.br" > /etc/hostname
hostname -F /etc/hostname

Configurando o fuso horário na VPS

Neste exemplo de instalação do NGINX + MariaDB + PHP-FPM estamos usando o Ubuntu 22.04, mas este comando funcionará em qualquer distribuição Linux, é nele que vamos definir o nosso horário local, execute o comando abaixo e utilize as setas do teclado. Assim, vá até América e quando o campo for selecionado pressione ENTER para abrir outras opções.

dpkg-reconfigure tzdata

Em seguida uma lista em ordem alfabética será exibida, se você estiver no Nordeste brasileiro pode escolher Recife ou Brasília como fuso horário base, mas não se preocupe, isso não quer dizer que você está morando nestas cidades, isso é apenas para definir o seu fuso, já que no Brasil são múltiplos.

Atualizando o Ubuntu 22.04 em uma VPS

Agora que já temos uma configuração básica do Ubuntu em uma VPS, vamos para as atualizações. Essa etapa é muito importante, com ela é possível evitar ataques ou bugs que podem travar o seu servidor. Para atualizar tudo execute o comando abaixo, lembre-se que após a atualização do Ubuntu 22.04 na VPS vamos precisar reiniciar a VPS. Você pode fazer isso pelo painel da sua hospedagem ou executando comando posterior.

Para atualizar o sistema completamente, execute o comando abaixo, se estiver como root execute sem o sudo.

sudo apt update && sudo apt dist-upgrade -y

Agora, reinicie a VPS com o comando abaixo:

sudo reboot

Após reiniciar você vai precisar informar o usuário originalmente criado e depois a senha.

Criando um novo usuário para a VPS

Para manter o nosso servidor web para WordPress mais seguro, não vamos usar o usuário padrão da VPS. Isso é recomendado com uma certa urgência, às vezes os provedores de hospedagem criam usuários e utilizam senhas com um certo padrão, e isso pode facilitar brechas para que crackers tente explorá-las. E tendo me vista que ninguém quer perder seu site, vamos criar um outro usuário, troque o nome do usuário pelo o que você for usar, além disso memorize bem a senha.

Execute o comando abaixo para criar um novo usuário na VPS:

adduser joao

Você verá algo como as saídas abaixo, lembre-se que criar uma senha forte, afinal você não quer que um software descubra sua senha, nada de usar senhas fáceis em sua VPS.

root@vps.sempreupdate.com.br:~# adduser joao
Adicionando o usuário `joao ...
Adicionando novo grupo `joao '(1000) ...
Adicionando novo usuário `joao' (1000) com o grupo `joao' ...
Criando diretório inicial `/home/joao' ...
Copiando arquivos de `/etc/skel' ...
Nova Senha:
Digite novamente a nova senha:
passwd: senha atualizada com sucesso
Alterando as informações do usuário para Joao
Insira o novo valor ou pressione ENTER para o padrão
    Nome completo []: Joao Negromonte
    Número do quarto []:
    Telefone de Trabalho []:
    Telefone residencial []:
    Outro []:
A informação está correta? [S/n]

Agora, adicione o novo usuário, no exemplo “joao”, para o grupo sudo. Como já avisamos antes, esteja atendo ao uso do sudo, se estiver usando o root pode executar o comando como no exemplo trocando apenas o nome do usuário.

usermod -a -G sudo joao

Agora, vamos precisar sair do usuário padrão da VPS e logar novamente com o novo usário criado, a partir de agora vamos usar o comando sudo em todos os comandos.

Execute o comando abaixo para sair do usuário root da VPS:

logout
VPS Nginx WordPress: configurando a segurança inicial da VPS

Configurando o Firewall da VPS NGINX com Ubuntu para sites WordPress

No Ubuntu temos o ufw que é uma interface muito simples de usar, para isso execute o comando abaixo para instalar, em alguns provedores ele já vem instalado.

sudo apt install ufw

Agora vamos adicionar as portas para SSH (22), HTTP (80) e HTTPS (443) com o comando abaixo:

sudo ufw allow ssh
sudo ufw allow http
sudo ufw allow https

Em seguida, confira tudo o que está liberado no firewall da sua VPS até agora com o comando abaixo:

sudo ufw show added

Você deve ver algo como no exemplo abaixo:

Added user rules (see 'ufw status' for running firewall):
ufw allow 22/tcp
ufw allow 80/tcp
ufw allow 443/tcp

Agora, vamos ativar o Firewall, lembre-se de ficar atento especialmente a porta 22, que é o que estamos usando em nosso acesso SSH.

sudo ufw enable

Se por ventura, você ainda queira chegar tudo novamente execute o comando abaixo:

sudo ufw status verbose

Você verá a seguinte saída:

Status: active
Logging: on (low)
Default: deny (incoming), allow (outgoing), disabled (routed)
New profiles: skip
To                         Action      From
--                         ------      ----
22/tcp                     ALLOW IN    Anywhere                  
80/tcp                     ALLOW IN    Anywhere                  
443/tcp                    ALLOW IN    Anywhere                  
22/tcp (v6)                ALLOW IN    Anywhere (v6)             
80/tcp (v6)                ALLOW IN    Anywhere (v6)             
443/tcp (v6)               ALLOW IN    Anywhere (v6)      

Configurando o fail2ban em uma VPS

Agora, que já configuramos algumas portas SSH e da própria internet, precisamos melhorar a segurança do nosso servidor. Como vamos criar, configurar uma VPS com Nginx para WordPress, saiba que há um plugin fail2ban para WordPress, ele é gratuito e você pode instalar no WordPress e monitorar todos os acessos indevidos ao seu servidor.

Além disso, o plugin também exibe logs de acessos, banimentos e possui a opção de configurar algumas regras caso você queira. Para instalar o Fail2ban execute o comando abaixo:

sudo apt install fail2ban

Agora, ative o fail2ban com o comando abaixo:

sudo service fail2ban start

Aproveite e já guarde o link ou faça o download do arquivo do plugin fail2ban, afinal ainda não temos o WordPress instalado neste momento, então já separe o link ou o plugin para uso posterior.

Ainda sobre segurança de uma VPS é recomendável que você sempre verifique o seu servidor. Além disso, mantenha as atualizações em dia. Em breve vamos prosseguir com a instalação e configuração do servidor web com NGINX, MariaDB e WordPress.