Vue d'ensemble
Configuration et durcissement des firewalls Linux (iptables/firewalld) pour sécuriser les infrastructures web et serveurs WordPress/WooCommerce en production.
Prérequis Techniques
- Accès root au serveur cible
- Connaissance des ports applicatifs utilisés
- Sauvegarde de la configuration existante
- Tests de connectivité préparés (SSH, web, etc.)
- Liste des IPs administrateurs autorisées
Procédure Standard
1. Audit de l'existant
# Vérification règles actuelles
iptables -L -n -v --line-numbers
firewall-cmd --list-all-zones
# Ports en écoute
ss -tuln | grep LISTEN
# Sauvegarde configuration actuelle
iptables-save > /root/iptables-backup-$(date +%Y%m%d).rules
2. Configuration de base sécurisée
# Politique restrictive par défaut (ATTENTION: risque coupure SSH)
iptables -P INPUT DROP
iptables -P FORWARD DROP
iptables -P OUTPUT ACCEPT
# Interface loopback (obligatoire)
iptables -A INPUT -i lo -j ACCEPT
iptables -A OUTPUT -o lo -j ACCEPT
# Connexions établies et liées (essentiel)
iptables -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
3. Règles applicatives WordPress
# Services web (HTTP/HTTPS)
iptables -A INPUT -p tcp --dport 80 -j ACCEPT
iptables -A INPUT -p tcp --dport 443 -j ACCEPT
# SSH sécurisé (port non-standard recommandé en production)
iptables -A INPUT -p tcp --dport 2222 -s IP_ADMIN_1 -j ACCEPT
iptables -A INPUT -p tcp --dport 2222 -s IP_ADMIN_2 -j ACCEPT
# MySQL/MariaDB (uniquement localhost pour WordPress)
iptables -A INPUT -p tcp --dport 3306 -s 127.0.0.1 -j ACCEPT
# DNS (pour résolutions externes)
iptables -A OUTPUT -p udp --dport 53 -j ACCEPT
iptables -A OUTPUT -p tcp --dport 53 -j ACCEPT
4. Protection DDoS et brute-force
# Limitation connexions SSH simultanées
iptables -A INPUT -p tcp --dport 2222 -m connlimit --connlimit-above 3 -j REJECT
# Protection contre brute-force SSH
iptables -A INPUT -p tcp --dport 2222 -m recent --set --name SSH
iptables -A INPUT -p tcp --dport 2222 -m recent --update --seconds 60 --hitcount 4 --name SSH -j DROP
# Protection SYN flood
iptables -A INPUT -p tcp --syn -m limit --limit 1/second -j ACCEPT
iptables -A INPUT -p tcp --syn -j DROP
# Protection contre ping flood
iptables -A INPUT -p icmp --icmp-type echo-request -m limit --limit 1/second -j ACCEPT
5. Règles pour monitoring et maintenance
# Zabbix agent (pour monitoring OWL)
iptables -A INPUT -p tcp --dport 10050 -s IP_MONITORING -j ACCEPT
# NTP (synchronisation horaire)
iptables -A OUTPUT -p udp --dport 123 -j ACCEPT
# SMTP sortant (pour notifications WordPress)
iptables -A OUTPUT -p tcp --dport 25 -j ACCEPT
iptables -A OUTPUT -p tcp --dport 587 -j ACCEPT
6. Sauvegarde et persistance
# Sauvegarde des nouvelles règles
iptables-save > /etc/iptables/rules.v4
# Activation au démarrage (Debian/Ubuntu)
echo 'iptables-restore < /etc/iptables/rules.v4' >> /etc/rc.local
# Pour CentOS/AlmaLinux avec firewalld
firewall-cmd --runtime-to-permanent
systemctl enable firewalld
Points de Contrôle Obligatoires
- [ ] Politique par défaut restrictive activée
- [ ] Services web (80/443) accessibles depuis Internet
- [ ] SSH accessible uniquement depuis IPs autorisées
- [ ] MySQL non accessible depuis l'extérieur
- [ ] Protection anti-bruteforce opérationnelle
- [ ] Configuration sauvegardée et persistante
- [ ] Tests de connectivité validés avant déconnexion
Surveillance et Maintenance
- Logs analysés quotidiennement via Zabbix et scripts personnalisés
- Alertes automatiques sur tentatives d'intrusion détectées
- Rapport mensuel des incidents bloqués et recommandations
- Mise à jour des règles sous 4h ouvrées selon évolutions
- Tests de pénétration trimestriels pour validation efficacité
Cas d'Urgence
# En cas de blocage SSH, commande de secours (via console)
iptables -P INPUT ACCEPT
iptables -F INPUT
# Restauration configuration précédente
iptables-restore < /root/iptables-backup-AAAAMMJJ.rules
SLA Garantis OWL SYSTEMS
- Intervention d'urgence : 2h maximum pour déblocage critique
- Mise à jour règles : 4h ouvrées selon demandes
- Support 24/7 : Hotline dédiée pour incidents firewall
- Audit sécurité : Contrôle semestriel de la configuration
Configuration validée sur Debian 12, Ubuntu 22.04 LTS, AlmaLinux 9 Dernière mise à jour : September 2025