Jump to content
  • 0
Dmitriy Volodin

Из iptables пропадают правила

Question

Решил заняться обходом блокировок у себя на роутере, тем более что сторонний VPN имеется.

Попробовал по этой инструкции: OpenWRT + OpenVPN: точечный обход блокировок (entware есть).

Получилось, но захотелось сделать красивее (чем 8к маршрутов) по другой инструкции: Использование OpenVPN для обхода блокировок.

А вот по ней не получается:

Добавляю правило

iptables -A PREROUTING -t mangle -m set --match-set rublock dst,src -j MARK --set-mark 1

и через несколько секунд оно пропадает - вижу это по двум выводам tracert (с клиентского по отношению к роутеру виндового компа)

1. До пропадания (успешно уходит в 10.72.0.1 - VPN gateway):

C:\!keenetic>tracert 195.82.146.120                   
                                                      
Tracing route to bt.rutracker.org [195.82.146.120]    
over a maximum of 30 hops:                            
                                                      
  1    <1 ms    <1 ms    <1 ms  KEENETIC [192.168.1.1]
  2    46 ms    45 ms    45 ms  10.72.0.1             

2. После пропадания (уходит в ISP):

C:\!keenetic>tracert 195.82.146.120

Tracing route to bt.rutracker.org [195.82.146.120]
over a maximum of 30 hops:

  1    <1 ms    <1 ms    <1 ms  KEENETIC [192.168.1.1]
  2     2 ms     1 ms     1 ms  broadband-90-154-77-226.ip.moscow.rt.ru [90.154.77.226]

Кроме того, по iptables-save | grep rublock тоже видно, что правило пропадает через несколько секунд после добавления.
Что делать?

Прошивка - последняя stable - 2.12.C.1.0-3, на последнем (сегодняшнем) draft всё также.

Сетевой ускоритель отключен. 

Из selftest

    set net.ipv4.ip_forward 1
    set net.ipv4.netfilter.ip_conntrack_fastnat 0

 

Share this post


Link to post
Share on other sites

9 answers to this question

Recommended Posts

  • 0
4 минуты назад, Dmitriy Volodin сказал:

Прошивка - последняя stable - 2.12.C.1.0-3, на последнем (сегодняшнем) draft всё также.

Можно не мучатся с entware и OpenVPN, а настроить правило через web. Инструкция здесь https://rutracker.org/forum/viewtopic.php?t=5381041

Share this post


Link to post
Share on other sites
  • 0
1 минуту назад, Kiborg_Man сказал:

Можно не мучатся с entware и OpenVPN, а настроить правило через web. Инструкция здесь https://rutracker.org/forum/viewtopic.php?t=5381041

Это понятно. Так и было сделано у меня. Но хочется проблему в общем решить, а не только с рутрекером.

Share this post


Link to post
Share on other sites
  • 0
13 минуты назад, Dmitriy Volodin сказал:

Решил заняться обходом блокировок у себя на роутере, тем более что сторонний VPN имеется.

Попробовал по этой инструкции: OpenWRT + OpenVPN: точечный обход блокировок (entware есть).

Получилось, но захотелось сделать красивее (чем 8к маршрутов) по другой инструкции: Использование OpenVPN для обхода блокировок.

А вот по ней не получается:

Добавляю правило


iptables -A PREROUTING -t mangle -m set --match-set rublock dst,src -j MARK --set-mark 1

и через несколько секунд оно пропадает - вижу это по двум выводам tracert (с клиентского по отношению к роутеру виндового компа)

1. До пропадания (успешно уходит в 10.72.0.1 - VPN gateway):


C:\!keenetic>tracert 195.82.146.120                   
                                                      
Tracing route to bt.rutracker.org [195.82.146.120]    
over a maximum of 30 hops:                            
                                                      
  1    <1 ms    <1 ms    <1 ms  KEENETIC [192.168.1.1]
  2    46 ms    45 ms    45 ms  10.72.0.1             

2. После пропадания (уходит в ISP):


C:\!keenetic>tracert 195.82.146.120

Tracing route to bt.rutracker.org [195.82.146.120]
over a maximum of 30 hops:

  1    <1 ms    <1 ms    <1 ms  KEENETIC [192.168.1.1]
  2     2 ms     1 ms     1 ms  broadband-90-154-77-226.ip.moscow.rt.ru [90.154.77.226]

