iptables и странная библиотека... [solved]
S-anches 25 сентября, 2007 - 19:57
Тут вдруг увидел косяк случайно... Есть один скрипт, работает с iptables..
При его запуске выдает iptables такое:
iptables v1.3.5: Couldn't load target `USERS':/lib/iptables/libipt_USERS.so: cannot open shared object file: No such file or directory
Покопался в ядре, нигде такого модуля не нашел... Что делать? Подскажите плз кто знает.
»
- Для комментирования войдите или зарегистрируйтесь
Это точно не
Это точно не сидит в ядре.
Это либы смого iptables. У меня его тоже нет, но у меня iptables без флагов скомпилино, поэтому ищи какой USE тебе нужен и пересобирай iptables
У меня такой
У меня такой библиотеки тоже нет, но у меня версия 1.3.8.
Попробуй проапгрейдить iptables.
____________________________________________
Всё что не убивает меня, делает меня сильнее.
Может ли быть
Может ли быть такое, что это не правильно скрипт настроен?
______________________________________________________
Linux home 2.6.19-gentoo-r5 #3 SMP Thu Jun 14 21:28:55 KRAST 2007 i686 Intel(R) Pentium(R) 4 CPU 3.00GHz GenuineIntel GNU/Linux
Теперь и HTC TyTN :) Жалко на Windows Mobile 6.0 :(
Ошибка в
Ошибка в скрипте скорее всего где-то. Показывай скрипт.
#!/usr/bin/perl use
#!/usr/bin/perl
use FindBin;
use lib $FindBin::Bin;
require 'inc/common.inc.pl';
my $ipt = $config{'iptables'};
$STH = $DBH->prepare("select id from tariffs");
$STH->execute;
system("$ipt -t mangle -D FORWARD -j USERS");
system("$ipt -t mangle -F USERS");
system("$ipt -t mangle -X USERS");
system("$ipt -t mangle -N USERS");
system("$ipt -t mangle -A FORWARD -j USERS");
while (($id_tariff) = $STH->fetchrow_array()) {
system("$ipt -t mangle -F INC_TARIFF_$id_tariff");
system("$ipt -t mangle -X INC_TARIFF_$id_tariff");
system("$ipt -t mangle -N INC_TARIFF_$id_tariff");
system("$ipt -t mangle -F OUT_TARIFF_$id_tariff");
system("$ipt -t mangle -X OUT_TARIFF_$id_tariff");
system("$ipt -t mangle -N OUT_TARIFF_$id_tariff");
}
$STH->finish;
$STH = $DBH->prepare("select inet_ntoa(addr), id_tariff from users where nat=0");
$STH->execute;
while (($addr, $id_tariff) = $STH->fetchrow_array()) {
system("$ipt -t mangle -A USERS -d $addr -j INC_TARIFF_$id_tariff");
system("$ipt -t mangle -A USERS -s $addr -j OUT_TARIFF_$id_tariff");
}
$STH->finish;
$STH = $DBH->prepare("select routes.dest_type, inet_ntoa(routes.net), routes.mask, inet_ntoa(routes.ip_first), inet_ntoa(routes.ip_last), routes_groups.id, tariffs.id \
from routes, routes_groups, tariffs \
where (routes.id_group=routes_groups.id and routes_groups.id_tariff=tariffs.id) \
order by tariffs.id, routes_groups.prio desc");
$STH->execute;
while (($dest_type, $net, $mask, $ip_first, $ip_last, $id_group, $id_tariff) = $STH->fetchrow_array()) {
if ($dest_type) {
system("$ipt -t mangle -A INC_TARIFF_$id_tariff -m iprange --src-range $ip_first-$ip_last -j MARK --set-mark $id_group");
system("$ipt -t mangle -A OUT_TARIFF_$id_tariff -m iprange --dst-range $ip_first-$ip_last -j MARK --set-mark $id_group");
} else {
system("$ipt -t mangle -A INC_TARIFF_$id_tariff -s $net/$mask -j MARK --set-mark $id_group");
system("$ipt -t mangle -A OUT_TARIFF_$id_tariff -d $net/$mask -j MARK --set-mark $id_group");
}
}
$STH->finish;
$DBH->disconnect;
______________________________________________________
Linux home 2.6.19-gentoo-r5 #3 SMP Thu Jun 14 21:28:55 KRAST 2007 i686 Intel(R) Pentium(R) 4 CPU 3.00GHz GenuineIntel GNU/Linux
Теперь и HTC TyTN :) Жалко на Windows Mobile 6.0 :(
Я честнпо про
Я честнпо про цепочку USERS нукогда не слышал.
Но подозреваю, что сидеть она будет в USE="extensions". Если конечно такая есть. Потому что в мане про нее ничего нет.
Нет, все
Нет, все нормально. Это своя цепочка, создаваемая в скрипте. Просто он вначале пытается её удалить, а потом уже создавать:
system("$ipt -t mangle -D FORWARD -j USERS");
удаление правила для этой цепочки, её может не быть.
system("$ipt -t mangle -F USERS");
system("$ipt -t mangle -X USERS");
тут уже саму цепочку пытаются удалить, ёе может не быть
system("$ipt -t mangle -N USERS");
а вот тут она уже создается
system("$ipt -t mangle -A FORWARD -j USERS");
и создается правило для неё
Так что ругается оно на первые 3 строки, пока их нет. Хочешь выполни пере скриптом
iptables -t mangle -N USERS
, и после этого он у тебя без ошибок отработает.ага
ага действительно тормоз.. смотреть надо на весь скрипт до конца, а не только туда, где вываливается :)
Окей.
Окей. Спасибо.
______________________________________________________
Linux home 2.6.19-gentoo-r5 #3 SMP Thu Jun 14 21:28:55 KRAST 2007 i686 Intel(R) Pentium(R) 4 CPU 3.00GHz GenuineIntel GNU/Linux
Теперь и HTC TyTN :) Жалко на Windows Mobile 6.0 :(