Introduction
Iptables est un utilitaire Linux puissant qui permet aux administrateurs système de configurer le pare-feu intégré du noyau. Iptables utilise un ensemble de règles pour déterminer comment filtrer le trafic réseau. Chaque règle précise quel type de trafic à filtrer et quelle action à prendre sur le trafic correspondant.
Dans ce guide, nous aborderons quelques règles et commandes Iptables de base pour aider à sécuriser votre serveur. Par défaut, Iptables bloque tout le trafic entrant et autorise tout le trafic sortant. Ce n’est pas très sécurisé, nous devrons donc ajouter quelques règles pour rendre notre serveur plus sécurisé.
Syntaxe de base
Avant de commencer, passons en revue la syntaxe de base pour iptables. La syntaxe générale pour iptables est la suivante :
$ iptables -A <chain> -p <protocol> -s <source> -d <destination> -j <action>
Where:
<chain>
est le nom de la chaîne (expliqué ci-dessous).<protocol>
est le protocole du trafic (généralement TCP, UDP ou ICMP).<source>
est l’adresse IP source.<destination>
est l’adresse IP de destination.<action>
est l’action à prendre (généralement ACCEPTER ou DÉPOSER).
chaînes
Les chaînes sont utilisées pour regrouper les règles iptables associées. Il y a trois chaînes intégrées :
INPUT
: pour le trafic entrant.OUTPUT
: pour le trafic sortant.FORWARD
: dans le cas de trafic acheminé d’un réseau à un autre.
Ou vous créez également nos propres chaînes personnalisées.
Actions
Il y a deux actions principales que nous pouvons faire avec iptables : ACCEPT et DROP.
- ACCEPT: permet le trafic à travers.
- DROP: bloque la circulation.
Commandes de base
Lister les règles
Le iptables -L
est utilisé pour lister toutes les règles d’une chaîne.
$ iptables -L
Chain INPUT (policy ACCEPT)
target prot opt source destination
Chain FORWARD (policy ACCEPT)
target prot opt source destination
Chain OUTPUT (policy ACCEPT)
target prot opt source destination
Le -v
option est utilisée pour lister les règles avec la sortie verbeuse.
$ iptables -L -v
Chain INPUT (policy ACCEPT 0 packets, 0 bytes)
pkts bytes target prot opt in out source destination
Chain FORWARD (policy ACCEPT 0 packets, 0 bytes)
pkts bytes target prot opt in out source destination
Chain OUTPUT (policy ACCEPT 0 packets, 0 bytes)
pkts bytes target prot opt in out source destination
Ajouter des règles
Le iptables -A
est utilisé pour ajouter une règle en fin de chaîne.
$ iptables -A INPUT -s 192.168.1.0/24 -j ACCEPT
Le -I
option est utilisée pour ajouter une règle à la position spécifiée dans une chaîne.
$ iptables -I INPUT 2 -s 192.168.1.0/24 -j ACCEPT
Le -p
option est utilisée pour spécifier le protocole et l’option --dport
est utilisée pour spécifier le port de destination.
$ iptables -A INPUT -p tcp --dport 22 -j ACCEPT
Suppression de règles
Le iptables -D
est utilisé pour supprimer une règle à la position spécifiée dans une chaîne.
$ iptables -D INPUT 2
-F
: option is used for deleting all the rules in a chain.
$ iptables -F INPUT
-X
: L’option est utilisée pour supprimer une chaîne définie par l’utilisateur.
$ iptables -X mychain
-P
Cette option est utilisée pour spécifier la stratégie par défaut pour une chaîne.
$ iptables -P INPUT DROP
Sauvegarder des règles
Le iptables-save
est utilisé pour enregistrer les règles actuelles d’iptables.
$ iptables-save > /etc/iptables.rules
Le iptables-restore
est utilisé pour restaurer les règles iptables sauvegardées.
$ iptables-restore < /etc/iptables.rules
Conclusion
Dans ce guide, nous avons appris comment lister, supprimer, enregistrer et restaurer les règles iptables.