Перейти к содержимому
Калькуляторы

ipt_NETFLOW и ядро 2.4

Добрых суток.

 

Не могу понять где ошибка.

Есть машина с ядром 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

 

Если скопировать собранный модуль, туда, где ищет, то не может найти таргет, который этот модуль добавляет. Вообщем ерунда какая-то. Все делал по мануалу, гуглил, совал собранный файл в разные места, но это ничего не дает. Не могу понять в чем проблема. Может кто сталкивался, просветит.

 

Заранее спасибо.

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

все-таки наверное с конфигом ядра что-то не так. я бы еще раз прошелся по menuconfig в поисках пропущенной опции и перекомпилил ядро

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Сложность в том, что не понятно в какую сторону копать-то.

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

NETFLOW':/usr/local/libexec/xtables/libipt_NETFLOW.so

Собирал его где то пол года назад, и помню долго метерился заменяя в каких то файлах iptables на xtables.

 

Поищите в эту сторону.

 

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

а оно вообще с 2.4 работает? совместимость вроде не заявлена.

да и не только iptables надо патчить,а и само ядро

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

2Дегтярев Илья: Ну в инете я такого не нашел. Вы в исходниках меняли или собранные файлы как-то тусовали? Был бы Вам очень благодарен, если бы Вы все же вспомнили, как удалось это чудо завести.

 

2[anp/hsw]: Ну по крайней мере не написано что не поддерживает и собирается нормально.

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

та же самая фигня была, токо ядро 2.6, нормально поднялось только с iptables-1.4.1.1 из последних

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Ну iptables 1.4.2, в том-то и проблема. С 1.3.5 вообще собираться не хотело.

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Приду на работу, сравню все. Этот менял точно.

 

# 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

 

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

2Дегтярев Илья: Ну это хелпер для основного модуля, вполне вероятно что его корректировка поможет.

 

Судя по makefile при компиляции исходники iptables используются, поэтому смысла отдельно их перебрасывать нет. Я пробовал наоборот: раскидывать исходники этого модуля по исходникам iptables. Собрать это безобразие мне не удалось.

 

Буду благодарен, если вышлите изменный файл.

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

То, что выложил тут - уже измененная версия.

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Ничего не изменилось.

 

У меня такой вопрос: а почему после сборки, модуль собирается только для lib/iptables? Почему модуль не собирается для libexec/xtables где его по-умолчанию ищет iptables и не находит? Копирование собранного модуля дает только сообщение, что такого таргета нет. Кроме того, модули в папке /libexec/xtables явно отличаются по размеру, в то время, как модуль для lib/iptables соответствует среднему размеру модуля.

 

Можно ли как-то заставить iptables брать модули из /lib/iptables ?

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Пробовал собирать с разными версиями iptables. Начиная с 1.4.1.1 и вниз. 1.4.1.1 сказало, что модуль с нерешенным символом, с версией 1.3.8 вообще отказалось собираться мотивируя тем, что нет какого-то исходника в 1.3.8.

 

А те у кого собралось, собирали 1.2 или 1.4 версию?

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Можно ли как-то заставить 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

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

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?

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

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

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

А какая версия пакета ipt_NETFLOW?

 

Кроме того ядро 2.6, а сабж про 2.4. На 2.6 я верю, что собирали успешно.

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Господа, ну вы же собирали, поделитесь версиями пакетов ipt_NETFLOW?

 

Заранее спасибо.

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Не думаю, что оно будет работать под 2.4, всё-таки в README сказано, что модуль для ядра 2.6. Насколько я помню нижняя версия совместимого ядра, это что-то около 2.6.16.

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Гость
Ответить в тему...

×   Вставлено в виде отформатированного текста.   Вставить в виде обычного текста

  Разрешено не более 75 смайлов.

×   Ваша ссылка была автоматически встроена.   Отобразить как ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставить изображения напрямую. Загрузите или вставьте изображения по ссылке.