Jump to content

ale_xb

Forum Members
  • Posts

    47
  • Joined

  • Last visited

Posts posted by ale_xb

  1. Да, tor у вас не стартует. Подробности можно поискать в его логе. Могу предположить, что так как вы пытались использовать мосты, значит,  прописывали их в конфиге tor-a и, возможно, где-то что-то сделали неверно, т.е., скорее всего, tor не запускается из-за неверного (ошибки в нем) конфига

  2. В 17.11.2022 в 23:42, krass сказал:

    В будущей keen os 4.0 ? А 3.х уйдет в небытие , так? :?:

    Судя по тому, что уже тестируется 4.0 alfa 5 и в списке есть, например, интересующая меня Ultra II надежда есть!

  3. В 29.06.2022 в 12:00, avn сказал:

    Поэтому был модифицирован скрипт /opt/etc/ndm/ifstatechanged.d/000-fix-Wireguard2.sh

    Я все же не понимаю, как конфиг из web-интерфейса (для ipv4 только) будет соседствовать с конфигом из скрипта. Указанный в скрипте Endpoint engage.cloudflareclient.com разрешается в два адреса ipv6 и ipv4. Скрипт в качестве конфига, судя по всему, прописывает ipv6 адрес. Как только скрипт срабатывает, туннель wireguard в web-интерфейсе сразу падает. Что я неправильно делаю/понимаю?

  4. 16 минут назад, avn сказал:

    Пакет, вроде wireguard-utils.

    Нашел, спасибо. wireguard-tools

    16 минут назад, avn сказал:

    На 3.7.4 ip -6 rule не работает.

    Да, в курсе, буду апгрейдиться до 3.8 в delta, как выйдет.

  5. В 30.06.2022 в 12:00, avn сказал:

    Сутки с редиректами по ipv6. Полет нормальный. Огромное спасибо, товарищи разработчики!!!

    у меня 3.7.4. Насколько понимаю, в этом случае надо просто добавить для ipv6 адрес на интерфейс Wireguard и AllowedIPs в параметры туннеля. Адрес добавляется без проблем, а AllowedIPs нет:

    (config)> interface Wireguard2 wireguard peer <Public Key peer-а> allow-ips ::/0
    Command::Base error[7405602]: address: argument parse error.

    Похоже, в CLI также не предусмотрена установка параметров Wireguard для ipv6, как и в веб интерфейсе. Также я не могу воспользоваться и вашим способом, т.к. у меня нет команды wg. Из какого пакета Entware она?

    Я верно понял вот это ваше замечание "нужен ещё аналог ipv6 nat Wireguard2, например для warp. А иначе с br0 идут реальные ipv6 адреса", что пакеты из туннеля приходят с ipv6 warp-а, а не пира в этом туннеле Wireguard...? Почему так, ведь у вас же прописан маскарадинг

    ip6t POSTROUTING -t nat -o nwg2 -j MASQUERADE

    ?

  6. 36 минут назад, avn сказал:

    Ошибка в документации

    Если я, наконец, правильно Вас понял, то update-dhcp в действительности поддерживается, просто его забыли описать. Ок, спасибо еще раз. Попробую все это доделать на днях.

    И все же последнее

    1. не правильнее ли это делать через файл hosts?
    2. можете, что сказать по полному отказу от ndhcps в пользу dnsmasq, что я мог неверно сделать и мне следует проверить?
  7. Ура, работает. Спасибо! Уточнения:

    1. Требуется установить парсер json:

    opkg install jq

    2.  В строке curl ..... вместо server, вероятно, следует писать address, т.е.

    curl -s http://localhost:79/rci/show/ip/dhcp/bindings 2>/dev/null | jq -r '.lease[] | "address=/" + .name + ".lan/" + .ip' > $dns_dhcp_tmp

    директива server говорит, что для данного домена за разрешением имен следует обращаться на хост с указанным IP, т.е. DNS запрос для, например, xyz.lan будет форвардиться dnsmasq-ом в этом случае на ip этого самого xyz.lan и, разумеется, оставаться безответным - NXDOMAIN. address - тоже не правильный вариант, т.к.  для, например, abc.xyz.lan будет возвращен тот же ip, что и для xyz.lan (см.Доп.вопросы ниже), но  этого в моем случае достаточно.

    3. Пока не доделал/разобрался, как, куда и на какое действие правильно повесить этот скрипт. Займусь попозже.

    Доп.вопросы:

    • А в чем разница, если аналогичным скриптом обновлять файл hosts ? Что лучше/правильнее - hosts или конфиг dnsmasq-а? Вроде, hosts приоритетнее конфига dnsmasq и не будет неоднозначности для abc.xyz.lan/xyz.lan.
    • не понятно, почему аналогичного результата я не смог добиться, когда пытался в качестве DHCP использовать dnsmasq вместо прошивочного ndhcps. Может, это более правильный и простой путь без доп.скриптов, и мне надо только разобраться с конфигом dnsmaq в части его DHCP функционала, аналогичного команде

    ip dhcp pool _WEBADMIN update-dns

    у прошивочного ndhcps Keenetic?

  8. 1 час назад, avn сказал:

    А чем хук не устраивает для локальных адресов, приведенный выше? Для сети домена - разрешают адрес вышестоящий днс сервер.

    Вы об update-dhcp, которого нет? Или я вас не понял. Устроит любой вариант. Мне бы простыми словами понятную инструкцию...

  9. пробовал отключить прошивочный ndhcps и раздавать всё необходимое по DHCP средствами dnsmasq. Работает, но нужного результата я все равно не смог добиться, не хватает понимания настроек dnsmasq.conf, вероятно. Может, кто помочь конкретным конфигом? Повторю задачу (конкретные значения указаны в качестве примера):

    1. Раздать ip адреса в домашней локалке, например, 192.168.0.2-200.

    2. Сообщить вместе с ip адресом:

    • правильную маску /24
    • шлюз по умолчанию 192.168.0.1
    • DNS сервер 192.168.0.1 При необходимости он уже сам либо отвечает за домен домашней локалки, либо форвардит запрос upstream-у по DoT/DoH, либо DNS серверу в рабочей сети, полученному при поднятии соответствующего VPN, с привязкой к ее (рабочей сети) домену work-domain.
    • адрес(а)/имена NTP сервера(ов) - это просто для удобства pool.ntp.org
    • имя домена домашней локалки home

    3. Получить в процессе назначения IP адреса запросившему его хосту в домашней локалке его (хоста) hostname и зарегистрировать данное имя, как hostname.home в базе лиз dnsmasq и/или файле hosts

    В итоге должны успешно разрешаться имена вида xyz и xyz.home для хостов в домашней локалке и abc.work-domain для хостов в рабочей сети, ну и, разумеется, ya.ru, google.ru и все остальное.

    Проблема у меня именно с п.3  😒

  10. В 07.04.2022 в 23:32, ale_xb сказал:

    Аналогичная строка для рабочего DNS сервера у меня тоже есть в dnsmasq.conf :

    server=/my_work_domain.local/10.10.1.2#53

    но теперь она также не работает. И, кстати, что делать, если завтра "прилетят" при поднятии vpn другие адреса рабочего DNS сервера, руками менять их в dnsmasq.conf?

    С этим разобрался. DNS серверы на работе нормально "прилетают" при поднятии VPN и разрешают имена для рабочего домена. Cрабатывала защита от получения ответов апстримов с частными ip адресами из-за вот этой строки в dnsmasq.conf

    stop-dns-rebind

    Пришлось добавить рабочий домен в исключения:

    rebind-domain-ok=/onion/home/my_work_domain.local/

  11. Заметил еще одну странность dnsmasq. Это не совсем по теме, но близко. При попытке ping storage.xxx.local хоста в рабочем домене с хоста в домашней LAN вижу в tcpdump на роутере, что идет попытка разрешения указанного имени. При этом запрос корректно форвардится на рабочие DNS серверы и приходит правильный ответ. Здесь все ожидаемо, вопросов не вызывает.

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

    Apr  9 11:02:07 keenetic dnsmasq[5616]: query[A] storage.xxx.local from 192.168.100.10
    Apr  9 11:02:07 keenetic dnsmasq[5616]: forwarded storage.xxx.local to 10.10.1.2
    Apr  9 11:02:07 keenetic dnsmasq[5616]: forwarded storage.xxx.local to 10.10.1.5
    Apr  9 11:02:07 keenetic dnsmasq[5616]: reply storage.xxx.xxxis 10.10.1.4

    Но, если послать явный запрос на разрешение этого же имени командой nslookup storage.xxx.local, сначала формируется запрос с добавлением доменного суффикса home моей домашней LAN и только затем следует правильный запрос без оного. Если в конце запрашиваемого в nslookup FDQN поставить точку, то суффикс home ожидаемо не добавляется. Я ожидал, что суффикс будет добавляться только для запросов по имени без какого-либо суффикса вовсе. Можно ли добиться именного такого поведения dnsmasq, что надо поправить в его конфиге?

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

    Apr  9 11:02:29 keenetic dnsmasq[5616]: query[A] storage.xxx.local.home from 192.168.100.10
    Apr  9 11:02:29 keenetic dnsmasq[5616]: forwarded storage.xxx.local.home to 127.0.0.1
    Apr  9 11:02:29 keenetic dnsmasq[5616]: forwarded storage.xxx.local.home to 127.0.0.1
    Apr  9 11:02:29 keenetic dnsmasq[5616]: query[A] storage.xxx.local from 192.168.100.10
    Apr  9 11:02:29 keenetic dnsmasq[5616]: cached storage.xxx.local is 10.10.1.4
     

     

  12. Помогите разобраться, пожалуйста. Тему прочитал, но так и не понял, куда обращается сам роутер при разрешении имен с DoT/DoH. У меня настроен DoT на 3 сервера 1.0.0.1, 8.8.4.4, 9.9.9.9 на странице "Интернет-фильтр", других DNS в web-интерфейсе нигде не указано. Также "прилетают" DNS серверы из двух VPN подключений PPTP 192.168.0.1 (домен не важен и не указан, т.к. здесь инфо от этого DNS не использую) и OpenVPN 10.10.1.2, 10.10.1.5 (домен xxx.local). Адрес роутера в домашней локалке (домен home) 192.168.100.1. В web интерфейсе в настройках подключения к провайдеру установлена галочка "Игнорировать DNS". Вместо встроенного ndhcps (53-й его порт "погашен" командой opkg dns-override) настроен dnsmasq. Конфиг вот:

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

    user=nobody
    domain-needed       # Never forward plain names (without a dot or domain part)
    bogus-priv          # Fake reverse lookups for RFC1918 private address ranges,
                        # i.e. never forward addresses in the non-routed address spaces
    no-negcache         # Do NOT cache failed search results
    clear-on-reload     # Clear DNS cache when reloading dnsmasq
    bind-dynamic
    listen-address=192.168.100.1
    listen-address=127.0.0.1
    min-port=4096       # Specify lowest port available for DNS query transmission
    cache-size=1536     # Specify the size of the cache in entries
    expand-hosts        # Expand simple names in /etc/hosts with domain-suffix
    log-async           # Enable async. logging; optionally set queue length
    stop-dns-rebind     # Reject (and log) addresses from upstream nameservers which are in the private ranges
    rebind-localhost-ok # Exempt 127.0.0.0/8 and ::1 from rebinding checks
    rebind-domain-ok=/onion/
    domain=home

    #Настройки обхода блокировок из файла доп.конфига
    conf-file=/opt/etc/unblock.dnsmasq

    #Настройки для доступа к .onion
    server=/onion/127.0.0.1#9053
    ipset=/onion/unblock,unblock6

    #Настройки для доступа к .ххх.local
    server=/ххх.local/10.10.1.2#53    # Add other name servers here, with domain specs if they are for
    server=/ххх.local/10.10.1.5#53    # non-public domains

    #Настройки для использования встроенных в Keenetic DNS-over-TLS или DNS-Over-HTTPS
    no-resolv           # Do NOT read resolv.conf
    server=127.0.0.1#40500
    server=127.0.0.1#40501
    server=127.0.0.1#40502
     

    теперь, что я вижу и вопросы:

    1. В web-интерфейсе (Системный монитор/Подробнее о соединении):

    • DNS-серверы  2a02:2168:208:1::1
    •                            2a02:2168:208:2::1

    Судя, по всему, "Игнорировать DNS" не распространяется на ipv6. Его можно (проверил), отключить командой interface ISP no ipv6 name-servers auto, но, будет ли в таком случае работать bootstrap для DoT/DoH (не выяснил). И, похоже, нет смысла ставить галочку "Игнорировать DNS", верно?

    2. По команде  show ip name-server я вижу все серверы - из п.1, и "прилетевшие по VPN", правда провайдерские ipv6 DNS почему-то указаны, как "Client-eth3", хотя ISP у меня GigabitEthernet1, как у большинства:

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

    show ip name-server

               server:
                  address: 192.168.0.1
                     port:
                   domain:
                   global: 0
                  service: PPTP0
                interface: PPTP0

               server:
                  address: 10.10.1.5
                     port:
                   domain:
                   global: 0
                  service: OpenVPN0
                interface: OpenVPN0

               server:
                  address: 10.10.1.2
                     port:
                   domain:
                   global: 0
                  service: OpenVPN0
                interface: OpenVPN0

               server:
                  address: 2a02:2168:208:1::1
                     port:
                   domain:
                   global: 0
                  service: Ip6::Dhcp::Client-eth3
                interface: GigabitEthernet1

               server:
                  address: 2a02:2168:208:2::1
                     port:
                   domain:
                   global: 0
                  service: Ip6::Dhcp::Client-eth3
                interface: GigabitEthernet1

    3. По команде show dns-proxy я вижу три моих DoT сервера. Здесь почему-то статические записи для устройств в домашней локалке указаны дважды - с и без домена home. Это нормально?

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

    (config)> show dns-proxy

         proxy-status:
                proxy-name: System

              proxy-config:

    rpc_port = 54321
    rpc_ttl = 10000
    rpc_wait = 10000
    timeout = 7000
    proceed = 500
    stat_file = /var/ndnproxymain.stat
    stat_time = 10000
    dns_server = 127.0.0.1:40500 . # 1.0.0.1@cloudflare-dns.com
    dns_server = 127.0.0.1:40501 . # 8.8.4.4@dns.google
    dns_server = 127.0.0.1:40502 . # 9.9.9.9@dns.quad9.net

    static_a = my.keenetic.net 78.47.125.180
    static_a = keenetic.local 192.168.100.1
    static_a = 289b3153dd5a471547d36f6e.keenetic.io 78.47.125.180
    static_a = A50 192.168.100.100
    static_a = A50.home 192.168.100.100
    static_a = M2101K7BNY 192.168.100.240
    static_a = M2101K7BNY.home 192.168.100.240
    static_a = Delta 192.168.100.10
    static_a = Delta.home 192.168.100.10
    padding = on
    norebind_ctl = on
    norebind_ip4net = 10.1.30.1:24
    norebind_ip4net = 192.168.100.1:24
    norebind_ip4net = 255.255.255.255:32
    set-profile-ip 127.0.0.1 0
    set-profile-ip ::1 0
    rpc_only = on

                proxy-stat:

    # ndnproxy statistics file

    Total incoming requests: 13
    Proxy requests sent:     14
    Cache hits ratio:        0.000 (0)
    Memory usage:            3.33K

    DNS Servers

                          Ip   Port  R.Sent  A.Rcvd  NX.Rcvd  Med.Resp  Avg.Resp  Rank
                   127.0.0.1  40500       2       2        0     397ms     202ms     4
                   127.0.0.1  40501       0       0        0       0ms       0ms     2
                   127.0.0.1  40502      12      11        0      43ms      47ms    10

                proxy-safe:


                 proxy-tls:
                   server-tls:
                          address: 1.0.0.1
                             port:
                              sni: cloudflare-dns.com
                             spki:
                        interface:

                   server-tls:
                          address: 8.8.4.4
                             port:
                              sni: dns.google
                             spki:
                        interface:

                   server-tls:
                          address: 9.9.9.9
                             port:
                              sni: dns.quad9.net
                             spki:
                        interface:

         proxy-tls-filters:

    Кстати, попутный вопрос: Как назначаются ранки этим серверам? По выводу так и не ясно. Максимальный - и не у самого быстрого, и не у самого медленного.

    4. Проверяю на роутере, как идет разрешение имен. Почему, если не указать явно DNS сервер, обращение идет к серверу, "прилетевшему" по VPN PPTP ? Возможно, потому, что у меня для этого сервера не указан домен (см.самое начало поста)? Можно ли ему указать абстрактный фейковый в настройках dnsmasq, чтобы к нему не было обращений? Но в любом случае, получается, сам роутер для разрешения имен не использует dns-proxy и соответственно DoT/DoH. Разве так должно быть?

    И подскажите, пожалуйста, как проверить/убедиться с хоста в локалке, что для него разрешение имен идет через dns-proxy, т.е. своего рода трассировку запросов/ответов DNS.

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

    root@keenetic:/opt/etc$ nslookup ya.ru
    Server:    192.168.0.1
    Address 1: 192.168.0.1

    Name:      ya.ru
    Address 1: 2a02:6b8::2:242 ya.ru
    Address 2: 87.250.250.242 ya.ru


    root@keenetic:/opt/etc$ nslookup ya.ru 127.0.0.1
    Server:    127.0.0.1
    Address 1: 127.0.0.1 localhost

    Name:      ya.ru
    Address 1: 2a02:6b8::2:242 ya.ru
    Address 2: 87.250.250.242 ya.ru

    Собственно dns-proxy работает. tcpdump на lo интерфейсе показывает обращения на порты 40500-40502, да и вывод статистики в п.3 это подтверждает.

  13. 3 часа назад, Александр Рыжов сказал:

    @ale_xb, у вас единственная нерешённая задача:

    верно? Пока не понял зачем вас связки MAC-hostname, если надо просто разрешать имена из локальной сети, например, myclient.lan. Достаточно строчки в конфиге dnmasq:

    server=/lan/127.0.0.1#10053

    Вроде я про связки MAC-ов ничего не говорил. Да, требуется просто обычное разрешение имен в домашней и рабочей сети. В домашней (соответствующем ей домене) - для hostname-ов устройств, которые они сами сообщают при получении настроек от DHCP сервера, в рабочей (тоже для своего домена) - согласно тому, что сообщают DNS сервера, полученные при поднятии vpn соединения.

    Указанная строка теоретически должна бы работать, но, как я писал выше, я не обнаружил, что встроенный ndhcps слушает что-то кроме 67 порта после выполнения команды opkg dns-override. Аналогичная строка для рабочего DNS сервера у меня тоже есть в dnsmasq.conf :

    server=/my_work_domain.local/10.10.1.2#53

    но теперь она также не работает. И, кстати, что делать, если завтра "прилетят" при поднятии vpn другие адреса рабочего DNS сервера, руками менять их в dnsmasq.conf?

  14. 1 час назад, Le ecureuil сказал:

    Совсем тупой вариант, но в целом рабочий - это по вызову neighbour.d с action == update_dhcp получать из ndmq список dhcp-лизов через 'show ip dhcp bindings', засовывать в dnsmasq и слать ему сигнал на перечитывание конфига.

    Думал о чем-то подобном, но (для меня точно) это уж как-то слишком сложно, т.к. потребует, вероятно, написание скрипта для обработки вывода show ip dhcp bindings

    Более подходящим представляется путь, указанный vasek00 с учетом сказанного Le ecureuil "127.0.0.1:10053 вроде бы, для своих нужд внутренних". Хотя, я и не вижу, чтобы ndhcps занимался чем-то кроме DHCP после команды opkg dns-override

    root@keenetic:~$ netstat -atunp | grep ndhcp
    udp        0      0 0.0.0.0:67              0.0.0.0:*                           6553/ndhcps
    udp        0      0 0.0.0.0:67              0.0.0.0:*                           6552/ndhcps

    udp        0      0 0.0.0.0:68              0.0.0.0:*                           1130/ndhcpc
    udp        0      0 0.0.0.0:68              0.0.0.0:*                           650/ndhcpc

     

    UPD: ТП заверила, что никаких особых зависимостей других служб от ndhcps нет. Советовали только обратить внимание на обнаружение устройств по WiFi (группа команд ip hostpot), но я пока не сообразил, как это может быть связано. Таким образом, самый простой путь, вероятно, запуск/настройка DHCP на dnsmasq с отключением встроенного командой no service dhcp

  15. 1 час назад, Александр Рыжов сказал:

    Я бы попробовал следующее:

    • назначил основным DNS-сервером dnsmasq,
    • в настройках кинетика прописал локальный домен, например, lan,
    • указал dnsmasq'у разрешать имена домена .lan через прошивочный DNS-сервис.

    -Так и сделано

    - Настроено

    - Чтобы заработал dnsmasq прошивочный DNS отключается специальной командой в CLI KeeneticOS opkg dns-override. Насколько я понял, эта команда просто убирает прослушку 53-го порта прошивочным ndhcps, чтобы не конфликтовать с dnsmasq. Собственно ndhcps в запущенных процессах остается, т.к. он же продолжает работать в качестве DHCP, поэтому и появилаcь мысль из п.3, но каких-либо файлов настроек для ndhcps я не обнаружил, параметры его запуска весьма скудны (для смены порта ничего нет), и даже, где/как на это повлиять я тоже не знаю.

    Если это поможет, добавлю подробностей. Началось вот с этого https://habr.com/ru/post/428992/ При этом используется (там же в комментариях) встроенный в KeeneticOS механизм прокси DNS (для DoT/DoH в частности). Спустя небольшое время, я обнаружил, что у меня перестали разрешаться имена в домашней локалке и рабочей (через openvpn) сети. При этом средствами/командами KeeneticOS я вижу, что встроенный ndhcps успешно регистрирует имена хостов в моей домашней сети при общении с ними по DHCP. Теперь пытаюсь решить проблему, как эту инфо сообщить dnsmasq-у. Если я правильно понял, то, следует как-то разруливать DNS запросы через dns-proxy KeeneticOS (есть подозрение, что он работает/настраивается, к сожалению, только для DoT/DoH) к а) прошивочному ndhcps для домена домашней сети (при этом его надо заставить слушать на отличном от 53 порту), б) к NDS серверам, прилетающим через openvpn для домена рабочей сети, в) к DoT/DoH - для всех остальных. Осталось все это правильно настроить,  если такое возможно 🙂

  16. Требуется организовать совместную работу встроенного в Keenetic DHCP сервера и внешнего (dnsmasq из OPKG/Entware) сервера DNS. Хочется, чтобы узлы в домашней LAN, автоматически получающие ip адресацию по DHCP, также автоматически регистрировали свой hostname в dnsmasq, по которому (hostname с или без добавления домена) к ним можно обращаться в пределах LAN. Использование dnsmaq вместо ndhcps вызвано необходимостью поддержки ipset. Мне видятся 3 возможных варианта решения: 1) dnsmasq мог бы читать данные из dhcpd.lease, но, судя по всему, этот файл не использует ndhcps; 2) полный отказ от ndhcps и раздача ip адресов средствами dnsmasq, но это может серьезно влиять на другие составляющие NDM, которые используют результаты работы ndhcp; 3) использование DNS прокси для перенаправления запросов на разрешение имен в домашней LAN от dnsmasq к ndhcps (как это настроить?). При этом хочется учесть возможные нюансы с дополнительными DNS серверами, получаемыми через VPN подключение, например, к корпоративной сети и используемыми для разрешения имен в рабочей LAN. ТП Keenetic ожидаемо открестилась от вопроса ("мы не поддерживаем пакеты entware"), сообщив только, что следует рассмотреть вариант 2. Я во всем этом не силен, опасаюсь поломать зависимости ndhcps, поэтому обращаюсь за помощью к сообществу.

    У кого-то есть опыт успешной настройки такого сценария?

  17. кто-то может подсказать/разжевать, как правильно настроить доступ к i2p доменам по аналогии с onion? Я не понял, что следует прописывать в качестве маппинга ip адресов, как их выбирать в torrc (параметр VirtualAddrNetworkIPv4/6) и в dnsmasq.conf.

  18. спасибо, т.е. в моем случае все надо делать руками. Возможно, попробую пойти от обратного: сначала установлю asterisk от Keenetic на пустую флэшку, а затем добавлю/донастрою свои пакеты в entware. В общем, подумаю, что для меня будет проще.

    Еще уточните, пожалуйста, если пойти по вашему рецепту, стартовый скрипт запуска asterisk установится или его надо тоже руками копировать и править?

  19. В 12.01.2022 в 11:59, sips сказал:

    В настройках OPKG вашего роутера KN-2710 отключите раздел с файловой системой ....

    У меня уже установлен entware и в нем несколько пакетов (mc, openconnect,...). Сейчас хочу добавить asterisk 18 сборки команды Keenetic. Как мне правильно действовать, чтобы сохранить уже установленные пакеты entaware?

  20. В 17.12.2021 в 10:00, r13 сказал:

    В вашем случае nat/firewall тоже нужно настраивать в еntware

    Оказалось, что не обязательно. Достаточно добавить стандартными средствами Keenetic Cli или проще через web-интерфейс разрешающее правило (спасибо ТП), цитирую: "на Home сегменте достаточно сделать правило вида источник: локальная сеть, назначение: удалённая сеть, протокол: ip, действие: разрешить"

    У меня сразу все заработало. В netfilter правило в моем случае выглядит так (добавляется в таблицу по умолчанию filter, цепочку @Bridge0 )

    root@keenetic:/opt/etc$ iptables -nL @Bridge0
    Chain @Bridge0 (1 references)
    target     prot opt source               destination
    ACCEPT     all  --  192.168.100.0/24     172.27.96.0/20

  21. Заработало. Дело оказалось, действительно в файрволе роутера. После команды no isolate-private доступ к хостам за vpn сервером из моей LAN появился. Мне это не совсем понятно, т.к. в справочнике CLI Keenetic написано, что всем создаваемым новым интерфейсам присваивается public security-level, а трафик из private (Home LAN) в public (tun1) разрешен по умолчанию. Возможно, здесь что-то работает не совсем так, т.к. интерфейс tun1 создан не средствами CLI, а вовсе доп.пакетом из entware и по команде show interface он (tun1) никак не отображается.  Попробовал отключить nat-ирование, т.е. убрать правило маскарадинга, все работает и без него. Странно, мои проверки в предыдущем посте показывали его необходимость. Впрочем, tcpdump на интерфейсе tun1 показал, что icmp request уходят с src=ip tun1, т.е. nat-ирование все же работает и без моего доп.правила. В справочнике CLI keenetic нашел команду ip nat vpn которая включает/выключает nat-ирование для vpn клиентов. Во-первых, не ясно, работает ли эта команда для любых vpn-клиентов или только, встроенных в прошивку или для части из них, во-вторых, не указано ее значение по умолчанию, но, похоже, что "включено". Вот так выглядит цепочка POSTROUTING в таблице nat. Проверил, команда no ip nat vpn удаляет из этой цепочки последнее 4-е правило, но доступ из моей LAN к хостам за vpn-сервером сохраняется и в этом случае:

     # iptables -t nat -nL POSTROUTING  --line-numbers
    Chain POSTROUTING (policy ACCEPT)
    num  target     prot opt source               destination
    1    _NDM_IPSEC_POSTROUTING_NAT  all  --  0.0.0.0/0            0.0.0.0/0
    2    _NDM_SNAT  all  --  0.0.0.0/0            0.0.0.0/0
    3    _NDM_MASQ  all  --  0.0.0.0/0            0.0.0.0/0
    4    MASQUERADE  all  --  0.0.0.0/0            0.0.0.0/0            ndmmark match 0x40/0x40

     

    Я не силен в netfilter/iptables, и несколько десятков цепочек/правил в Keenetic понять (пока) не могу, но все равно придется разбираться, как теперь это (файервол) правильно настроить при поднятом туннеле opennconnect, чтобы не попортить настройки безопасности на роутере. Ну и стартовый скрипт для openconnect добавить, конечно.

  22. Продолжу пока разговор самим с собой. Пробовал ловить трафик на интерфейсах tcpdump-ом. Обнаружил, что пинги с самого роутера ходят до хостов за vpn сервером нормально только с src=ip на tun1. Если попытаться указать src=ip другого интерфейса роутера, например, смотрящим внутрь LAN, echo request уходит с интерфейса tun1 в сторону vpn сервера нормально, но останется без ответа. Если же сначала добавить правило nat-ирования (моё сообщение выше), echo reply начинает приходить нормально и для этого src. Напрашиваются выводы:

    1) nat-ирование нужно, т.к. vpn сервер дропает все, что пришло с "неправильного" интерфейса, т.е. src!=ip tun1; 

    2) при пингах хостов за vpn-сервером с любого хоста из моей LAN видно, что echo request нормально приходит на интерфейс br0, но на tun1 этот запрос не появляется. Вероятно, он дропается файерволом роутера. Надо разбираться с этим и/или, возможно, как уже писал выше с interface security-level . Позже попробую это подкрутить.

×
×
  • Create New...