shicoy Опубликовано 22 ноября, 2011 · Жалоба Спасибо Будет ли работать lisg на bond интерфейсах? Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...
alexmern Опубликовано 22 ноября, 2011 (изменено) · Жалоба Спасибо Будет ли работать lisg на bond интерфейсах? Да. К интерфейсам же нет привязки, главное чтобы трафик в iptables попадал. Изменено 22 ноября, 2011 пользователем alexmern Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...
shicoy Опубликовано 23 ноября, 2011 · Жалоба Пройдите глазами полностью по таблице -t nat задним ходом от конечного /32 на наличие нужных правил dnat. У меня была проблема на новом ядре не создавались правила dnat skeleton для ip ***.***.***.***, а вот для ***.***.***.** всё создавалось. Пришлось кое-что в коде поправить. Похоже так и есть, т.е. вижу последним вот такое правило: Chain stat_nat_dst1*.2*.255.240_30 (1 references) target prot opt source destination DNAT all -- 0.0.0.0/0 1*.2*.255.242 to:10.24.128.4 а для /32 нет где что подкрутить надо? :) Подскажите пожалуйста. Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...
shicoy Опубликовано 23 ноября, 2011 · Жалоба И еще вопрос, для ната создаются ветки stat_nat_dst_skeleton и stat_nat_src_skeleton, но они создаются только после появления первой сессии Соотвественно заранее добавить их PREROUTING/POSTROUTING нельзя, поэтому вопрос, а как быть? :) Ждать пока появится первая сессия и ручками добавлять правила? Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...
alexmern Опубликовано 23 ноября, 2011 (изменено) · Жалоба где что подкрутить надо? :) Подскажите пожалуйста. /usr/local/ISG/bin/ISGd.pl lines 839-840: foreach ("dst", "src") { my $sk = IPTables::SubnetSkeleton::new("isg_nat", $_, "nat", @CIDR); my $ipt = $sk->get_iptables_object(); т.е. я изменил названия правил с stat_nat на isg_nat, тем самым уменьшив длину названия правил на один символ, чтобы всё помещалось. По второму воросу, добавил в автозагрузку это, всё стартует нормально: /usr/local/ISG/bin/ISGd.pl /sbin/iptables -t nat -N isg_nat_dst_skeleton /sbin/iptables -t nat -N isg_nat_src_skeleton /sbin/iptables -t nat -I PREROUTING -j isg_nat_dst_skeleton /sbin/iptables -t nat -I POSTROUTING -j isg_nat_src_skeleton /sbin/iptables -A FORWARD -s 10.17.0.0/16 -j ISG --session-init /sbin/iptables -A FORWARD -d 10.17.0.0/16 -j ISG Cначала запускется демон, потом создаются нужные таблицы и правила. Изменено 23 ноября, 2011 пользователем alexmern Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...
shicoy Опубликовано 23 ноября, 2011 · Жалоба Спасибо ^) Т.е. полностью этот участок будет выглядеть так: if ($found_rnum) { $ipt->iptables_do_command("-D", $leaf_chain, $found_rnum); } } } foreach ("dst", "src") { my $sk = IPTables::SubnetSkeleton::new("isg_nat", $_, "nat", @CIDR); my $ipt = $sk->get_iptables_object(); $ipt->unlock(); Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...
Abram Опубликовано 23 ноября, 2011 · Жалоба shicoy, Да, так. Правда, я у себя менял stat_nat на st_n - чтобы уж наверняка влезло :). Цитата из README: iptables -t nat -I PREROUTING -j stat_nat_dst_skeleton iptables -t nat -I POSTROUTING -j stat_nat_src_skeleton Соответственно: iptables -t nat -I PREROUTING -j st_n_dst_skeleton iptables -t nat -I POSTROUTING -j st_n_src_skeleton Или как у тебя: iptables -t nat -I PREROUTING -j isg_nat_dst_skeleton iptables -t nat -I POSTROUTING -j isg_nat_src_skeleton Укорачивать нужно на новых ядрах, т.к. там уменьшили максимальный размер строки-названия цепочки. Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...
shicoy Опубликовано 23 ноября, 2011 · Жалоба Почему-то не убивается сессия по истечении idle (клиент не активен) User IP-address NAT IP-address Port number Uniq. Identifier Durat. Octets-in Octets-out Rate-in Rate-out Service name Flags 10.24.128.4 1*.2*.255.242 Virtual1 E4CDF1432E73E986 1878 394717 389692 0 0 Undefined A idle-timeout стоит 1800 Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...
shicoy Опубликовано 25 ноября, 2011 · Жалоба # isg show_count Approved sessions count: -4294966146 Unapproved sessions count: 4294967278 Чето видимо подкрутить тоже надо? Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...
alexmern Опубликовано 25 ноября, 2011 · Жалоба # isg show_count Approved sessions count: -4294966146 Unapproved sessions count: 4294967278 Чето видимо подкрутить тоже надо? ISG.pl line 78 my $unap = ISG::ntohl(~$rev{'nat_ipaddr'}); Но там что-то не точно показывает. Кол-во онлайн в биллинге смотрю. Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...
Abram Опубликовано 26 ноября, 2011 · Жалоба # isg show_count Approved sessions count: -4294966146 Unapproved sessions count: 4294967278 Чето видимо подкрутить тоже надо? Я за тебя README читать больше не буду :). ------------------- * Tips and Tricks * ------------------- To enable reliable communications between userspace and kernel, do: echo "1048576" > /proc/sys/net/core/rmem_max Otherwise there will be some problems printing long session lists. Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...
shicoy Опубликовано 26 ноября, 2011 · Жалоба Я за тебя README читать больше не буду :). ------------------- * Tips and Tricks * ------------------- To enable reliable communications between userspace and kernel, do: echo "1048576" > /proc/sys/net/core/rmem_max Otherwise there will be some problems printing long session lists. # cat /proc/sys/net/core/rmem_max 1048576 Не в этом дело было. Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...
Abram Опубликовано 26 ноября, 2011 · Жалоба Не в этом дело было. Было? То есть, решил? Как? Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...
shicoy Опубликовано 27 ноября, 2011 · Жалоба # isg show_count Approved sessions count: -4294966146 Unapproved sessions count: 4294967278 Чето видимо подкрутить тоже надо? ISG.pl line 78 my $unap = ISG::ntohl(~$rev{'nat_ipaddr'}); Но там что-то не точно показывает. Кол-во онлайн в биллинге смотрю. Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...
Олег Кривицкий Опубликовано 11 декабря, 2011 · Жалоба А где взять исходники LISG с последними дополнениями и исправлениями??? Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...
Ilya Evseev Опубликовано 11 декабря, 2011 · Жалоба А где взять исходники LISG с последними дополнениями и исправлениями??? В соседней теме, однако!!! http://forum.nag.ru/forum/index.php?showtopic=53156 Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...
Олег Кривицкий Опубликовано 12 декабря, 2011 (изменено) · Жалоба Ilya Evseev Спасибо! Вот только ссылка-то на эту самую тему .... :( Изменено 12 декабря, 2011 пользователем Олег Кривицкий Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...
Abram Опубликовано 14 декабря, 2011 · Жалоба Ilya Evseev Спасибо! Вот только ссылка-то на эту самую тему .... :( Точнее, на первый пост ;). Там ссылка есть. Присмотритесь. Да-да, именно эта. Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...
Олег Кривицкий Опубликовано 15 декабря, 2011 · Жалоба Ilya Evseev Спасибо! Вот только ссылка-то на эту самую тему .... :( Точнее, на первый пост ;). Там ссылка есть. Присмотритесь. Да-да, именно эта. Сам нашел уже, спасибо :) Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...
kamae1ka Опубликовано 19 января, 2012 · Жалоба ребята, а кто знает как дропнуть сессию через COA ? =) Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...
alexmern Опубликовано 19 января, 2012 · Жалоба ребята, а кто знает как дропнуть сессию через COA ? =) $command = "/bin/echo \"NAS-Identifier=\\\"$NAS->{NAS_INDENTIFIER}\\\",NAS-Port=\\\"$PORT\\\"\" | /usr/bin/radclient -x $NAS->{NAS_MNG_IP_PORT} disconnect $NAS->{NAS_MNG_PASSWORD}"; `$command`; Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...
Abram Опубликовано 19 января, 2012 · Жалоба ребята, а кто знает как дропнуть сессию через COA ? =) $command = "/bin/echo \"NAS-Identifier=\\\"$NAS->{NAS_INDENTIFIER}\\\",NAS-Port=\\\"$PORT\\\"\" | /usr/bin/radclient -x $NAS->{NAS_MNG_IP_PORT} disconnect $NAS->{NAS_MNG_PASSWORD}"; `$command`; Да, что-то вроде такого. Я где-то на последних страницах писал, можно свериться. Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...
kamae1ka Опубликовано 20 января, 2012 · Жалоба ребята, а кто знает как дропнуть сессию через COA ? =) $command = "/bin/echo \"NAS-Identifier=\\\"$NAS->{NAS_INDENTIFIER}\\\",NAS-Port=\\\"$PORT\\\"\" | /usr/bin/radclient -x $NAS->{NAS_MNG_IP_PORT} disconnect $NAS->{NAS_MNG_PASSWORD}"; `$command`; спасибо, буду пробовать Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...
Ivan_83 Опубликовано 25 января, 2012 · Жалоба Несколько патчей. 1. На арче после обновления не собирается lisg-hg / lisg-webauth-hg. lisg-webauth-hg/src/lisg-build/kernel/Makefile.in all: echo "" > build.h printf "/* Compilation date.\n * Written by Makefile (userspace) */\n#define _BUILD_DATE \"%s %s\"\n" `date +'%F %T'` > build.h $(MAKE) -C $(KDIR) M=$(PWD) modules gcc -O2 -Wall -Wunused -I$(KDIR)/include -I$(IPTSRC)/include -DIPTABLES_VERSION=\"$(IPTABLES_VERSION)\" $(XT_NEWSTYLE) -fPIC -o libipt_ISG_sh.o -c libipt_ISG.c gcc -shared -o libipt_ISG.so libipt_ISG_sh.o заменить на: all: echo "" > build.h printf "/* Compilation date.\n * Written by Makefile (userspace) */\n#define _BUILD_DATE \"%s %s\"\n" `date +'%F %T'` > build.h echo "#include <linux/export.h>" >> build.h echo "#include <linux/moduleparam.h>" >> build.h echo "#include <linux/module.h>" >> build.h $(MAKE) -C $(KDIR) M=$(PWD) modules gcc -O2 -Wall -Wunused -I$(KDIR)/include -I$(IPTSRC)/include -DIPTABLES_VERSION=\"$(IPTABLES_VERSION)\" $(XT_NEWSTYLE) -fPIC -o libipt_ISG_sh.o -c libipt_ISG.c gcc -shared -o libipt_ISG.so libipt_ISG_sh.o (добавление трёх инклюдесов перед сборкой) 2. webauth версия при использовании сервисов добавляет авторизованного клиента в таблицу для редиректа при активации сервиса: Removing xx.xx.80.5 from web auth listSession 'xx.xx.80.5' on 'Virtual1' accepted by 'yy.yy.148.2:1812' Removing xx.xx.80.5 from web auth list Service 'inet-0' for 'xx.xx.80.5' started Adding xx.xx.80.5 to web auth list # /usr/local/ISG/bin/ISG.pl User IP-address NAT IP-address Port number Uniq. Identifier Durat. Octets-in Octets-out Rate-in Rate-out Service name Flags xx.xx.80.5 0.0.0.0 Virtual1 F43036D9A9D45916 213 16968 16008 0 0 Undefined A root@myhost# /usr/local/ISG/bin/ISG.pl show_services Virtual1 User IP-address NAT IP-address Port number Uniq. Identifier Durat. Octets-in Octets-out Rate-in Rate-out Service name Flags xx.xx.80.5 0.0.0.0 Virtual1 7E1CAB436FBCBE96 216 17220 16260 0 0 inet-0 SOU xx.xx.80.5 0.0.0.0 Virtual1 ADAC7CD2257739D4 0 0 0 0 0 peer-0 SO xx.xx.80.5 0.0.0.0 Virtual1 5FBFC32D170102EC 0 0 0 0 0 local-0 SO В файле: ISGd.pl заменить: if ($ev->{'type'} == ISG::EVENT_SESS_START) { if ($ev->{'flags'} & ISG::IS_APPROVED_SESSION) { web_auth("del", $ipaddr); } else { web_auth("add", $ipaddr); } } на if (($ev->{'flags'} & ISG::IS_SERVICE) == 0 && $ev->{'type'} == ISG::EVENT_SESS_START) { if ($ev->{'flags'} & ISG::IS_APPROVED_SESSION) { web_auth("del", $ipaddr); } else { web_auth("add", $ipaddr); } } После замены: Removing xx.xx.80.5 from web auth listSession 'xx.xx.80.5' on 'Virtual1' accepted by 'yy.yy.148.2:1812' Removing xx.xx.80.5 from web auth list Service 'inet-0' for 'xx.xx.80.5' started 3. Пожелание: прописать для webauth версии зависимости, чтобы само ставило: perl-POE perl-libwww и её зависимости Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...
Ivan_83 Опубликовано 25 января, 2012 · Жалоба Ещё нам нужны маки, потому плиз уберите из патча: @@ -687,9 +750,9 @@ $p->set_attr("NAS-Port", $ev->{'port_number'}); $p->set_attr("NAS-Port-Type", "Virtual"); - if (defined($ev->{'macaddr'})) { - $p->set_vsattr("Cisco", "Cisco-AVPair", "client-mac-address=" . ISG::format_mac($ev->{'macaddr'}, 4)); - } +# if (defined($ev->{'macaddr'})) { +# $p->set_vsattr("Cisco", "Cisco-AVPair", "client-mac-address=" . ISG::format_mac($ev->{'macaddr'}, 4)); +# } if ($code eq "Accounting-Request") { $p->set_attr("Acct-Status-Type", "Start") if ($ev->{'type'} == ISG::EVENT_SESS_START); Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...