REPUBLIQUE DU CAMEROON
REPUBLIC OF CAMEROON
PAIX-TRAVAIL-PARTIE
PEACE-WORK-FATHERLAND
INSTITUT UNIVERSITAIRE
UNIVERSITE DE DSCHANG
DU GOLFE DE GUINEE
UNIVERSITY OF DSCHANG
UNIVERSITY INSTITUTE OF
GUINEA GULF
IMPLEMENTATION D’UN PARE-FEU IPTABLE
MEMBRES DU GROUPE I
➢ APOUKEU Elvira Cynthia
➢ BOUTCHOUANG Cedric
➢ BELL MAYACK
➢ DJIMEFO Adrien
Sous la supervision académique de :
Academic year: 2024-2025
M. KONLACK
1
SOMMAIRE
SOMMAIRE......................................................................................................... 2
INTRODUCTION : Définition d'un pare-feu et présentation générale d'iptables . 3
I- ARCHITECTURE ET FONCTIONNEMENT D'IPTABLES ..................................... 4
II- LES REGLES IPTABLES ................................................................................... 5
III- GESTION ET MAINTENANCE DU PARE-FEU IPTABLES ................................ 6
IV- SECURISATION AVANCEE AVEC IPTABLES.................................................. 7
V- COMPARAISON AVEC D'AUTRES OUTILS DE PARE-FEU ................................ 7
VI- IMPLEMENTATION .................................................................................... 8
CONCLUSION...................................................................................................... 8
2
INTRODUCTION : Définition d'un pare-feu et présentation générale
d'iptables
Un pare-feu est un système de sécurité réseau qui surveille le trafic entrant et sortant d'un
réseau ou d'un appareil, et qui applique un ensemble de règles pour déterminer quels paquets
sont autorisés à passer et lesquels sont bloqués. Il agit comme une barrière entre un réseau
interne de confiance et des réseaux externes non sécurisés, comme Internet. Les pare-feux
peuvent être matériels, logiciels ou une combinaison des deux, et ils jouent un rôle crucial dans
la protection des systèmes contre les menaces, telles que les attaques par déni de service, les
accès non autorisés et les malwares.
Iptables est un outil puissant et flexible utilisé pour configurer les règles de filtrage de paquets
sous les systèmes d'exploitation basés sur Linux. Il permet aux administrateurs système de
définir des règles spécifiques pour contrôler le trafic réseau, en permettant ou en bloquant des
paquets en fonction de divers critères (adresses IP, ports, protocoles, etc.). Contrairement à
d'autres outils de pare-feu, iptables fonctionne à un niveau bas, en manipulant directement les
paquets dans le noyau Linux.
Importance des pare-feux dans la sécurité des systèmes réseau
Les pare-feux sont essentiels pour maintenir la sécurité des systèmes réseau. Ils permettent de
:
• Protéger les ressources critiques : En filtrant le trafic, ils empêchent les accès non
autorisés aux serveurs et aux données sensibles.
• Réduire les risques d'attaques : Ils aident à prévenir des attaques telles que le
phishing, les ransomwares, et les scans de ports, en bloquant le trafic suspect.
• Appliquer des politiques de sécurité : Les pare-feux permettent aux organisations de
définir et d'appliquer des politiques de sécurité pour contrôler le comportement des
utilisateurs et des applications.
3
I- ARCHITECTURE ET FONCTIONNEMENT
D'IPTABLES
L'architecture d'iptables repose sur trois concepts clés principaux :
• Tables : Les tables définissent le type de traitement à appliquer aux paquets. Chaque
table contient des chaînes de règles.
• Chaînes : Les chaînes sont des listes de règles que iptables utilise pour traiter les
paquets. Chaque chaîne peut contenir plusieurs règles qui définissent comment traiter
le trafic correspondant.
• Règles : Les règles sont des instructions spécifiques qui déterminent le traitement des
paquets. Chaque règle peut spécifier un critère (comme une adresse IP ou un port) et
une action (comme accepter ou bloquer le paquet).
Explication des trois tables principales :
• Filter : C'est la table par défaut utilisée pour filtrer le trafic. Elle gère la plupart des
règles de filtrage et est généralement utilisée pour définir des règles d'acceptation ou de
rejet pour le trafic entrant et sortant.
• Nat : La table NAT (Network Address Translation) est utilisée pour la traduction
d'adresses réseau. Elle permet de modifier les adresses IP des paquets lors de leur transit.
Par exemple, elle est utilisée pour la redirection de ports et le partage de connexions
Internet.
• Mangle : La table Mangle est utilisée pour modifier les paquets, tels que changer des
champs d'en-tête ou appliquer des marques à des paquets spécifiques. Elle est souvent
utilisée pour la QoS (Quality of Service) et d'autres modifications avancées.
Les chaînes prédéfinies : INPUT, FORWARD, et OUTPUT :
• INPUT : Cette chaîne est utilisée pour traiter le trafic entrant vers le système. Les règles
définies dans cette chaîne déterminent si un paquet entrant est accepté ou rejeté.
• FORWARD : La chaîne FORWARD gère le trafic qui passe à travers le système sans
être destiné à celui-ci. Elle est utilisée dans des configurations de routage.
• OUTPUT : Cette chaîne est utilisée pour traiter le trafic sortant émis par le système.
Les règles définies ici déterminent comment le trafic sortant est géré.
4
II- LES REGLES IPTABLES
➢ Syntaxe de base des règles iptables : la syntaxe de base pour ajouter une règle dans
iptables est la suivante : sudo iptables -A [CHAINE] [CRITÈRES] -j [ACTION]
▪ -A indique que vous ajoutez une règle.
▪ [CHAINE] spécifie la chaîne dans laquelle vous ajoutez la règle (INPUT, FORWARD,
OUTPUT).
▪ [CRITÈRES] définit les conditions qui doivent être remplies pour que la règle soit
appliquée (par exemple, -p tcp --dport 22 pour le port SSH).
▪ -j indique l'action à prendre lorsque les critères sont remplis (ACCEPT, DROP, etc.).
➢ Explication des différentes actions possibles :
• ACCEPT : Accepte le paquet et permet son passage.
• DROP : Rejette le paquet sans envoyer de message d'erreur à l'expéditeur.
• REJECT : Rejette le paquet et envoie un message d'erreur à l'expéditeur, indiquant que
le paquet a été rejeté.
• LOG : Enregistre des informations sur le paquet dans les journaux du système pour un
examen ultérieur, ce qui peut être utile pour la détection d'intrusions.
➢ Priorité des règles et impact de l'ordre des règles dans une chaîne :
L'ordre des règles dans une chaîne est crucial, car iptables évalue les paquets en fonction de
la première règle qui correspond. Une règle plus spécifique doit être placée avant une règle plus
générale. Par exemple, si une règle ACCEPT est placée avant une règle DROP pour le même
critère, le paquet sera accepté, et la règle DROP ne sera jamais atteinte.
➢ Gestion des connexions entrantes, sortantes et transitaires :
Iptables permet de gérer les connexions selon leur direction :
• Connexions entrantes : Les règles de la chaîne INPUT contrôlent le trafic entrant vers
le système.
• Connexions sortantes : Les règles de la chaîne OUTPUT gèrent le trafic sortant émis
par le système.
5
• Connexions transitaires : La chaîne FORWARD est utilisée pour les paquets qui
transitent à travers le système sans être destinés à celui-ci.
III- GESTION ET MAINTENANCE DU PARE-FEU
IPTABLES
Commandes pour lister, ajouter, supprimer et modifier des règles :
• Lister les règles : Pour afficher les règles actuelles d'iptables, vous pouvez utiliser la
commande suivante : sudo iptables -L -v -n
Les options -v fournissent des détails supplémentaires, et -n empêche la résolution DNS, ce qui
rend l'affichage plus rapide.
• Ajouter des règles : Pour ajouter une règle, utilisez la commande suivante. Par
exemple, pour autoriser le trafic HTTP : sudo iptables -A INPUT -p tcp --dport 80 -j
ACCEPT ; ici -A ajoute la règle à la chaîne INPUT.
• Supprimer des règles : Pour supprimer une règle, vous devez d'abord lister les règles
avec le numéro de ligne : sudo iptables -L --line-numbers
• Modifier des règles : Pour modifier une règle, vous pouvez la supprimer puis en ajouter
une nouvelle. Par exemple, si vous souhaitez changer la règle pour autoriser le trafic
HTTPS au lieu de HTTP, vous feriez :
sudo iptables -D INPUT -p tcp --dport 80 -j ACCEPT
sudo iptables -A INPUT -p tcp --dport 443 -j ACCEPT
Sauvegarde et restauration des configurations d'iptables :
• Sauvegarde des règles : Vous pouvez sauvegarder vos règles actuelles dans un fichier
avec la commande suivante : sudo iptables-save > /etc/iptables/rules.v4
• Restauration des règles : Pour restaurer les règles à partir du fichier sauvegardé : sudo
iptables-restore < /etc/iptables/rules.v4
Utilisation de iptables-persistent pour garder les règles actives après redémarrage :
iptables-persistent permet de sauvegarder les règles iptables et de les restaurer au
démarrage. Pour l'installer : sudo apt install iptables-persistent. Au moment de l'installation,
vous serez invité à sauvegarder vos règles actuelles. Elles seront automatiquement rechargées
à chaque redémarrage.
6
IV- SECURISATION AVANCEE AVEC IPTABLES
❖ Limitation du nombre de connexions par IP pour éviter les attaques DDoS :
Pour limiter le nombre de connexions par adresse IP, utilisez la commande suivante. Par
exemple, pour limiter à 10 connexions par minute :
sudo iptables -A INPUT -p tcp --dport 22 -i eth0 -m conntrack --ctstate NEW -m limit --
limit 10/minute --limit-burst 20 -j ACCEPT
❖ Détection et blocage des tentatives de scan de ports :
Pour détecter et bloquer les scans de ports, vous pouvez ajouter des règles qui bloquent les
adresses IP ayant trop de tentatives de connexion échouées. Par exemple :
sudo iptables -A INPUT -p tcp --dport 22 -m conntrack --ctstate NEW -m recent --set
sudo iptables -A INPUT -p tcp --dport 22 -m conntrack --ctstate NEW -m recent --update
--seconds 60 --hitcount 4 -j DROP
Cela bloque une adresse IP après 4 tentatives échouées en 60 secondes.
❖ Filtrage en fonction des états de connexion :
Iptables permet de filtrer en fonction des états des connexions. Voici un exemple pour accepter
uniquement les connexions établies et les nouvelles :
sudo iptables -A INPUT -m conntrack --ctstate ESTABLISHED,RELATED -j ACCEPT
sudo iptables -A INPUT -p tcp --dport 22 -m conntrack --ctstate NEW -j ACCEPT
V- COMPARAISON AVEC D'AUTRES OUTILS DE PARE-
FEU
Différences entre iptables et des solutions comme firewalld ou ufw :
• Iptables : C'est un outil de filtrage de paquets de bas niveau, qui nécessite une
connaissance approfondie des règles et de la syntaxe.
• ufw (Uncomplicated Firewall) : Une interface simplifiée pour iptables, idéale pour les
utilisateurs qui veulent une configuration facile et rapide.
• firewalld : Utilise une approche dynamique pour gérer les règles de pare-feu, avec des
zones qui facilitent la gestion des règles en fonction de l'environnement réseau.
7
Avantages et inconvénients de l’utilisation d'iptables par rapport à d'autres solutions
plus récentes :
• Avantages :
o Flexibilité et puissance : Vous avez un contrôle total sur les règles.
o Utilisé par de nombreux systèmes et offre des performances élevées.
• Inconvénients :
o Complexité : La configuration d’iptables peut être déroutante pour les
débutants.
o Manque de convivialité par rapport à des outils comme ufw ou firewalld.
VI- IMPLEMENTATION
CONCLUSION
La gestion du pare-feu avec iptables est cruciale pour assurer la sécurité d'un réseau. En
utilisant des commandes pour lister, ajouter, supprimer et modifier des règles, ainsi que des
méthodes pour sauvegarder et restaurer des configurations, les administrateurs peuvent
maintenir un contrôle précis sur le trafic réseau.
Avec l'augmentation des menaces cybernétiques, la gestion fine des pare-feux reste un élément
essentiel de la sécurité réseau. Une configuration adéquate d’iptables permet de protéger les
systèmes contre des attaques variées, et de maintenir un environnement sécurisé tout en
permettant le trafic légitime. Les administrateurs doivent continuellement mettre à jour leurs
compétences et leurs connaissances sur les meilleures pratiques de sécurisation des réseaux.