Un VPS neuf est joignable depuis tout internet dès qu'il démarre, et les scanners automatiques le trouvent en quelques minutes. Rien de ce qui suit n'est avancé ; c'est l'ordre qui compte, car les faire dans le mauvais ordre laisse une fenêtre ouverte.

1. Mettre à jour, avant toute chose

apt update && apt upgrade -y

2. Un utilisateur qui n'est pas root

Travailler en root, c'est faire que chaque erreur soit irrattrapable et chaque compromission totale. Créez un utilisateur, donnez-lui sudo, et gardez root pour les rares choses qui l'exigent.

adduser ops
usermod -aG sudo ops

3. Votre clé sur cet utilisateur, testée dans une seconde fenêtre

Testez la clé dans un NOUVEAU terminal avant de fermer celui-ci. Si la clé ne marche pas et que vous avez déjà désactivé les mots de passe, vous êtes enfermé dehors de votre propre serveur.
ssh-copy-id ops@your-server-ip
# then, in a NEW window:
ssh ops@your-server-ip

4. Couper les connexions par mot de passe

Seulement une fois la clé fonctionnelle. Ce seul changement met fin aux attaques par force brute contre votre serveur, parce qu'il ne reste plus rien à forcer.

# /etc/ssh/sshd_config
PasswordAuthentication no
PermitRootLogin no
# then
systemctl reload ssh

5. Un pare-feu qui commence fermé

Autorisez ce dont vous avez besoin et rien d'autre. Autorisez SSH en premier, sinon la commande suivante vous mettra dehors.

ufw allow OpenSSH
ufw allow 80,443/tcp
ufw enable

6. L'horloge

Un serveur dont l'horloge est fausse ne peut pas valider un certificat TLS, et les erreurs qu'il produit ressemblent à tout sauf à un problème d'horloge.

timedatectl set-ntp true
timedatectl
Notez ce que vous avez fait dans un fichier sur le serveur lui-même. Dans six mois, la question « pourquoi est-ce configuré ainsi » sera posée par vous, à propos de votre propre travail.