После неудачной миграции 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 на хост-машину. Тогда они находятся в одном месте, и все в любом случае должно пройти через хозяина. Возможно, вам это покажется проще и чище (но, возможно, и нет).