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

Werld

Участники форума
  • Постов

    468
  • Зарегистрирован

  • Посещение

  • Победитель дней

    6

Сообщения, опубликованные Werld

  1. Посоветую не заниматься ерундой с контейнером, который вы, вероятно, установили с помощью приложения Amn...VPN со смартфона, так как эта штука не задумывалась для каких-то сценариев со сложной маршрутизацией. Предлагаю вернуться к использованию wireguard, вы писали, что туннели работают. Если все-таки wg блокируют, то использовать awg, но без контейнера, а с ядерным модулем. Устанавливается используя короткую инструкцию прямо из их репозитория на гитхаб. Там все не сложно, с нейросетью справитесь. Если на сервере debian 13, то подключая по той инструкции репозиторий, измените https://ppa.launchpadcontent.net/.../ppa/ubuntu focal main на https://ppa.launchpadcontent.net/.../ppa/ubuntu noble main. Кроме того не все пакеты предустанавливаемые по инструкции - существуют для debian13, например, нет software-properties-common - это нормально, ставите что есть, идете дальше. Для debian 12 ничего менять не надо. Для ubuntu инструкция вполне актуальна.
    Все написанное далее должно быть актуально как для wg так и для awg. Рекомендую поднимать wg/awg с помощью wg-quick (соответственно awg-quick), тогда и маршруты нужные добавятся и можно заставить стартовать интерфейс с загрузкой системы (systemctl enable wg-quick@wg0). На сервере у вас будет два интерфейса один для соединения с кинетикомРУ, второй для соединения с кинетикомУЗ.
    Допустим адреса: КинетикРу 10.8.5.2/29-->wg0(10.8.5.1/29)<Сервер>wg1(10.8.5.100/29)<--КинетикУз(10.8.5.101/29). С адресами и масками внимательно, сети не должны пересекаться. На кинетикеРУ  allowed ip = 0.0.0.0/0
    На сервере:
    Интерфейс wg0 (куда подключается кинетикРУ):
    [Interface]
    Address = 10.8.5.1/29
    ListenPort = Порт, который нужно открыть в фаерволе.
    PrivateKey = key1

    [Peer]
    #KeeneticRU
    PublicKey = pubkey_from_KeeneticRU
    AllowedIPs = 10.8.5.2/32
    ---------
    Интерфейс wg1 (куда подключается КинетикУЗ) тут посложнее:
    [Interface]
    Address = 10.8.5.100/29
    ListenPort = Порт, который нужно открыть в фаерволе.
    PrivateKey = key2
    Table = 1000
    PostUp = ip rule add from 10.8.5.2 table 1000
    PreDown = ip rule delete from 10.8.5.2 table 1000

    [Peer]
    #KeeneticUZ
    PublicKey = pubkey_from_KeeneticUZ
    AllowedIPs = 0.0.0.0/0
    ---------
    С таким конфигом wg1 система сама создаст таблицу 1000, поместит в нее маршрут по умолчанию через wg1, А дополнительные правила PostUp добавят правило маршрутизации.

    На кинетикеУЗ убрать галочку использовать для выхода в интернет. На кинетикеУЗ allowed ip = 10.8.5.2/32, 10.8.5.100/32 На кинетикеУЗ оставить правила в межсетевом экране, разрешающие входящие с адреса 10.8.5.2 на интерфейсе wireguard. На кинетикеУЗ добавить нат ip nat WireGuardx. На кинетикеУЗ придется добавить маршрут до 10.8.5.2 через интерфейс Wireguard.

    Описаная схема подразумевает выход для клиентов с КинетикаРУ в интернет за КинетикомУЗ. В обратную сторону идут только ответные пакеты. Выход для клиентов КинетикаУЗ в интернет за КинетикомРУ не предусмотрен. Доступ клиентам КинетикаРУ к домашней сети КинетикаУЗ не предусмотрен.
    Пробуйте. Возможно, что-то забыл упомянуть, так как давно уже такое не настраивал, писал из головы. Особенно касется КинетикаУЗ, возможно что-то для него еще упустил.  

    • Лайк 1
  2. Почему на кинетике адрес  10.77.0.2/32?  Он тогда не имеет маршрута до 10.77.0.2. Проверьте в веб-интерфейсе кинетика пинг до 10.77.0.2. Скорее всего его не будет. Нужно маску сделать 24, раз такую выбрали. И еще на кинетике в узбекистане security-level на интерфейсе wireguard1 какой? Если он Public - надо разрешающие правила в межсетевом экране добавить.

  3. 18 часов назад, pppppppo_98 сказал:

    Какой вариант да

     

    1. Да Peer1.h1=Peer2.h1 и Peer1.h2=Peer2.h2

    или 

    2.Да Peer1.h1=Peer2.h2 и Peer1.h2=Peer2.h1?

    КАк бы заимоисключающие опции...

    Peer1......Peer2
      h1     =      h1
       ≠              ≠
      h2     =     h2
       ≠              ≠
      h3     =      h3
       ≠              ≠
      h4     =     h4

  4. 5 часов назад, DennoN сказал:

    при этом на уровне файловой системы не вижу, что бы эти файлы друг на друга ссылались.

    ls -ilh /tmp/hosts /var/hosts
       1213 -rw-r--r--    1 root     root          34 Jan  1  1970 /tmp/hosts
       1213 -rw-r--r--    1 root     root          34 Jan  1  1970 /var/hosts

    ls -lh /var
    lrwxrwxrwx    1 root     root           4 Jun  6 23:18 /var -> /tmp

    • Спасибо 1
  5. Раз  ipset list bypass выводит список адресов, значит он наполняется.
    Вы можете выполнить ipset flush bypass - это очистит указанный ipset. 
    ip rule выведет правила маршрутизации, где вы должны увидеть вашу таблицу, например:

    ~ # ip rule | grep 1001
    1776:   from all fwmark 0x3e9 lookup 1001

    ip route list table 1001 должен показать наличие маршрута по умолчанию через нужный интерфейс.
    iptables-save | grep bypass должен показать два правила осуществляющие маркировку.
    Если все на месте, то все должно работать.

    • Спасибо 1
  6. 13 минуты назад, GWX DNKNS сказал:

    ДНС порт на 5300 с 5353 "перевесил".

    Наоборот, 5353 лучше не использовать. Диагностировать поэтапно. Проверяете создана ли таблица маршрутизации. Существует ли ipset. Наполняется ли он. На месте ли правила iptables. Естиь ли в созданной таблице маршрутизации маршрут по умолчанию и т.д.

  7. 8 минут назад, Nkllganov53 сказал:

    Гениально! А в скриптах надо что то менять? Номера таблиц?

    Ну да.Оба ipset'a должны существовать. Должно быть две таблицы, с разными номерами. В каждой должен быть маршрут по умолчанию через нужный интерфейс. Трафик для попадания в разные таблицы должен маркироваться разными метками.

  8. 2 часа назад, Nkllganov53 сказал:

    Спасибо за ответ. Но в каком скрипте прописывается 2-ой порт прослушивания? Он же задается в dnsmasq.conf

    В вашем случае просто прописываете все домены на один и тот же адрес и порт dnsmasq'a. А уже в конфиге dnsmasq.conf создаете две строки для двух ipset в каждый свои домены:
    ipset=/ytimg.com/bypass
    ipset=/intel.com/bypass2

  9. 2 часа назад, keenet07 сказал:

    Когда основным подключением является проводной провайдер. А WISP подключен, но висит как резервное подключение. Если добавить статический маршрут к нужному сайту через WISP по IP в меню Маршрутизация, то трафик корректно идёт через него, но вторым хопом там становится 172.20.10.1 (шлюз на ТД) а не 172.20.10.10 (адрес клиента WISP который получает роутер). Нужный сайт открывается.

    Очевидно как-то не правильно вы пишете дефолтный маршрут в таблицу. Определите корректный шлюз по умолчанию для этого интерфейса и скорректируйте скрипт 010-bypass-table.sh Как-то так:
    ip route add default via 172.20.20.1 table 1001

    Либо, как вариант, вы можете использовать частично способ из темы про AdguardHome. Не создавать таблицу и маршрут самостоятельно. А просто создать через веб роутера новую политику, сделать в ней единственным подключением ваш WISP. Роутером будет создана таблица маршрутизации для определенной метки. Вам останется лишь подкорректировать скрипт /opt/etc/ndm/netfilter.d/010-bypass-netfilter.sh , чтобы трафик маркировался меткой нужной для этой таблицы:

    Скрытый текст
    #!/bin/sh
    
    [ "$type" == "ip6tables" ] && exit
    [ "$table" != "mangle" ] && exit
    [ -z "$(ipset --quiet list bypass)" ] && exit
    
    if [ -z "$(iptables-save | grep bypass)" ]; then
         mark_id=`curl -kfsS http://localhost:79/rci/show/ip/policy 2>/dev/null | jq -r '.[] | select(.description == "<Имя полиси>") | .mark'`
         iptables -w -t mangle -A PREROUTING ! -i nwg0 -m conntrack --ctstate NEW -m set --match-set bypass dst -j CONNMARK --set-mark 0x$mark_id
         iptables -w -t mangle -A PREROUTING ! -i nwg0 -m set --match-set bypass dst -j CONNMARK --restore-mark
    fi

     

    • Лайк 1
  10. 17 минут назад, ale_xb сказал:

    Что мне следует проверить/исправить?

    Переехать в /opt/etc/ndm/iflayerchanged.d

    Я использую переменные "${layer}-${level}"

    При включении wg отлавливаю "${layer}-${level}" == "link-running"
    При отключении руками "${layer}-${level}" == "link-disabled"
    Все работает. Если пир отваливается, но сам интерфейс на роутере включен, то переменная level переходит в состояние pending и так и висит. Я это не использую, но может вам пригодится

     

    • Спасибо 2
  11. В 05.08.2024 в 13:19, avn сказал:

    Для тех, кто в теме по dnsmasq и ADH, можете адаптировать под себя обвязку для YT.

    Большое спасибо за готовую к работе обвязку для tpws. Я для себя адаптировал, т.к. не пользуюсь ipv6.

    Как пишет сам автор, tpws, очевидно, не поможет с quic, а т.к. приложение YT для AndroidTV, например, использует его, то для меня это актуально. У того же автора есть nfqws, которая помогает в том числе и с quic. Но с ней есть некоторые сложности на кинетике, я не стал вникать, решил добить работу через tpws.

    В общем-то решение простое, можно заблокировать доступ к udp:443, что не позволит устройствам использовать https3/quic и вынудит их откатиться на обычный https. Правилo сделал максимально точным, чтобы не ломать https3 там где мне не нужно

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

     iptables -w -I _NDM_ACL_IN -i br0 -s 192.168.1.32/28 -p udp --dport 443 -m set --match-set tube dst -j DROP

    Все вроде работает. У меня кн1910, при просмотре очень тяжелого 4k hdr нагрузка на процессор периодически подскакивает

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

    image.thumb.png.87330714d8d9f23229080f445033b9a3.png

     но в среднем нагрузка от несущественной, до едва заметной) 

    • Лайк 1
  12. Возможно кто-то, как и я, использует AdGuardHome в качестве основного днс-резолвера, но установлен он на отдельном устройстве в сети, например на одноплатнике. В таком случае, все равно возможно использование ADGH вместе с кинетиком для выборочного доступа к заданным доменам.
    На кинетике с помощью entware нужно поднять резолвер с возможностью складывать результаты в ipset. Поднимать еще один ADGH, думаю, глупо, так что можно воспользоваться dnsmasq или ipset-dns. ADGH умеет обращаться к апстрим серверам на нестандартный порт, и резолвер на кинетике для этой цели может крутиться на свободном порту не требуя opkg dns-override, а значит оставляя не тронутым прошивочный для, например, работы в других сегментах сети.

    Сам использую dnsmasq с простейшим конфигом, где указано кроме прочего :
     

    port=40
    cache-size=0 #т.к. кеширует сам ADGH
    ipset=/#/bypass
    

     Домены очень удобно указывать прямо в интерфейсе AdGuardHome. Просто как пример:

    image.png.a366d308bb3512a3d69ccd26c96bc86a.png

    Таким образом, на нужный порт роутера, где слушает dnsmasq, отправляются только заданные домены, результаты складываются в ipset. В остальном, все также, как расписано в этой теме, скрипты маркируют трафик и т.д. и т.п.

    Из бонусов то, что прошивочный dns не тронут, ADGH может ссылаться на него для резолва локальных хостов. А в качестве апстрима для dnsmasq, наверное, могут быть указаны прошивочные DoT или DoH.  

    • Лайк 4
  13. Так как "ndm/ifstatechanged.d (obsoleted since 4.0, kept only for backward compatibility)", то, думаю, лишь вопрос времени когда скрипты в этом хуке перестанут работать.

    Теперь предлагается использовать "ndm/iflayerchanged.d (new and primary from 4.0)", соответственно скрипт
     010-bypass-table.sh можно перенести в /opt/etc/ndm/iflayerchanged.d внеся минимальные изменения:
     

    #!/bin/sh
    
    . /opt/etc/bypass.conf
    
    [ "$1" == "hook" ] || exit 0
    [ "$system_name" == "$VPN_NAME" ] || exit 0
    [ ! -z "$(ipset --quiet list bypass)" ] || exit 0
    [ "${layer}-${level}" == "link-running" ] || exit 0
    
    if [ -z "$(ip route list table 1001)" ]; then
        ip route add default dev $system_name table 1001
    fi

     

    • Спасибо 5
    • Лайк 1
  14. 10 часов назад, Gim12 сказал:

    Поэтому и хочу уточнить что за правили и для чего оно?

     

    В статье имеется в виду правило, по типу как на изображении

    wg-fw-s.png

    Но только адрес назначения нужно указать сеть за VPN-Сервером. В рамках статьи имеется в виду сеть 192.168.22.0/24

     image.png.9fcc133b9d22a733c68f35bf9809e111.png

    Такое правило на домашней сети vpn-клиента, по идее, не нужно, так как там не производится изменение security-level WG-интерфейса.

    На vpn-сервере это правило необходимо, т.к. после изменения security-level WG-интерфейса на private, траффик из одного private интерфейса (Домашняя сеть) в другой private интерфейс (WG) блокируется. Подробнее о том из каких в какие что блокируется, а что нет, можно почитать https://help.keenetic.com/hc/ru/articles/360001429839-Как-реализован-межсетевой-экран

    • Лайк 1
  15. 21 минуту назад, AL_O сказал:

    а реализация от кинетик ВИДИМО пока что не отвечает.

    У кинетика реализован SNTP сервер. SNTP основан на NTPv3. Как видно из ваших же скриншотов в захваченных пакетах, то при успешных синхронизациях используется ntp version 3, а при неудачных ntp version 1. Винда умеет в sntp, но при использовании консольной утилиты w32tm, видимо, всегда используется ntp version 1. А если добавить сервер, как ниписал выше @PASPARTU, то винда будет успешно синхронизировать время, видимо перебирая версии ntp.

    • Спасибо 1
  16. 23 часа назад, Amid000 сказал:

    в целом работает, но это какая-то странная схема

    Это не странная схема, а установленная разработчиками логика работы. Для впн-клиентов форвард разрешен только в интерфейсы с признаком ip global (галочка "Использовать для выхода в интернет"), иначе форвард запрещен. Если по какой-то причине не хотите ставить эту галочку, создавайте вручную правила разрешающие нужный вам форвард (делается через cli), примеры как раз в теме по ссылке.

  17. В 20.02.2023 в 01:52, Arata сказал:

    можно ли настроить такую схему на данном Кинетике?

    Да, можно. Такая схема называется Router-on-a-Stick. Отдельной статьи в базе знаний, расписывающей настройки именно такой схемы, нет, но есть статья, из которой вы сможете почерпнуть примеры настройки vlan на кинетике. Ну а остальное - дело техники. Кроме того, можно обратиться в техподдержку. Думаю, они смогут вам помочь с настройкой.

  18. 1 час назад, elfinith сказал:

    Смущает, что в файле self-test имеются вот такие строки:

    == Chain _NDM_STATIC_LOOP ==
    src: 192.168.0.0/24, dst: 192.168.0.0/24, in: "*", out: "br0", proto: "any"; SNAT, address: 192.168.0.1
    src: 192.168.0.0/24, dst: 0.0.0.0/0, in: "*", out: "br0", proto: "any"; "ndmmark" match, value: 0x4/0x4, invert: 0x0; SNAT, address

    Это, насколько я понимаю, nat loopback (hairpin nat). Есть ли возможность его отключать лучше спросить у техподдержки. Но даже если окажется, что такая возможность есть, нужно понимать зачем нужен nat loopback и к чему приведет его отключение.

×
×
  • Создать...

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

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