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

необходимо загрузить модуль xt_tcpudp в Debian 7 Wheezy с ядром OpenVZ. Ошибка: "не удалось открыть"

Я следил за этим руководством

Руководство по контейнерам IPTABLES @ openvz.org

Я запускаю Debian 7 Wheezy x64, который был обновлен перед установкой OpenVZ. Контейнер - Debian7 x64 минимальный.

Он работает очень хорошо, за исключением того, что теперь мне нужно иметь некоторые правила IPTABLES внутри одного из моих контейнеров (виртуальных машин).

Я пытался загрузить модуль на хост-узле как это:

root@baremetal-openvz-hostnode:~# modprobe xt_tcpudp

И получил эту ошибку:

libkmod: ERROR ../libkmod/libkmod.c:505 kmod_lookup_alias_from_builtin_file: could not open builtin file '/lib/modules/2.6.32-openvz-042stab093.5-amd64/modules.builtin.bin'

FATAL: Module xt_tcpudp not found.

root@baremetal-openvz-hostnode:~# ls /lib/modules/uname -r/kernel/net/netfilter | grep xt_tcp

xt_tcpmss.ko

Два других модуля, упомянутых в руководстве (ссылка выше) загружается без проблем.

Причина, по которой мне нужен модуль xt_tcpudp

Я пытаюсь установить эти правила IPTABLES внутри контейнера:

iptables -A OUTPUT -o ppp0 -p tcp --dport 80 -m state --state NEW,ESTABLISHED -j ACCEPT

iptables -A INPUT -i ppp0 -p tcp --sport 80 -m state --state ESTABLISHED -j ACCEPT

Я получаю эти ошибки (в вышеупомянутом руководстве говорится, что они возникают из-за отсутствия модуля ядра)

iptables: No chain/target/match by that name.

iptables: No chain/target/match by that name.

===========

Хорошо, оказывается, что большая часть информации, которую можно найти, выполнив поиск в Google по использование iptables внутри виртуальных машин OpenVZ устарело

Я решил проблему, выполнив следующие действия:

Загрузить все Модули IPTABLES на хост-узле (Я могу удалить некоторые после этого)

Внутри /etc/vz/vz.conf:

IPTABLES_MODULES="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, ipt_REDIRECT, xt_mac, ipt_recent, ipt_owner"

(Обратите внимание, что старый параметр IPTABLES= устарело)

Перезагрузите OpenVZ

root@baremetal-openvz-hostnode:~# /etc/init.d/vz restart

Включите все сетевые фильтры (новое ключевое слово) в контейнере:

root@baremetal-openvz-hostnode:~# vzctl set 1234 --netfilter full --save

root@baremetal-openvz-hostnode:~# vzctl restart 1234

Хорошо.

Вот соответствующие документы:

  1. В новый список имён модулей netfilter IPTABLES.
  2. В новые глобальные параметры OpenVZ