Кроме того, по iptables-save | grep rublock тоже видно, что правило пропадает через несколько секунд после добавления.
Что делать?

Прошивка - последняя stable - 2.12.C.1.0-3, на последнем (сегодняшнем) draft всё также.

Сетевой ускоритель отключен. 

Из selftest


    set net.ipv4.ip_forward 1
    set net.ipv4.netfilter.ip_conntrack_fastnat 0

 

Вам сюда:

и

https://github.com/ndmsystems/packages/wiki/Opkg-Component#ndmnetfilterd

Edited by r13
  • Thanks 1

Share this post


Link to post
Share on other sites
  • 0
16 минут назад, Dmitriy Volodin сказал:

Ну это легко. Т.е. это нормально, что правило пропадает и нужно просто ловить это событие?

да

Share this post


Link to post
Share on other sites
  • 0
В 12.08.2018 в 23:36, r13 сказал:

да

Вопрос в том, как отловить это событие. Я попытался начать разбираться с iptables, но появилась небольшая пачка вопросов:

 

0) _NDM_INPUT пользовательские правила или _NDM_ACL_IN? 
1) Где находится файл с правилами iptables, который пересохраняется? 
2) Если я в цепочки _NDM_INPUT _NDM_FORWARD _NDM_OUTPUT добавлю правила, они так же сотрутся через времяили останутся? 
3) В FORWARD зачем-то дублируется _NDM_ACL_IN и _NDM_ACL_OUT, которые присутствуют в INPUT и OUTPUT 
4) В _NDM_ACL_OUT появляются правила автоматически при ip access-group *_ out, верно? 
5) Основные пользовательские блокирующие правила берутся отсюда: _NDM_ACL_IN all -- 0.0.0.0/0 0.0.0.0/0, но согласно выводу iptables -L, над этим правилом идёт ещё 3 разрешающих правила: 
ACCEPT 2 -- 0.0.0.0/0 0.0.0.0/0 
ACCEPT all -- 0.0.0.0/0 0.0.0.0/0 state RELATED,ESTABLISHED 
ACCEPT all -- 0.0.0.0/0 0.0.0.0/0

Вроде как не должно долетать до _NDM_ACL_IN ни одного пакета, т.к. всё уйдёт в предыдущие ACCEPT?

6) Непонятные дубли, в FORWARD 4 раза повторяется ACCEPT ALL 0 0, а в _NDM_HOTSPOT_FWD 20 раз повторяется RETURN all -- 0.0.0.0/0 0.0.0.0/0

7) Если добавлять правила в _NDM_ACL_IN (@home / @ISP) - они тоже стираться должны?

Share this post


Link to post
Share on other sites
  • 0
В 21.11.2018 в 11:13, eEye сказал:

Вопрос в том, как отловить это событие. Я попытался начать разбираться с iptables, но появилась небольшая пачка вопросов:

 

0) _NDM_INPUT пользовательские правила или _NDM_ACL_IN? 
1) Где находится файл с правилами iptables, который пересохраняется? 
2) Если я в цепочки _NDM_INPUT _NDM_FORWARD _NDM_OUTPUT добавлю правила, они так же сотрутся через времяили останутся? 
3) В FORWARD зачем-то дублируется _NDM_ACL_IN и _NDM_ACL_OUT, которые присутствуют в INPUT и OUTPUT 
4) В _NDM_ACL_OUT появляются правила автоматически при ip access-group *_ out, верно? 
5) Основные пользовательские блокирующие правила берутся отсюда: _NDM_ACL_IN all -- 0.0.0.0/0 0.0.0.0/0, но согласно выводу iptables -L, над этим правилом идёт ещё 3 разрешающих правила: 
ACCEPT 2 -- 0.0.0.0/0 0.0.0.0/0 
ACCEPT all -- 0.0.0.0/0 0.0.0.0/0 state RELATED,ESTABLISHED 
ACCEPT all -- 0.0.0.0/0 0.0.0.0/0

Вроде как не должно долетать до _NDM_ACL_IN ни одного пакета, т.к. всё уйдёт в предыдущие ACCEPT?

