Guia de configuração inicial (baseline) de uma VPS Debian/Ubuntu: atualização do sistema, fuso horário, sincronização de relógio, atualizações automáticas, hardening de kernel e swap.
1. Atualizar o sistema
apt update
apt full-upgrade -y
apt autoremove -y
apt autoclean -y
Depois, verifique se é necessário reiniciar (por exemplo, após atualização de kernel):
if [ -f /var/run/reboot-required ]; then reboot; fi
2. Fuso horário
timedatectl set-timezone America/Sao_Paulo
timedatectl
3. Sincronização de horário (chrony)
apt install -y chrony
systemctl enable --now chrony
systemctl status chrony
Se necessário, ajuste os servidores NTP em /etc/chrony/chrony.conf.
4. Atualizações automáticas de segurança
apt install -y unattended-upgrades apt-listchanges
dpkg-reconfigure -plow unattended-upgrades
Para reiniciar periodicamente após atualização de kernel, adicione ao cron — por exemplo, todo domingo às 3h30:
30 3 * * 0 root systemctl reboot
5. Hardening de kernel (sysctl)
Crie /etc/sysctl.d/99-hardening.conf:
kernel.kptr_restrict = 1
kernel.dmesg_restrict = 1
net.ipv4.conf.all.accept_redirects = 0
net.ipv4.conf.default.accept_redirects = 0
net.ipv6.conf.all.accept_redirects = 0
net.ipv6.conf.default.accept_redirects = 0
net.ipv4.tcp_syncookies = 1
net.ipv4.tcp_max_syn_backlog = 2048
net.ipv4.tcp_synack_retries = 2
net.ipv4.tcp_syn_retries = 5
vm.swappiness = 1
Aplique as configurações:
sysctl --system
6. Swap
fallocate -l 2G /swapfile # ou: dd if=/dev/zero of=/swapfile bs=1M count=2048
chmod 600 /swapfile
mkswap /swapfile
swapon /swapfile
echo '/swapfile none swap sw 0 0' >> /etc/fstab
7. SSH: não propagar variáveis de locale
Comente a linha SendEnv LANG LC_* em /etc/ssh/ssh_config para evitar avisos de locale ao conectar:
sed -i -E 's/^[[:space:]]*SendEnv[[:space:]]+LANG[[:space:]]+LC_\*/#&/' /etc/ssh/ssh_config
8. Opcional: MOTD e dotfiles
- Use
figletpara gerar um banner no login (/etc/motd). - Personalize
.bashrce.bash_aliasesem/roote/etc/skelpara aplicar a novos usuários.