Ci-dessous, les différences entre deux révisions de la page.
| Les deux révisions précédentesRévision précédenteProchaine révision | Révision précédente | ||
| netadmin:iptables:start [2016/11/02 16:39] – yoann | netadmin:iptables:start [2022/04/13 16:30] (Version actuelle) – Ajout référence yoann | ||
|---|---|---|---|
| Ligne 3: | Ligne 3: | ||
| ===== Introduction à iptables ===== | ===== Introduction à iptables ===== | ||
| - | iptables | + | iptables |
| - | 3 chaînes de traitement: | + | Netfilter est conçu pour agir sur les couches transport et réseau, c'est un élément de la sécurité mais il n'est pas capable de faire des vérifications sur les données transitant globalement. L' |
| - | * INPUT: | + | |
| + | |||
| + | chaîne: Une chaîne se compose d'un ensemble ordonné de règles appliquées aux paquets qui la traversent. Netfilter en fonction du contexte choisit quelles chaînes utiliser. | ||
| + | |||
| + | table: Chaque table à un rôle spécifique et iptables possède trois tables: filter, mangle et nat. | ||
| + | |||
| + | ruleset: Ensemble complet de règles chargées par une implémentation. Cela comprend les règles des trois tables filter, mangle et nat et les filtres qui les suivent. La plupart du temps le ruleset est définit dans un fichier de configuration. | ||
| + | |||
| + | Les règles de filtrages du pare-feu sont définies dans les chaînes de la table **filter**. Lorsqu' | ||
| + | |||
| + | |||
| + | la table filter contient | ||
| + | * INPUT: | ||
| * OUTPUT: règles appliquées aux paquets sortants | * OUTPUT: règles appliquées aux paquets sortants | ||
| - | * FORWARD: paquets non destinés | + | * FORWARD: paquets non destinés |
| + | |||
| + | Les chaînes génériques peuvent appeler des chaînes définies par l' | ||
| + | |||
| + | ===== Traçage de connexion ===== | ||
| + | |||
| + | Les pare-feux qui implémentent le traçage de connexion sont dits pare-feux à état. Un pare-feu à état est généralement bien plus sûr car il impose une plus grande rigueur dans l' | ||
| + | |||
| + | L’intégralité du traçage de connexion est effectué par une structure particulière à l' | ||
| + | |||
| + | Le nombre maximum de connexions suivies par la table de traçage est fonction de la mémoire du système est peut être modifiée via la variable système / | ||
| + | |||
| + | iptables via la correspondance **state** sera capable de sélectionner les paquets à partir de leur état actuel **NEW**, | ||
| + | |||
| + | L'etat **UNTRACKED** est utilisé pour les paquets spécifiquement marqués dans la table raw pour ne pas être tracés. La table raw a été conçue spécialement pour cette raison. Dans cette table une marque NOTRACK peut être placée sur les paquets dont on souhaite désactiver le suivi par Netfilter. | ||
| + | |||
| + | Le fonctionnement du traçage de connexions nécessite des ressources. Il peut être intéressant dans certains cas de ne pas tracer les paquets: | ||
| + | * Pour un routeur fortement sollicité, ne pas tracer les paquets relayés ne lui étant pas directement adressés. | ||
| + | * Pour un serveur web interne générant beaucoup de trafic, ne pas tracer le port 80 | ||
| + | |||
| + | Certains protocoles sont plus complexes dans le fonctionnement et nécessite pour que le traçage de connexions puisse fonctionner l' | ||
| ===== Politique ===== | ===== Politique ===== | ||
| + | |||
| + | Les politique (policy) est le comportement par défaut adopté par une chaîne générique lorsque aucune correspondance n'a été trouvée pour le paquet en cours d' | ||
| + | |||
| Afficher les politiques définies: | Afficher les politiques définies: | ||
| Ligne 27: | Ligne 62: | ||
| </ | </ | ||
| - | Ici la politique par défaut pour les paquets | + | Ici la politique par défaut pour les paquets |
| ===== Ajouter une règle ===== | ===== Ajouter une règle ===== | ||
| Ligne 49: | Ligne 84: | ||
| Pour supprimer une règle utiliser l' | Pour supprimer une règle utiliser l' | ||
| - | ===== Enregistrer | + | ===== Les états ===== |
| + | |||
| + | La plupart des services ont besoin de communications bidirectionnelles. Il faut donc prévoir des règles traitant | ||
| + | |||
| + | États: | ||
| + | |||
| + | * **NEW**: nouvelle connexion | ||
| + | * **RELATED**: | ||
| + | * **ESTABLISHED**: | ||
| + | * **INVALID**: | ||
| + | |||
| + | La règle ci-dessous permet d' | ||
| + | |||
| + | <code bash> | ||
| + | iptables -A OUTPUT -m state --state RELATED, | ||
| + | </ | ||
| + | |||
| + | Le reste de la configuration s' | ||
| + | |||
| + | <code bash> | ||
| + | iptables -A INPUT -i lan -p tcp -s 192.168.0.0/ | ||
| + | </ | ||
| + | |||
| + | ===== Broadcast/ | ||
| + | |||
| + | Pour ignorer les paquets broadcastés ou les multicast: | ||
| + | |||
| + | <code > | ||
| + | iptables -A INPUT -m pkttype –pkt-type broadcast -j DROP | ||
| + | iptables -A INPUT -m pkttype –pkt-type multicast -j DROP | ||
| + | </ | ||
| + | |||
| + | ===== Enregistrer la configuration | ||
| Les modifications apportées ne sont pas permanentes. Pour les enregistrer et les retrouver au prochain redémarrage: | Les modifications apportées ne sont pas permanentes. Pour les enregistrer et les retrouver au prochain redémarrage: | ||
| <code bash> | <code bash> | ||
| - | $ sudo iptables-save | + | $ sudo iptables-save |
| </ | </ | ||
| + | Modifier le fichier de configuration des interfaces pour qu'il charge le fichier contenant les règles: | ||
| + | <file / | ||
| + | # Paramétrage de l' | ||
| + | auto wan | ||
| + | iface wan inet static | ||
| + | pre-up iptables-restore < / | ||
| + | address 192.168.1.1 | ||
| + | ... | ||
| + | </ | ||
| + | |||
| + | ===== Lister les tables ===== | ||
| + | |||
| + | Pour lister toutes les tables existantes sur le système: | ||
| + | <code bash> | ||
| + | $ sudo cat / | ||
| + | </ | ||
| + | |||
| + | ===== Références ===== | ||
| + | |||
| + | * http:// | ||
| + | * https:// | ||
| + | * https:// | ||
| + | * https:// | ||