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

ankar84

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

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

  • Посещение

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

    3

Весь контент ankar84

  1. Поспешил, проблема не решена. Команда в cli кажется делает ровно тоже самое, что настройка "Стандарт" в webgui, хотя мне думалось, что через cli делается что-то более низкоуровневое, нежели то, что можно выбрать в вебе. Итого при вот таких настройках: Веб Конфиг Различное ПО для сканирования радиоэфира все равно видит, что точка поддерживает 802.11b Acrylic WiFi Professional (ставит 0 звезд из 5 за поддержку старых протоколов) inSSIder Вопрос: как полностью отключить поддержку 802.11b и 802.11g на роутере KN-1010? @ndm и @Le ecureuil просьба обратить внимание. PS Попробовал на Keenetic Ultra которая на 2.13 - результат тот же
  2. Слово "only" я написал от себя, подчеркивая, что выбран режим 802.11n и никаких b/g. Кроме того, такое определение я встречал в упомянутой мной в первом сообщении статье. Не понимаю, чем вам не нравится мой вопрос. Суть его как раз и заключается в том, что в вебе выбран режим 802.11n, но роутер все равно посылает 802.11b data rates (несмотря на выбранную настройку). Вопрос был: где еще отключить 802.11b, если оно уже отключено в вебе, но все равно отправляет пакеты устаревшего стандарта. В чате мне посоветовали команду в cli, которой я и воспользовался. А вы предлагаете конфиг руками править и в роутер загружать? Или что имеется ввиду? ИМХО, комнда в cli куда более правильное решение. Перечитал ваше сообщение и пришел к мысли, что вы прочли мое первое сообщение со строки "Точка на 2.4Ггц настроена на работу в режиме 802.11n only", а ведь чуть выше были очень важные детали.
  3. Кажется решилось через cli interface WifiMaster0 compatibility N system configuration save Спасибо @Александр Рыжов
  4. Доброго дня! Все еще мучаюсь с зависаниями во время просмотра видео историй в Инстаграме на своем Keenetic Giga и решил промониторить 2.4Ггц радиоэфир с помощью приложения inSSIder inSSIder в аналитике показал одно предупреждение Так же это рекомендуется в статье Wi-Fi: неочевидные нюансы (на примере домашней сети) Точка на 2.4Ггц настроена на работу в режиме 802.11n only Как отключить 802.11b data rates на Keenetic Giga (KN-1010)?
  5. В IPv6 совсем новичек, но теперь в этом виде адресов немного разобрался.
  6. Кажется настроил. Суть проблемы была в описана вот тут и заключалась она в корректном добавлении link-local IPv6 адреса с указанием его scope. Задал адреса, на которых должен слушать dnscrypt-proxy2 вот так: Теперь он слушает вот так: И работает вот так: Итого, в локальном IPv6 адресе не хватало указания scope через знак % (в данном случае scope это ID интерфейса - br0)
  7. Не дает так добавить: А когда пытался "повешать" dnscrypt-proxy2 на IPv6 link-local адрес, получал ошибку: Тогда тему можно перенести в соответствующий раздел. Хотя немного странно, почему многие ключевые параметры DHCPv4 настраиваются через webgui, а вот параметры DHCPv6 выдаются без настройки.
  8. Keenetic Giga KN-1010 на 2.12.C.1.0-3 Настроил себе подключение IPv6 через IPv4 (6in4) через Hurricane Electric На клиенте с Windows 7 включил в подключении протокол IPv6, вот сетевые настройки. Желтым выделил, то что клиент получил по DHCPv6, но что я не могу настроить. Как видно, в качестве основного шлюза и DNS сервера IPv6 клиент получил адрес fe80::52ff:20ff:fe00:1f2e%14 По команде ifconfig на роутере вижу, что адрес "inet6 addr: fe80::52ff:20ff:fe00:1f2e/64 Scope:Link" прописан у интерфейсов br0, br1, eth2, eth2.1, eth2.3, eth3, ra0, ra4 А вот интерфейс tun6in4_1 представлен следующими адресами У меня в качестве DNS сервера на роутере в среде Entware работает dnscrypt-proxy2, который слушает на 192.168.1.1:53 и на [::1]:53 Теперь суть проблемы. При запросе разрешения имени на клиенте командой nslookup я получаю ошибку: Притом утилита ping адрес разрешает: Вопрос: как исправить данную ситуацию? Идеально для меня, чтобы отвечал в качестве DNS сервера тот IPv6 адрес роутера, на котором слушает dnscrypt-proxy2 Спасибо!
  9. поддерживаю (плюсанул)
  10. Дополнительно к этому хочется вернуть таблицу текущих подключений примерно в том виде, что была на старом вебе - кто, куда, по какому порту и сколько накачивает. Или к текущей таблице, которая сгруппирована по устройствам в разделе Диагностика добавить количество трафика.
  11. Вчера поставил Entware на свой новый роутер Keenetic Giga (KN-1010) и решил ставить dnscrypt-proxy2 по своей же инструкции. И в процессе у меня появились некоторые замечания\исправления\дополнения, которыми и хочу поделиться. Судя по обновлению в списке серверов его (список) теперь можно прописать с указанием 2 источников (видимо это сделано для отказоустройчивости) [sources.'public-resolvers'] urls = ['https://raw.githubusercontent.com/DNSCrypt/dnscrypt-resolvers/master/v2/public-resolvers.md', 'https://download.dnscrypt.info/resolvers-list/v2/public-resolvers.md'] minisign_key = 'RWQf6LRCGA9i53mlYecO4IzT51TGPpvWucNSCh1CBM0QTaLn73Y7GFO3' cache_file = 'public-resolvers.md' Я как обычно использую серверы OpenNIC, поэтому для себя список серверов задавал вот так: [sources.'opennic'] urls = ['https://raw.githubusercontent.com/DNSCrypt/dnscrypt-resolvers/master/v2/opennic.md', 'https://download.dnscrypt.info/resolvers-list/v2/opennic.md'] minisign_key = 'RWQf6LRCGA9i53mlYecO4IzT51TGPpvWucNSCh1CBM0QTaLn73Y7GFO3' cache_file = 'opennic.md' Судя по отзывам в данной теме, в строчке с созданием файла /opt/etc/ndm/netfilter.d/10-ClientDNS-Redirect.sh одной строкой у меня были допущены ошибки (которые, вероятно исправил @Александр Рыжов добавлением \n в нужных местах - сужу по дате редактирования поста) Но вот с чем столкнулся вчера сам - при копировании из инструкции команды chmod +x /opt/etc/ndm/netfilter.d/10-ClientDNS-Redirect.sh в консоль ssh она вставлялась с лишними знаками ? в некоторых местах, например, у меня точно было chmod +x /opt/e?tc/ndm/netfilter.d/10-ClientDNS-Redirect.sh по этому команда завершалась ошибкой о том, что такой файл не найден. Будьте внимательны! Теперь ключевой момент, которого не хватает в моей инструкции - куда и как нужно прописать адрес на котором слушает dnscrypt-proxy2, чтобы и клиенты домашней локальной сети и сам роутер использовал его в качестве DNS сервера. Начнем с клиентов. Прописать нужно DNS сервер в настройках DHCP сервера на странице Мои сети и Wi-Fi - Домашняя сеть. После этого, при подключении клиенты будут явно получать адрес, на адрес на котором слушает dnscrypt-proxy2 (в моем случае это 192.168.1.1, как и у многих других пользователей) в качестве своего единственного DNS сервера. Хотя смартфоны на Android все равно будут пытаться посылать DNS запросы еще и на 8.8.8.8 параллельно с сервером, прописанным в сетевых настройках. Теперь настроим сам роутер. В моем случае подключение к провайдеру выполняется просто по MAC адресу, поэтому идем в настройки соединения в разделе Интернет Проводной. Там будет ссылка Дополнительные настройки IPoE, нажимаем ее и вписываем адрес, на адрес на котором слушает dnscrypt-proxy2 (у меня это 192.168.1.1) в поле DNS 1 Для других типов подключения, вероятно, прописать DNS сервер нужно будет в другом месте, но обычно именно там, где и настраивается провайдерское подключение. Так же совсем не раскрытой осталась тема генерации списка блокируемых рекламных хостов\адресов. Самостоятельно со скриптом и вспомогательными файлами можно ознакомиться вот тут Основное - необходимо вручную (или по крону, например, раз в неделю) запускать скрипт generate-domains-blacklist.py (для его работы нужен python) Установить python можно следующей командой (возможно можно обойтись и более урезанной установкой, например, возможно хватит пакета python-base или python-light. Я это не проверял) opkg install python Мне еще пришлось установить ca-certificates. Без них файлы с хостами не скачивались с HTTPS источников выдавая ошибку SSL opkg install ca-certificates Как запускать скрипт генерации описано в нем самом: python generate-domains-blacklist.py > list.txt.tmp && mv -f list.txt.tmp list Я рекомендую запускать его с параметром "-i" или в полной версии "--ignore-retrieval-failure" дабы избежать остановки работы скрипта при ошибке получения данных с одного из серверов (что у меня периодически случалось). Тогда команда будет вот такой: python generate-domains-blacklist.py -i > list.txt.tmp && mv -f list.txt.tmp list Как делать это периодически (по крону) я описал в первоначальной инструкции, но на всякий случай напомню и тут: А обновляю этот список еженедельно с помощью cron: Создаем файл скрипта /opt/etc/cron.weekly/generate-blacklist для еженедельного обновления со следующим содержимым: #!/opt/bin/sh cd /opt/etc/dnscrypt-proxy/generate-domains-blacklists/ python generate-domains-blacklist.py -i > list.txt.tmp && mv -f list.txt.tmp /opt/etc/dnscrypt-proxy/dnscrypt-blacklist-domains.txt rm -f /opt/var/log/*.log /opt/etc/init.d/S09dnscrypt-proxy2 restart И не забываем сделать его исполняемым: chmod +x /opt/etc/cron.weekly/generate-blacklist Можно в принципе логи не зачищать, тогда строчку с rm нужно закомментировать или удалить. В моем случае все файлы отсюда расположены вот тут /opt/etc/dnscrypt-proxy/generate-domains-blacklists/ По итогу вечера опять смог пользоваться своим любимым теплым ламповым торрент трекером в зоне .lib
  12. На 2.12.C.1.0-3 проблема присутствует. Селфтест следует
  13. Сменил роутер на Keenetic Giga (KN-1010) и на v2.13.A.4.0-1 проблема присутствует. Напомню суть проблемы. Webgui не доступен по dns имени keendns, но прекрасно отвечает из внутренней сети по IP адресу 192.168.1.1 Белый IP, проверил 443 порт открыт, 80 порт открыт (проверял на ping.eu) Притом, домен 4 уровня так же не отвечает (отличие от моего первого сообщения). И галочка разрешить доступ из интернета стоит (без нее пускало только из периметра локальной сети) Селф тест в следующем скрытом сообщении.
  14. Это лучше сделать вот тут через Package Request
  15. Тогда, видимо, лучше оставить все как есть. А кто желает, пусть сжимает самостоятельно.
  16. @zyxmon @Александр Рыжов может быть имеет смысл добавить сжатие сразу в пакет?
  17. Предлагаю ознакомиться с темой, возможно там есть ответ на ваш запрос: От себя добавлю (хотя это есть в моем первом посте) - рекомендую использовать dnscrypt-proxy2 как единственный DNS сервер на роутере и дать ему выбирать самый быстрый из серверов из предложенных ему вами. Именно так поступает, насколько я понял, @vasek00
  18. Как уменьшали, если не секрет?
  19. В итоге полное решение на данный момент это вынесение оповещательной части бота в отдельный сервис (демон). По аналогии создал /opt/bin/bashbotevent.sh: #!/opt/bin/bash tail -f -n 0 /opt/var/log/syslog.log | while read line ; do if [[ $line =~ "ndm: Core::Scgi::Auth: authentication failed for user" ]] ; then /opt/bin/tg_say.sh "$line"; fi done В этот скрипт со временем будут добавлять реакции на нужные мне события. И создал новый /opt/etc/init.d/S52bashbotevent: #!/bin/sh ENABLED=yes PROCS=bashbotevent.sh ARGS="" PREARGS="screen -dmS bashbot.socket" DESC=$PROCS PATH=/opt/sbin:/opt/bin:/opt/usr/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin . /opt/etc/init.d/rc.func Оба сделал исполняемыми chmod +x /opt/bin/bashbotevent.sh chmod +x /opt/etc/init.d/S52bashbotevent И после # /opt/etc/init.d/S52bashbotevent start Бот реагирует и на команды и присылает сообщения о не успешных попытках авторизации.
  20. Мне с помощью телеграм бота хочется реализовать такого помощника, который всегда под рукой, который помогает решать если не повседневные, то наиболее частые задачи. Основное - хочется в моменте получать от бота сообщения, о том, что кто-то успешно или не успешно подключается на WebUI, по FTP или подключается к серверу VPN. В качестве команд, которые нужно отдавать боту наиболее интересна перезагрузка роутера и добавление торрента на закачку через URL на торрент файл. Что уже сделал. # vi /opt/bin/tg_say.sh # chmod +x /opt/bin/tg_say.sh tg_say.sh: #!/opt/bin/bash API_TOKEN='токен моего бота' CHAT_ID='айди моего с ботом чата' if [ -z "$CHAT_ID" ]; then echo 'Please, define CHAT_ID first! See "chat":{"id":xxxxxxx string below:' /opt/bin/wget -qO - https://api.telegram.org/bot$API_TOKEN/getUpdates exit 1 fi MSG="<b>$(hostname)</b>: $@" /opt/bin/wget -q "https://api.telegram.org/bot$API_TOKEN/sendMessage?chat_id=$CHAT_ID&parse_mode=html&text=$MSG" 2>&1 if [ $? -eq 0 ]; then echo 'Message sent successfully.' else echo 'Error while sending message!' exit 1 fi Поправил /opt/etc/init.d/S51bashbot как тут рекомендовали с установкой screen через opkg install screen #!/bin/sh ENABLED=yes PROCS=bashbot.sh ARGS="" PREARGS="screen -dmS bashbot.socket" DESC=$PROCS PATH=/opt/sbin:/opt/bin:/opt/usr/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin . /opt/etc/init.d/rc.func И теперь пробую править bashbot.sh с помощью наработок и советов этой темы: #!/opt/bin/bash TOKEN='токен моего бота' NAMEA='мой логин в телеграм' URL='https://api.telegram.org/bot'$TOKEN MSG_URL=$URL'/sendMessage?chat_id=' UPD_URL=$URL'/getUpdates?offset=' KMSG_URL=$URL'/sendMessage' OFFSET=0 TIMEOUT='&timeout=30' function send_message { res=$(curl --insecure --data-urlencode "text=$2" "$MSG_URL$1&") } function send_keyboard { local text="$1"; shift 1; local keyboard=init OLDIFS=$IFS; IFS=$(echo -en "\"") for f in $*;do [ "$f" != " " ] && local keyboard="$keyboard, [\"$f\"]";done IFS=$OLDIFS; local keyboard=${keyboard/init, /} res=$(curl -s "$KMSG_URL" --header "content-type: multipart/form-data" -F "chat_id=$TARGET" -F "text=$text" -F "reply_markup={\"keyboard\": [$keyboard],\"one_time_keyboard\": true}") } while true; do { res=$(curl --insecure $UPD_URL$OFFSET$TIMEOUT) TARGET=$(echo $res | JSON.sh | egrep '\["result",0,"message","chat","id"\]' | cut -f 2) OFFSET=$(echo $res | JSON.sh | egrep '\["result",0,"update_id"\]' | cut -f 2) MESSAGE=$(echo $res | JSON.sh -s | egrep '\["result",0,"message","text"\]' | cut -f 2 | cut -d '"' -f 2) USER=$(echo $res | JSON.sh | egrep '\["result",0,"message","from","username"\]' | cut -f 2 | cut -d '"' -f 2) [ -z "$MESSAGE" ] || echo "[$(date +%Y.%m.%d_%H:%M:%S)][$USER] $MESSAGE" >> /opt/var/log/bashbot.log OFFSET=$((OFFSET+1)) tail -f с | \ while read line ; do if [[ $line =~ "ndm: Core::Scgi::Auth: authentication failed for user" ]] ; then /opt/bin/tg_say.sh "$line"; fi done if [ $OFFSET != 1 ]; then case $MESSAGE in '/help') send_keyboard "Bot knows commands:" "/help" "/top" "/meminfo" "/cpuinfo" "/uname" "/log";; '/start') msg="Just few commands are implemented. Blame @ryzhov_al if something goes wrong.";; '/top') msg="$(top -n1 | head -n3)";; '/meminfo') msg="$(cat /proc/meminfo)";; '/cpuinfo') msg="$(cat /proc/cpuinfo)";; '/uname') msg="$(uname -a)";; '/log') msg="$(cat /opt/var/log/bashbot.log)";; *) msg=$(ndmq -p "$MESSAGE" -x);; esac [ $USER = $NAMEA ] || send_message "$TARGET" "Sorry. Private bot" [ $USER = $NAMEA ] && send_message "$TARGET" "$msg" fi } &>/dev/null; done Но в таком виде сообщения о не успешной авторизиции приходят, но бот не реагирует на посылаемые ему команды. Я не очень понимаю, где мне брать журнал "реального времени". То есть для сбора логов у меня в Entware установлен syslog-ng, который собирает все логи и пишет их в файл (/opt/var/log/syslog.log) но в этом случае получается, что стоит мне перезапустить бота и он тут же высыпет мне россыпь сообщений о неудачной авторизации в WebUI (мои предыдущие тесты). А мне хочется, что бы бот начал смотреть "живой" лог роутера и парсил его на лету. Файлов в /var/log/ у меня нет. В общем, сейчас 2 проблемы - совместить в одном скрипте бота ответы на мои запросы и понять как парсить живой лог роутера. UPD: Кажется первая проблема решена с помощью параметра -n 0 команды tail. Теперь бот реагирует только на актуальные события, которые произошли после его запуска, а не на все, что нашел в логе. То есть часть парсера логов теперь выглядит вот так: tail -f -n 0 /opt/var/log/syslog.log | while read line ; do if [[ $line =~ "ndm: Core::Scgi::Auth: authentication failed for user" ]] ; then /opt/bin/tg_say.sh "$line"; fi done
  21. С моим листом в около 2 Мб потребление RAM побольше. На текущий момент смотрю - 35% (90/256 Мб) Все верно, именно поэтому и увеличил размер кэша. Домашние в основном в инстаграмчиках сидят и прочих тайм-киллерах, так что их адреса один раз полученные с задержкой в 100 мс из кэша не исчезают (я надеюсь). Лично я не писал, что он самый быстрый. А то, что он последние пару месяцев популярный, имхо, с этим сложно спорить. Проект только запустили, об этом трубили многие профильные и не очень издания, красивый адрес опять же. Но тут суть вообще в том, что fallback_resolver используется при очень определенных условиях и не слишком часто, а именно только для разрешения адреса со списком dnscrypt серверов в случае, если системный резолвер не доступен или отключен. Так что можно оставить сервер Quad9 DNS.
  22. Данная тема создана по следам инструкций по использованию предыдущих версий первой ветки замечательного приложения dnscrypt-proxy, которое автор вернул к плотной разработке, правда, сменив язык на Go. Для начала рекомендую ознакомиться со статьями о первой версии приложения: Установка Замена основного DNS резолвера прошивки резолвером dnscrypt-proxy2 Настройка клиентов на использование dnscrypt-proxy2 в качестве DNS сервера Хранение файлов DNSCrypt и некоторые советы по конфигурации Блокировка рекламы Добавляем возможность разрешать домены в зоне *.lib Перехват всех DNS запросов на роутере. "Приземление" DNS трафика Диагностика проблем с запуском\работой. Опять же все ограничения, которые касались использования первой версии dnscrypt-proxy справедливы и для второй, ссылки на инструкции я приложил выше. Это моя первая инструкция в этом разделе, так что сильно не пинать, а конструктивная критика крайне приветствуется. Если есть, что нужно подправить\доработать - пишите, вместе сделаем использование данного пакета проще и эффективнее. Изменения шапки. В итоге: Защитили весь свой DNS трафик от перехвата со стороны провайдера и Гугла Заблокировали рекламу на всех устройствах домашней сети (это наиболее актуально для всяких Смарт ТВ и других девайсов не нет возможности блокировать рекламу на самом устройстве) Получили разрешение имен *.lib и других, чем немного упростили себе жизнь в все более блокируемом интернете
  23. Прошу прощения, но скорее всего второй селф получился не по проблеме, а из-за моих экспериментов по оптимизации переадресации портов и правил межсетевого экрана. Когда поднял на роутеле L2TP\IPSec сервер, то сделал и проброс 500UDP+4500UDP и их же разрешил в межсетевом экране. А потом выяснилось, что эти правила и пробросы автоматически создаются при включении компонента L2TP\IPSec сервер. Поэтому я удалил в итоге все свои правила в межсетевом экране (а их было около 10). 4 правила помогли мне удалить на канале в телеграме. Эти правила были для Андроид устройств в сети и то, что они все запросы дублировали на 8.8.8.8. В итоге в OPKG сделал правило перенапраления всех запросов на 53 порт на DNS сервер роутера, коим у меня служит dnscrypt-proxy2. Так вот. Осталось 2 правила проброса - для FTP и HTTPS, которые я вчера и отключил (через WEB по HTTPS) и благополучно забыл про это. А сегодня проверил удаленно FTP - не работает, включил оба правила - заработал FTP и доступ по HTTPS на внешний адрес по KeenDNS имени. Так что селф тест в проблемном состоянии все еще собираю. П.С, Кстати, где можно взять инфо какие правила проброса портов и межсетевого экрана прописываются автоматически про включении того или иного компонента, а какие необходимо включать вручную?
  24. В следующем посте будет селф в моменте с недоступным по внешнему адресу вебом. Есть мысль, что проблема случается при закачке трансмишеном. Пока не качаешь, работает стабильно. Сегодня поставил один файл на закачку, словил проблему. Хотя может просто совпало.
  25. С помощью приложения поставил режим точки доступа и после перезагрузки общие настройки отображаются нормально. Поэтому собрал Селф тест, но так как был ребут, веб интерфейс по внешнему имени сейчас работает. В общем, в следующем посте будет селф при рабочем состоянии.
×
×
  • Создать...

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

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