Назад | Перейти на главную страницу

В Karmic iptables отсутствуют модули ядра в контейнере OpenVZ

После неудачной миграции p2v моего сервера Ubuntu в контейнер OpenVZ, с которым я работаю, я подумал, что попробую переустановить его на основе чистого шаблона OpenVZ для Ubuntu 9.10 (из вики OpenVZ)

Когда я пытаюсь загрузить свои правила iptables на виртуальную машину, я получаю ошибки, которые, как мне кажется, связаны с тем, что модули ядра не загружаются на виртуальную машину из модели шаблона /vz/XXX.conf.

Я тестировал несколько сообщений, которые я нашел, но у меня была ошибка:

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.

Я читал о том, что шаблон не загружает все модули iptables, поэтому добавил модули в XXX.conf виртуальной машины VZ следующим образом:

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"

Поскольку ошибка осталась, я прочитал, что мне нужно снова построить зависимости на виртуальной машине:

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

Итак, я снова прочитал о создании пустого каталога и повторении его с помощью команды «depmod -a».

Теперь я не получаю ошибку зависимостей, но получаю это, и я не знаю, как действовать:

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.

Я понимаю, что правила iptables должны отличаться на виртуальной машине, и, возможно, некоторые из правил, которые мы пытаемся применить (с нашего физического сервера), несовместимы, но это просто проверки исходного IP-адреса и порта назначения, которые я хотел бы иметь иметь в наличии. Я слышал, что в шаблоне CentOS с этим нет проблем, поэтому я понимаю, что это связано с конфигурацией виртуальной машины.

Любая помощь будет принята с благодарностью.

я был задаю тот же вопрос давным-давно :) Оказалось, вроде как минимум 2.6.32 унции для RAW внутри VE.

В соответствии с Эта статья на хост-узле требуется небольшая настройка. (Приведенный ниже текст в основном взят из статьи, но не цитируется в блоках, чтобы сделать его более читабельным.)

Сначала хост-узел должен перенаправить весь трафик. Следующие команды делают действие FORWARD по умолчанию ACCEPT, а затем сбрасывают все правила в цепочке FORWARD.

iptables -P FORWARD ACCEPT
iptables -F FORWARD

Если вы хотите использовать брандмауэр внутри контейнера, загрузите эти модули ПЕРЕД запуском контейнера:

modprobe xt_tcpudp
modprobe ip_conntrack

Если вы этого не сделаете, вы получите такую ​​ошибку: «iptables: Нет цепочки / цели / совпадения по этому имени».

Если вы хотите использовать правила брандмауэра с отслеживанием состояния (а вам следует это сделать!), Вам также необходимо убедиться, что ipt_state находится в параметре IPTABLES в вашем файле 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"

Также убедитесь, что на хосте загружен модуль xt_state:

modprobe xt_state

Не прямой ответ, но для моих машин openvz я поместил свои правила iptables на хост-машину. Тогда они находятся в одном месте, и все в любом случае должно пройти через хозяина. Возможно, вам это покажется проще и чище (но, возможно, и нет).