11 min de leitura · Guia técnico
Checklist para configurar servidor de produção Linux com segurança é um conjunto de procedimentos essenciais para proteger servidores em ambiente de produção. Para configurar um servidor Linux seguro, siga estes passos:
- Atualizar sistema operacional e pacotes
- Criar usuário não-root com privilégios sudo
- Configurar autenticação SSH com chaves
- Desabilitar login root via SSH
- Configurar firewall básico
- Implementar monitoramento de logs
Pré-requisitos
- Acesso root ao servidor Linux (Ubuntu 22.04 LTS ou CentOS 8)
- Cliente SSH configurado (PuTTY, Terminal ou similar)
- Conhecimento básico de linha de comando Linux
- Endereço IP público do servidor
- Conexão estável com a internet
Configuração inicial do sistema e atualizações
A primeira etapa do checklist para configurar servidor de produção envolve garantir que o sistema esteja atualizado com os patches de segurança mais recentes. Esta configuração inicial é fundamental para eliminar vulnerabilidades conhecidas.
Conecte-se ao servidor via SSH e execute os comandos de atualização:
sudo apt update && sudo apt upgrade -y
Para sistemas CentOS/RHEL:
sudo yum update -y
Output esperado após a atualização:
Reading package lists... Done
Building dependency tree... Done
0 upgraded, 0 newly installed, 0 to remove and 0 not upgraded.
Configure o timezone do servidor para sua região:
sudo timedatectl set-timezone America/Sao_Paulo
Verifique a configuração de data e hora:
timedatectl status
Instale pacotes essenciais para administração:
sudo apt install -y curl wget vim htop fail2ban ufw
Criação de usuário administrativo seguro
Nunca utilize o usuário root diretamente em servidores de produção. Crie um usuário administrativo com privilégios sudo para todas as operações de manutenção.
Crie o novo usuário:
sudo adduser admin
Adicione o usuário ao grupo sudo:
sudo usermod -aG sudo admin
Teste o acesso sudo com o novo usuário:
su - admin
sudo whoami
Output esperado:
root
Configure o shell padrão se necessário:
sudo chsh -s /bin/bash admin
Para maior segurança, configure um timeout para sessões sudo editando o arquivo sudoers:
sudo visudo
Adicione a linha:
Defaults timestamp_timeout=15
Configuração de autenticação SSH com chaves
A autenticação por chaves SSH elimina a necessidade de senhas e oferece segurança superior contra ataques de força bruta. Esta configuração é essencial no checklist de segurança.
No seu computador local, gere um par de chaves SSH:
ssh-keygen -t rsa -b 4096 -C "admin@meuservidor"
Copie a chave pública para o servidor:
ssh-copy-id admin@SEU_IP_SERVIDOR
Alternativamente, copie manualmente a chave:
mkdir -p ~/.ssh
echo "sua_chave_publica_aqui" >> ~/.ssh/authorized_keys
chmod 700 ~/.ssh
chmod 600 ~/.ssh/authorized_keys
Teste a conexão com chave:
ssh admin@SEU_IP_SERVIDOR
Configure o arquivo SSH para maior segurança:
sudo vim /etc/ssh/sshd_config
Modifique as seguintes configurações:
PermitRootLogin no
PasswordAuthentication no
PubkeyAuthentication yes
Port 2222
Reinicie o serviço SSH:
sudo systemctl restart sshd
Configuração de firewall e portas de acesso
O firewall é a primeira linha de defesa contra acessos não autorizados. Configure regras restritivas que liberem apenas o tráfego necessário para o funcionamento das aplicações.
Ative o UFW (Uncomplicated Firewall):
sudo ufw enable
Configure regras básicas:
sudo ufw default deny incoming
sudo ufw default allow outgoing
Libere portas essenciais:
sudo ufw allow 2222/tcp
sudo ufw allow 80/tcp
sudo ufw allow 443/tcp
Para servidores de banco de dados, libere apenas para IPs específicos:
sudo ufw allow from 192.168.1.0/24 to any port 3306
Verifique o status do firewall:
sudo ufw status verbose
Output esperado:
Status: active
Logging: on (low)
Default: deny (incoming), allow (outgoing), disabled (routed)
New profiles: skip
To Action From
-- ------ ----
2222/tcp ALLOW IN Anywhere
80/tcp ALLOW IN Anywhere
443/tcp ALLOW IN Anywhere
Configure rate limiting para SSH:
sudo ufw limit 2222/tcp
Implementação de monitoramento e logs de segurança
O monitoramento contínuo permite detectar tentativas de invasão e comportamentos suspeitos. Configure sistemas de log e alertas para manter visibilidade sobre a segurança do servidor.
Configure o Fail2Ban para proteção contra ataques de força bruta:
sudo vim /etc/fail2ban/jail.local
Adicione a configuração:
[sshd]
enabled = true
port = 2222
filter = sshd
logpath = /var/log/auth.log
maxretry = 3
bantime = 3600
Inicie o Fail2Ban:
sudo systemctl enable fail2ban
sudo systemctl start fail2ban
Configure rotação de logs:
sudo vim /etc/logrotate.d/custom-logs
Adicione:
/var/log/auth.log {
daily
rotate 30
compress
delaycompress
missingok
notifempty
}
Configure alertas por email para eventos críticos:
sudo apt install -y mailutils postfix
Crie script de monitoramento:
sudo vim /usr/local/bin/security-monitor.sh
Para servidores VPS, considere utilizar Acessando servidores VPS Linux da AviraHost para configurações específicas da infraestrutura.
Configuração de backups automatizados
Backups regulares são essenciais para recuperação em caso de falhas ou ataques. Implemente uma estratégia de backup automatizada que inclua dados críticos e configurações do sistema.
Crie diretório para scripts de backup:
sudo mkdir -p /opt/backups/scripts
Crie script de backup básico:
sudo vim /opt/backups/scripts/daily-backup.sh
Conteúdo do script:
#!/bin/bash
BACKUP_DIR="/opt/backups/daily"
DATE=$(date +%Y%m%d_%H%M%S)
mkdir -p $BACKUP_DIR
# Backup de configurações
tar -czf $BACKUP_DIR/configs_$DATE.tar.gz /etc/
# Backup de logs importantes
tar -czf $BACKUP_DIR/logs_$DATE.tar.gz /var/log/
# Limpeza de backups antigos (manter 7 dias)
find $BACKUP_DIR -name "*.tar.gz" -mtime +7 -delete
Torne o script executável:
sudo chmod +x /opt/backups/scripts/daily-backup.sh
Configure cron para execução automática:
sudo crontab -e
Adicione a linha:
0 2 * * * /opt/backups/scripts/daily-backup.sh
Para backups remotos, configure rsync:
rsync -avz --delete /opt/backups/ user@backup-server:/backups/servidor1/
Hardening adicional do sistema
Aplique configurações avançadas de segurança para reduzir a superfície de ataque e fortalecer as defesas do servidor contra ameaças sofisticadas.
Desabilite serviços desnecessários:
sudo systemctl disable bluetooth
sudo systemctl disable cups
sudo systemctl disable avahi-daemon
Configure limites de recursos no sistema:
sudo vim /etc/security/limits.conf
Adicione:
* soft nofile 65536
* hard nofile 65536
* soft nproc 32768
* hard nproc 32768
Configure parâmetros de kernel para segurança:
sudo vim /etc/sysctl.d/99-security.conf
Adicione configurações de hardening:
# Proteção contra IP spoofing
net.ipv4.conf.all.rp_filter = 1
net.ipv4.conf.default.rp_filter = 1
# Desabilitar redirecionamentos ICMP
net.ipv4.conf.all.accept_redirects = 0
net.ipv6.conf.all.accept_redirects = 0
# Proteção contra SYN flood
net.ipv4.tcp_syncookies = 1
net.ipv4.tcp_max_syn_backlog = 2048
Aplique as configurações:
sudo sysctl -p /etc/sysctl.d/99-security.conf
Configure auditoria do sistema:
sudo apt install -y auditd
sudo systemctl enable auditd
Para configurações específicas de otimização, consulte Dicas de Otimização de Servidores Linux.
Problemas comuns e como resolver
SSH não conecta após mudança de porta
Causa: Firewall bloqueando a nova porta SSH ou configuração incorreta no sshd_config.
Solução: Verifique se a porta está liberada no firewall com sudo ufw status e confirme a configuração em /etc/ssh/sshd_config. Reinicie o serviço SSH.
Fail2Ban não está bloqueando ataques
Causa: Configuração incorreta do jail ou logs não sendo monitorados adequadamente.
Solução: Verifique o status com sudo fail2ban-client status sshd e confirme se o caminho do log está correto no arquivo de configuração.
Backup automatizado falha silenciosamente
Causa: Permissões insuficientes ou espaço em disco esgotado.
Solução: Verifique permissões do diretório de backup, espaço disponível com df -h e adicione logging ao script de backup para identificar erros.
Firewall bloqueia tráfego legítimo
Causa: Regras muito restritivas ou ordem incorreta das regras.
Solução: Revise as regras com sudo ufw status numbered e ajuste conforme necessário. Use sudo ufw insert para adicionar regras em posições específicas.
Perguntas frequentes sobre checklist para configurar servidor de produção Linux com segurança
Quais são os primeiros passos para configurar um servidor Linux de produção?
Os primeiros passos incluem atualizar o sistema, criar usuário não-root com sudo, configurar SSH com chaves, desabilitar login root e configurar firewall básico. Estes passos formam a base de segurança essencial.
É necessário desabilitar o usuário root em servidores de produção?
Sim, é altamente recomendado desabilitar o login direto do root via SSH. Crie um usuário com privilégios sudo para administração e use autenticação por chaves SSH para maior segurança.
Qual firewall usar em servidor Linux de produção?
UFW (Uncomplicated Firewall) é ideal para iniciantes, enquanto iptables oferece controle granular. Para servidores web, libere apenas portas 22 (SSH), 80 (HTTP) e 443 (HTTPS) inicialmente.
Como automatizar backups em servidor Linux de produção?
Use rsync com cron para backups incrementais automáticos. Configure scripts que executem diariamente, mantendo múltiplas versões e enviando para storage externo. Teste a restauração regularmente.
Quais logs monitorar em servidor de produção Linux?
Monitore /var/log/auth.log para tentativas de login, /var/log/syslog para eventos do sistema, logs do Apache/Nginx para acesso web e logs de aplicação. Configure alertas para eventos críticos como falhas de autenticação.
Conclusão
Implementar este checklist de segurança é fundamental para proteger servidores Linux em ambiente de produção. A configuração adequada desde o início previne a maioria dos ataques e garante operação estável.
- Execute todas as etapas do checklist sequencialmente para máxima segurança
- Mantenha backups atualizados e teste a restauração regularmente
- Monitore logs continuamente e configure alertas para eventos suspeitos
Precisa de ajuda com configuração de servidor VPS seguro?
Nossa equipe especializada pode auxiliar na implementação completa deste checklist de segurança em seu servidor. Oferecemos suporte técnico especializado para configuração e manutenção de servidores Linux.