Vous n'êtes pas identifié(e).
L'icône rouge permet de télécharger chaque page du wiki visitée au format PDF et la grise au format ODT →
Ci-dessous, les différences entre deux révisions de la page.
Les deux révisions précédentes Révision précédente Prochaine révision | Révision précédente Prochaine révision Les deux révisions suivantes | ||
doc:reseau:iptables-pare-feu-pour-un-client [16/10/2014 06:02] Hypathie [Introduction] |
doc:reseau:iptables-pare-feu-pour-un-client [06/11/2014 09:53] Hypathie [Pare-feu pour une station (client)] |
||
---|---|---|---|
Ligne 196: | Ligne 196: | ||
* Suivons le principe énoncé plus haut : on commence par tout interdire. | * Suivons le principe énoncé plus haut : on commence par tout interdire. | ||
- | Pour les entrées ; ce qui passe ; ce qui sort : | ||
<code root> | <code root> | ||
iptables -P INPUT DROP | iptables -P INPUT DROP | ||
Ligne 302: | Ligne 301: | ||
RELATED,ESTABLISHED -j ACCEPT | RELATED,ESTABLISHED -j ACCEPT | ||
</code> | </code> | ||
+ | |||
+ | ===Pour installer une imprimante partagée === | ||
+ | * Si l'on veut brancher son imprimante sur la machine d'IP 192.168.0.22 faisant alors office de serveur d'impression pour le réseau local 192.168.0.0/24 : | ||
+ | |||
+ | <code root>iptables -A INPUT -i eth0 -s 192.168.0.0/24 -d 192.168.0.22 -p tcp\ | ||
+ | --dport 631 -m state --state RELATED,ESTABLISHED -j ACCEPT | ||
+ | |||
+ | iptables -A OUTPUT -o eth0 -s 192.168.0.22 -d 192.168.0.0/24 -p tcp\ | ||
+ | --sport 631 -m state ! --state INVALID -j ACCEPT</code> | ||
+ | |||
+ | <note>Remarque sur la place du point d'exclamation, qui ne se place pas devant ''INVALID'' comme on le voit souvent !</note> | ||
+ | |||
+ | * Si l'on veut que cette imprimante soit partagée aussi par un autre réseau, par exemple 192.168.1.0/24 on ajoutera : | ||
+ | |||
+ | <code root>iptables -A INPUT -i eth0 -s 192.168.0.0/24 -d 192.168.1.0/24 -p tcp\ | ||
+ | --dport 631 -m state --state RELATED,ESTABLISHED -j ACCEPT</code> | ||
+ | |||
+ | |||
+ | <code root>iptables -A OUTPUT -o eth0 -s 192.168.0.22 -d 192.168.1.1 -p tcp\ | ||
+ | --sport 631 -m state ! --state INVALID -j ACCEPT</code> | ||
+ | |||
+ | Dans ce cas au niveau de la passerelle, il faudra relayer le trafic pour le port 631, c'est-à-dire accepter sur eth0 (réseau 192.168.0.0/24) en entrée et en sortie tcp sur le port 631, de même pour eth1 (réseau 168.168.1.0/24).\\ | ||
====Vérifier et faire des tests==== | ====Vérifier et faire des tests==== | ||
Ligne 654: | Ligne 675: | ||
**Prochain n° sur iptables : "[[atelier:chantier:iptables-un-pare-feu-pour-une-passerelle?&|un pare-feu pour une passerelle Debian]]".** | **Prochain n° sur iptables : "[[atelier:chantier:iptables-un-pare-feu-pour-une-passerelle?&|un pare-feu pour une passerelle Debian]]".** | ||
- | =====Récapitulatif des commandes et options ===== | + | =====Récapitulatif, commandes, options, syntaxe ===== |
+ | ====Les commandes==== | ||
^ commandes ^ descriptions ^ | ^ commandes ^ descriptions ^ | ||
Ligne 670: | Ligne 692: | ||
| -Z <nowiki>[chain]</nowiki> | remise à zéro des compteurs dans la chaîne chain si elle est indiquée | | | -Z <nowiki>[chain]</nowiki> | remise à zéro des compteurs dans la chaîne chain si elle est indiquée | | ||
+ | ====Les options==== | ||
^options^descriptions^ | ^options^descriptions^ | ||
|-p [!] protocle|où protocole est : TCP, UDP, ICMP, ALL| | |-p [!] protocle|où protocole est : TCP, UDP, ICMP, ALL| | ||
Ligne 687: | Ligne 709: | ||
[[http://olivieraj.free.fr/fr/linux/information/firewall/fw-03-05.html]] | [[http://olivieraj.free.fr/fr/linux/information/firewall/fw-03-05.html]] | ||
+ | ====La syntaxe générale ==== | ||
+ | ===Commande iptables basique=== | ||
+ | * Ouvrir une connexion vers sa machine | ||
+ | |||
+ | iptables -A INPUT -i <interface_d'entrée> -p <nom_du_protocole> --dport <nom_du_port_de_destination> -j ACCEPT | ||
+ | |||
+ | > Où <nom_du_protocole> est à remplacer par TCP, UDP, all ; | ||
+ | > une règle pour chaque protocole | ||
+ | > et <nom_du_port> est le **nom du service**, tels FTP, DNS ... **ou le numéro** qui leur correspond tels 21, 53... | ||
+ | |||
+ | ===Règles plus précise === | ||
+ | |||
+ | * Sur l'entrée : | ||
+ | |||
+ | iptables -A INPUT -i <interface_d'entrée> -s <reseau_local/masque_de_reseau> -d <ip_locale> -p <nom_du_protocole> --dport <nom_du_port> -m state --state NEW -j ACCEPT | ||
+ | |||
+ | |||
+ | > Ce qui rentre sur sa carte ethernet, dont la source est seulement <reseau_local/masque_de_reseau> et seulement à destination de <ip_locale>, dont l'état est une nouvelle connexion par tel protocole et sur tel port, sera accepté. | ||
+ | |||
+ | * Sur la sortie : | ||
+ | |||
+ | iptables -A OUTPUT -o eth0 -s <ip_locale> -d <reseau_local/masque_de_reseau> -p <nom_du_protocole> --sport <nom_du_port> -m state --state NEW -j ACCEPT | ||
+ | |||
+ | > Ce qui sort de sa carte ethernet, dont la source est seulement <reseau_local/masque_de_reseau> et seulement à destination de <ip_locale>, dont l'état est une nouvelle connexion par tel protocole et sur tel port, sera accepté. | ||
+ | |||
+ | |||
+ | ===Filtre encore plus restrictif=== | ||
+ | |||
+ | * En entrée : | ||
+ | |||
+ | iptables -A INPUT -i eth0 -s <reseau_local/masque_de_reseau> -d <ip_locale> -p <nom_du_protocole> --dport <nom_du_port> -m state --state ! INVALID -j ACCEPT | ||
+ | |||
+ | > On précise que l'on accepte, en entrée sur l'interface réseau, tout ce qui vient de notre réseau local à destination de l'adresse ip, correspondant à notre interface réseau utilisant tel protocole, vers tel numéro de port (ou service) dont l'état du paquet n'est pas invalide, c'est-à-dire un paquet ayant l'état 'nouveau', 'établi', 'relatif' ou 'non traqué'. | ||
+ | |||
+ | * En sortie : | ||
+ | |||
+ | iptables -A OUTPUT -o eth0 -s <ip_locale> -d <reseau_local/masque_de_reseau> -p <nom_du_protocole> --sport <nom_du_port> -m state --state RELATED,ESTABLISHED -j ACCEPT | ||
+ | |||
+ | > On précise que l'on accepte de laisser sortir de l'interface réseau, tout paquet dont la source est l'adresse ip correspondant à notre interface réseau, à destination de notre réseau local utilisant tel protocole, vers tel numero de port (ou service) dont l'état est 'relatif' ou 'établi' - en rapport avec la règle d'entrée. | ||
+ | |||
+ | **-> Tous les paquets qui ne correspondent pas à ces critères d'entrée ou sortie n'entrent pas ou ne sortent pas !** | ||
+ | Pour dresser des définitions avec des arguments plus précis car tenant compte des particularités de chacun des protocoles, voir la documentation **[[http://www.netfilter.org/documentation/|netfilter:Documentation]]**. |