Aller au contenu

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 :

Bash
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 :

Bash
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

Bash
sudo ufw enable

Le message suivant va apparaitre, il suffit de mettre "y" :

Text Only
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 :

Bash
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 :

Text Only
PermitRootLogin no

Vous allez aussi chercher : PasswordAuthentication

Text Only
PasswordAuthentication no

Il ne vous reste plus qu'à redémarrer ssh :

Bash
sudo service ssh restart

Maintenant, essayer de vous connectez en SSH via le mot de passe et vous devriez avoir le message suivant :

Bash
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

Bash
sudo apt install fail2ban

Si vous souhaitez configurer le fail2ban, vous pouvez en modifiant le fichier de configuration :

Bash
sudo nano /etc/fail2ban/jail.d/defaults-debian.conf

Mettez le contenu suivant et modifier selon vos envies

INI
[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

Bash
sudo service fail2ban restart