Un VPS nuovo è raggiungibile da tutta internet nell'istante in cui si avvia, e gli scanner automatici lo trovano nel giro di minuti. Nulla di quanto segue è avanzato; ciò che conta è l'ordine, perché farle nell'ordine sbagliato lascia una finestra aperta.
1. Aggiorni, prima di ogni altra cosa
apt update && apt upgrade -y
2. Un utente che non sia root
Lavorare come root vuol dire che ogni errore è irrecuperabile e ogni compromissione è totale. Crei un utente, gli dia sudo, e tenga root per le poche cose che lo richiedono.
adduser ops
usermod -aG sudo ops
3. La sua chiave su quell'utente, provata in una seconda finestra
ssh-copy-id ops@your-server-ip
# then, in a NEW window:
ssh ops@your-server-ip
4. Spenga gli accessi con password
Solo dopo che la chiave funziona. Questa sola modifica chiude i tentativi a forza bruta contro il suo server, perché non resta più nulla da forzare.
# /etc/ssh/sshd_config
PasswordAuthentication no
PermitRootLogin no
# then
systemctl reload ssh
5. Un firewall che parte chiuso
Consenta ciò che le serve e nient'altro. Consenta prima SSH, altrimenti col comando successivo si chiude fuori da solo.
ufw allow OpenSSH
ufw allow 80,443/tcp
ufw enable
6. L'orologio
Un server con l'orologio sbagliato non può convalidare un certificato TLS, e gli errori che produce sembrano tutto tranne un problema di orologio.
timedatectl set-ntp true
timedatectl