LINUX.ORG.RU
ФорумAdmin

Как подружить ipset и iptables?


0

1

Ядро 2.6.17, iptables-1.3.5 После сборки и инсталляции пакета ipset-4.5 и проверки на тесте получаю-

iptables v1.3.5: Couldn't load match `set':/lib/iptables/libipt_set.so: cannot open shared object file: No such file or directory
Т.е. iptables не имеет файла /lib/iptables/libipt_set.so. Скопировал в работающее ядро из пакета ipset файлы ../kernel/include/linux/netfilter_ipv4/{ip,ipt}_set.h Сборка iptables прошла с ошибкой.
[root@maestro iptables-1.3.5]# make KERNEL_DIR=/usr/src/kernels/linux
In file included from /usr/src/kernels/linux/include/linux/netfilter_ipv4.h:8,
		from /usr/src/kernels/linux/include/linux/netfilter_ipv4/ip_tables.h:26,
		from include/libiptc/libiptc.h:6,
		from include/iptables.h:5,
                from extensions/libipt_string.c:29:
/usr/src/kernels/linux/include/linux/config.h:8:2: error: #error including kernel header in userspace; use the glibc headers instead!
In file included from /usr/src/kernels/linux/include/linux/netfilter_ipv4.h:8,
		from /usr/src/kernels/linux/include/linux/netfilter_ipv4/ip_tables.h:26,
		from include/libiptc/libiptc.h:6,
		from include/iptables.h:5,
		from extensions/libipt_SET.c:19:
/usr/src/kernels/linux/include/linux/config.h:8:2: error: #error including kernel header in userspace; use the glibc headers instead!
In file included from /usr/src/kernels/linux/include/linux/netfilter_ipv4.h:8,
		from /usr/src/kernels/linux/include/linux/netfilter_ipv4/ip_tables.h:26,
		from include/libiptc/libiptc.h:6,
		from include/iptables.h:5,
                from extensions/libipt_set.c:20:
/usr/src/kernels/linux/include/linux/config.h:8:2: error: #error including kernel header in userspace; use the glibc headers instead!
In file included from /usr/src/kernels/linux/include/linux/netfilter_ipv4.h:8,
		from /usr/src/kernels/linux/include/linux/netfilter_ipv4/ip_tables.h:26,
		from include/libiptc/libiptc.h:6,
		from include/iptables.h:5,
                from extensions/libipt_recent.c:8:
/usr/src/kernels/linux/include/linux/config.h:8:2: error: #error including kernel header in userspace; use the glibc headers instead!
In file included from /usr/src/kernels/linux/include/linux/netfilter_ipv4.h:8,
		from /usr/src/kernels/linux/include/linux/netfilter_ipv4/ip_tables.h:26,
		from include/libiptc/libiptc.h:6,
		from include/iptables.h:5,
                from extensions/libipt_dccp.c:15:
/usr/src/kernels/linux/include/linux/config.h:8:2: error: #error including kernel header in userspace; use the glibc headers instead!
Extensions found: IPv4:dccp IPv4:recent IPv4:set IPv4:SET IPv4:string IPv6:REJECT
cc -O2 -Wall -Wunused -I/usr/src/kernels/linux/include -Iinclude/ -DIPTABLES_VERSION=\"1.3.5\"  -fPIC -o extensions/libipt_ah_sh.o -c
extensions/libipt_ah.c
In file included from /usr/src/kernels/linux/include/linux/netfilter_ipv4.h:8,
		from /usr/src/kernels/linux/include/linux/netfilter_ipv4/ip_tables.h:26,
		from include/libiptc/libiptc.h:6,
		from include/iptables.h:5,
                from extensions/libipt_ah.c:8:
/usr/src/kernels/linux/include/linux/config.h:8:2: error: #error including kernel header in userspace; use the glibc headers instead!
make: *** [extensions/libipt_ah_sh.o] Ошибка 1
Как исправить ситуацию и создать файлы {ip,ipt}_set.h?


Ответ на: комментарий от true_admin

Это пакет обновления для ядра? Спасибо, посмотрю.

