Jump to content

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

Moderators
  • Posts

    1,089
  • Joined

  • Last visited

  • Days Won

    22

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

  1. Оповещение о подмене MAC-адреса в сети Решение, приведённое ниже отправим вам сообщение, если кто-то в вашей локальной сети пытается подменить свой MAC-адрес. Установите следующие пакеты: opkg install curl arpwatch Проверьте имя сетевого интерфейса в скрипте /opt/etc/init.d/S04arpwatch. Стоящий по умолчанию br0 можно не менять, если собираетесь отслеживать MAC-спуфинг на Wi-Fi интерфейсе. Запустите arpwatch. Он будет стартовать при каждой загрузке роутера сам: /opt/etc/init.d/S04arpwatch start Создайте скрипт /opt/sbin/sendmail со следующим содержимым: #!/bin/sh number=79101112233 api_id=123ab5cb-32b1-cbe7-321e-0f12345fa321 while read line; do [ ! -z "$(echo $line | grep '^Subject')" ] && curl -d "text=$line" http://sms.ru/sms/send\?api_id=$api_id\&to=$number done сделайте его исполняемым: chmod +x /opt/sbin/sendmail Всё! Если кто-то попытается сменить MAC-своего устройства, вы получите оповещение.
  2. Оповещение о смене IP адреса роутера Если вы по какой-то причине не хотите использовать DynDNS, можно получать IP адрес роутера СМС-кой. Установите недостающий пакет: opkg install curl Создайте на роутере файл /opt/etc/ndm/wan.d/010-send.sms.sh со следующим содержимым: #!/bin/sh iface=ppp0 number=79101112233 api_id=123ab5cb-32b1-cbe7-321e-0f12345fa321 [ "$interface" = "$iface" ] && curl -d "text=Новый IP кинетика $address" http://sms.ru/sms/send\?api_id=$api_id\&to=$number в моём случае: ppp0 — имя интерфейса, используемого для выхода в интернет. Если у вас не ppp-соединение, см. вывод ifconfig, 79101112233 — номер телефона, куда будут приходить СМС-ки. Здесь можно использовать только тот же номер, какой был указан при регистарции на sms.ru, 123ab5cb-32b1-cbe7-321e-0f12345fa321 — api_id, которую можно посмотреть\получить в своём профиле сервиса sms.ru. Сделайте скрипт исполняемым: chmod +x /opt/etc/ndm/wan.d/010-send.sms.sh Всё! Теперь при установлении интернет-соединения роутер вышлет вам СМС-кой новый адрес.
  3. Есть возможность отправлять до пяти СМС в сутки на свой телефон, используя сервис SMS.ru. Для отправки СМС с роутера необходимо после регистрации на сервисе получить api_id. Ниже приведена пара примеров использования этой возможности.
  4. Можно организовать чат с роутером, словно вы находитесь в CLI кинетика. Для этого необходимо. Установить необходимые пакеты: opkg install bash curl dtach Скачать bash-скрипт, который будет выполнять функции бота Telegram: curl --output /opt/bin/bashbot.sh --insecure https://raw.githubusercontent.com/ryzhovau/telegram-bot-bash/master/opt/bin/bashbot.sh curl --output /opt/bin/JSON.sh --insecure https://raw.githubusercontent.com/ryzhovau/telegram-bot-bash/master/opt/bin/JSON.sh curl --output /opt/etc/init.d/S51bashbot --insecure https://raw.githubusercontent.com/ryzhovau/telegram-bot-bash/master/opt/etc/init.d/S51bashbot chmod +x /opt/bin/bashbot.sh chmod +x /opt/bin/JSON.sh chmod +x /opt/etc/init.d/S51bashbot Попросить робота @BotFather создать нового бота, в ответ получите токен для его авторизации. Вписать полученный токен между одинарными кавычками в строке TOKEN='' файла /opt/bin/bashbot.sh. Заменить в /opt/bin/bashbot.sh строчку *) msg="$MESSAGE";; на строчку *) msg=$(ndmq -p "$MESSAGE" -x);; Запустить на роутере бота, выполнив /opt/etc/init.d/S51bashbot start. Бот будет автоматически стартовать после перезагрузки роутера. Вопросы безопасности сознательно опускаю. К примеру, вы можете настроить бота так, чтобы он отвечал на сообщения только от определённого пользователя. Все обращению к боту фиксируются в файле /opt/var/log/bashbot.log. Приведённый пример бота — просто баловство, proof of concept. Если пожелаете, вы можете найти ему более серьёзное применение.
  5. В Entware есть пакет davfs2, который другие пользователи успешно используют для представления Я.Диска как локальной файловой системы, позже наш пакет вошёл в состав фида OpenWrt.Перед тем как его использовать, необходимо попросить авторов прошивки обнародовать ядерный модуль fuse.ko.
  6. Для этого понадобится два устройства: одно с USB для формирования конфига, другое — целевое. Кроме того, в скрипте подставляется текущий ip-адрес устройства, который может не совпасть с тем, что будет на системе назначения.По-моему, это трудно назвать удобным. Мягко говоря.
  7. Если бы выполнялись хуки на определённые события, то много для чего можно использовать. # find /jffs/ -type f /jffs/bin/stbup /jffs/data/blocked-tor-nodes.lst /jffs/data/prev_ip.txt /jffs/data/fake-hwclock.data /jffs/configs/dnsmasq.conf.add /jffs/scripts/ddns-start /jffs/scripts/wan-start /jffs/scripts/init-start /jffs/scripts/post-mount /jffs/scripts/firewall-start /jffs/scripts/services-stop /jffs/scripts/mail.sh /jffs/scripts/pre-mount /jffs/scripts/fake-hwclock Например, ничего бы не мешало бы поместить в JFFS доп.бинарник, слинкованный с прошивочными биб-ками, если бы логика прошивки умела его запускать при старте. Не понадобилось бы при этом занимать USB-порт.
  8. Подскажите по JFFS2-разделу в составе прошивки: ~ # df -h Filesystem Size Used Available Use% Mounted on … /dev/mtdblock/7 512.0K 196.0K 316.0K 38% /storage Файлы, помещённые в /storage переживают reboot. Можно ли использовать /storage в своих целях? Чем заняты 38% раздела (см. вывод df выше)? Этот раздел есть у всех моделей кинетиков с поддержкой USB-принтеров?
  9. Лучше ещё раз спрошу, будет ли вызов /opt/etc/ndm/wan.d/, если подключение к интернету случится ДО монтирования /opt?
  10. Не вижу в пакетах keenopt ни curl, ни wget. А wget из состава Busybox не умеет HTTPS, поэтому с гитхаба ничего не скачает.
  11. При этом хорошо бы (хоть и не принципиально), чтобы номера GPIO не гуляли от модели к модели, а были определены через текстовые метки.
  12. В доках есть упоминание соответствующей команды: interface usb power-cycle Но в Omni II она не опознаётся. Наличие аппаратного ключа для управления USB-питанием одна из сильных сторон кинетика, особенно для самоделкиных Может есть какой-то другой способ, вроде echo 1 > /sys/class/gpio/gpio0/value ?
  13. Приведённый ниже скрипт блокирует те же домены, что и утилита Destroy Windows 10 Spying на уровне маршрутизатора. Придётся установить curl: opkg install ndmq curl Поместите в файл (например, dws.sh) приведённое ниже содержимое: #!/bin/sh lan_ip=$(ndmq -p 'show interface Bridge0' -P address) hosts=$(curl --silent --insecure https://raw.githubusercontent.com/Nummer/Destroy-Windows-10-Spying/master/DWS/MainDwsForm.cs | \ awk ' /^ private void AddToHostsAndFirewall/ { skip=1; } /^ var hostslocation/ { skip=0; } skip { print; } ' | \ grep '\,$' | \ cut -d \" -f 2 | \ grep -v 'msn.com') for host in $hosts; do ndmq -p "ip host $host $lan_ip" -P response done ndmq -p 'system configuration save' -P message и запустите его на выполнение: sh ./dws.sh Хосты, используемые для сбора информации в Windows 10 будут заблокированы на уровне маршрутизатора.
  14. Кто-нибудь пробовал использовать пакеты на маковской файловой системе? Если да, то приведите вывод команды mount, хочу добавить HFS+ в список разрешённых файловых систем для Entware.
  15. На U2 гонял уставщик до Нового года. system failed [0xcffd0165]. Таких сообщений ни разу не видел. Отформатируйте носитель утилитой EaseUS Partition Master.
  16. Коллбеки — это те скрипты, что живут в /opt/etc/ndm/*.d ? Всё логично. Скрипт дальнейшую логику прошивки не блокирует, поэтому всё в порядке. Спасибо за разъяснение, теперь я понял почему прошивка убивала скрипт через восемь секунд при генерации SSH-ключей прямо из инсталлятора. Просто в этот момент не надо быть молчуном.
  17. В качестве временного решения могу предложить следующую CLI-команду: (config)> show usb usb: device: name: ca4bdf4c-3daf-b9ea-1d1e-8098445901c5: label: STORAGE DEVPATH: /devices/platform/rt3xxx-ehci/usb1/1-1/1- 1:1.0/host14/target14:0:0/14:0:0:0/block/sda/sda1 subsystem: storage port: 1 power-control: yes В случае использования нескольких разделов она поможет сопоставить метки раздела и UUID.
  18. Ограничение времени исполнения на стартовые скрипты не действует? Добавил в инсталляционный пакет скрипт-затычку: $ cat ./doinstall #!/bin/sh i=0 while true; do echo "My life lasts $i seconds" i=`expr $i + 1` sleep 1 done И смотрю в лог кинетика: [i] Jan 11 13:36:23 npkg: inflating "installer-entware.tar.gz". [i] Jan 11 16:36:29 ndm: Opkg::Manager: /tmp/mnt/STORAGE initialized. [E] Jan 11 16:36:29 ndm: Opkg::Manager: invalid initrc "/opt/etc/init.d/rc.unslung": no such file or directory, trying /opt/etc/init.d/. [i] Jan 11 16:36:29 ndm: Opkg::Manager: /opt/etc/init.d/doinstall: My life lasts 0 seconds. [i] Jan 11 16:36:30 ndm: Opkg::Manager: /opt/etc/init.d/doinstall: My life lasts 1 seconds. … [i] Jan 11 16:45:01 ndm: Opkg::Manager: /opt/etc/init.d/doinstall: My life lasts 505 seconds. [i] Jan 11 16:45:02 ndm: Opkg::Manager: /opt/etc/init.d/doinstall: My life lasts 506 seconds. Пока дождаться окончания не могу
  19. Ошибка синтаксиса. Если что-то будет не так с апплетом BB, то можете поставить пакет ip-legacy и выполнить: ip route add 131.129.192.0/24 via 192.168.3.254
  20. Это избавит от чудесатых переменных среды кинетика при автоматическом выполнении скрипта. После этого скрипт должен начать выполняться не только в интерактивной среде, но и при автоматическом вызове.
  21. Самопальные пакеты можно попробовать запустить в chroot-среде. Есть аплет chroot для busybox, есть отдельно в виде пакета coreutils-chroot.
×
×
  • Create New...