« Le système d'exploitation GNU-Linux/Protection avec iptables » : différence entre les versions
m Ajout de la catégorie Le système d'exploitation GNU-Linux (livre) (avec HotCats) |
|||
Ligne 105 : | Ligne 105 : | ||
== Les actions sur les paquets== |
== Les actions sur les paquets== |
||
== Exemple== |
== Exemple== |
||
[[Catégorie:Le système d'exploitation GNU-Linux (livre)]] |
Version du 26 mai 2009 à 14:37
Iptables est un outil permettant de paramétrer Netfilter le filtre de paquet intégré à Linux.
Principe des tables
Netfilter utilise une liste de règles inscrites dans 3 tables : INPUT, OUTPUT, FORWARD.
Le paquet arrivant est voué à:
- soit être filtré suivant les règle de la table INPUT pour être utilisé par un processus de la machine
- soit être transféré à une autre machine en respectant les règle de la table FORWARD
- soit quitter la machine dans les condition de la table OUTPUT
Le but est donc de modifier les tables en ajoutant et supprimant des règles dans les différentes tables. pour cela nous utilisons la commande iptables.
Syntaxe globale
#iptables <une action sur une table de netfilter> <la table en question> <condition(s) d'application> -j <action sur le paquet>
#exemple iptables -A INPUT --p icmp -j ACCEPT #on ajoute à la table INPUT la règle ACCEPT pour les paquet icmp (ping) entrant, #bien entendu il faut aussi accepter les paquet sortants. D'où : iptables -A OUTPUT --p icmp -j ACCEPT
Les actions sur les tables
Le principe
Par défaut, iptables est composé de 3 catégories appelées "chaînes" (chain) :
- INPUT : Chaîne où l'on règle le trafic entrant.
- FORWARD : Chaîne où l'on règle le trafic qui sera redirigé.
- OUTPUT : Chaîne où l'on règle le trafic sortant.
A chaque chaîne est attribuée une "politique" (policy), les deux principales sont :
- ACCEPT : Politique d'acceptation. Par défaut, tout ce qui n'est pas dans la chaîne est accepté.
- DROP : Politique de refus. Par défaut, tout ce qui n'est pas dans la chaîne sera rejeté. (utile pour filtrer les connections entrantes)
Un exemple concret. Par défaut, si vous n'avez jamais touché à votre iptables, voici ce que vous devez avoir :
# 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
On constate ici que rien n'est sécurisé : tout entre (Chain INPUT, policy ACCEPT), tout sort (Chain OUTPUT, policy ACCEPT).
Le réglage simple
Tout d'abord, si votre iptables ne ressemble pas à l'exemple ci-dessus, ou tout simplement si vous souhaitez réinitialiser vos réglages, tapez ces commandes :
# iptables -F (Efface toutes les règles définies par l'utilisateur) # iptables -X (Efface toutes les chaînes définies par l'utilisateur)
Les commandes de base :
Les règles sont lues dans un ordre précis. De la première vers la dernière. De cette manière, dans l'hypothèse où la première règle interdit une connection alors que la suivante l'autorise, la connection sera interdite.
- APPEND : Ajouter une règle dans une chaîne. La règle ainsi créée s'ajoute après la dernière règle.
# iptables -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT (Ajoute une règle dans la chaîne INPUT. L'exemple sera détaillé plus loin.)
- INSERT : Insère une règle dans un chaîne. La règle ainsi créée s'ajoute avant la première règle.
# iptables -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT (Insère une règle au début de la chaîne INPUT. L'exemple sera détaillé plus loin.)
- LIST : Liste les règles existant dans toutes les chaînes.
# iptables -L Chain INPUT (policy DROP) target prot opt source destination ACCEPT all -- anywhere anywhere state RELATED,ESTABLISHED ACCEPT tcp -- anywhere anywhere tcp dpt:ssh ACCEPT tcp -- anywhere anywhere tcp dpt:www ACCEPT icmp -- anywhere anywhere ACCEPT tcp -- anywhere anywhere tcp dpt:pop3s Chain FORWARD (policy ACCEPT) target prot opt source destination Chain OUTPUT (policy ACCEPT) target prot opt source destination
- DELETE : Supprime une règle d'une chaîne.
# iptables -D INPUT 2 (Supprime la règle n°2 de la chaîne INPUT.)
- POLICY : Configure la politique d'une chaîne.
# iptables -P INPUT DROP (Passe la politique de la chaîne INPUT en DROP. Toutes les connections seront rejetées par défaut.)
Créer une configuration de base :
A FAIRE