Jump to content

не сработали скрипты netfilter.d


Recommended Posts

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

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

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

Link to comment
Share on other sites

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

 

Link to comment
Share on other sites

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

 

Link to comment
Share on other sites

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

в итоге

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

Link to comment
Share on other sites

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.

 

Link to comment
Share on other sites

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

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

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

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

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

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

Edited by KorDen
Link to comment
Share on other sites

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

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

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

Link to comment
Share on other sites

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

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

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

 

  • Upvote 1
Link to comment
Share on other sites

  • 2 weeks later...

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

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

Link to comment
Share on other sites

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

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

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

Link to comment
Share on other sites

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

 

Link to comment
Share on other sites

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

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

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

 

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

У меня пока 2.10

Link to comment
Share on other sites

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.

 Share

  • Recently Browsing   0 members

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