Jump to content

Александр Рыжов

Moderators
  • Posts

    1,213
  • Joined

  • Last visited

  • Days Won

    25

Posts posted by Александр Рыжов

  1. 3 часа назад, snark сказал:

    У меня вот так , link-no-up-up > connected-yes-up-up

    Похоже из [ "${change}-${connected}-${link}-${up}" == "link-yes-up-up" ] можно выкинуть $change. Поскольку "${connected}-${link}-${up}" == "yes-up-up" и у меня и у вас встречается только один раз и, следственно, однозначно определяет статус интерфейса. Обновлю линк на пакет в первом посте.

    • Thanks 2
  2. 5 часов назад, keenet07 сказал:

    Я имел в виду было бы здорово, так изменить стандартные средства, чтоб на этапе добавления маршрута туда передавался бы и сам домен (чисто для информации), ну и соответственно так же в таблице хранился бы и выводился стандартными средствами.

    По идее можно, у записей в ipset'е предусмотрено поле для комментов.

    1 час назад, snark сказал:

    Приветствую всех, вопрос про 010-bypass-table.sh из пакета, вероятно немоного недогоняю, в упор не могу отловить link-yes-up-up

    У меня вот так , link-no-up-up > connected-yes-up-up

    Проверял на 3.9.х. Перед отловом нужных событий сперва собираю все возможные варианты, положив в нужную папку /opt/etc/ndm/<name it>.d такое:

    #!/bin/sh
    
    LOG='/opt/tmp/hook.log'
    
    echo -e "\n\n--- $(date '+%T') $0 fired ---" >> $LOG
    echo $@ >> $LOG
    set | grep -vE "^'\$|^HOME|^HOSTNAME|^IFS|^LANG|^LD_|^LINENO|^LOG|^NDM_MOUNT|^OPTIND|^PATH|^PPID|^PS|^PWD|^SHELL|^SHLVL|^TERM|^timezone|^USER|^FUNCNAME"  >> $LOG
    
    exit 0

    Во вложении выхлоп скрипта при выключении и повторном включении VPN-соединения.

     

    hook.log

    • Upvote 1
  3. On 5/3/2023 at 8:10 PM, krass said:

    Подскажите,пожалуйста, предложенные вами варианты и что вы использовали лично -- без ограничений?

    Никаких. Лишь бы список выбранных доменов влез на флешку. Хотя такой способ уже трудно будет назвать точечным:)

    On 5/3/2023 at 10:41 PM, keenet07 said:

    1. Если не затруднит подскажите какой командой в entware можно увидеть весь список ip адресов направленных через VPN этой утилитой.

    Посмотрите раздел «Диагностика проблем».

    netfilter c доменами не работает, после того как ipset-dns разрешила очередное доменное имя в IP-адрес(а), способа сопоставить назад эти адреса с исходным доменом нет. Reverse DNS resolving будет не всегда показательным и я бы на него не стал ориентироваться вовсе.

    On 5/3/2023 at 10:41 PM, keenet07 said:

    2. Я так понял утилита резолвит адреса через обычный DNS 8.8.8.8. … Если в конфиге вместо 8.8.8.8 указать 192.168.1.1, то зациклится запрос?

    Вы вольны выбрать любой DNS-сервер для работы утилиты ipset-dns в конфиге /opt/etc/bypass.conf

    Он первым делом добавится в ipset, следственно, обращения к нему будут идти тем же путём, что и к выбранным для выборочного роутинга ресурсам.

    On 5/3/2023 at 10:41 PM, keenet07 said:

    Никак нельзя эти запросы так же через системный безопасный DoH или DoT проводить?

    В принципе, можно, только в общем случае не нужно (см. выше).  В соседних темах можно найти инфу на каких портах работают прошивочные DoH/DoT.

    • Thanks 2
  4. В 27.04.2023 в 17:11, krass сказал:

    Подскажите, пожалуйста, какое другое решение? 

    Что-нибудь основанное на dnsmasq или adguardhome, они так же умеют наполнять ipset по результатам разрешения DNS-имён. Лично я до последнего использовал это

    В 26.04.2023 в 21:26, keenet07 сказал:

    Утилита резолвит домен и хранит в оперативной памяти список полученных IP адресов и создает пользовательские маршруты к ним через настроенный в конфиге VPN. Каждое новое обращение к этому домену может добавлять в этот список новые IP адреса, если у домена их множество.

    Ещё отмечу, если DNS-сервер в ответ присылает сразу несколько A/AAAA-записей, то они заносятся в ipset сразу все.

    6 часов назад, keenet07 сказал:

    Это решение может быть развернуто полностью без подключения внешних носителей для OPKG?

    С лёгкой доработкой это решение может быть развёрнуто на любом кинетике, где USB-накопители вообще не предусмотрены. Дело в том, что нужные хук скрипты работают и там, хоть это нигде не документировано. Именно поэтому в роутерах без USB доступен в компонентах OPKG.

    Другими словами, если вы соберёте прошивку со своими дополнительными компонентами (busybox, iptables, ipset), то оно будет прекрасно себя чувствовать, к примеру, на Keenetic Start.

    6 часов назад, keenet07 сказал:

    Знаю, что можно в память роутера разместить. Есть только один вопрос, при таком варианте работы OPKG и скрипта происходит ли какая-либо дополнительная запись/перезапись в память роутера? Не хочется растрачивать ресурс памяти.

    Никаких логов или динамических конфигов у приведённого решения нет, все файлы статичные. Ни USB-флешку, ни флешку роутера протирать не будут.

    • Thanks 2
    • Upvote 1
  5. В первой прикидке все зависимости менее одного мегабайта, а значит, решение с помощью SDK можно поднять хоть на Keenetic Start. Необходимые для конфигурирования имена VPN-интерфейса и его подсеть можно выуживать, к примеру, по названию соединения.

     

    21 час назад, krass сказал:

    А для моделей  viva( или giga )  и выше можно в дальнейшем увеличить число записей? 

    Если надо больше, то вряд ли стоит это помещать в прошивочный конфиг или WebUI. Я бы использовал другое решение.

    @keenet07, всё так. По вопросам:

    1. Да, всё в памяти. Решение, по сути, три статичных файла обвязки вокруг iptables и ipset.
    2. Ничего. Таблица наполняется адресами, но роутинг ничем не отличается от роутинга по умолчанию.
    3. Прошивка. Глубина бесконечна.
    4. Да. Понимаю, что при высоких аптаймах сет может накапливать лишнее, но при точечном обходе я бы не стал заморачиваться. Если хочется такое реализовать, то создавайте ipset сразу указывая время жизни элементов и ограничивайте TTL записей DNS-кэша в прошивочном сервисе с помощью dns-proxy max-ttl …
    5. Нет. Прошивка не отображает роутинг по таблицам/сетам.
    17 часов назад, avn сказал:

    Я бы еще все маршруты в таблицу прокопировал

    Т.е. маршруты по умолчанию так же окажутся в таблице для отдельного роутинга. Зачем?

    • Thanks 1
    • Upvote 1
  6. 1 час назад, kechvaio сказал:

    Добрый день, подскажите пожалуйста как корректно обновить сабж?

    В новой версии изменился формат конфига. Проще переименовать старый и настроить заново.

    mv /opt/etc/AdGuardHome/AdGuardHome.yaml /opt/etc/AdGuardHome/AdGuardHome.yaml.prev

     

  7. Тоже был вынужден ограничить журнал запросов до 24 часов из-за размера лога, теперь:

    # du -hs /opt/etc/AdGuardHome/data/*
    961.0K  /opt/etc/AdGuardHome/data/filters
    7.5M    /opt/etc/AdGuardHome/data/querylog.json
    29.2M   /opt/etc/AdGuardHome/data/querylog.json.1
    25.0K   /opt/etc/AdGuardHome/data/sessions.db
    185.0K  /opt/etc/AdGuardHome/data/stats.db

     

  8. 14 часа назад, Marat1217 сказал:

    - пока ребенок дома один, нужно в период с 8 до 12 часов дня заблокировать доступ в youtube

    Добавьте в скрипт ниже свои учётные данные для AGH, проверьте список блокируемых сервисов и запускайте из cron с нужным параметром:

    cat ./agh_block_svc.sh 
    #!/bin/sh
    
    # user:pass - учётка для WebUI
    API='http://user:pass@localhost:3000/control'
    # список сервисов для блокировки, возможные варианты в выводе ./agh_block_svc.sh list
    BLOCKED='["youtube","wechat"]'
    
    case $1 in
        block)
    	curl --header 'Content-Type: application/json' --request POST --data-binary "$BLOCKED" $API/blocked_services/set
        ;;
        unblock)
    	curl --header 'Content-Type: application/json' --request POST --data-binary "[]" $API/blocked_services/set
        ;;
        list)
    	curl --silent $API/blocked_services/all |  jq '.blocked_services[].id'
        ;;
        list_blocked)
    	curl --silent $API/blocked_services/list | jq '.[]'
        ;;
        *)
    	echo "Usage: $0 block|unblock|list|list_blocked"
        ;;
    esac

    Для работы придётся установить пакеты curl, jq, cron. Задания для cron попробуйте сделать самостоятельно:)

    • Thanks 2
    • Upvote 4
  9. В 27.03.2020 в 22:57, DennoN сказал:

    Изначально у меня была схема с BGP, настроенная по инструкции https://keenetic-gi.ga/2019/01/22/bgp_routing.html

    Но потом она перестала работать, да и соединение по протоколу wireguard я так и не осилил как добавить в схему работы с BGP

    В случае использования Wireguard'а заменить:

    protocol bgp antifilter {
        import filter {
            if martians() then reject;
            gw = 10.9.0.1; # override route nexthop
            accept;
        };

    на:

    protocol bgp antifilter {
        import filter {
            if martians() then reject;
            ifname = "nwg1"; # override route nexthop
            accept;
        };

     

    Спасибо за решение, изложенное в начале темы. Для чего нужен bird, если не используется BGP?

    • Thanks 1
×
×
  • Create New...