
Gérer un site web sur un serveur GNU/Linux, c’est déjà une bonne base en matière de sécurité. Mais cela ne vous protège pas automatiquement contre les infections, les malwares, les injections ou les fichiers vérolés. Dans cet article, on va passer en revue les mesures concrètes que vous pouvez mettre en place pour protéger efficacement votre site web contre les virus.
1. Scanner régulièrement les fichiers avec ClamAV
Même si GNU/Linux est moins ciblé que Windows, les fichiers uploadés sur votre site (formulaires, back-offices, etc.) peuvent contenir des virus.
Installer ClamAV :
sudo apt update
sudo apt install clamav clamav-daemon -y
Mettre à jour la base de signatures :
sudo freshclam
Lancer un scan manuel :
clamscan -r /var/www/html
Ajoutez cette commande dans un cron
journalier ou hebdomadaire pour scanner automatiquement.
2. Surveiller les fichiers suspects avec inotify
Utilisez inotifywait
pour être alerté en temps réel dès qu’un fichier est modifié ou ajouté.
Exemple :
inotifywait -m -r /var/www/html -e create -e modify |
while read path action file; do
echo "Fichier modifié : $file ($action dans $path)" | mail -s "Alerte fichier web" votremail@example.com
done
3. Filtrer les uploads
N’autorisez pas l’upload de fichiers exécutables. Acceptez uniquement les formats nécessaires (images, PDF, etc.) côté serveur, même si un filtre existe déjà côté front-end.
Exemple avec Nginx :
location /upload {
client_max_body_size 10M;
if ($request_method = POST) {
set $block 0;
if ($http_content_type !~ "multipart/form-data") {
set $block 1;
}
if ($block = 1) {
return 403;
}
}
}
4. Restreindre les permissions des fichiers
Un site mal configuré, où Apache ou Nginx a le droit d’écrire partout, devient une autoroute pour les malwares.
Règle de base :
- Propriétaire :
root
ou un utilisateur système - Fichiers PHP : droits
644
- Répertoires : droits
755
- Aucun fichier ne doit être
777
(lecture/écriture/exécution pour tous)
Exemple :
chown -R www-data:www-data /var/www/html
find /var/www/html -type f -exec chmod 644 {} \;
find /var/www/html -type d -exec chmod 755 {} \;
5. Utiliser un WAF (Web Application Firewall)
Un WAF peut bloquer les tentatives d’injection, les scripts malicieux et certains types d’exploits connus.
Option simple : ModSecurity
ModSecurity fonctionne avec Apache et Nginx.
Installer ModSecurity (Apache) :
sudo apt install libapache2-mod-security2
sudo a2enmod security2
sudo systemctl restart apache2
Activer les règles de base OWASP :
sudo apt install modsecurity-crs
sudo ln -s /usr/share/modsecurity-crs/base_rules/* /usr/share/modsecurity-crs/activated_rules/
6. Isoler votre site avec des containers ou des chroot
En cas d’infection, l’impact est plus limité si votre site tourne dans un environnement isolé (chroot, container LXC/Docker).
- Si vous avez plusieurs sites : un container par site
- Sinon, un chroot basique suffit pour empêcher l’accès au reste du système.
7. Surveiller les processus PHP
Certains malwares injectent du code PHP pour miner ou envoyer du spam. Surveillez les processus PHP inhabituels.
Exemple avec ps
:
ps aux | grep php
Utilisez htop
, atop
ou ps_mem
pour détecter les processus qui consomment trop de ressources.
8. Faire des sauvegardes régulières hors du serveur
Sauvegardez automatiquement vos fichiers et votre base de données vers un serveur distant ou un stockage cloud sécurisé.
Exemple avec rsync
:
rsync -az /var/www/html/ user@backup-server:/backups/site/
Automatisez tout ça avec cron
et vérifiez régulièrement vos sauvegardes.
9. Activer les mises à jour de sécurité
Utilisez unattended-upgrades
pour garder vos paquets à jour, notamment ceux liés au web (Apache/Nginx, PHP, OpenSSL, etc.)
sudo apt install unattended-upgrades
sudo dpkg-reconfigure --priority=low unattended-upgrades
10. Utiliser un antivirus côté navigateur ? Pas suffisant.
Certains pensent que les antivirus des visiteurs suffisent. Erreur. Une fois que votre serveur héberge du code malveillant, c’est trop tard : vous risquez le blacklisting, les pertes de données, ou même des plaintes RGPD.
En résumé
🔐 Voici les points-clés à retenir :
- Installez ClamAV et faites des scans réguliers.
- Surveillez les uploads et interdisez les formats dangereux.
- Mettez en place ModSecurity.
- Gardez des permissions strictes.
- Isolez chaque site et surveillez les processus.
- Faites des sauvegardes automatiques hors du serveur.