Melhores Práticas para Configuração Segura de Servidores Web


A segurança de servidores web é um aspecto essencial para proteger aplicações online contra ameaças cibernéticas. Tanto o Apache quanto o Nginx são amplamente utilizados, e suas configurações corretas ajudam a mitigar vulnerabilidades comuns. Neste guia, apresentamos um passo a passo para configurar servidores web de maneira segura.

1. Escolha um Sistema Operacional Seguro

Antes de configurar um servidor web, escolha um sistema operacional estável e seguro, como Ubuntu Server, Debian, CentOS ou AlmaLinux. Mantenha sempre o sistema atualizado com patches de segurança.

sudo apt update && sudo apt upgrade -y # Debian/Ubuntu
sudo yum update -y # CentOS/AlmaLinux

2. Instale e Configure o Servidor Web

Instale o Apache ou Nginx conforme sua necessidade:

Apache:

sudo apt install apache2 -y # Debian/Ubuntu
sudo yum install httpd -y # CentOS/AlmaLinux

Nginx:

sudo apt install nginx -y # Debian/Ubuntu
sudo yum install nginx -y # CentOS/AlmaLinux

Após a instalação, inicie e habilite o serviço:

sudo systemctl enable --now apache2 # Para Apache
sudo systemctl enable --now nginx # Para Nginx

3. Configure Permissões e Diretórios Seguros

Ajuste as permissões para garantir que arquivos sensíveis não sejam acessíveis:

sudo chown -R www-data:www-data /var/www/html
sudo chmod -R 755 /var/www/html

No Apache, desative a listagem de diretórios editando o arquivo /etc/apache2/apache2.conf:

<Directory /var/www/html>
Options -Indexes
</Directory>

Para o Nginx, edite o arquivo de configuração:

server {
location / {
autoindex off;
}
}

4. Ative HTTPS com Certificados SSL/TLS

Instale o Certbot para gerar certificados SSL gratuitos da Let's Encrypt:

sudo apt install certbot python3-certbot-nginx -y # Para Nginx
sudo apt install certbot python3-certbot-apache -y # Para Apache

Em seguida, gere e aplique o certificado:

sudo certbot --nginx # Para Nginx
sudo certbot --apache # Para Apache

Configure a renovação automática:

sudo systemctl enable certbot.timer

5. Restrinja o Acesso ao Servidor

Utilize firewalls para restringir o acesso:

sudo ufw allow OpenSSH
sudo ufw allow "Nginx Full" # Ou "Apache Full" para Apache
sudo ufw enable

Para reforçar a segurança, desative o acesso root via SSH e altere a porta padrão editando /etc/ssh/sshd_config:

PermitRootLogin no
Port 2222

Reinicie o serviço:

sudo systemctl restart sshd

6. Proteja Contra Ataques de Força Bruta e DoS

Instale e configure o Fail2Ban para prevenir ataques de força bruta:

sudo apt install fail2ban -y

Edite o arquivo /etc/fail2ban/jail.local para monitorar tentativas de login:

[sshd]
enabled = true
port = 2222
filter = sshd
logpath = /var/log/auth.log
maxretry = 5

Reinicie o serviço:

sudo systemctl restart fail2ban

Para mitigar ataques DoS, configure limites de conexão no Nginx:

limit_conn_zone $binary_remote_addr zone=addr:10m;
server {
location / {
limit_conn addr 10;
}
}

7. Mantenha o Servidor Atualizado

Automatize as atualizações de segurança:

sudo apt install unattended-upgrades -y
sudo dpkg-reconfigure unattended-upgrades

Conclusão

Seguir essas boas práticas aumenta significativamente a segurança do seu servidor web, reduzindo os riscos de ataques e vulnerabilidades. Lembre-se de monitorar logs, revisar permissões regularmente e manter backups para evitar perda de dados.

Postar um comentário

0 Comentários