Кармические 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 нет никаких проблем с этим, поэтому я понимаю, что это связано с конфигурацией VM.

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

3 ответа

Я задавал один и тот же вопрос один раз в свое время:) Оказалось, что вам нужно как минимум 2.6.32-ovz для RAW внутри виртуальных сред.

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

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

Сначала узел должен переслать весь трафик. Следующие команды делают действие 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
Другие вопросы по тегам