Iptables et réseau de dom0/domU

Bonjour,

J’ai un serveur sous xen (wheezy) avec pour réseau :

  • un bridge br0 : eth0 et une vif et 2 ip publiques (une / bridge dom0 et une / eth0 de la domU
  • un bridge br1 : dummy0 et plusieurs vif avec ip

Je souhaite mettre en place un firewall avec iptables sur la dom0 uniquement pour toutes les machines.

De ce que j’ai compris, il est suffisant de définir des règles FORWARD pour l’interface br0 de la dom0 en faisant une analogie :

  • OUTPUT et FORWARD -o br0
  • INPUT et FORWARD -i br0

Il ne me semble pas nécessaire de faire d’autres règles en dehors du blocage total du FORWARD sur la domU avec 2 interfaces et reliée sur l’extérieur.

Est ce que cela vous correct comme manière de faire ?

Sans définition du besoin, impossible de répondre.
Accessoirement, je n’ai rien compris à ton histoire d’analogie.

j’utilisais des règles INPUT et OUTPUT pour filtrer les entrées et sortie de mon serveur avant d’utiliser xen.

Je me demande si maintenant, avec xen et la configuration réseau mis en place :
iptables -t filter -A INPUT -p tcp --dport 22 -j ACCEPT
pouvait être remplacé par :
iptables -t filter -A FORWARD -i br0 -p tcp --dport 22 -j ACCEPT

Il me semble que maintenant, les flux adressés à ma dom0 arrive sur br0 et sont transmis à eth0, ils ne passent donc plus par les règles INPUT mais par les règles FORWARD

Mon objectif est de mettre en place un firewall uniquement sur la dom0 avec un réseau interne non filtré entre les domU ou entre la dom0 et les domU.

sur la domO j’ai :

brctl show 
br0		8000.e06995d8384c	no		eth0
						        wan1.0
br1		8000.0e6019ad4635	no		dummy0
							lan1.1
							lan2.1

Edit :
Manifestement, ca ne marche pas comme je le croyais. La dom0 se comporte comme un PC avec 2 interfaces pour les machines sans accès internet direct :

  • br0 : sur internet
  • br1 : sur le lan

Il me faut donc les règles habituelles INPUT/OUTPUT pour protéger la dom0 de l’extérieur et des règles FORWARD pour permettre le passage br0-br1

Il me reste à tester le comportement de la domU qui fait aussi partie de br0 avec une adresse publique vis à vis des règles iptables.

[quote=“mazarini”]Je me demande si maintenant, avec xen et la configuration réseau mis en place :
iptables -t filter -A INPUT -p tcp --dport 22 -j ACCEPT
pouvait être remplacé par :
iptables -t filter -A FORWARD -i br0 -p tcp --dport 22 -j ACCEPT
[/quote]
Non. Le trafic entrant destiné à la machine qui a le pont passe toujours par la chaîne INPUT, et le trafic sortant par la chaîne OUTPUT.

Non, les paquets sont physiquement reçus par eth0 comme avant, mais comme celle-ci fait partie du pont br0 il sont vus par iptables et la pile TCP/IP comme reçus par br0.

La chaîne FORWARD va voir deux types de paquets :

  • les paquets IP routés entre deux interfaces (br0 et br1 par exemple), comme d’habitude si le routage est activé (ip_forward=1) ;
  • les paquets IP contenus dans des trames ethernet pontées entre deux interfaces d’un pont (par exemple eth0 et wan1.0) si /proc/sys/net/bridge/bridge-nf-call-iptables est à 1 (valeur par défaut).
    La correspondance physdev d’iptables permet de déterminer si un paquet est ponté, et dans ce cas quelles sont les interfaces réelles d’entrée et de sortie, sachant que -i et -o ne voient que l’interface pont. De façon similaire ebtables permet de faire du filtrage spécifiquement sur les trames ethernet pontées, et pas seulement celles qui contiennent des paquets IP, mais avec moins de possibilités qu’iptables.