Sécuriser son VPS : Bonnes pratiques et configurations essentielles
Après avoir mis en place mon site sur un VPS avec Odoo, Nginx et Cloudflare, il est crucial d'assurer la sécurité du serveur. Dans cet article, je vais détailler les mesures que j’ai mises en place pour protéger mon serveur contre les attaques et les intrusions.
1. Configuration du pare-feu avec UFW
Un pare-feu est indispensable pour restreindre l’accès aux ports sensibles. J’utilise UFW (Uncomplicated Firewall) pour gérer les règles de pare-feu sur mon serveur.
Installation et activation d’UFW
apt install ufw -y ufw default deny incoming ufw default deny outgoing
Autorisation des ports nécessaires
ufw allow ssh ufw allow http ufw allow https ufw enable
On vérifie l’état du pare-feu :
ufw status verbose
2. Sécurisation de SSH
Le service SSH est une cible fréquente des attaques par force brute. Voici quelques mesures de sécurité possibles.
Modification du port SSH
Éditez le fichier de configuration SSH :
nano /etc/ssh/sshd_config
Modifiez la ligne suivante :
Port 2222 # Remplacez 2222 par un autre port personnalisé
Redémarrez SSH :
systemctl restart sshd
Si besoin, ouvrez le nouveau port dans UFW :
ufw allow 2222/tcp
Désactivation de la connexion root
Dans /etc/ssh/sshd_config, modifiez :
PermitRootLogin no
Redémarrez SSH après modification.
3. Protection contre les attaques par force brute avec Fail2Ban
Fail2Ban bloque les IP après plusieurs tentatives de connexion échouées.
Installation et configuration
apt install fail2ban -y
Copiez la configuration de base :
cp /etc/fail2ban/jail.conf /etc/fail2ban/jail.local nano /etc/fail2ban/jail.local
Dans [sshd] et [ssh], activez la protection :
[ssh]
enabled = true
port = ssh
filter = sshd
logpath = /var/log/auth.log
backend = systemd
maxretry = 6 #nombre d'essai infructueux avant d'être banni
[sshd]
enabled = true
logpath = %(sshd_log)s
backend = %(sshd_backend)s
action = systemd
Redémarrez Fail2Ban :
systemctl restart fail2ban
4. Sécurisation de Nginx
Activation du HTTPS et des en-têtes de sécurité
pour activer ssl sur mon site j'ai utilisé lets encrypt avec certbot
sudo apt install certbot python3-certbot-apache
sudo certbot
#choisir le bon nom de domaine
5. Protection avec Cloudflare
Cloudflare ajoute une couche de sécurité supplémentaire :
- Protection DDoS
- Firewall applicatif (WAF)
- Mode "Under Attack" en cas de menace
- Gestion des certificats SSL
J’ai activé ces options dans mon tableau de bord Cloudflare.
6. Sauvegarde automatique de la base de données Odoo
L’extension Automatic Database Backup de Cybrosys Solutions permet d’automatiser les sauvegardes d’Odoo.
Installation et configuration
- Aller sur odoo apps et rechercher "Automatic Database Backup"
- Installer l’extension en la rajoutant dans le dossier addons
- Configurer l’intervalle de sauvegarde et l’emplacement de stockage
idéalement il faut plusieurs sauvegardes à intervalles et destinations différents pour respecter la règle du "3-2-1-1-0"
Conclusion
Avec ces mesures, mon serveur est bien sécurisé contre les principales menaces. Néanmoins, la sécurité est un processus continu : il faut surveiller les logs, mettre à jour les paquets et revoir les configurations régulièrement.
Dans le prochain article, je parlerai de l’optimisation SEO du site.