Jump to content

Recommended Posts

Posted

После перезагрузки роутера не сработали скрипты из /opt/etc/ndm/netfilter.d. 

И, как мне показалось, они не запускаются в процессе работы когда система пересоздаёт таблицы. 

Добавил logger в скрипт, но пока в журнале пусто. И правила пока на месте. Но ночью правила сбросились и не создались.

Posted

создадим в /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

 

Posted
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

 

Posted

я сейчас на работе, не могу посмотреть, что там в журнале. буду дома - посмотрю и отпишусь обязательно. 

Posted
2 часа назад, vasek00 сказал:

в итоге

Я не уверен, но кажется у меня уже был похожий случай. Если нет ipsec и pingcheck, инет по IPoE, то первоначально скрипт кажется не вызывался, или еще нечто подобное.

Posted
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.

 

Posted (edited)
46 минут назад, vasek00 сказал:

но со стороны клиента та уж что-то должно быть типа

Если UPnP отключен или не запускались приложения, его использующие - не будет

46 минут назад, vasek00 сказал:

имеет место быть отсутствие перезаписи таблицы netfilter

Именно! И если мне не изменяет память, при определенных условиях (как минимум отсутствие ipsec, ping-check и, возможно, upnp) при холодной загрузке какие-то из таблиц ни разу не переписываются с момента старта opkg, пока чего-нибудь не дернется. Как минимум речь о mangle, и возможно nat

Edited by KorDen
Posted

Да все работает. Просто глюк какой-то был, видимо.

Скрипты работают, правила не пропадают.

Posted

Теперь другая беда.

Допустим меняю что-то на странице #security.statics. Скрипт запускается, но правила в таблице не очищаются и, соответственно, дублируются. 

Подскажите как избежать дублирования правил в iptables?

Posted

Вставлете правила с уникальным комментарием, например -m comment --comment unic_marker

Потом в начале скрипта

/opt/sbin/iptables -L -n -t filter | grep -q "unic_marker" && exit 0

 

  • Upvote 1
  • 2 weeks later...
Posted

Это все немного костыльно и "попахивает".

Правильно - заводить свою цепочку в нужное место, ее флашить при каждом запуске скрипта и перезаполнять.

Posted

отличная идея, но:

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

Те же костыли, только с паровым двигателем.

Posted
В 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: 

 

Posted
8 часов назад, Le ecureuil сказал:

Так "нулевым пунктом" можно сделать ее удаление.

А так, начиная с 2.11...

 

Нельзя удалить цепочку если она используется.

У меня пока 2.10

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.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

  • Recently Browsing   0 members

    • No registered users viewing this page.
×
×
  • Create New...

Important Information

This site uses cookies. By clicking "I accept" or continuing to browse the site, you authorize their use in accordance with the Privacy Policy.