Jump to content

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

Moderators
  • Posts

    1,215
  • Joined

  • Last visited

  • Days Won

    25

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

  1. Есть возможность отправлять до пяти СМС в сутки на свой телефон, используя сервис SMS.ru.

    Для отправки СМС с роутера необходимо после регистрации на сервисе получить api_id.

    Ниже приведена пара примеров использования этой возможности.

    • Thanks 1
  2. Можно организовать чат с роутером, словно вы находитесь в CLI кинетика.

    b92d38f5d243.png

    Для этого необходимо.

    • Установить необходимые пакеты:
      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. Если пожелаете, вы можете найти ему более серьёзное применение.

    • Thanks 2
    • Upvote 1
  3. Приветствую! Не уверен, что тема в нужной ветке(если возможно, перенесите куда положено). Очень хочется одну штуку, а именно: возможность подключения webdav папки к роутеру(и чтоб её можно было прокинуть как сетевую шару в домашней сети ), в идеале - со скачиванием всего содержимого на подключенный по usb диск через веб-морду(ultra и extra в наличии). Если это можно реализовать уже сейчас через opkg, подскажите как.
    В Entware есть пакет davfs2, который другие пользователи успешно используют для представления Я.Диска как локальной файловой системы, позже наш пакет вошёл в состав фида OpenWrt.

    Перед тем как его использовать, необходимо попросить авторов прошивки обнародовать ядерный модуль fuse.ko.

  4. а еще мы забыли про конфиг. актуально будет для устройств без поддержки съемных носителей. с его помощью можно блокировать "шпиёнов" не устанавливая никакой системы, достаточно внести список в нужную секцию.
    Для этого понадобится два устройства: одно с USB для формирования конфига, другое — целевое. Кроме того, в скрипте подставляется текущий ip-адрес устройства, который может не совпасть с тем, что будет на системе назначения.

    По-моему, это трудно назвать удобным. Мягко говоря.

  5. Под какие цели интересно его можно использовать?
    Если бы выполнялись хуки на определённые события, то много для чего можно использовать.

    # 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-порт.

  6. Подскажите по JFFS2-разделу в составе прошивки:

    ~ # df -h
    Filesystem                Size      Used Available Use% Mounted on
    …
    /dev/mtdblock/7         512.0K    196.0K    316.0K  38% /storage

    Файлы, помещённые в /storage переживают reboot.

    1. Можно ли использовать /storage в своих целях?
    2. Чем заняты 38% раздела (см. вывод df выше)?
    3. Этот раздел есть у всех моделей кинетиков с поддержкой USB-принтеров?

  7. Для универсальности, когда имя текущего подключения неизвестно, создайте скрипт в каталоге /opt/etc/ndm/wan.d/. Он будет вызываться каждый раз при подключении/отключении интернета.
    Лучше ещё раз спрошу, будет ли вызов /opt/etc/ndm/wan.d/, если подключение к интернету случится ДО монтирования /opt?
  8. В доках есть упоминание соответствующей команды:

    interface usb power-cycle

    Но в Omni II она не опознаётся. Наличие аппаратного ключа для управления USB-питанием одна из сильных сторон кинетика, особенно для самоделкиных:) Может есть какой-то другой способ, вроде

    echo 1 > /sys/class/gpio/gpio0/value

    ?

  9. Приведённый ниже скрипт блокирует те же домены, что и утилита 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 будут заблокированы на уровне маршрутизатора.

     

    • Thanks 1
    • Upvote 1
  10. В инсталляционном скрипте пакетов время ожидания 120 с, в коллбеках и инициализаторе - 8 секунд.
    Коллбеки — это те скрипты, что живут в /opt/etc/ndm/*.d ?
    Действительно. Ставится таймаут, допустим, 120 секунд, но срабатывает только в том случае, когда скрипт ничего не пишет. Каждый раз, когда скрипт подает признаки жизни в виде сообщения, таймаут сбрасывается. Возможно, это неправильно. Ваше мнение?
    Всё логично. Скрипт дальнейшую логику прошивки не блокирует, поэтому всё в порядке.

    Спасибо за разъяснение, теперь я понял почему прошивка убивала скрипт через восемь секунд при генерации SSH-ключей прямо из инсталлятора. Просто в этот момент не надо быть молчуном:).

  11. В качестве временного решения могу предложить следующую 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.

  12. Ограничение времени исполнения на стартовые скрипты не действует?

    Добавил в инсталляционный пакет скрипт-затычку:

    $ 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. 
    

    Пока дождаться окончания не могу:)

  13. route add -net 31.129.192.0 netmask 255.255.255.0 gw 192.168.3.254[/code]

    не работает. Вот такое получаю в консоле:

    ~ # route add -net 31.129.192.0 netmask 255.255.255.0 gw 192.168.3.254
    route: SIOCADDRT: No such process

    Ошибка синтаксиса.

    Если что-то будет не так с апплетом BB, то можете поставить пакет ip-legacy и выполнить:

    ip route add 131.129.192.0/24 via 192.168.3.254

  14. Это избавит от чудесатых переменных среды кинетика при автоматическом выполнении скрипта.

    После этого скрипт должен начать выполняться не только в интерактивной среде, но и при автоматическом вызове.

  15. Этот Entware не совместим с собранными мной пакетами - ругается на них. Самопальные пакеты, собранные родной SDK нельзя одновременно с Enware использовать?
    Самопальные пакеты можно попробовать запустить в chroot-среде. Есть аплет chroot для busybox, есть отдельно в виде пакета coreutils-chroot.
×
×
  • Create New...