bsm ()
Ответ на: комментарий от true_admin
> /usr/local/sbin/ipset
> /usr/local/man/man8/ipset.8
> /usr/local/lib/ipset/libipset_setlist.so
> /usr/local/lib/ipset/libipset_portmap.so
> /usr/local/lib/ipset/libipset_nethash.so
> /usr/local/lib/ipset/libipset_macipmap.so
> /usr/local/lib/ipset/libipset_iptree.so
> /usr/local/lib/ipset/libipset_iptreemap.so
> /usr/local/lib/ipset/libipset_ipportnethash.so
> /usr/local/lib/ipset/libipset_ipportiphash.so
> /usr/local/lib/ipset/libipset_ipporthash.so
> /usr/local/lib/ipset/libipset_ipmap.so
> /usr/local/lib/ipset/libipset_iphash.so
> /usr/local/lib/ipset
> /lib/modules/2.6.17-1.2157.1aspsmp/extra/ipt_SET.ko
> /lib/modules/2.6.17-1.2157.1aspsmp/extra/ipt_set.ko
> /lib/modules/2.6.17-1.2157.1aspsmp/extra/ip_set_setlist.ko
> /lib/modules/2.6.17-1.2157.1aspsmp/extra/ip_set_portmap.ko
> /lib/modules/2.6.17-1.2157.1aspsmp/extra/ip_set_nethash.ko
> /lib/modules/2.6.17-1.2157.1aspsmp/extra/ip_set_macipmap.ko
> /lib/modules/2.6.17-1.2157.1aspsmp/extra/ip_set.ko
> /lib/modules/2.6.17-1.2157.1aspsmp/extra/ip_set_iptreemap.ko
> /lib/modules/2.6.17-1.2157.1aspsmp/extra/ip_set_iptree.ko
> /lib/modules/2.6.17-1.2157.1aspsmp/extra/ip_set_ipportnethash.ko
> /lib/modules/2.6.17-1.2157.1aspsmp/extra/ip_set_ipportiphash.ko
> /lib/modules/2.6.17-1.2157.1aspsmp/extra/ip_set_ipporthash.ko
> /lib/modules/2.6.17-1.2157.1aspsmp/extra/ip_set_ipmap.ko
> /lib/modules/2.6.17-1.2157.1aspsmp/extra/ip_set_iphash.ko
bsm ()
Ответ на: комментарий от bsm

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

true_admin ★★★★★ ()
Ответ на: комментарий от true_admin

Насколько я понял пакет ipset создаёт модули лишь для ядра.

> /lib/modules/2.6.17-1.2157.1aspsmp/extra/ipt_SET.ko
> /lib/modules/2.6.17-1.2157.1aspsmp/extra/ipt_set.ko
> /lib/modules/2.6.17-1.2157.1aspsmp/extra/ip_set_setlist.ko
> /lib/modules/2.6.17-1.2157.1aspsmp/extra/ip_set_portmap.ko
> /lib/modules/2.6.17-1.2157.1aspsmp/extra/ip_set_nethash.ko
> /lib/modules/2.6.17-1.2157.1aspsmp/extra/ip_set_macipmap.ko
> /lib/modules/2.6.17-1.2157.1aspsmp/extra/ip_set.ko
> /lib/modules/2.6.17-1.2157.1aspsmp/extra/ip_set_iptreemap.ko
> /lib/modules/2.6.17-1.2157.1aspsmp/extra/ip_set_iptree.ko
> /lib/modules/2.6.17-1.2157.1aspsmp/extra/ip_set_ipportnethash.ko
> /lib/modules/2.6.17-1.2157.1aspsmp/extra/ip_set_ipportiphash.ko
> /lib/modules/2.6.17-1.2157.1aspsmp/extra/ip_set_ipporthash.ko
> /lib/modules/2.6.17-1.2157.1aspsmp/extra/ip_set_ipmap.ko
> /lib/modules/2.6.17-1.2157.1aspsmp/extra/ip_set_iphash.ko
Если установить исходник работающего iptables- iptables-1.3.5-1.2asp.src.rpm, наложить на ядро patch-o-matic-ng-20081130.tar.bz2, после чего собрать iptables-1.3.5-1.2asp.rpm, то даже при наличии в этом пакете исходников для libipt_set.*
libipt_set.c
libipt_set.h
libipt_set.man
libipt_SET.c
libipt_SET.man
библиотечный файл не создаётся. В чем можно убедиться, выполнив-
[root@maestro ~]# iptables -m set --help
iptables v1.3.5: Couldn't load match `set':/lib/iptables/libipt_set.so: cannot open shared object file: No such file or directory

Try `iptables -h' or 'iptables --help' for more information.

bsm ()
Ответ на: комментарий от bsm

а, кстати, я вижу в инете что это может быть проблема старого iptables.

true_admin ★★★★★ ()
Ответ на: комментарий от post-factum

Он учитывает указанные пути к библиотечным каталогам.

А, можно, да. Оно делает dlopen который поддерживает поиск либ.

true_admin ★★★★★ ()
Ответ на: комментарий от true_admin

Переустановить систему на сервере, ради изменений в firewall,- рука не поднимется.

bsm ()
Ответ на: комментарий от bsm

Свои изыскания по данной теме закончил - не удалось объединить ipset и iptables на используемой системе. Тема закрыта.

Всем спасибо.

bsm ()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.