Dark_Angel Опубликовано 25 февраля, 2009 · Жалоба Добрых суток. Не могу понять где ошибка. Есть машина с ядром 2.4.37. iptables 1.4.2. Скачиваю сабж, собираю его. Все проходит, без проблем и модуль собирается. После сборки и установки пытаюсь загрузить модуль, оно говорит, что такого модуля нет. При добавлении правила, говорит: iptables v1.4.2: Couldn't load target `NETFLOW':/usr/local/libexec/xtables/libipt_NETFLOW.so: cannot open shared object file: No such file or directory Если скопировать собранный модуль, туда, где ищет, то не может найти таргет, который этот модуль добавляет. Вообщем ерунда какая-то. Все делал по мануалу, гуглил, совал собранный файл в разные места, но это ничего не дает. Не могу понять в чем проблема. Может кто сталкивался, просветит. Заранее спасибо. Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...
Nic Опубликовано 25 февраля, 2009 · Жалоба все-таки наверное с конфигом ядра что-то не так. я бы еще раз прошелся по menuconfig в поисках пропущенной опции и перекомпилил ядро Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...
Dark_Angel Опубликовано 25 февраля, 2009 · Жалоба Сложность в том, что не понятно в какую сторону копать-то. Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...
Дегтярев Илья Опубликовано 26 февраля, 2009 · Жалоба NETFLOW':/usr/local/libexec/xtables/libipt_NETFLOW.so Собирал его где то пол года назад, и помню долго метерился заменяя в каких то файлах iptables на xtables. Поищите в эту сторону. Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...
[anp/hsw] Опубликовано 26 февраля, 2009 · Жалоба а оно вообще с 2.4 работает? совместимость вроде не заявлена. да и не только iptables надо патчить,а и само ядро Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...
Dark_Angel Опубликовано 26 февраля, 2009 · Жалоба 2Дегтярев Илья: Ну в инете я такого не нашел. Вы в исходниках меняли или собранные файлы как-то тусовали? Был бы Вам очень благодарен, если бы Вы все же вспомнили, как удалось это чудо завести. 2[anp/hsw]: Ну по крайней мере не написано что не поддерживает и собирается нормально. Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...
a_andry Опубликовано 26 февраля, 2009 · Жалоба та же самая фигня была, токо ядро 2.6, нормально поднялось только с iptables-1.4.1.1 из последних Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...
Dark_Angel Опубликовано 26 февраля, 2009 · Жалоба Ну iptables 1.4.2, в том-то и проблема. С 1.3.5 вообще собираться не хотело. Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...
Дегтярев Илья Опубликовано 26 февраля, 2009 · Жалоба Приду на работу, сравню все. Этот менял точно. # cat libipt_NETFLOW.c // iptables helper for NETFLOW target // <abc@telekom.ru> #include <stdio.h> #include <string.h> #include <stdlib.h> #include <getopt.h> #include <iptables.h> #include <net/if.h> #include <sys/socket.h> #include <netinet/in.h> #include <arpa/inet.h> #include <iptables.h> //#include <linux/netfilter_ipv4/ip_tables.h> //#include "ipt_NETFLOW.h" static struct option opts[] = { {0} }; static void NETF_help(void) { printf( "NETFLOW target\n"); } static int NETF_parse(int c, char **argv, int invert, unsigned int *flags, const void *entry, struct xt_entry_target **target) { return 1; } static void NETF_final_check(unsigned int flags) { } static void NETF_save(const void *ip, const struct xt_entry_target *match) { } static void NETF_print(const void *ip, const struct xt_entry_target *target, int numeric) { printf("NETFLOW "); } //static struct iptables_target netflow = { static struct xtables_target netflow = { .next = NULL, .name = "NETFLOW", .version = IPTABLES_VERSION, .size = XT_ALIGN(0), .userspacesize = XT_ALIGN(0), // .help = &help, .help = NETF_help, .parse = NETF_parse, // .final_check = &final_check, .final_check = NETF_final_check, .print = NETF_print, .save = NETF_save, .extra_opts = opts }; void _init(void) { xtables_register_target(&netflow); } И при компиляции в его папку кинул исходники iptables 1.4.1.1 Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...
Dark_Angel Опубликовано 26 февраля, 2009 · Жалоба 2Дегтярев Илья: Ну это хелпер для основного модуля, вполне вероятно что его корректировка поможет. Судя по makefile при компиляции исходники iptables используются, поэтому смысла отдельно их перебрасывать нет. Я пробовал наоборот: раскидывать исходники этого модуля по исходникам iptables. Собрать это безобразие мне не удалось. Буду благодарен, если вышлите изменный файл. Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...
Дегтярев Илья Опубликовано 26 февраля, 2009 · Жалоба То, что выложил тут - уже измененная версия. Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...
Dark_Angel Опубликовано 26 февраля, 2009 · Жалоба Ничего не изменилось. У меня такой вопрос: а почему после сборки, модуль собирается только для lib/iptables? Почему модуль не собирается для libexec/xtables где его по-умолчанию ищет iptables и не находит? Копирование собранного модуля дает только сообщение, что такого таргета нет. Кроме того, модули в папке /libexec/xtables явно отличаются по размеру, в то время, как модуль для lib/iptables соответствует среднему размеру модуля. Можно ли как-то заставить iptables брать модули из /lib/iptables ? Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...
Dark_Angel Опубликовано 27 февраля, 2009 · Жалоба Пробовал собирать с разными версиями iptables. Начиная с 1.4.1.1 и вниз. 1.4.1.1 сказало, что модуль с нерешенным символом, с версией 1.3.8 вообще отказалось собираться мотивируя тем, что нет какого-то исходника в 1.3.8. А те у кого собралось, собирали 1.2 или 1.4 версию? Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...
alexmern Опубликовано 27 февраля, 2009 · Жалоба Можно ли как-то заставить iptables брать модули из /lib/iptables ? Вашу ошибку можно легко сгенерировать: root@alice:~$ iptables -A FORWARD -i eth0 -j HELLO iptables v1.4.0: Couldn't load target `HELLO':/lib/iptables/libipt_HELLO.so: cannot open shared object file: No such file or directory Try `iptables -h' or 'iptables --help' for more information. Отсюда делаю вывод, что скорее всего с ядром всё нормально, но нет модуля для iptables. Как компилировали iptables? Сталкивался с такой проблемой. Решилось сборкой самого iptables вот так: ./configure --sbindir=/sbin --libdir=/lib Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...
Dark_Angel Опубликовано 27 февраля, 2009 · Жалоба 2alexmern: Вы правы, насчет того, что нет модуля. Это наблюдается для версии 1.4.2 iptables. Но к примеру для версии 1.4.1.1 модуль не подымается, хотя ложится в нужное место. Ключи, которые Вы дали, являются путями для make install sbin и lib папок соответствено. Никакого влияния на саму сборку они не оказывают, поэтому не понятно как они влияют на сам ipt_NETFLOW, тогда как его сорщик корректно распознает где лежат модули и ложит его туда же. Мне просто кажется, что на момент релиза версии 1.4 ipt_NETFLOW не было еще 1.4.2 iptables, поэтому они с ней не работают. Почему же оно не работает с версией 1.4.1.1 не ясно. iptables -I INPUT -d x.x.x.x -j NETFLOW iptables: target `[h@' vUЕSХ (I'm v1.4.1.1). Вот что получаем с 1.4.1.1. Пробовал и с оригинальным файлом и с файлом из этого топика откорректированным. Раницы никакой. Вы говорите Вы сталкивались с такой проблемой. Именно в разрезе ipt_NETFLOW и iptables или другие модули для iptables собирали? Если в разрезе ipt_NETFLOW, какие версии были ipt_NETFLOW, iptables, kernel? Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...
a_andry Опубликовано 27 февраля, 2009 · Жалоба router ~ # iptables -nvL FORWARD | head -3 Chain FORWARD (policy ACCEPT 1191G packets, 1011T bytes) pkts bytes target prot opt in out source destination 85G 71T NETFLOW all -- * * 0.0.0.0/0 0.0.0.0/0 NETFLOW router ~ # uname -a Linux router 2.6.27-gentoo-r7 #6 SMP Thu Jan 8 15:39:43 EET 2009 i686 Intel® Xeon® CPU E5420 @ 2.50GHz GenuineIntel GNU/Linux router ~ # iptables --version iptables v1.4.1.1 Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...
Dark_Angel Опубликовано 27 февраля, 2009 · Жалоба А какая версия пакета ipt_NETFLOW? Кроме того ядро 2.6, а сабж про 2.4. На 2.6 я верю, что собирали успешно. Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...
Dark_Angel Опубликовано 3 марта, 2009 · Жалоба Господа, ну вы же собирали, поделитесь версиями пакетов ipt_NETFLOW? Заранее спасибо. Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...
aabc Опубликовано 16 марта, 2009 · Жалоба Не думаю, что оно будет работать под 2.4, всё-таки в README сказано, что модуль для ядра 2.6. Насколько я помню нижняя версия совместимого ядра, это что-то около 2.6.16. Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...