slava.trifonov Posted December 24, 2017 Share Posted December 24, 2017 После перезагрузки роутера не сработали скрипты из /opt/etc/ndm/netfilter.d. И, как мне показалось, они не запускаются в процессе работы когда система пересоздаёт таблицы. Добавил logger в скрипт, но пока в журнале пусто. И правила пока на месте. Но ночью правила сбросились и не создались. Quote Link to comment Share on other sites More sharing options...
vasek00 Posted December 24, 2017 Share Posted December 24, 2017 создадим в /opt/etc/ndm/netfilter.d скрипт start.sh #!/bin/sh date >> /opt/tmp/table_forward; echo "tables = $table" >> /opt/tmp/table_forward; в итоге Скрытый текст Sun Dec 24 10:32:53 MSK 2017 track --- tables = filter Sun Dec 24 10:32:53 MSK 2017 tables = filter Sun Dec 24 10:32:53 MSK 2017 track --- tables = filter Sun Dec 24 10:33:06 MSK 2017 tables = filter Sun Dec 24 10:33:06 MSK 2017 track --- tables = filter Sun Dec 24 10:33:06 MSK 2017 tables = filter Sun Dec 24 10:33:06 MSK 2017 track --- tables = filter Sun Dec 24 10:35:23 MSK 2017 tables = filter Sun Dec 24 10:35:23 MSK 2017 track --- tables = filter Sun Dec 24 10:35:23 MSK 2017 tables = filter Sun Dec 24 10:35:23 MSK 2017 track --- tables = filter Sun Dec 24 10:38:22 MSK 2017 tables = filter Sun Dec 24 10:38:22 MSK 2017 track --- tables = filter Sun Dec 24 10:38:22 MSK 2017 tables = filter Sun Dec 24 10:38:22 MSK 2017 track --- tables = filter Sun Dec 24 10:40:24 MSK 2017 tables = filter Sun Dec 24 10:40:24 MSK 2017 track --- tables = filter Sun Dec 24 10:40:24 MSK 2017 tables = filter Sun Dec 24 10:40:24 MSK 2017 track --- tables = filter Sun Dec 24 10:42:05 MSK 2017 tables = filter Sun Dec 24 10:42:05 MSK 2017 track --- tables = filter Sun Dec 24 10:42:05 MSK 2017 tables = filter Sun Dec 24 10:42:05 MSK 2017 track --- tables = filter Sun Dec 24 10:44:24 MSK 2017 tables = filter Sun Dec 24 10:44:24 MSK 2017 track --- tables = filter Sun Dec 24 10:44:24 MSK 2017 tables = filter Sun Dec 24 10:44:24 MSK 2017 track --- tables = filter Sun Dec 24 10:50:43 MSK 2017 tables = filter Sun Dec 24 10:50:43 MSK 2017 track --- tables = filter Sun Dec 24 10:50:43 MSK 2017 tables = filter Sun Dec 24 10:50:43 MSK 2017 track --- tables = filter Sun Dec 24 10:59:00 MSK 2017 tables = filter Sun Dec 24 10:59:00 MSK 2017 track --- tables = filter Sun Dec 24 10:59:00 MSK 2017 tables = nat Sun Dec 24 10:59:00 MSK 2017 track --- tables = nat Sun Dec 24 10:59:00 MSK 2017 tables = filter Sun Dec 24 10:59:00 MSK 2017 track --- tables = filter Sun Dec 24 10:59:00 MSK 2017 tables = nat Sun Dec 24 10:59:00 MSK 2017 track --- tables = nat Sun Dec 24 11:00:07 MSK 2017 tables = filter Sun Dec 24 11:00:07 MSK 2017 track --- tables = filter Sun Dec 24 11:00:07 MSK 2017 tables = filter Sun Dec 24 11:00:07 MSK 2017 track --- tables = filter Sun Dec 24 11:01:57 MSK 2017 tables = filter Sun Dec 24 11:01:57 MSK 2017 track --- tables = filter Sun Dec 24 11:01:57 MSK 2017 tables = filter Sun Dec 24 11:01:57 MSK 2017 track --- tables = filter Sun Dec 24 11:06:28 MSK 2017 tables = filter Sun Dec 24 11:06:28 MSK 2017 track --- tables = filter Sun Dec 24 11:06:28 MSK 2017 tables = filter Sun Dec 24 11:06:28 MSK 2017 track --- tables = filter Sun Dec 24 11:28:40 MSK 2017 tables = filter Sun Dec 24 11:28:40 MSK 2017 track --- tables = filter Sun Dec 24 11:28:40 MSK 2017 tables = filter Sun Dec 24 11:28:40 MSK 2017 track --- tables = filter Sun Dec 24 11:30:32 MSK 2017 tables = filter Sun Dec 24 11:30:32 MSK 2017 track --- tables = filter Sun Dec 24 11:30:32 MSK 2017 tables = filter Sun Dec 24 11:30:32 MSK 2017 track --- tables = filter Sun Dec 24 12:01:07 MSK 2017 tables = filter Sun Dec 24 12:01:07 MSK 2017 track --- tables = filter Sun Dec 24 12:01:07 MSK 2017 tables = filter Sun Dec 24 12:01:07 MSK 2017 track --- tables = filter Sun Dec 24 12:01:13 MSK 2017 tables = filter Sun Dec 24 12:01:13 MSK 2017 track --- tables = filter Sun Dec 24 12:01:13 MSK 2017 tables = filter Sun Dec 24 12:01:13 MSK 2017 track --- tables = filter Sun Dec 24 12:07:38 MSK 2017 tables = filter Sun Dec 24 12:07:38 MSK 2017 track --- tables = filter Sun Dec 24 12:07:38 MSK 2017 tables = filter Sun Dec 24 12:07:38 MSK 2017 track --- tables = filter Sun Dec 24 12:07:58 MSK 2017 tables = filter Sun Dec 24 12:07:58 MSK 2017 track --- tables = filter Sun Dec 24 12:07:58 MSK 2017 tables = filter Sun Dec 24 12:07:58 MSK 2017 track --- tables = filter Sun Dec 24 12:15:09 MSK 2017 tables = filter Sun Dec 24 12:15:09 MSK 2017 track --- tables = filter Sun Dec 24 12:15:09 MSK 2017 tables = filter Sun Dec 24 12:15:09 MSK 2017 track --- tables = filter Sun Dec 24 12:44:29 MSK 2017 tables = filter Sun Dec 24 12:44:29 MSK 2017 track --- tables = filter Sun Dec 24 12:44:29 MSK 2017 tables = filter Sun Dec 24 12:44:29 MSK 2017 track --- tables = filter Quote Link to comment Share on other sites More sharing options...
slava.trifonov Posted December 24, 2017 Author Share Posted December 24, 2017 это да, но у меня фильтр на таблицу nat Quote Link to comment Share on other sites More sharing options...
vasek00 Posted December 24, 2017 Share Posted December 24, 2017 2 минуты назад, slava.trifonov сказал: это да, но у меня фильтр на таблицу nat Цитата Sun Dec 24 10:59:00 MSK 2017 track --- tables = filter Sun Dec 24 10:59:00 MSK 2017 tables = nat Sun Dec 24 10:59:00 MSK 2017 track --- tables = nat Sun Dec 24 11:00:07 MSK 2017 tables = filter Quote Link to comment Share on other sites More sharing options...
slava.trifonov Posted December 24, 2017 Author Share Posted December 24, 2017 я сейчас на работе, не могу посмотреть, что там в журнале. буду дома - посмотрю и отпишусь обязательно. Quote Link to comment Share on other sites More sharing options...
KorDen Posted December 24, 2017 Share Posted December 24, 2017 2 часа назад, vasek00 сказал: в итоге Я не уверен, но кажется у меня уже был похожий случай. Если нет ipsec и pingcheck, инет по IPoE, то первоначально скрипт кажется не вызывался, или еще нечто подобное. Quote Link to comment Share on other sites More sharing options...
vasek00 Posted December 24, 2017 Share Posted December 24, 2017 1 час назад, KorDen сказал: Я не уверен, но кажется у меня уже был похожий случай. Если нет ipsec и pingcheck, инет по IPoE, то первоначально скрипт кажется не вызывался, или еще нечто подобное. Но ведь Цитата /opt/etc/ndm/netfilter.d scripts are executed when the system rewrites a netfilter table. The netfilter.d hooks can modify the table using iptables netfilter table, such as filter, nat or mangle Т.е. имеет место быть отсутствие перезаписи таблицы netfilter ладно (что сомнительно) но со стороны клиента та уж что-то должно быть типа Цитата Dec 23 11:47:07 ndm: UPnP::Manager: a new nat rule appended. ... Dec 23 11:47:07 ndm: UPnP::Manager: a new filter rule appended. Quote Link to comment Share on other sites More sharing options...
KorDen Posted December 24, 2017 Share Posted December 24, 2017 (edited) 46 минут назад, vasek00 сказал: но со стороны клиента та уж что-то должно быть типа Если UPnP отключен или не запускались приложения, его использующие - не будет 46 минут назад, vasek00 сказал: имеет место быть отсутствие перезаписи таблицы netfilter Именно! И если мне не изменяет память, при определенных условиях (как минимум отсутствие ipsec, ping-check и, возможно, upnp) при холодной загрузке какие-то из таблиц ни разу не переписываются с момента старта opkg, пока чего-нибудь не дернется. Как минимум речь о mangle, и возможно nat Edited December 24, 2017 by KorDen Quote Link to comment Share on other sites More sharing options...
slava.trifonov Posted December 24, 2017 Author Share Posted December 24, 2017 Да все работает. Просто глюк какой-то был, видимо. Скрипты работают, правила не пропадают. Quote Link to comment Share on other sites More sharing options...
slava.trifonov Posted December 24, 2017 Author Share Posted December 24, 2017 Глюк повторился. После перезагрузки роутера скрипты не выполняются при старте. Quote Link to comment Share on other sites More sharing options...
slava.trifonov Posted December 24, 2017 Author Share Posted December 24, 2017 Кстати да. У меня IPoE, и нет ipsec и pingcheck. Придется в init.d добавить скрипт... Quote Link to comment Share on other sites More sharing options...
slava.trifonov Posted December 30, 2017 Author Share Posted December 30, 2017 Теперь другая беда. Допустим меняю что-то на странице #security.statics. Скрипт запускается, но правила в таблице не очищаются и, соответственно, дублируются. Подскажите как избежать дублирования правил в iptables? Quote Link to comment Share on other sites More sharing options...
gaaronk Posted December 30, 2017 Share Posted December 30, 2017 Вставлете правила с уникальным комментарием, например -m comment --comment unic_marker Потом в начале скрипта /opt/sbin/iptables -L -n -t filter | grep -q "unic_marker" && exit 0 1 Quote Link to comment Share on other sites More sharing options...
Le ecureuil Posted January 8, 2018 Share Posted January 8, 2018 Это все немного костыльно и "попахивает". Правильно - заводить свою цепочку в нужное место, ее флашить при каждом запуске скрипта и перезаполнять. Quote Link to comment Share on other sites More sharing options...
slava.trifonov Posted January 11, 2018 Author Share Posted January 11, 2018 отличная идея, но: 1) как мы определим, что наша цепочка уже создана? 2) плюём на пункт 1 и бьём в лоб: iptables -t nat -N _OPKG_NAT 3) очищаем (вдруг она уже существовала): iptables -t nat -F _OPKG_NAT 4) пишем туда свои правила 5) заводим куда надо: iptables -t nat -A PREROUTING -j _OPKG_NAT 6) через какое-то время получаем: iptables -t nat -S PREROUTING ...... -A PREROUTING -j _OPKG_NAT -A PREROUTING -j _OPKG_NAT -A PREROUTING -j _OPKG_NAT -A PREROUTING -j _OPKG_NAT Те же костыли, только с паровым двигателем. Quote Link to comment Share on other sites More sharing options...
Le ecureuil Posted January 15, 2018 Share Posted January 15, 2018 В 1/11/2018 в 22:31, slava.trifonov сказал: отличная идея, но: 1) как мы определим, что наша цепочка уже создана? 2) плюём на пункт 1 и бьём в лоб: iptables -t nat -N _OPKG_NAT 3) очищаем (вдруг она уже существовала): iptables -t nat -F _OPKG_NAT 4) пишем туда свои правила 5) заводим куда надо: iptables -t nat -A PREROUTING -j _OPKG_NAT 6) через какое-то время получаем: iptables -t nat -S PREROUTING ...... -A PREROUTING -j _OPKG_NAT -A PREROUTING -j _OPKG_NAT -A PREROUTING -j _OPKG_NAT -A PREROUTING -j _OPKG_NAT Те же костыли, только с паровым двигателем. Так "нулевым пунктом" можно сделать ее удаление. А так, начиная с 2.11 добавился IPv6, потому теперь нужна проверка не только таблицы, но и версии протокола IP: Quote Link to comment Share on other sites More sharing options...
slava.trifonov Posted January 15, 2018 Author Share Posted January 15, 2018 8 часов назад, Le ecureuil сказал: Так "нулевым пунктом" можно сделать ее удаление. А так, начиная с 2.11... Нельзя удалить цепочку если она используется. У меня пока 2.10 Quote Link to comment Share on other sites More sharing options...
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.