Protéger votre VPS/VDS/Serveur¶
Pare-feu¶
Dans un premier temps, on va installer un pare-feu, sur linux, on peut installer ufw via la commande suivante :
sudo apt install ufw -y
Il faut le configurer et mettre les ports que vous souhaitez exposer, rappelez-vous que moi de ports sont ouverts, mieux s'est :
sudo ufw allow 22 # Port SSH
sudo ufw allow 80 # Port HTTP
sudo ufw allow 443 # Port HTTPS
sudo ufw allow 3306 # Port MySQL (non recommandé)
Il faut absolument que vous laissiez le port SSH ouvert au risque de ne plus avoir accès à votre serveur.
Il ne vous reste plus qu'à l'activer
sudo ufw enable
Le message suivant va apparaitre, il suffit de mettre "y" :
Command may disrupt existing ssh connections. Proceed with operation (y|n)?
Configurer SSH¶
IMPORTANT : Il faut avoir fait les sections "Générer une clé SSH" et "Mettre la clé sur la machine".
On va aller toucher au fichier de configuration, et pour cela, il faut aller dans :
sudo nano /etc/ssh/sshd_config
Et vous allez chercher la première ligne à changer : PermitRootLogin et vous devez la décommenté et mettre no :
PermitRootLogin no
Vous allez aussi chercher : PasswordAuthentication
PasswordAuthentication no
Il ne vous reste plus qu'à redémarrer ssh :
sudo service ssh restart
Maintenant, essayer de vous connectez en SSH via le mot de passe et vous devriez avoir le message suivant :
martin@192.168.1.144: Permission denied (publickey).
Si le mot de passe est toujours fonctionnel¶
Dans le cas ou il vous propose toujours de vous connectez par mot de passe, c'est qu'il y a un fichier config dans le dossier /etc/ssh/sshd_config.d/ qui contient une instruction opposée. Vous devez donc inspecter les différents fichiers pour modifier la valeur.
Dans mon cas, ce fichier était 50-cloud-init.conf.
Fail2Ban¶
Le fail2ban est un outil qui s'occupe permet d'empêcher le brute-force
sudo apt install fail2ban
Si vous souhaitez configurer le fail2ban, vous pouvez en modifiant le fichier de configuration :
sudo nano /etc/fail2ban/jail.d/defaults-debian.conf
Mettez le contenu suivant et modifier selon vos envies
[DEFAULT]
banaction = nftables
banaction_allports = nftables[type=allports]
backend = systemd
ignoreip = 127.0.0.1
bantime = 6000
findtime = 600
maxretry = 3
[sshd]
enabled = true
port = ssh
logpath = %(sshd_log)s
backend = %(sshd_backend)s
Et il vous suffit de redémarrer le fail2ban
sudo service fail2ban restart