1 votes

Karmic iptables manque les moduyles du noyau sur un conteneur OpenVZ

Après une migration p2v infructueuse de mon serveur Ubuntu vers un conteneur OpenVZ avec lequel je ne suis pas familier, j'ai pensé que je pourrais essayer une réinstallation basée sur un modèle OpenVZ propre pour Ubuntu 9.10 (à partir du wiki OpenVZ).

Lorsque j'essaie de charger mes règles iptables sur la machine VM, je reçois des erreurs qui, je pense, sont liées aux modules du noyau qui ne sont pas chargés sur la VM à partir du modèle /vz/XXX.conf.

J'ai testé avec quelques post que j'ai trouvé mais j'ai été empilé avec l'erreur :

WARNING: Deprecated config file /etc/modprobe.conf, all config files belong into /etc/modprobe.d/.
FATAL: Could not load /lib/modules/2.6.24-10-pve/modules.dep: No such file or directory
iptables-restore v1.4.4: iptables-restore: unable to initialize table 'raw'

Error occurred at line: 2
Try `iptables-restore -h' or 'iptables-restore --help' for more information.

J'ai lu que le modèle ne chargeait pas tous les modules iptables. J'ai donc ajouté des modules au fichier XXX.conf de la machine virtuelle VZ comme ceci :

IPTABLES="ip_tables iptable_filter iptable_mangle ipt_limit ipt_multiport ipt_tos ipt_TOS ipt_REJECT ipt_TCPMSS ipt_tcpmss ipt_ttl ipt_LOG ipt_length ip_conntrack ip_conntrack_ftp ip_conntrack_irc ipt_conntrack ipt_state ipt_helper iptable_nat ip_nat_ftp ip_nat_irc"

Comme l'erreur persistait, j'ai lu que je devais recompiler les dépendances sur la machine virtuelle :

depmod -a but this returned an error:

WARNING: Couldn't open directory /lib/modules/2.6.24-10-pve: No such file or directory
FATAL: Could not open /lib/modules/2.6.24-10-pve/modules.dep.temp for writing: No such file or directory

J'ai donc lu à nouveau qu'il fallait créer le répertoire vide et refaire "depmod -a".

Je n'obtiens plus l'erreur de dépendances mais j'obtiens ceci et je n'ai aucune idée de la façon de procéder :

WARNING: Deprecated config file /etc/modprobe.conf, all config files belong into /etc/modprobe.d/.
FATAL: Module ip_tables not found.
iptables-restore v1.4.4: iptables-restore: unable to initialize table 'raw'

Error occurred at line: 2
Try `iptables-restore -h' or 'iptables-restore --help' for more information.

Je comprends que les règles iptables doivent être différentes sur la machine virtuelle et que certaines des règles que nous essayons d'appliquer (à partir de notre serveur physique) ne sont peut-être pas compatibles, mais il s'agit simplement de vérifications de l'IP source et du port de destination que j'aimerais pouvoir utiliser. J'ai entendu dire que sur le modèle CentOS, il n'y a pas de problèmes avec cela, donc je comprends que c'est lié à la configuration de la machine virtuelle.

Toute aide serait grandement appréciée.

0 votes

La question devrait probablement être fermée au lieu d'être remise sur le tapis par la communauté depuis que la version 9.10 a atteint sa fin de vie il y a un an.

1voto

cyphun Points 53

J'avais été en posant la même question une fois de temps en temps :) Il s'est avéré comme il semble que vous avez besoin d'au moins 2.6.32-ovz pour RAW dans les VEs.

0voto

Kyle Brandt Points 81077

Ce n'est pas une réponse directe, mais pour mes machines openvz, je place mes règles iptables sur la machine hôte. Elles sont ainsi regroupées au même endroit et tout doit passer par l'hôte de toute façon. Vous trouverez peut-être cela plus facile et plus propre (mais peut-être pas).

0voto

Hamish Downer Points 9012

Selon cet article il y a une petite configuration nécessaire sur le nœud hôte. (Le texte ci-dessous est en grande partie tiré de l'article, mais n'est pas cité en bloc afin de le rendre plus lisible).

Tout d'abord, le nœud hôte doit transmettre tout le trafic. Les commandes suivantes font en sorte que l'action FORWARD par défaut soit ACCEPT, puis effacent toutes les règles de la chaîne FORWARD.

iptables -P FORWARD ACCEPT
iptables -F FORWARD

Si vous souhaitez utiliser un pare-feu à l'intérieur d'un conteneur, veuillez charger ces modules AVANT de démarrer le conteneur :

modprobe xt_tcpudp
modprobe ip_conntrack

Si vous ne le faites pas, vous obtiendrez une erreur comme celle-ci : "iptables : Pas de chaîne/cible/match sous ce nom"

Si vous voulez utiliser des règles de pare-feu avec état (et vous devriez le faire !), vous devrez également vous assurer que 'ipt_state' est dans l'option 'IPTABLES' de votre fichier vz.conf :

IPTABLES="ipt_REJECT ipt_tos ipt_limit ipt_multiport iptable_filter iptable_mangle ipt_TCPMSS ipt_tcpmss ipt_ttl ipt_length ipt_state"

Vérifiez également que le module 'xt_state' est chargé sur l'hôte :

modprobe xt_state

SistemesEz.com

SystemesEZ est une communauté de sysadmins où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres sysadmins, poser vos propres questions ou résoudre celles des autres.

Powered by:

X