6) Непонятные дубли, в FORWARD 4 раза повторяется ACCEPT ALL 0 0, а в _NDM_HOTSPOT_FWD 20 раз повторяется RETURN all -- 0.0.0.0/0 0.0.0.0/0

7) Если добавлять правила в _NDM_ACL_IN (@home / @ISP) - они тоже стираться должны?

Судя по некоторым особенностям у вас старая прошивка. Стоит указать ее, или обновиться до последнего draft.


0 - по смыслу это скорее _NDM_ACL_IN.
1 - его нет.

2 - сотрутся, но при этом будет вызван хук netfilter.d.
3 - так надо.
4 - да.
5 - первое правило это IGMP, второе - это для установленных сессий в conntrack, третье скопировано не полностью - не помню что там. Пройдет только первый пакет каждой сессии.
6 - опять-таки вы видимо смотрите не все.

7 - да.

  • Upvote 1

Share this post


Link to post
Share on other sites
  • 0
15 часов назад, Le ecureuil сказал:

Судя по некоторым особенностям у вас старая прошивка. Стоит указать ее, или обновиться до последнего draft.


0 - по смыслу это скорее _NDM_ACL_IN.
1 - его нет.

2 - сотрутся, но при этом будет вызван хук netfilter.d.
3 - так надо.
4 - да.
5 - первое правило это IGMP, второе - это для установленных сессий в conntrack, третье скопировано не полностью - не помню что там. Пройдет только первый пакет каждой сессии.
6 - опять-таки вы видимо смотрите не все.

7 - да.

Доброе утро. Прошивка последняя. (config)> show version

Скрытый текст

 

          release: 2.14.B.0.0-1
             arch: mips

              ndm:
                exact: 0-ff28eec
                cdate: 7 Nov 2018

              bsp:
                exact: 0-b3475a3
                cdate: 7 Nov 2018

              ndw:
              version: 1.5.15
     manufacturer: ZyXEL
           vendor: ZyXEL
           series: Keenetic series
            model: Keenetic
       hw_version: 85280000-D
            hw_id: ku_rd
           device: Keenetic Ultra II
            class: Internet Center
           region: RU

 

и entware ~ # uname -a
Linux zastavagiga 3.4.113 #1 SMP Wed Nov 7 22:45:51 MSK 2018 mips GNU/Linux

 

Спасибо за Ваши ответы. Получается при любом варианте добавленные правила стираются и нужно смотреть событие.

Куда правильнее добавлять свои правила INPUT/FORWARD/OUTPUT или _NDM_INPUT/_NDM_FORWARD/_NDM_OUTPUT или _NDM_ACL_IN/_NDM_ACL_FORWARD/_NDM_ACL_OUT ?

Почитал соседние темы, где люди свои решения предлагают, там создают в netfilter.d свои файлы с правилами. Возникает вопрос, в какое место (по счёту) попадают правила. Т.е. как понять будут они "выше" тех что создал кинетик или "ниже" ?

 

Share this post


Link to post
Share on other sites
  • 0
5 часов назад, eEye сказал:

Доброе утро. Прошивка последняя. (config)> show version

  Показать содержимое

Спасибо за Ваши ответы. Получается при любом варианте добавленные правила стираются и нужно смотреть событие.

 Куда правильнее добавлять свои правила INPUT/FORWARD/OUTPUT или _NDM_INPUT/_NDM_FORWARD/_NDM_OUTPUT или _NDM_ACL_IN/_NDM_ACL_FORWARD/_NDM_ACL_OUT ?

 Почитал соседние темы, где люди свои решения предлагают, там создают в netfilter.d свои файлы с правилами. Возникает вопрос, в какое место (по счёту) попадают правила. Т.е. как понять будут они "выше" тех что создал кинетик или "ниже" ?

 

Насчет выше и ниже - вы же в iptables можете указать как -A (append), так и -I (insert в начало), так и  -I idx (вставка по индексу). Так что как сами захотите, так и будет.

Правильнее добавлять туда, где ACL. Но это касается только фильтрации. Для остальных случаев надо смотреть и думать.

  • Upvote 1

Share this post


Link to post
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
Answer this question...

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