Перейти к содержанию

Рекомендуемые сообщения

Опубликовано (изменено)

Кто-нибудь знает почему правила в "iptables" пропадают?

Запускаю скрипты - он заполняют "iptables". Делаю "iptables-save" - всё ок:

~ # iptables-save | grep "KVAS2"
:KVAS2_ROUTING_1_POSTROUTING - [0:0]
-A POSTROUTING -j KVAS2_ROUTING_1_POSTROUTING
-A KVAS2_ROUTING_1_POSTROUTING -o nwg1 -j MASQUERADE
:KVAS2_ROUTING_1 - [0:0]
-A PREROUTING -m set --match-set kvas2_1 dst -j KVAS2_ROUTING_1
-A OUTPUT -m set --match-set kvas2_1 dst -j KVAS2_ROUTING_1
-A KVAS2_ROUTING_1 -m set ! --match-set kvas2_1 dst -j RETURN
-A KVAS2_ROUTING_1 -j CONNMARK --restore-mark --nfmask 0xffffffff --ctmask 0xffffffff
-A KVAS2_ROUTING_1 -m mark --mark 0x1 -j RETURN
-A KVAS2_ROUTING_1 -m conntrack --ctstate NEW -j MARK --set-xmark 0x1/0xffffffff
-A KVAS2_ROUTING_1 -j CONNMARK --save-mark --nfmask 0xffffffff --ctmask 0xffffffff

Но стоит буквально самую малость подождать (например воспользоваться созданными правилами / потупить пару минут) и получаю следующее:

~ # iptables-save | grep "KVAS2"
:KVAS2_ROUTING_1_POSTROUTING - [0:0]
-A POSTROUTING -j KVAS2_ROUTING_1_POSTROUTING
-A KVAS2_ROUTING_1_POSTROUTING -o nwg1 -j MASQUERADE

Куда-то пропадает вся цепочка "KVAS2_ROUTING_1". Отдебажил свой код на всякий - он ничего не трогает.

Мистика какая-то... Предполагаю, что сам NDM подтирает "iptables", однако ревёрсить бинарники не особо-то и хочется, чтобы найти виновника.

 

Код для проверки:

CHAIN_PREFIX=KVAS2_
ROUTING_ID=1
IPSET_TABLE=kvas2_1
MARK=1
INTERFACE=nwg1

ipset create ${IPSET_TABLE} hash:ip
iptables -t nat -N ${CHAIN_PREFIX}ROUTING_${ROUTING_ID}_POSTROUTING
iptables -t nat -A ${CHAIN_PREFIX}ROUTING_${ROUTING_ID}_POSTROUTING -o ${INTERFACE} -j MASQUERADE
iptables -t nat -A POSTROUTING -j ${CHAIN_PREFIX}ROUTING_${ROUTING_ID}_POSTROUTING
iptables -t mangle -N ${CHAIN_PREFIX}ROUTING_${ROUTING_ID}
iptables -t mangle -A ${CHAIN_PREFIX}ROUTING_${ROUTING_ID} -m set ! --match-set ${IPSET_TABLE} dst -j RETURN
iptables -t mangle -A ${CHAIN_PREFIX}ROUTING_${ROUTING_ID} -j CONNMARK --restore-mark
iptables -t mangle -A ${CHAIN_PREFIX}ROUTING_${ROUTING_ID} -m mark --mark ${MARK} -j RETURN
iptables -t mangle -A ${CHAIN_PREFIX}ROUTING_${ROUTING_ID} -m conntrack --ctstate NEW -j MARK --set-mark ${MARK}
iptables -t mangle -A ${CHAIN_PREFIX}ROUTING_${ROUTING_ID} -j CONNMARK --save-mark
iptables -t mangle -A PREROUTING -m set --match-set ${IPSET_TABLE} dst -j ${CHAIN_PREFIX}ROUTING_${ROUTING_ID}
iptables -t mangle -A OUTPUT -m set --match-set ${IPSET_TABLE} dst -j ${CHAIN_PREFIX}ROUTING_${ROUTING_ID}

#
# --- Откат изменений ---
#
ipset destroy ${IPSET_TABLE}
iptables -t nat -D POSTROUTING -j ${CHAIN_PREFIX}ROUTING_${ROUTING_ID}_POSTROUTING
iptables -t nat -F ${CHAIN_PREFIX}ROUTING_${ROUTING_ID}_POSTROUTING
iptables -t nat -X ${CHAIN_PREFIX}ROUTING_${ROUTING_ID}_POSTROUTING
iptables -t mangle -D PREROUTING -m set --match-set ${IPSET_TABLE} dst -j ${CHAIN_PREFIX}ROUTING_${ROUTING_ID}
iptables -t mangle -D OUTPUT -m set --match-set ${IPSET_TABLE} dst -j ${CHAIN_PREFIX}ROUTING_${ROUTING_ID}
iptables -t mangle -F ${CHAIN_PREFIX}ROUTING_${ROUTING_ID}
iptables -t mangle -X ${CHAIN_PREFIX}ROUTING_${ROUTING_ID}

 

Изменено пользователем Ponywka
Код для проверки
Опубликовано

Немного поизучав исходники оригинального kvas обнаружил, что там это исправляется с помощью хука "netfilter.d": https://github.com/qzeleza/kvas/blob/3fdbbd1ace7b57b11bf88d8db3882d94a1d6e01c/opt/etc/ndm/netfilter.d/100-vpn-mark

Опять же - печально, ибо я хочу по минимуму привязываться к связке "KeeneticOS + Entware" в своём проекте :(

Присоединяйтесь к обсуждению

Вы можете написать сейчас и зарегистрироваться позже. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.
Примечание: Ваш пост будет проверен модератором, прежде чем станет видимым.

Гость
Ответить в этой теме...

×   Вставлено с форматированием.   Вставить как обычный текст

  Разрешено использовать не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отображать как обычную ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставлять изображения напрямую. Загружайте или вставляйте изображения по ссылке.

  • Последние посетители   0 пользователей онлайн

    • Ни одного зарегистрированного пользователя не просматривает данную страницу
×
×
  • Создать...

Важная информация

На этом сайте используются файлы cookie. Нажимая "Я принимаю" или продолжая просмотр сайта, вы разрешаете их использование: Политика конфиденциальности.