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/AlmaLinux2. 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/AlmaLinuxNginx:
sudo apt install nginx -y # Debian/Ubuntu
sudo yum install nginx -y # CentOS/AlmaLinuxApós a instalação, inicie e habilite o serviço:
sudo systemctl enable --now apache2 # Para Apache
sudo systemctl enable --now nginx # Para Nginx3. 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/htmlNo 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 ApacheEm seguida, gere e aplique o certificado:
sudo certbot --nginx # Para Nginx
sudo certbot --apache # Para ApacheConfigure 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 enablePara 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 2222Reinicie 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 = 5Reinicie 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-upgradesConclusã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.
0 Comentários