Jump to content

Search the Community

Showing results for tags 'entware'.



More search options

  • Search By Tags

    Type tags separated by commas.
  • Search By Author

Content Type


Forums

  • Keenetic Community
    • NDMS Development
    • NDMS Community Support
    • NDMS Testing
    • Mobile App
  • Open Package Support
    • Opkg Help
    • Opkg Cookbook
    • Opkg Cookbook RUS

Find results in...

Find results that contain...


Date Created

  • Start

    End


Last Updated

  • Start

    End


Filter by number of...

Joined

  • Start

    End


Group


Location


Web-site


Interests


Occupation


AOL Account


ICQ Account


WLM


YAHOO


Facebook Account


Twitter Account


Skype Account


Youtube Account


Google+ Account


Keenetic

Found 162 results

  1. Данная тема создана по следам инструкций по использованию предыдущих версий первой ветки замечательного приложения dnscrypt-proxy, которое автор вернул к плотной разработке, правда, сменив язык на Go. Для начала рекомендую ознакомиться с первыми статьями: Сразу уточню, вторая версия dnscrypt-proxy подойдет тем, у кого роутер с достаточным количеством оперативной памяти, так как приложения на go довольно требовательны к ресурсам. Например, на моей Keenetic Ultra проблем с памятью нет, поэтому я и перешел на вторую ветку dnscrypt-proxy не особо раздумывая. Ознакомиться со всеми преимуществами dnscrypt-proxy2 перед первой веткой можно на странице проекта на GitHub. Хочу заметить, что при использовании dnscrypt-proxy2 уже нет необходимости в связке с dnsmasq или чем-то еще. dnscrypt-proxy2 сам умеет и кэшировать запросы и работать с несколькими серверами сразу, выбирая наиболее быстрый и ещё много чего. На момент написания данной статьи актуальной версией является dnscrypt-proxy 2.0.14 Итак, начиная с версии 2.0.8 (кажется) dnscrypt-proxy2 собрана уважаемым @zyxmon в тестовой ветке репозитория Entware. Пользователям Entware-3x и Entware-NG нужно перейти на репозиторий Entware с помощью следующих команд, введенных 2 раза подряд (за подробностями и решением проблем нужно пройти в соответствующую тему) иначе будете получать ошибку, что пакет dnscrypt-proxy2 не найден. opkg update opkg upgrade Начиная с 2.0.11 пакет dnscrypt-proxy2 доступен для обычной установки из репозитория Entware следующей командой: # opkg install dnscrypt-proxy2 Далее установим вспомогательные пакеты: iptables для того, чтобы "приземлить" все DNS запросы наших клиентов на наш dnscrypt-proxy2 cron для того, чтобы обновлять список блокируемых адресов в автоматическом режиме на регулярной основе. # opkg install cron iptables Стандартный конфигурационный файл достаточно полно документирован комментариями по той или иной настройке, да и в целом по-умолчанию всё должно запуститься успешно командой: # /opt/etc/init.d/S09dnscrypt-proxy2 start Приведу некоторые отличия моего конфигурационного файла от стандартного. listen_addresses = ['192.168.1.1:53', '[::1]:53'] В отличии от дефолтовой строчки, где сервер будет слушать на 127.0.0.1 мне было необходимо, чтобы сервер "слушал" на 192.168.1.1, чтобы я мог прописать данный сервер в настройках DHCP как сервер DNS для всех устройств моей домашней сети. Кстати, так как будем использовать dnscrypt-proxy2 как единственный DNS сервер на роутере, необходимо отключить (а точнее перевести в специальный режим работы при котором компоненты прошивки все равно смогут обращаться к DNS резолверу прошивки через RPC оставив порт 53 свободным) основной DNS сервер NDMS. Сделаем это следующими командами в Cli (не в Entware): opkg dns-override system configuration save Включать только на устройствах с функционирующим IPv6. На самом деле я особой скорости у серверов IPv6 не увидел, так что можно и не включать. ipv6_servers = true Полный путь до журнала нашего dnscrypt-proxy2 log_file = '/opt/var/log/dnscrypt-proxy-v2.log' Для диагностики проблем так же будет полезным включить наиболее подробный уровень логгирования. log_level = 0 Далее идет fallback_resolver. Вообще его можно не менять, но мне захотелось поставить популярный ныне CloudFlare DNS с его красивым адресом. fallback_resolver = '1.1.1.1:53' Размер кэша я ставлю в 4 раза больше, чем по умолчанию. Можно не менять. Кстати, в ответах просьба высказаться, какой размер кэша оптимальный по вашему? cache_size = 2048 Далее идет раздел блокировки (привет РКН). В качестве значения параметра blacklist_file указываем полный путь до вашего файла с блокируемыми доменными именами. Я свой файл получаю скриптом автора dnscrypt-proxy blacklist_file = '/opt/etc/dnscrypt-proxy/dnscrypt-blacklist-domains.txt' А обновляю этот список еженедельно с помощью 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 нужно закомментировать или удалить. Для диагностики корректности блокировки того или иного ресурса или для отлова false positive блокировок рекомендую включить журнал того, что блокируется: log_file = '/opt/var/log/blocked.log' log_format = 'tsv Далее у меня прописан белый список доменных имен, которые не нужно блокировать никогда (привет РКН еще раз). На самом деле, данная опция появилась в последних версиях (кажется в 2.0.11) и ранее белый список обрабатывался скриптом генерации черного списка блокируемых адресов. То есть вхождения белого списка удалялись из черного при генерации. Теперь вот отдельная опция: whitelist_file = '/opt/etc/dnscrypt-proxy/generate-domains-blacklists/domains-whitelist.txt' Переходим к настройке dnscrypt серверов. И вот тут я очень рекомендую использовать серверы проекта OpenNIC. То есть настройка в конфигурационном файле у меня вот такая (закомментировал основной список публичных серверов и оставил только серверы проекта OpenNIC): # [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'] # cache_file = 'public-resolvers.md' # minisign_key = 'RWQf6LRCGA9i53mlYecO4IzT51TGPpvWucNSCh1CBM0QTaLn73Y7GFO3' # refresh_delay = 72 # prefix = '' [sources.'opennic'] url = 'http://download.dnscrypt.info/resolvers-list/v2/opennic.md' minisign_key = 'RWQf6LRCGA9i53mlYecO4IzT51TGPpvWucNSCh1CBM0QTaLn73Y7GFO3' cache_file = 'opennic.md' format = 'v2' refresh_delay = 24 prefix = '' Почему именно OpenNIC? Используя именно эти серверы получаем один замечательный бонус - разрешение EmerCoin доменных имен типа *.lib и других. Благодаря этому я пользуюсь одним популярным торрент трекером по его доменному имени в зоне *.lib не занимаясь постоянным поиском живых зеркал. Опять же, эти серверы вроде бы не вносят своих блокировок и не логгируют запросы. Хотя как знать. Так же я НЕ рекомендую использовать серверы проекта компании Cisco - OpenDNS. Недавно @Александр Рыжов в канале Keenetic в одном известном мессенджере сообщил, что Cisco заворачивала на себя трафик mail.ru подставляя при этом фейковый сертификат, так что будьте бдительны. Так же прошу обратить внимание, большинство серверов проекта OpenNIC с поддержкой dnscrypt находятся в Европе и Америке, так что моментальных ответов ждать не приходится. У меня самый быстрый сервер дает около 100 мс, и на том спасибо. Отсюда и увеличенный размер кэша, которым я пытаюсь эти задержки свести к минимуму. Теперь переходим к очень важной теме, изучая которую я потратил много времени. А именно речь пойдет об использовании только локального DNS сервера dnscryprt-proxy2вместо провайдерских DNS серверов на всех устройствах сети. Суть здесь вот в чем. Начиная, кажется. с 6 версии ОС Андроид, видимо, для повышения стабильности (и, имхо, для утоления своей тотальной любознательности) параллельно посылает запросы и на тот сервер, что указан в сетевых настройках, которые получены устройством от DHCP сервера и на сервер 8.8.8.8 Я очень долго не мог понять, почему на всех устройствах я не вижу рекламу, так как она блокируется на роутере, но всегда вижу рекламу на своем Андроид смартфоне. Тогда я с помощью захвата пакетов все и обнаружил. Кстати, более простым способом было посмотреть трафик в Entware с помощью tcpdump. tcpdump -i br0 или tcpdump port 53 -n -nn -v Итак, для начала избавимся от провайдерских DNS серверов. В cli вводим вот эти 2 замечательные команды: interface ISP no ip dhcp client name-servers system configuration save Эти команды может быть и есть в документации по cli, но лично мне их удалось найти тут, на форуме в ответе уважаемого @Le ecureuil От слежки провайдера избавились, осталось приземлить все DNS запросы в корпорацию добра на наш сервер dnscrypt-proxy2. Здесь мне так же помог @Александр Рыжов на канале Keenetic. У данного метода есть и плюсы - например, при подмене локального DNS сервера вирусом на компьютере с Windows запросы пойдут все равно на роутер, а не DNS сервер злоумышленников. Есть и минусы, например, не весь трафик, который идет по UDP\53 не обязательно DNS запросы, это вполне может быть портом для подключения к, положим, OpenVPN серверу. Но так или иначе, для многих домашних сетей данный способ приносит больше плюсов, имхо. В вашем любимом текстовом редакторе создаем файл скрипта /opt/etc/ndm/netfilter.d/10-ClientDNS-Redirect.sh: #!/bin/sh [ "$type" == "ip6tables" ] && exit 0 [ "$table" != "nat" ] && exit 0 [ -z "$(iptables-save | grep " --dport 53 -j DNAT --to-destination 192.168.1.1")" ] && \ iptables -t nat -I PREROUTING -p udp --dport 53 -j DNAT --to-destination 192.168.1.1:53 exit 0 Либо, если любимого редактора еще нет, можно воспользоваться вот такой длинной командой: echo -e '#!/bin/sh\n[ "$type" == "ip6tables" ] && exit 0\n[ "$table" != "nat" ] && exit 0\n[ -z "$(iptables-save | grep " --dport 53 -j DNAT --to-destination 192.168.1.1")" ] && iptables -t nat -I PREROUTING -p udp --dport 53 -j DNAT --to-destination 192.168.1.1:53\nexit 0' >> /opt/etc/ndm/netfilter.d/10-ClientDNS-Redirect.sh Затем делаем созданный скрипт исполняемым: chmod +x /opt/etc/ndm/netfilter.d/10-ClientDNS-Redirect.sh Вероятно, скрипт можно написать значительно изящнее и ловить не UDP, но и TCP трафик, но у меня получилось только вот так. В ответах, гуру баша могут подсказать как сделать правильнее, подправлю для общего блага. Мне "приземление" только UDP трафика на 53 порт роутера помогло полностью избавиться от рекламы на всех устройствах домашней сети. Так что TCP можно и не трогать. В итоге: Защитили весь свой DNS трафик от перехвата со стороны провайдера и гугла Заблокировали рекламу на всех устройствах домашней сети (это наиболее актуально для всяких Смарт ТВ и других девайсов не нет возможности блокировать рекламу на самом устройстве) Получили разрешение имен *.lib и других, чем немного упростили себе жизнь в все более блокируемом интернете Диагностика проблем с запуском\работой. Для начала посмотрим журнал dnscrypt-proxy2 в том месте, где вы его настроили. С смотрю вот такой командой: # tail -f -n 30 /opt/var/log/dnscrypt-proxy-v2.log Следующая команда должна выдать PID процесса # ps | grep dnscrypt-proxy2 Проверить, слушается ли порт 53: # netstat -an | grep :53 tcp 0 0 192.168.1.1:53 0.0.0.0:* LISTEN tcp 0 0 ::1:53 :::* LISTEN udp 0 0 192.168.1.1:53 0.0.0.0:* udp 0 0 ::1:53 :::* Опять же все ограничения, которые касались использования первой версии dnscrypt-proxy справедливы и для второй, ссылки на инструкции я приложил выше. Это моя первая инструкция в этом разделе, так что сильно не пинать, а конструктивная критика крайне приветствуется. Если есть, что нужно подправить\доработать - пишите, вместе сделаем использование данного пакета проще и эффективнее.
  2. Vadim-85

    Здравствуйте. Поставил ext-ui-lighttpd-7 Всё хорошо, пытаюсь прикрутить mysql. Ставлю mariadb-server, mariadb-client Запускаю S70mysqld и не чего не происходит, не запускается.
  3. Александр Рыжов

    Это решение позволяет заблокировать баннеры, счётчики на веб-страницах, рекламу в Android-приложениях с помощью hosts-файла. Было: Стало: Установите необходимые пакеты: opkg install dnsmasq-full iptables ndmq Поместите в файл /opt/etc/ndm/netfilter.d/010-intercept-dns.sh следующее содержимое: #!/bin/sh [ "$table" != "nat" ] && exit 0 lan_ip=$(ndmq -p 'show interface Bridge0' -P address) iptables -t nat -I PREROUTING -p udp -m udp --dport 53 -j DNAT --to-destination $lan_ip:65053 iptables -t nat -I PREROUTING -p tcp -m tcp --dport 53 -j DNAT --to-destination $lan_ip:65053 и сделайте скрипт исполняемым: chmod +x /opt/etc/ndm/netfilter.d/010-intercept-dns.sh Отредактируйте файл /opt/etc/dnsmasq.conf, добавив в него строки: no-resolv server=77.88.8.88#1253 server=77.88.8.2#1253 port=65053 Скачайте подходящий чёрный список с рекламными хостами и поместите его в файл /opt/etc/hosts. В примере ниже указан один из самых популярных: wget -O /opt/etc/hosts http://winhelp2002.mvps.org/hosts.txt Всё! Перегрузите роутер для того, чтобы настройки вступили в силу. 0. Убедитесь, что на ПК не прописаны вручную в св-вах сетевого соединения сторонние DNS-серверы. Если вы в сетевых настройках ПК ничего не меняли, то можете это не проверять. 1. Очистите DNS-кеш операционной системы (для Windows - ipconfig /flushdns) 2. Очистите DNS-кеш браузера, достаточно его закрыть и открыть по новой. На скриншотах выше погода с Gismeteo, если решение работает, то рекламные баннеры будут отсутствовать.
  4. Установка и настройка Transmission Transmission - BitTorrent-клиент c открытым кодом. Версия из репозитория Transmission 2.94: https://bin.entware.net/mipselsf-k3.4/transmission-cli-mbedtls_2.94-1_mipsel-3.4.ipk https://bin.entware.net/mipselsf-k3.4/transmission-daemon-mbedtls_2.94-1_mipsel-3.4.ipk https://bin.entware.net/mipselsf-k3.4/transmission-remote-mbedtls_2.94-1_mipsel-3.4.ipk https://bin.entware.net/mipselsf-k3.4/transmission-web_2.94-1_mipsel-3.4.ipk Изменения: Transmission 2.94: All Platforms: Fix building against LibreSSL (#284, #486, #570) Fix building against mbedTLS (#115, #528) Fix torrents ETA calculation (#522) Fix cross-compilation issues caused by miniupnpc configuration test (#475) Qt Client: Fix bad downloaded percentage in DetailsDialog (#547) Web Client: Fix tracker error XSS in inspector (CVE pending; found by Rory McNamara of Gotham Digital Science) Fix torrent name HTML-escaping in trackers inspector tab Transmission 2.93: All Platforms: Fix CVE-2018-5702 (#468) Fix crash on handshake if establishing DH shared secret fails (#27) Fix crash when switching to next tracker during announcement (#297) Fix potential issue during password salt extraction in OOM situation (#141) Workaround glib_DEFUN- and glib_REQUIRE-related configuration issue (#215) Fix building against OpenSSL 1.1.0+ (#24) Mac Client: Fix uncaught exception when dragging multiple items between groups (#51) Don't hard-code libcrypto version to 0.9.8 in Xcode project (#71) Подготовка: 1. Создаем раздел EXT4 на жестком диске - Использование файловой системы EXT4 на USB-накопителях. 2. Установка и настройка Entware-3x - в данной теме. Работоспособность проверена с: Keenetic Giga III и Keenetic Giga KN-1010, прошивка draft 2.12.A.3.0-2 от 06.02.2018, раздел на HDD EXT4. Обновляемся: ~ # opkg update Downloading http://bin.entware.net/mipselsf-k3.4/Packages.gz Updated list of available packages in /opt/var/opkg-lists/entware Downloading http://bin.entware.net/mipselsf-k3.4/keenetic/Packages.gz Updated list of available packages in /opt/var/opkg-lists/keendev Устанавливаем: / # opkg install transmission-daemon-mbedtls Installing transmission-daemon-mbedtls (2.94-1) to root... Downloading http://bin.entware.net/mipselsf-k3.4/transmission-daemon-mbedtls_2.94-1_mipsel-3.4.ipk Installing libcurl (7.59.0-2) to root... Downloading http://bin.entware.net/mipselsf-k3.4/libcurl_7.59.0-2_mipsel-3.4.ipk Installing libopenssl (1.0.2o-1) to root... Downloading http://bin.entware.net/mipselsf-k3.4/libopenssl_1.0.2o-1_mipsel-3.4.ipk Installing zlib (1.2.11-2) to root... Downloading http://bin.entware.net/mipselsf-k3.4/zlib_1.2.11-2_mipsel-3.4.ipk Installing libevent2 (2.0.22-1) to root... Downloading http://bin.entware.net/mipselsf-k3.4/libevent2_2.0.22-1_mipsel-3.4.ipk Installing libminiupnpc (2.0.20170509-1) to root... Downloading http://bin.entware.net/mipselsf-k3.4/libminiupnpc_2.0.20170509-1_mipsel-3.4.ipk Installing libnatpmp (20150609-1) to root... Downloading http://bin.entware.net/mipselsf-k3.4/libnatpmp_20150609-1_mipsel-3.4.ipk Installing libmbedtls (2.8.0-1) to root... Downloading http://bin.entware.net/mipselsf-k3.4/libmbedtls_2.8.0-1_mipsel-3.4.ipk Configuring zlib. Configuring libopenssl. Configuring libcurl. Configuring libmbedtls. Configuring libevent2. Configuring libnatpmp. Configuring libminiupnpc. Configuring transmission-daemon-mbedtls. / # opkg install transmission-remote-mbedtls Installing transmission-remote-mbedtls (2.94-1) to root... Downloading http://bin.entware.net/mipselsf-k3.4/transmission-remote-mbedtls_2.94-1_mipsel-3.4.ipk Configuring transmission-remote-mbedtls. / # opkg install transmission-web Installing transmission-web (2.94-1) to root... Downloading http://bin.entware.net/mipselsf-k3.4/transmission-web_2.94-1_mipsel-3.4.ipk Configuring transmission-web. Смотрим путь, где находится .conf, .json и загрузочный файл: / # opkg files transmission-daemon-mbedtls Package transmission-daemon-mbedtls (2.94-1) is installed on root and has the following files: /opt/bin/transmission-daemon /opt/etc/init.d/S88transmission /opt/etc/transmission/settings.json /opt/etc/sysctl.d/20-transmission.conf Запускаем: ~ # /opt/etc/init.d/S88transmission start Starting transmission-daemon... done. Останавливаем: ~ # /opt/etc/init.d/S88transmission stop Checking transmission-daemon... alive. Shutting down transmission-daemon... done. Настройка settings.json (можно настроить под себя): Директория, где лежит файл конфигурации /opt/etc/transmission: /opt/etc/transmission Директория, куда будут скачиваться торрент-файлы: "download-dir": "/tmp/mnt/NTFS_TEST/download", Директория, куда будут помещаться недоскаченные торрент-файлы: "incomplete-dir": "/tmp/mnt/NTFS_TEST/no_download", NTFS_TEST - для записи торрент-файлов указал раздел с фс NTFS, { "alt-speed-down": 50, "alt-speed-enabled": false, "alt-speed-time-begin": 540, "alt-speed-time-day": 127, "alt-speed-time-enabled": false, "alt-speed-time-end": 1020, "alt-speed-up": 50, "bind-address-ipv4": "0.0.0.0", "bind-address-ipv6": "::", "blocklist-enabled": false, "blocklist-url": "http://list.iblocklist.com/?list=bt_level1", "cache-size-mb": 2, "dht-enabled": true, "download-dir": "/tmp/mnt/NTFS_TEST/download", "download-queue-enabled": true, "download-queue-size": 5, "encryption": 2, "idle-seeding-limit": 30, "idle-seeding-limit-enabled": false, "incomplete-dir": "/tmp/mnt/NTFS_TEST/no_download", "incomplete-dir-enabled": true, "lpd-enabled": true, "message-level": 1, "peer-congestion-algorithm": "", "peer-id-ttl-hours": 6, "peer-limit-global": 2000, "peer-limit-per-torrent": 200, "peer-port": 51413, "peer-port-random-high": 65535, "peer-port-random-low": 49152, "peer-port-random-on-start": false, "peer-socket-tos": "lowcost", "pex-enabled": true, "port-forwarding-enabled": true, "preallocation": 1, "prefetch-enabled": false, "queue-stalled-enabled": false, "queue-stalled-minutes": 30, "ratio-limit": 2, "ratio-limit-enabled": false, "rename-partial-files": true, "rpc-authentication-required": false, "rpc-bind-address": "0.0.0.0", "rpc-enabled": true, "rpc-host-whitelist": "", "rpc-host-whitelist-enabled": true, "rpc-password": "{56d033989b5274bc42981b4b51ab541d664aa689c1che9lt", "rpc-port": 9091, "rpc-url": "/transmission/", "rpc-username": "root", "rpc-whitelist": "127.0.0.1", "rpc-whitelist-enabled": false, "scrape-paused-torrents-enabled": true, "script-torrent-added-enabled": false, "script-torrent-added-filename": "", "script-torrent-done-enabled": false, "script-torrent-done-filename": "", "seed-queue-enabled": false, "seed-queue-size": 10, "speed-limit-down": 100, "speed-limit-down-enabled": false, "speed-limit-up": 100, "speed-limit-up-enabled": false, "start-added-torrents": true, "trash-original-torrent-files": true, "umask": 18, "upload-slots-per-torrent": 14, "utp-enabled": true, "watch-dir": "/opt/etc/transmission/watchdir", "watch-dir-enabled": true } Запускаем: ~ # /opt/etc/init.d/S88transmission start Starting transmission-daemon... done. Заходим в WebUI по адресу http://192.168.1.1:9091/transmission/web/ и делаем настройку (можно настроить под себя): https://cloud.mail.ru/public/LFEg/9f6gjsFfu https://cloud.mail.ru/public/GnnN/jUoLTDCe5 https://cloud.mail.ru/public/CEya/dJBxGcRrL https://cloud.mail.ru/public/3uPy/pbjBx7pQ7 https://cloud.mail.ru/public/JCdn/7JCRmzQoS Версия Transmission: https://cloud.mail.ru/public/15nb/kNMkAY6zv Скорость download: https://cloud.mail.ru/public/HYLn/Jgw2ZWQje https://cloud.mail.ru/public/LbCB/zpUyaiW8B https://cloud.mail.ru/public/HS33/58Lv8v4dS Загрузка CPU: CPU: 34.6% usr 18.1% sys 0.0% nic 32.9% idle 3.0% io 0.0% irq 11.1% sirq Load average: 2.01 1.58 1.29 2/111 14504 PID PPID USER STAT VSZ %VSZ CPU %CPU COMMAND 13805 1 root S 48904 19.0 0 47.9 transmission-daemon -g /opt/etc/transmission https://cloud.mail.ru/public/CXMj/9s5Trqkfc Информация по настройке Transmission: https://help.keenetic.net/hc/ru/articles/213967249 http://nmt200.ru/nmt/apps/trans https://github.com/transmission/transmission/wiki Отдельное спасибо за обновление и поддержку репозитория @zyxmon, @TheBB
  5. В репозиторий Entware-3x добавлен пакет netdata для мониторинга в реальном времени - https://github.com/firehol/netdata/wiki Установка и запуск элементарны opkg update opkg install netdata /opt/etc/init.d/S60netdata start Плагины отключены, использованы настройки для слабых устройств - https://github.com/firehol/netdata/wiki/Memory-Requirements#running-netdata-in-embedded-devices Для мониторинга зайдите на ваше устройство по http, порт 19999. Дэшборд с информацией огромен - до 100 красивых графиков. Приведена только часть. Что там есть понятно из "меню" в правом верхнем углу.
  6. TheBB

    прим.: варианты между собой молосовместимые Вариант 1 Заходим по ssh на Keenetic и выполняем следующие команды: opkg update opkg install tor polipo Редактируем файл /opt/etc/tor/torrc (пример базовой настройки) SOCKSPort 9050 # Default: Bind to localhost:9050 for local connections. SOCKSPort 192.168.1.1:9100 # Bind to this address:port too. RunAsDaemon 1 DataDirectory /opt/var/lib/tor #User tor Редактируем файл /opt/etc/polipo/config (пример базовой настройки) proxyAddress = "0.0.0.0" # IPv4 only allowedClients = 127.0.0.1, 192.168.1.0/24 socksParentProxy = "localhost:9050" socksProxyType = socks5 dnsQueryIPv6 = no dnsUseGethostbyname = yes Стартуем сервисы /opt/etc/init.d/S28polipo /opt/etc/init.d/S35tor Настраиваем браузер (в примере FireFox) Для проверки идем по адресу. Должны увидеть нечто подобное Можно посмотреть через кого идет выход, напр., на 2ip.ru И вместо этого наблюдаем Вариант 2. за-tor-енная точка доступа прим.: TOR - имя интерфейса (произвольное, задаем любое свое) pass-tor - пароль доступа к сети (мин. 8 символов, задаем любой свой, если надо) tor-net - имя Wi-Fi сети (произвольное, задаем любое свое) 172.16.2.1 - IP-адрес точки доступа (произвольный, задаем любой свой, не должен пересекаться с существующими) Подключаемся к CLI Keenetic`a Выбираем интерфейс беспроводной сети interface WifiMaster0/AccessPoint2 Переименовываем интерфейс в TOR name TOR Устанавливаем уровень безопасности сети - private security-level private Устанавливаем алгоритм безопасности WPA2 (если надо) encryption wpa2 Включаем шифрование Wi-Fi-трафика (если установили алгоритм безопасности) encryption enable Устанавливаем ключ доступа к сети (если выполнили 2 предыдущих комманды, что выше) authentication wpa-psk pass-tor Устанавливаем ip-адрес точки доступа ip address 172.16.2.1 255.255.255.0 Устанавливаем SSID беспроводной сети ssid tor-net Активация интерфейса TOR up Для автоматической раздачи IP создаем DHCP pool и привязываем его к интерфейсу TOR. Создаем DHCP-пул ip dhcp pool TOR Устанавливаем диапазон IP адресов range 172.16.2.50 172.16.2.100 Привязываем созданный пул к интерфейсу TOR bind TOR Для применения всех настроек нужно отключить и включить модуль Wi-Fi Отключить interface WifiMaster0 down Включить interface WifiMaster0 up Сохраняем system configuration save Заходим по ssh на Keenetic и выполняем следующие команды: opkg update opkg install tor iptables Редактируем файл /opt/etc/tor/torrc: SOCKSPort 9050 SOCKSPort 192.168.1.1:9100 RunAsDaemon 1 DataDirectory /opt/var/lib/tor #User tor AutomapHostsOnResolve 1 DNSListenAddress 172.16.2.1 DNSPort 9053 TransListenAddress 172.16.2.1 TransPort 9040 VirtualAddrNetwork 10.192.0.0/10 Создаем файл /opt/etc/ndm/netfilter.d/010-tor-net.sh со следующим содержанием: #!/opt/bin/sh iptables -t nat -A PREROUTING -i ra2 -p udp --dport 53 -j REDIRECT --to-ports 9053 iptables -t nat -A PREROUTING -i ra2 -p tcp --syn -j REDIRECT --to-ports 9040 прим.: ra2 - имя созданного интерфейса (просмотреть можно командой ifconfig) Делаем файл исполняемым chmod +x /opt/etc/ndm/netfilter.d/010-tor-net.sh Перезагружаем Keenetic и пробуем... to be continued...
  7. Давно хотел подключить свою веб камеру Logitech HD Webcam C310 к роутеру ZyXEL Keenetic II, но не получалось настроить их связь. На днях нашёл инструкцию как подключить Logitech HD Webcam C270 к роутеру ASUS ( It's only for mipsel devices like RT-N16, RT-N66U, RT-AC66U...). Для подключения по SSH к Entware использовал плагин FireSSH, для Mozilla Firefox, с этим плагином все комманды можно вводить прям в окне браузера и он немного удобнее чем PuTTY. Попробовал установить по инструкции, но пакета mjpg-streamer в репозитории не оказалось, тогда решил поискать похожий пакет и спомощью команды opkg list вывел в консоль список всех возможных пакетов для установки из репозитория. Нашёл похожий пакет mjpg-streamer-zyx, установил его opkg install mjpg-streamer-zyx. Все нужные ядерные модули и драйвера для UVC веб камер уже есть в официальной прошивке. После чего остановил на всякий случай сервер mjpg-streamer-zyx с помощью команды /opt/etc/init.d/S96mjpg-streamer stop, убедился что Entware видит веб камеру с помощью команды ls /dev/vid*, на что был получен ответ /dev/video0, т.е. вебкамера видится Entware как video0. Запустил сервер mjpg-streamer-zyx с помощью команды /opt/etc/init.d/S96mjpg-streamer start, светодиод на вебкамере загорелся, значит изображение с неё начало транслироваться. Зашёл по адресу 192.168.1.1:3000/stream_simple.html, изображение с камеры появилось, но разрешение картинки было слишком маленьким "QVGA" 320x240, а частота кадров всего лишь 5 кадров в секунду. Чтоб повысить эти показатели, а также чтоб добавить возможность авторизации для доступа к видеопотоку нужно править конфиг mjpg-streamer-zyx. Сначало останавливаем сервер с помощью команды /opt/etc/init.d/S96mjpg-streamer stop, потом правим конфиг. В приведённой выше инструкции предлагается править конфиг mjpg-streamer-zyx с помощью консольного редактора nano (кому больше нравится пользуйтесь им), а мне привычнее делать всё через графический интерфейс (GUI) и для правки конфига я воспользовался текстовым редактором Notepad++, зашёл в папку с файлом конфигурации (S96mjpg-streamer) и открыл этот фаил с помощью Notepad++. После того как сделал все изменения и закрыл Notepad++ чтоб сохранить изменения, то он ненадолго (секунд на 10-15) подвис, но потом закрылся, я снова открыл конфигурационный фаил чтоб убедиться что изменения были сохранены. Изменил разрешение видео увеличив его до "XGA" 1024x768, добавил частоту кадров до 25 кадров в секунду, изменил порт доступа на более короткий 86 и добавил логин с паролем - c admin:admin чтоб никто кроме меня не смог просмотреть изображение с вебкамеры. В результате строка: mjpg_streamer -b -i "input_uvc.so -r 320x240 -f 5" -o "output_http.so -p 3000 -w /opt/share/www/webcam" изменилась на: mjpg_streamer -b -i "input_uvc.so -r 1024x768 -f 25" -o "output_http.so -p 86 -w /opt/share/www/webcam -c admin:admin" Снова запустил сервер /opt/etc/init.d/S96mjpg-streamer start, зашёл по адресу 192.168.1.1:86/stream_simple.html, мне было предложено ввести логин и пароль, когда я авторизовался, то увидел картинку с вебкамеры высокого разрешения и более высокую частоту кадров. Если зайти по адресу 192.168.1.1:86, то откроется окно с дополнительными возможностями, среди которых есть возможность сгенерировать плей лист, который кожно открыть в VLC проигрывателе и просматривать изображение через него. FireSSH 0.94.10 'Playfair' designed by Mime Čuvalo in Croatia SSH component is ported from Paramiko 1.7.7.1, created by Robey Pointer Connecting to 192.168.1.1... Connected (version 2.0, client dropbear_2016.73) Authentication (password) successful! Secsh channel 1 opened. BusyBox v1.24.2 () built-in shell (ash) ~ # opkg update Downloading http://pkg.entware-keenetic.ru/binaries/keenle/Packages.gz. Updated list of available packages in /opt/var/opkg-lists/keenle. ~ # opkg upgrade ~ # opkg install mjpg-streamer-zyx Installing mjpg-streamer-zyx (r116-2) to root... Downloading http://pkg.entware-keenetic.ru/binaries/keenle/mjpg-streamer-zyx_r116-2_keenle.ipk. Installing libjpeg (9a-1) to root... Downloading http://pkg.entware-keenetic.ru/binaries/keenle/libjpeg_9a-1_keenle.ipk. Configuring libjpeg. Configuring mjpg-streamer-zyx. ~ # /opt/etc/init.d/S96mjpg-streamer stop stopping mjpg_streamer... killall: mjpg_streamer: no process killed ~ # ls /dev/vid* /dev/video0 ~ # /opt/etc/init.d/S96mjpg-streamer start starting mjpg_streamer... enabling daemon modeforked to background (680) ~ # /opt/etc/init.d/S96mjpg-streamer stop stopping mjpg_streamer... ~ # /opt/etc/init.d/S96mjpg-streamer start starting mjpg_streamer... enabling daemon modeforked to background (802) ~ # Мой провайдер интернета предоставляет бесплатную услугу подключения доменного имени компьютеру, т.е. аналог сервисов no-ip.com и других. Пробовал подключаться к своему роутеру по доменному имени и в конце указывал порт 86, видеопоток транслируется без проблем, даже не пришлось настраивать проброс порта в настройках безопасности роутера. Во время видеотрансляции процессор и оперативная память роутера нагружаются не сильно, при этом у меня запущены FTP сервер и Transmission. Список пакетов в репозитории.txt FireShot Screen Capture.rar
  8. ankar84

    upx
    UPX

    Как уменьшали, если не секрет?
  9. Собран пакет encfs (EncFS — свободная криптографическая файловая система, основанная на FUSE, прозрачно шифрующая файлы, используя произвольную директорию в качестве места для хранения зашифрованных файлов. Распространяется под лицензией GPL.) Необходимо, чтобы Была установленная система пакетов Entware-keenetic - viewtopic.php?f=4&t=333 Был установлен модуль ядра fuse - viewtopic.php?f=3&t=471 1. Установка opkg install http://pkg.entware-keenetic.ru/binaries/keenle/t/encfs_1.9-20160630-1_keenle.ipk 2. Использование (в интернете много подробных статей). 2.1 Создадим две папки. Первая, где хранятся "секретные данные", вторая "точка монтирования" Например (используйте свои названия) mkdir -p /opt/crypto mkdir -p /opt/mcrypto 2.2 Запустим шифрование encfs /opt/crypto/ /opt/mcrypto/ Внимание! В команде нужно указывать полные пути к папкам. У Вас спросят тип шифрования (я проверял на стандартном) и пароль (если потеряете, данные не восстановите). Creating new encrypted volume. Please choose from one of the following options: enter "x" for expert configuration mode, enter "p" for pre-configured paranoia mode, anything else, or an empty line will select standard mode. ?> Standard configuration selected. Configuration finished. The filesystem to be created has the following properties: Filesystem cipher: "ssl/aes", version 3:0:2 Filename encoding: "nameio/block", version 4:0:2 Key Size: 192 bits Block Size: 1024 bytes Each file contains 8 byte header with unique IV data. Filenames encoded using IV chaining mode. File holes passed through to ciphertext. Now you will need to enter a password for your filesystem. You will need to remember this password, as there is absolutely no recovery mechanism. However, the password can be changed later using encfsctl. New Encfs Password: Verify Encfs Password: Проверяем, что все "сработало", командой mount. mount rootfs on / type rootfs (rw) /dev/root on / type squashfs (ro,relatime) tmpfs on /dev type tmpfs (rw,nosuid,noexec,relatime) none on /dev/pts type devpts (rw,nosuid,noexec,relatime,mode=600) proc on /proc type proc (rw,nosuid,nodev,noexec,relatime) tmpfs on /tmp type tmpfs (rw,nosuid,nodev,relatime) sysfs on /sys type sysfs (rw,nosuid,nodev,noexec,relatime) /dev/mtdblock/7 on /storage type jffs2 (rw,nosuid,relatime) none on /proc/bus/usb type usbfs (rw,nosuid,noexec,relatime) /dev/sda1 on /tmp/mnt/entware type ext2 (rw,relatime) /dev/sda1 on /opt type ext2 (rw,relatime) encfs on /opt/mcrypto type fuse.encfs (rw,nosuid,nodev,relatime,user_id=0,group_id=0,default_permissions) Как видим у нас появилась точка монтирования /opt/mcrypto. Именно в эту папку и следует помещать секретные данные. А в папке /opt/crypto Вы увидите, как они будут отображаться в зашифрованном виде. 2.3 Закончили. Отключаем зашифрованную папку fusermount -u /opt/mcrypto 2.4 Снова нужен доступ encfs /opt/crypto/ /opt/mcrypto/ Вводим пароль - все отобразиться расшифрованным в /opt/mcrypto. На параметрах шифрования по умолчанию у меня на медленную флешку скорость записи была около 1.5 МБ/с. Отписываемся о проблемах (на ядре 2.6.22 прошивка v1 все повисло). Отписываемся - устраивает ли скорость? Подбираем оптимальные для скорости параметры. По результатам Ваших ответов решим, нужно ли включать encfs в репозиторий.
  10. Александр Рыжов

    Можно организовать чат с роутером, словно вы находитесь в 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. Если пожелаете, вы можете найти ему более серьёзное применение.
  11. Подробнее тут - http://forums.zyxmon.org/viewtopic.php?f=5&t=5484 Краткое содержание: Речь об универсальном установщике, с помощью которого можно поставить среду Debian (возможен выбор дистрибутива stable(или jessie), oldstable (wheezy), testing (stretch), unstable (sid)) прямо в Entware. Поддерживаются все архитектуры, имеющиеся в Entware-3x (armv5, armv7, mipsel, mips, x64).Установка производится online. Примерное время установки: 19 минут на keeneic Extra.Keenetic должен иметь выход в интернет, на нем должна быть установлена версия busybox 1.25.1-2a.Установка основана на пакете opwenwrt debootstrap в который добавлены три дополнительных скрипта /opt/bin/install-debian (установщик), /opt/bin/start-debian (вход в chroot среду) и /opt/etc/init.d/S99debian (запуск служб). Краткий порядок установки opkg update opkg upgrade opkg install debootstrap опциональное редактирование /opt/bin/install-debian install-debian /opt/etc/init.d/S99debian start start-debian После этого в debian среде passwd apt-get update apt-get install locales dpkg-reconfigure locales dpkg-reconfigure tzdata далее по вкусу Выход из среды - exit. В среде Debian доступны бинарники Entware, например, ndmq. Установка служб аналогична установке Debian из архива. Желательно перед установкой включить swap.
  12. Установка и настройка ntfs-3g-utils ntfs-3g - драйвер NTFS с открытым исходным кодом, который разрабатывается компанией Tuxera. В Linux OS данный пакет устанавливается отдельно, путем ввода в консоли команды: sudo apt install ntfs-3g В состав данного пакета входит утилита ntfsfix, которая позволяет проверить раздел фс NTFS на ошибки в Linux системах. Например, у Вас подключен к роутеру Keenetic накопитель с двумя фс EXT4 \ NTFS - на EXT4 установлен opkg Entware, на NTFS файловое хранилище, установлен прошивочный Transmission, DLNA. Выключили свет, размонтирование разделов прошло некорректно и далее при загрузке фс NTFS получаем записи в логе: [E] [May 21 11:21:45] ndm: FileSystem::Native: failed to mount "FLS" drive: filesystem is dirty, please perform a chkdsk maintenance of this drive on your Windows computer. [E] [May 21 11:21:45] ndm: FileSystem::Ext: failed to mount a dirty partition. в которой сказано, что нужно подключить диск к клиенту с Windows OS и сделать chkdsk раздела. В WebUI при этом будет сказано, что раздел "Требует проверки": Чтобы этого не делать, достаточно установить пакет из репозитория Entware под названием ntfs-3g-utils, в который входят утилиты: / # opkg info ntfs-3g-utils Package: ntfs-3g-utils Version: 2017.3.23-1-fuseext Depends: libc, libssp, librt, libpthread, ntfs-3g, libgcrypt, libuuid Status: install user installed Section: utils Architecture: mipsel-3.4 MD5Sum: 1804405a96cc22bc989a89d0fc6791dc Size: 356141 Filename: ntfs-3g-utils_2017.3.23-1-fuseext_mipsel-3.4.ipk Description: Suite of NTFS utilities for doing neat things with NTFS. Contains: - mkntfs - Create an NTFS filesystem. - ntfscat - Dump a file's content to the standard output. - ntfsclone - Efficiently clone, backup, restore or rescue NTFS. - ntfscluster - Locate the files which use the given sectors or clusters. - ntfscmp - Compare two NTFS filesystems and tell the differences. - ntfscp - Copy a file to an NTFS volume. - ntfssecaudit - Display ownership and permissions, check consistency - ntfsfix - Check and fix some common errors, clear the LogFile. - ntfsinfo - Show information about NTFS or one of the files or directories within it. - ntfslabel - Show, or set, an NTFS filesystem's volume label. - ntfsls - List information about files in a directory residing on an NTFS. - ntfsresize - Resize NTFS without losing data. - ntfsundelete - Recover deleted files from NTFS. - ntfsusermap - Define mapping of Windows accounts to Linux logins Installed-Time: 1526913822 Далее рассмотрим работу утилиты по исправлению ошибок файловой системы NTFS: - ntfsfix - Check and fix some common errors, clear the LogFile. Приступим к установке. Версия из репозитория ntfs-3g-utils_2017.3.23-1: http://bin.entware.net/mipselsf-k3.4/ntfs-3g-utils_2017.3.23-1-fuseext_mipsel-3.4.ipk Подготовка: 1. Создаем раздел EXT4 на жестком диске - Использование файловой системы EXT4 на USB-накопителях. 2. Установка и настройка Entware - в данной теме. Работоспособность проверена с: Keenetic Giga KN-1010, прошивка draft 2.12.A.6.0-2 от 19.05.2018, раздел на HDD EXT4. Обновляемся: / # opkg update Downloading http://bin.entware.net/mipselsf-k3.4/Packages.gz Updated list of available packages in /opt/var/opkg-lists/entware Downloading http://bin.entware.net/mipselsf-k3.4/keenetic/Packages.gz Updated list of available packages in /opt/var/opkg-lists/keendev Устанавливаем пакет ntfs-3g-utils: / # opkg install ntfs-3g-utils Installing ntfs-3g-utils (2017.3.23-1-fuseext) to root... Downloading http://bin.entware.net/mipselsf-k3.4/ntfs-3g-utils_2017.3.23-1-fuseext_mipsel-3.4.ipk Installing ntfs-3g (2017.3.23-1-fuseext) to root... Downloading http://bin.entware.net/mipselsf-k3.4/ntfs-3g_2017.3.23-1-fuseext_mipsel-3.4.ipk Configuring ntfs-3g. Configuring ntfs-3g-utils. Проверяем доступность утилиты ntfsfix: / # ntfsfix -h ntfsfix v2017.3.23 (libntfs-3g) Usage: ntfsfix [options] device Attempt to fix an NTFS partition. -b, --clear-bad-sectors Clear the bad sector list -d, --clear-dirty Clear the volume dirty flag -h, --help Display this help -n, --no-action Do not write anything -V, --version Display version information For example: ntfsfix /dev/hda6 Developers' email address: ntfs-3g-devel@lists.sf.net News, support and information: http://tuxera.com / # ntfsfix -V ntfsfix v2017.3.23 Attempt to fix an NTFS partition. Copyright (c) 2000-2006 Anton Altaparmakov Copyright (c) 2002-2006 Szabolcs Szakacsits Copyright (c) 2007 Yura Pakhuchiy Copyright (c) 2011-2015 Jean-Pierre Andre This program is free software, released under the GNU General Public License and you are welcome to redistribute it under certain conditions. It comes with ABSOLUTELY NO WARRANTY; for details read the GNU General Public License to be found in the file "COPYING" distributed with this program, or online at: http://www.gnu.org/copyleft/gpl.html Developers' email address: ntfs-3g-devel@lists.sf.net News, support and information: http://tuxera.com Проверяем доступность разделов: / # mount | grep sd /dev/sdb1 on /tmp/mnt/OPKG type ext4 (rw,relatime,stripe=8191,data=ordered) /dev/sdb1 on /opt type ext4 (rw,relatime,stripe=8191,data=ordered) /dev/sdb2 on /tmp/mnt/FLS type tntfs (rw,relatime,uid=0,gid=0,umask=022,nls=utf8,min_prealloc_size=64k,max_prealloc_size=32763900,readahead=4M,perm,user_xattr,case_sensitive,fail_safe,hidden=show,dotfile=show,protected_system=ignore,errors=continue,mft_zone_multiplier=1) Выбираем нужный NTFS раздел для проверки: /dev/sdb2 on /tmp/mnt/FLS type tntfs Отмонтируем раздел NTFS: / # umount /dev/sdb2 Проверяем раздел NTFS на ошибки: / # ntfsfix -b -d /dev/sdb2 Mounting volume... OK Processing of $MFT and $MFTMirr completed successfully. Checking the alternate boot sector... OK NTFS volume version is 3.1. Going to un-mark the bad clusters ($BadClus)... No bad clusters...OK NTFS partition /dev/sdb2 was processed successfully. Будут выполнены команды: -b, --clear-bad-sectors Clear the bad sector list -d, --clear-dirty Clear the volume dirty flag После монтируем раздел обратно: / # mount /dev/sdb2 /tmp/mnt/FLS Проверяем, что раздел примонтирован: / # mount | grep sd /dev/sdb1 on /tmp/mnt/OPKG type ext4 (rw,relatime,stripe=8191,data=ordered) /dev/sdb1 on /opt type ext4 (rw,relatime,stripe=8191,data=ordered) /dev/sdb2 on /tmp/mnt/FLS type tntfs (rw,relatime,uid=0,gid=0,umask=022,nls=utf8,min_prealloc_size=64k,max_prealloc_size=32763900,readahead=4M,perm,user_xattr,case_sensitive,fail_safe,hidden=show,dotfile=show,protected_system=ignore,errors=continue,mft_zone_multiplier=1) Далее проверяем show log NDMS: [I] May 21 16:55:06 ndm: FileSystem::Ext: ntfs "7783495649C29371:": filesystem initialized. [I] May 21 16:55:06 ndm: kernel: tntfs info (device sda2, pid 30728): ntfs_fill_super(): fail_safe is enabled. [I] May 21 16:55:06 ndm: kernel: tntfs info (device sda2, pid 30728): load_system_files(): NTFS volume name 'FLS', version 3.1 (cluster_size 4096, PAGE_SIZE 4096). [I] May 21 16:55:06 ndm: FileSystem::Repository: "7783495649C29371:" registered. как видим, раздел загрузился без ошибок и можно продолжать работу.
  13. Александр Рыжов

    Ниже приведен минимальный перечень действий для запуска nginx на кинетике. Подключение к веб-серверу будет возможно только в том случае, если провайдер выдаёт белый IP-адрес. 1. В веб-интерфейсе роутера в разделе NAT задайте следующие правила: На скриншоте в колонке «Interface» указано имя интерфейса для подключения к интернету, в колонке «Translate to» — адрес кинетика в локальной сети. 2. Установите nginx: opkg install nginx 3. Отредактируйте в /opt/etc/nginx/nginx.conf следующие строчки: в разделе server: listen 81; в разделе location: root /opt/share/nginx/html; 4. Запустите веб-сервер: /opt/etc/init.d/S80nginx start Всё! Проверьте доступность сервера из интернета, сервер должен показывать приветственную страницу: Далее настраивайте веб-сервер согласно вашим задачам, например, можно: Подключить исполнение PHP-скриптов, Обеспечить защиту SSL-сертификатом.
  14. Если ваш провайдер перехватывает\логирует\подменяет DNS-запросы или вы просто хотите обезопасить DNS-трафик, то вам может изложенное ниже решение, основанное на использовании dnscrypt-proxy. Установите необходимые пакеты: opkg install fake-hwclock dnscrypt-proxy iptables ndmq При запросе о предпочитаемом сервере dnscrypt просто нажмите Enter. Поместите в файл /opt/etc/ndm/netfilter.d/010-intercept-dns.sh следующее содержимое: #!/bin/sh [ "$table" != "nat" ] && exit 0 lan_ip=$(ndmq -p 'show interface Bridge0' -P address) iptables -t nat -I PREROUTING -p udp -m udp --dport 53 -j DNAT --to-destination $lan_ip:65053 iptables -t nat -I PREROUTING -p tcp -m tcp --dport 53 -j DNAT --to-destination $lan_ip:65053 и сделайте скрипт исполняемым: chmod +x /opt/etc/ndm/netfilter.d/010-intercept-dns.sh Далее, отредактируйте стартовый скрипт /opt/etc/init.d/S09dnscrypt-proxy, заменив в нём строчку ARGS="--local-address=127.0.0.1:65053 --daemonize -R cisco" на ARGS="--local-address=$(ndmq -p 'show interface Bridge0' -P address):65053 --daemonize -R cisco" И перегрузите роутер из веб-интерфейса. Всё! Диагностика проблем: Как это работает: Зачем нужен пакет fake-hwclock: Что теряем при использовании этого решения:
  15. Что это такое и для чего, можно прочитать, напр., на офф сайте owncloud или wiki. Если кратко, то - персональное (личное) облачное хранилище (облако). Размер облака ограничен "жадностью" владельца и/или объёмом диска (флешки не рассматриваются ввиду малого объёма)... Желательно наличие swap`a (файла подкачки). (nginx+php+mysql) Обновить список пакетов opkg update (опционально) установить nano - можно вставлять текст из буфера; mc - понятно; tar - "старший брат" для распаковки opkg install nano mc tar Установить следующие пакеты opkg install nginx php7-fastcgi php7-mod-ctype php7-mod-curl php7-mod-dom \ php7-mod-exif php7-mod-fileinfo php7-mod-gd php7-mod-gettext php7-mod-hash \ php7-mod-iconv php7-mod-json php7-mod-mbstring php7-mod-mcrypt php7-mod-mysql \ php7-mod-pdo php7-mod-pdo-mysql php7-mod-session php7-mod-simplexml \ php7-mod-sockets php7-mod-xml php7-mod-xmlreader php7-mod-xmlwriter php7-mod-zip \ mariadb-server mariadb-client-extra Создать скрипт запуска S79php-fcgi и сделать его исполняемым #!/bin/sh export PHP_FCGI_CHILDREN='' ENABLED=yes PROCS=php-fcgi ARGS="-b /opt/var/run/php-fcgi.sock &" PREARGS="" DESC=$PROCS PATH=/opt/bin:/opt/sbin:/opt/usr/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin . /opt/etc/init.d/rc.func chmod +x /opt/etc/init.d/S79php-fcgi Отредактировать файлы: php.ini, fastcgi_params и nginx.conf Скачать архив owncloud и распаковать в корень сервера (напр., так) mkdir /opt/share/www cd /opt/share/www wget http://download.owncloud.org/community/owncloud-8.1.8.tar.bz2 Connecting to download.owncloud.org (188.40.68.177:80) owncloud-8.1.8.tar.b 100% |**********(вырезано)*********| 24032k 0:00:00 ETA tar -jxf owncloud-8.1.8.tar.bz2 Создать базу данных mysql_install_db --datadir=/opt/var --basedir=/opt --force Запустить mariadb-server /opt/etc/init.d/S70mariadbd start Задать пароль доступа mysqladmin -u root password 'Passw0rd' Войти и создать БД для ownCloud mysql -u root -p create database oc; \q Перезапустить mariadb-server /opt/etc/init.d/S70mariadbd restart Запустить php и nginx /opt/etc/init.d/S79php-fcgi start /opt/etc/init.d/S80nginx start Перейти по адресу http://192.168.1.1:88/owncloud и произвести первичную настройку где user - имя админа облака, pass - его пароль; /opt/share/www/owncloud/data - каиалог для данных; root - имя прользователя для БД; Passw0rd - его пароль; oc - имя БД (использовались в качестве примера - указывайте свои). Если все прошло удачно, то можно увидеть если не получилось, проверяйте где допустили ошибку. Варианты применения: слушать музыку смотреть мувики работать с документами открыть доступ соседке, а ночью просматривать ее селфи поделиться с друзьями/знакомыми, прикрутить сертификат и "выпустить" в интернеты, использовать с другим сервером и БД например и т.д. и т.п. "Самопальный" сертификат для подключения по https Обновить и установить пакеты opkg update opkg install openssl-util Создаём корневой ключ server.key (алгоритм шифрования aes256, длиной 4096 bit). Cистема дважды попросит ввести парольную фразу, придумываем её, вводим и запоминаем. openssl genrsa -aes256 -out server.key 4096 Создаём корневой сертификат: openssl req -new -key server.key -out server.csr -days 3560 Копируем ключ cp server.key server.key.org Удаляем пароль из ключа openssl rsa -in server.key.org -out server.key Генерируем сертификат openssl x509 -req -days 3650 -in server.csr -sha384 -signkey server.key -out server.crt Правим nginx.conf ... ssl_certificate /opt/etc/nginx/server.crt; ssl_certificate_key /opt/etc/nginx/server.key; server { listen 443 ssl; ... После внесения изменений в конфиг, nginx надо перезапустить, а в адресной строке для подключения к owncloud надо набрать https://ip.ad..re.ss:88/owncloud hdd Если нужно чтоб папка data находилась на другом диске то, носителю должна быть задана метка, он должен быть подключен и смонтирован. Проверяем командой mount, в примере ниже это флешка sdb1 с меткой data смонтированая в /tmp/mnt/ ~ # mount rootfs on / type rootfs (rw) /dev/root on / type squashfs (ro,relatime) tmpfs on /dev type tmpfs (rw,nosuid,noexec,relatime) none on /dev/pts type devpts (rw,nosuid,noexec,relatime,mode=600) proc on /proc type proc (rw,nosuid,nodev,noexec,relatime) tmpfs on /tmp type tmpfs (rw,nosuid,nodev,relatime) sysfs on /sys type sysfs (rw,nosuid,nodev,noexec,relatime) /dev/mtdblock/7 on /storage type jffs2 (rw,nosuid,relatime) none on /proc/bus/usb type usbfs (rw,nosuid,noexec,relatime) /dev/sda1 on /tmp/mnt/omni2 type ext2 (rw,relatime) /dev/sdb1 on /tmp/mnt/data type ext2 (rw,nosuid,noexec,noatime) /dev/sda1 on /opt type ext2 (rw,relatime) nfsd on /proc/fs/nfsd type nfsd (rw,relatime) Создаем на нужном носителе папку data mkdir /tmp/mnt/data/data При выборе места хранения данных указываем нужный путь, в примере это /tmp/mnt/data/data Для переноса папки data на другой диск проверяем монтирование и копируем ее (папку) в нужное место, из примера выше, так mv /opt/share/www/owncloud/data /tmp/mnt/data/ нужно открыть и отредактировать файл /opt/share/www/owncloud/config/config.php в файле найти строку 'datadirectory' => '/opt/share/www/owncloud/data', и изменить в ней путь до нового места хранения (из примера выше, заменить на 'datadirectory' => '/tmp/mnt/data/data')
  16. Звуковая станция на базе Entware-Keenetic/Entware-3x и MPD основана на теме, за что, отдельная благодарность - McMCC. Зайти по SSH в подготовленную систему и выполнить следующие команды opkg update opkg install music-center Всё! Настройки mpd находятся по /opt/etc/mpd.conf и меняются, в зависимости от своих предпочтений. NB Тема про модули ядра - теперь они доступны для всех draft-версий прошивок.
  17. Castagnoli

    Не подскажете, работает ли xupnpd? При моих ТВ это критически важно, не хочется с V1 впустую соскакивать опять.
  18. Update 28/02/2016. Прошу обратить внимание, теперь это штатная возможность прошивки и Entware больше не требуется. Инструкция ниже вам нужна только в том случае, если команда opkg прошивкой уже поддерживается, а schedule — ещё нет. Для того, чтобы включать точку доступа в определённое время необходимо: Установить Entware, Установить необходимые пакеты: opkg install cron ndmq Отредактировать файл /opt/etc/crontab, добавив в него следующие строчки: 00 09 * * * root ndmq -p 'interface WifiMaster0/AccessPoint0 up' -P message 00 21 * * * root ndmq -p 'interface WifiMaster0/AccessPoint0 down' -P message Запустить cron вручную или перезагрузить роутер: /opt/etc/init.d/S10cron start Здесь есть описание формата /opt/etc/crontab. В примере выше основная точка (WifiMaster0/AccessPoint0) будет ежедневно включаться (up) в 9:00 и выключаться (down) в 21:00. Признаком того, что всё работает будут строчки лога: [i] Dec 1 09:00:01 cron[16839]: (root) CMD (ndmq -p "interface WifiMaster0/AccessPoint0 up" -P message) [i] Dec 1 09:00:01 ndm: Network::Interface::Base: "WifiMaster0/AccessPoint0": interface is up. … [i] Dec 1 21:00:01 cron[16756]: (root) CMD (ndmq -p "interface WifiMaster0/AccessPoint0 down" -P message^I) [i] Dec 1 21:00:01 ndm: Network::Interface::Base: "WifiMaster0/AccessPoint0": interface is down. Чтобы аналогичным образом управлять гостевой точкой, замените «WifiMaster0/AccessPoint0» на «WifiMaster0/AccessPoint1».
  19. TheBB

    entware

    Проекты Entware-ng и Entware-ng-3x объединились под общим названием Entware. Ниже перечислен минимальный набор действий для использования Entware. Требования: - ZyXEL Keenetic с USB-портом. Любой c NDMS v2.07 (2.08) и выше, кроме моделей 4GII/III. - Прошивка с компонентом OPKG. - USB носитель с разделом ext2/ext3/ext4 и заданной меткой. - Начиная с версии 2.12.A.4.0-0, при установленном компоненте "Сервер SSH", свободный порт 222 Инструкция по установке: 1. Подключите USB-носитель к кинетику 2. Зайдите на носитель по FTP или CIFS 3. Cоздайте на разделе с заданной меткой USB-носителя папку install 4. Скопируйте в папку install подготовленный архив установки для своего устройства: - для Keenetic DSL, LTE, VOX - mips-installer.tar.gz - для остальных интернет-центров Keenetic - mipsel-installer.tar.gz 5. Зайдите в веб-интерфейс кинетика и на странице «Приложения > OPKG» поставьте галку «Включить», затем выберите из списка нужный USB-носитель и нажмите кнопку «Применить». прим. количество вкладок, их порядок и названия зависят от: устройства, версии прошивки и установленных компонентов Если все сделали правильно, то в системном журнале через некоторое время появится строчка "...Можно открыть SSH-сессию для соединения с устройством..." Пример сообщений системного журнала: Всё! Можно зайти на кинетик по ssh, логин root, пароль keenetic. Если установлен компонент прошивки "Сервер SSH", подключаться следует на 222 порт (см. лог выше) Пароль Entware никак не связан с паролем Кинетика. Настоятельно рекомендуется сменить пароль стандартной командой `passwd`: ~ # passwd Changing password for root New password: Bad password: too weak Retype password: Password for root changed by root Обновите список пакетов opkg update и устанавливайте нужные, например файловый менеджер "Midnight Commander": opkg install mc Ознакомиться с основным списком пакетов можно здесь (для mips) и здесь (для mipsel), с дополнительным списком пакетов для Кинетиков здесь (для mips) и здесь (для mipsel).
  20. Репозиторий entware включает в себя два nfs сервера - userspace сервер unfs3 и ядерный. В связи с возможностью установки дополнительных модулей ядра - viewtopic.php?f=3&t=471 расширились и возможности кинетика. В этом сообщении я покажу как поднять ядерный nfs сервер. Первое, что нужно сделать, это установить нужные модули. См. скриншот: В момент написания данной заметки все установленные модули автоматически загружаются. Делать insmod или modprobe не нужно. Второе- установим и запустим pormap opkg install portmap /opt/etc/init.d/S55portmap start (После перезагрузок pormap будет автоматически запускаться) Третье - установим сервер opkg install nfs-kernel-server Четвертое - отредактируем файл /opt/etc/exports # cat /opt/etc/exports /opt *(rw,no_root_squash,insecure,sync,no_subtree_check) Я в этом примере расшариваю всем всю директорию /opt на запись Пятое - удалим скрипт запуска и заменим его другим rm /opt/etc/init.d/S57nfs-kernel-server wget http://pkg.entware-keenetic.ru/binaries/S20nfsd -O /opt/etc/init.d/S20nfsd chmod +x /opt/etc/init.d/S20nfsd Шестое. Запустим скрипт запуска /opt/etc/init.d/S20nfsd start Седьмое - профит! :D PS Лучше переименовать скрипты запуска portmap и nfsd, чтобы portmap запускался первым. PPS. Содержимое S20nfsd: # cat /opt/etc/init.d/S20nfsd #!/bin/sh # Copyright (C) 2006 OpenWrt.org PATH=/opt/sbin:/opt/bin:/opt/usr/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin NFS_D=/opt/var/lib/nfs LOCK_D=/opt/var/lib/nfs/sm start() { grep -q /proc/fs/nfsd /proc/mounts || \ mount -t nfsd nfsd /proc/fs/nfsd mkdir -p $LOCK_D touch $NFS_D/rmtab sysctl -w fs.nfs.nlm_tcpport=32777 fs.nfs.nlm_udpport=32777 > /dev/null rpc.statd -p 32778 -o 32779 exportfs -r rpc.nfsd rpc.mountd -p 32780 } stop() { killall rpc.mountd 2> /dev/null rpc.nfsd 0 2> /dev/null exportfs -au killall rpc.statd 2> /dev/null grep -q /proc/fs/nfsd /proc/mounts && \ umount /proc/fs/nfsd } reload() { exportfs -r } case "$1" in start) start ;; stop) stop ;; restart) stop start ;; reload) reload ;; link_up) ;; ppp_up) ;; link_down) ;; ppp_down) ;; *) echo "Usage: $0 {start|stop|restart|reload|link_up|link_down|ppp_up|ppp_down}" ;; esac
  21. Saymer

    Всем доброго дня! Недавно решил сделать GSM шлюз с использованием модемов Huawei E1550. Для простоты было принято решение сделать это на Windows. Благо было бесплатное ПО, но внезапно 8.02.2016 данное ПО снова стало платным, поэтому вариант на Windows отпал. Следующим было решение использовать пакеты, например, OPKG. Начал изучать тему. За основу взял несколько статей: http://ew8bak.ru/2015/05/17/openwrt-ast ... %B9%D1%82/ https://habrahabr.ru/post/172345/ https://geektimes.ru/post/125186/ и некоторые другие. Дошло до того, что asterisk не может подключиться к COM порту модема. Потыкал по разному, понял, что дальше не понятно. Написал в теме на ixbt. http://forum.ixbt.com/topic.cgi?id=14:63096:764#764 В результате там был дан совет, что нужен модуль ядра usbserial.ko. Так как установкой пакетов первых раз занялся вчера, но с этими вещами мне не совсем понятно на текущий момент. Поэтому создают тему здесь. Так же напишу кратно, что я хочу сдлать. Хочу поставить один или несколько модемов GSM USB E1550, и звонить через них в сеть Оператора связи GSM. Решения такие в сети есть, вопрос как это сделать в текущий ситуации не понятно мне немного. UPD Напишу более подробно, что уже было сделано: Пришел к выводу, что нужно использовать пакеты. Сначала попробовал по статье viewtopic.php?f=2&t=2, но там не было необходимых пакетов, тогда попробовал по другой статье. Установил пакет Астериск, он запустился: Starting asterisk... done. ~ # asterisk -rv Asterisk 11.20.0, Copyright (C) 1999 - 2013 Digium, Inc. and others. Created by Mark Spencer Asterisk comes with ABSOLUTELY NO WARRANTY; type 'core show warranty' for details. This is free software, with components licensed under the GNU General Public License version 2 and other licenses; you are welcome to redistribute it under certain conditions. Type 'core show license' for details. ========================================================================= Но дальше пошли проблемы, не может подключиться к модему: Connected to Asterisk 11.20.0 currently running on Keenetic_Ultra (pid = 10059) [Feb 13 16:03:19] WARNING[10074]: chan_dongle.c:218 opentty: unable to open /dev/ttyUSB2: No such file or directory Keenetic_Ultra*CLI> Keenetic_Ultra*CLI> dongle show devices ID Group State RSSI Mode Submode Provider Name Model Firmware IMEI IMSI Number dongle0 0 Not initia 0 0 0 NONE Unknown Keenetic_Ultra*CLI> [Feb 13 16:12:33] ERROR[10622]: at_response.c:331 at_response_error: [dongle0] Command 'AT' failed Далее удалось добиться, что бы было видно несколько устройств путем удаления компонентов для работы с NDIS и установкой стоковой прошивки. ~ # ls /dev/ttyUSB* /dev/ttyUSB0 /dev/ttyUSB1 /dev/ttyUSB2 ~ # Запускаю ~ # asterisk -rvvvvv Asterisk 11.20.0, Copyright (C) 1999 - 2013 Digium, Inc. and others. И всё равно получаю [Feb 13 22:23:57] ERROR[6054]: at_response.c:331 at_response_error: [modem1] Command 'AT' failed -- [modem1] Error initializing Dongle -- [modem1] Dongle has disconnected Keenetic_Ultra*CLI> Пробовал по разному, но выходит так modem1 0 Not connec 0 0 0 NONE Unknown -- [modem1] Trying to connect on /dev/ttyUSB0... -- [modem1] Dongle has connected, initializing... [Feb 13 22:46:56] ERROR[8027]: chan_dongle.c:436 do_monitor_phone: [modem1] timedout while waiting 'OK' in response to 'AT' -- [modem1] Error initializing Dongle -- [modem1] Dongle has disconnected Keenetic_Ultra*CLI> Пробовал менять конфиг, но всё равно: Trying to connect on /dev/ttyUSB0... Trying to connect on /dev/ttyUSB1... Trying to connect on /dev/ttyUSB2... Устройства видны такие: ~ # ls -l /dev/ttyS* /dev/ttyUSB* crw------- 1 root root 4, 64 Jan 1 1970 /dev/ttyS0 crw------- 1 root root 4, 65 Feb 13 20:09 /dev/ttyS1 crw-r----- 1 root root 188, 0 Feb 13 22:58 /dev/ttyUSB0 crw-r----- 1 root root 188, 1 Feb 13 22:45 /dev/ttyUSB1 crw-r----- 1 root root 188, 2 Feb 13 22:58 /dev/ttyUSB2 ~ # Пробовал обращаться на /dev/ttyS0 Но то же самое было. [Feb 13 23:06:11] ERROR[9079]: chan_dongle.c:436 do_monitor_phone: [modem1] timedout while waiting 'OK' in response to 'AT' -- [modem1] Error initializing Dongle -- [modem1] Dongle has disconnected -- [modem1] Trying to connect on /dev/ttyS0... -- [modem1] Dongle has connected, initializing...
  22. Добрый день. Хочу предложить всем скрипт, который я доработал. Изначально ссылкой поделился zyxmon, а на том форуме еще кто-то, а он взял еще у кого-то. По этому сразу прошу прощения, за то, что не уловил всю длинную цепочку авторов, но, если надо, то меня поправят в этом вопросе. Не ругайте сильно, если где-то опечатался, все желательно проверить, мне пока негде. Готов к замечаниям, я старался, надеюсь кому поможет. Скрипту требуется bash (opkg install bash) и wget (opkg install wget). Что было сделано: Добавлена генерация ta.key. Содержимое этого файла включено в конфигурацию сервера и клиента. Все файлы с ключами, используемые сервером, включены внутрь конфига сервера. (ранее было отдельными файлами со ссылками в конфиге). Выключена компрессия lzo перенесены логи в другой каталог status /opt/var/log/openvpn-status.log и log-append /opt/var/log/openvpn.log сам файл: #!/opt/bin/bash #OpenVPN road warrior installer for Entware-NG running on NDMS v.2. Please see http://keenopt.ru and http://forums.zyxmon.org #This script will let you setup your own VPN server in a few minutes, even if you haven't used OpenVPN before if [[ ! -e /dev/net/tun ]]; then echo "TUN/TAP is not available" exit 1 fi newclient () { # Generates the custom client.ovpn cp /opt/etc/openvpn/client-common.txt ~/$1.ovpn echo "<ca>" >> ~/$1.ovpn cat /opt/etc/openvpn/easy-rsa/pki/ca.crt >> ~/$1.ovpn echo "</ca>" >> ~/$1.ovpn echo "<cert>" >> ~/$1.ovpn cat /opt/etc/openvpn/easy-rsa/pki/issued/$1.crt >> ~/$1.ovpn echo "</cert>" >> ~/$1.ovpn echo "<key>" >> ~/$1.ovpn cat /opt/etc/openvpn/easy-rsa/pki/private/$1.key >> ~/$1.ovpn echo "</key>" >> ~/$1.ovpn echo "key-direction 1" >> ~/$1.ovpn echo "<tls-auth>" >> ~/$1.ovpn cat ta.key >> ~/$1.ovpn echo "</tls-auth>" >> ~/$1.ovpn } echo "Getting your ip address....please wait." IP=$(wget -qO- ipv4.icanhazip.com) if [[ -e /opt/etc/openvpn/openvpn.conf ]]; then while : do clear echo "Looks like OpenVPN is already installed" echo "" echo "What do you want to do?" echo " 1) Add a cert for a new user" echo " 2) Revoke existing user cert" echo " 3) Exit" read -p "Select an option [1-3]: " option case $option in 1) echo "" echo "Tell me a name for the client cert" echo "Please, use one word only, no special characters" read -p "Client name: " -e -i client CLIENT cd /opt/etc/openvpn/easy-rsa/ ./easyrsa build-client-full $CLIENT nopass # Generates the custom client.ovpn newclient "$CLIENT" echo "" echo "Client $CLIENT added, certs available at ~/$CLIENT.ovpn" exit ;; 2) # This option could be documented a bit better and maybe even be simplimplified # ...but what can I say, I want some sleep too NUMBEROFCLIENTS=$(tail -n +2 /opt/etc/openvpn/easy-rsa/pki/index.txt | grep -c "^V") if [[ "$NUMBEROFCLIENTS" = '0' ]]; then echo "" echo "You have no existing clients!" exit 5 fi echo "" echo "Select the existing client certificate you want to revoke" tail -n +2 /opt/etc/openvpn/easy-rsa/pki/index.txt | grep "^V" | cut -d '=' -f 2 if [[ "$NUMBEROFCLIENTS" = '1' ]]; then read -p "Select one client [1]: " CLIENTNUMBER else read -p "Select one client [1-$NUMBEROFCLIENTS]: " CLIENTNUMBER fi CLIENT=$(tail -n +2 /opt/etc/openvpn/easy-rsa/pki/index.txt | grep "^V" | cut -d '=' -f 2 | sed -n "$CLIENTNUMBER"p) cd /opt/etc/openvpn/easy-rsa/ ./easyrsa --batch revoke $CLIENT ./easyrsa gen-crl rm -rf pki/reqs/$CLIENT.req rm -rf pki/private/$CLIENT.key rm -rf pki/issued/$CLIENT.crt # And restart /opt/etc/init.d/S20openvpn restart echo "" echo "Certificate for client $CLIENT revoked" exit ;; 3) exit;; esac done else clear echo 'Welcome to this quick OpenVPN "road warrior" installer' echo "" # OpenVPN setup and first user creation echo "I need to ask you a few questions before starting the setup" echo "You can leave the default options and just press enter if you are ok with them" echo "" echo "First I need to know the IPv4 address of the network interface you want OpenVPN" echo "listening to." read -p "IP address: " -e -i $IP IP echo "" echo "What protocol do you want for OpenVPN?" echo "1) UDP" echo "2) TCP" read -p "Protocol (1 or 2): " -e -i 1 PROTOCOL echo "What VPN NET do you want?" read -p "VPN network: " -e -i 10.8.0.0 VPN_NET echo "Add VPN IP to getaway?" echo "y or n" read -p "VPN GW? " -e -i no VPN_GW echo "" if [ "$PROTOCOL" = 2 ]; then PROTOCOL=tcp PORT=443 else PROTOCOL=udp PORT=1194 fi echo "What port do you want for OpenVPN?" read -p "Port: " -e -i $PORT PORT echo "" if ["$VPN_GW" = "y" ]; then echo "What DNS do you want to use with the VPN?" echo " 1) Current system resolvers" echo " 2) Yandex DNS" echo " 3) Google" read -p "DNS [1-3]: " -e -i 1 DNS echo "" fi echo "RSA key size 2048 or 1024 ?" echo "1) 2048" echo "2) 1024" read -p "RSA key size (1 or 2): " -e -i 1 RSA_KEY_SIZE echo "" if [ "$RSA_KEY_SIZE" = 2 ]; then RSA_KEY_SIZE=1024 else RSA_KEY_SIZE=2048 fi echo "" echo "Finally, tell me your name for the client cert" echo "Please, use one word only, no special characters" read -p "Client name: " -e -i client CLIENT echo "" echo "Okay, that was all I needed. We are ready to setup your OpenVPN server now" read -n1 -r -p "Press any key to continue..." # An old version of easy-rsa was available by default in some openvpn packages if [[ -d /opt/etc/openvpn/easy-rsa/ ]]; then mv /opt/etc/openvpn/easy-rsa/ /opt/etc/openvpn/easy-rsa-old/ fi # Get easy-rsa wget --no-check-certificate -O ~/EasyRSA-3.0.4.tgz https://github.com/OpenVPN/easy-rsa/releases/download/v3.0.4/EasyRSA-3.0.4.tgz tar xzf ~/EasyRSA-3.0.4.tgz -C ~/ mv ~/EasyRSA-3.0.4 /opt/etc/openvpn/easy-rsa/ chown -R root:root /opt/etc/openvpn/easy-rsa/ rm -rf ~/EasyRSA-3.0.4.tgz cd /opt/etc/openvpn/easy-rsa/ if [ "$RSA_KEY_SIZE" = 1024 ]; then cp vars.example vars echo "set_var EASYRSA_KEY_SIZE 1024" >> vars fi # Create the PKI, set up the CA, the DH params and the server + client certificates ./easyrsa init-pki ./easyrsa --batch build-ca nopass ./easyrsa gen-dh ./easyrsa build-server-full server nopass ./easyrsa build-client-full $CLIENT nopass ./easyrsa gen-crl openvpn --genkey --secret ta.key echo "local $IP" > /opt/etc/openvpn/openvpn.conf echo "port $PORT proto $PROTOCOL dev tun sndbuf 0 rcvbuf 0 topology subnet server $VPN_NET 255.255.255.0 ifconfig-pool-persist ipp.txt" >> /opt/etc/openvpn/openvpn.conf if ["$VPN_GW" = "y" ]; then echo 'push "redirect-gateway def1 bypass-dhcp"' >> /opt/etc/openvpn/openvpn.conf # DNS case $DNS in 1) # Obtain the resolvers from resolv.conf and use them for OpenVPN grep -v '#' /etc/resolv.conf | grep 'nameserver' | grep -E -o '[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}' | while read line; do echo "push \"dhcp-option DNS $line\"" >> /opt/etc/openvpn/openvpn.conf done ;; 2) echo 'push "dhcp-option DNS 77.88.8.8"' >> /opt/etc/openvpn/openvpn.conf echo 'push "dhcp-option DNS 77.88.8.1"' >> /opt/etc/openvpn/openvpn.conf ;; 3) echo 'push "dhcp-option DNS 8.8.8.8"' >> /opt/etc/openvpn/openvpn.conf echo 'push "dhcp-option DNS 8.8.4.4"' >> /opt/etc/openvpn/openvpn.conf ;; esac fi echo "keepalive 10 120 push \"route 192.168.1.0 255.255.255.0\" cipher AES-256-CBC compress status /opt/var/log/openvpn-status.log log-append /opt/var/log/openvpn.log client-to-client persist-key persist-tun verb 3 explicit-exit-notify 1 crl-verify /opt/etc/openvpn/easy-rsa/pki/crl.pem" >> /opt/etc/openvpn/openvpn.conf echo '<ca>' >> /opt/etc/openvpn/openvpn.conf cat pki/ca.crt >> /opt/etc/openvpn/openvpn.conf echo '</ca>' >> /opt/etc/openvpn/openvpn.conf echo '<cert>' >> /opt/etc/openvpn/openvpn.conf cat pki/issued/server.crt >> /opt/etc/openvpn/openvpn.conf echo '</cert>' >> /opt/etc/openvpn/openvpn.conf echo '<key>' >> /opt/etc/openvpn/openvpn.conf cat pki/private/server.key >> /opt/etc/openvpn/openvpn.conf echo '</key>' >> /opt/etc/openvpn/openvpn.conf echo '<dh>' >> /opt/etc/openvpn/openvpn.conf cat pki/dh.pem >> /opt/etc/openvpn/openvpn.conf echo '</dh>' >> /opt/etc/openvpn/openvpn.conf echo 'key-direction 0' >> /opt/etc/openvpn/openvpn.conf echo '<tls-auth>' >> /opt/etc/openvpn/openvpn.conf cat ta.key >> /opt/etc/openvpn/openvpn.conf echo '</tls-auth>' >> /opt/etc/openvpn/openvpn.conf echo "#!/bin/sh [ \"\$table\" != "filter" ] && exit 0 # check the table name iptables -I INPUT -i tun0 -j ACCEPT iptables -I FORWARD -s $VPN_NET/24 -j ACCEPT iptables -I INPUT -p $PROTOCOL --dport $PORT -j ACCEPT iptables -A INPUT -i lo -j ACCEPT" >> /opt/etc/ndm/netfilter.d/052-openvpn-filter.sh chmod +x /opt/etc/ndm/netfilter.d/052-openvpn-filter.sh echo "#!/bin/sh [ \"\$table\" != "nat" ] && exit 0 # check the table name iptables -t nat -A POSTROUTING -s $VPN_NET/24 -j SNAT --to $IP" >> /opt/etc/ndm/netfilter.d/053-openvpn-nat.sh chmod +x /opt/etc/ndm/netfilter.d/053-openvpn-nat.sh echo "client dev tun proto $PROTOCOL sndbuf 0 rcvbuf 0 remote $IP $PORT resolv-retry infinite nobind persist-key persist-tun remote-cert-tls server cipher AES-256-CBC compress verb 3" > /opt/etc/openvpn/client-common.txt # Generates the custom client.ovpn newclient "$CLIENT" echo "" echo "Finished!" echo "" echo "Your client config is available at ~/$CLIENT.ovpn" echo "If you want to add more clients, you simply need to run this script another time!" fi
  23. Есть возможность отправлять до пяти СМС в сутки на свой телефон, используя сервис SMS.ru. Для отправки СМС с роутера необходимо после регистрации на сервисе получить api_id. Ниже приведена пара примеров использования этой возможности.
  24. Всем привет! подскажите пожалуйста, у меня мфу canon i-sensys mf4010 подключен по usb кабелю в keenetic omni I прошивка ndms v2.05(AAKU.20)C2, работает только принтер, можно ли задействовать сканер по сети или нет? Заранее спс!
  25. torrentmonitor nginx Устанавливаем минимальный набор пакетов (чтоб запустить) Сервер для Entware-Keenetic/Entware-3x opkg install nginx MySQL(MariaDB) PHP7 Общий список пакетов для обеих систем opkg install php7-cli php7-fastcgi php7-mod-curl php7-mod-iconv \ php7-mod-json php7-mod-mbstring php7-mod-pdo php7-mod-pdo-mysql \ php7-mod-session php7-mod-simplexml php7-mod-xml php7-mod-zip Правим nginx.conf примерно до следующего вида: Также правим fastcgi_params (добавим пару строк) Создаем скрипт запуска S79php-fcgi #!/bin/sh export PHP_FCGI_CHILDREN='' ENABLED=yes PROCS=php-fcgi ARGS="-b /opt/var/run/php-fcgi.sock &" PREARGS="" DESC=$PROCS PATH=/opt/bin:/opt/sbin:/opt/usr/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin . /opt/etc/init.d/rc.func И делаем его исполняемым chmod +x /opt/etc/init.d/S79php-fcgi Редактируем php.ini Проверяем корректность конфига nginx, если ошибок нет, то видим следующее nginx -t nginx: the configuration file /opt/etc/nginx/nginx.conf syntax is ok nginx: configuration file /opt/etc/nginx/nginx.conf test is successful Если есть ошибки, то сообщит с указанием строки Создаем каталог для файлов сервера и файл, с выводом информации о РНР mkdir /opt/share/www echo "<?php phpinfo(); ?>" >> /opt/share/www/phpinfo.php Стартуем сервисы /opt/etc/init.d/S79php-fcgi start /opt/etc/init.d/S80nginx start Идем по ip.add.re.ss:88/phpinfo.php и смотрим на вывод (если ничего нет - проверяем, что сделали не так) Cкачать и распаковать архив с torrentmonitor`ом любым удобным способом (в примере ниже - будет использоваться путь: /opt/share/www/tm) Ставим "Машку" opkg install mariadb-server mariadb-client-extra Создаём базу данных (БД) mysql_install_db Запускаем сервис /opt/etc/init.d/S70mariadbd start Задаем пароль для доступа к БД (в примере ниже - Passw0rd) mysqladmin -u root password "Passw0rd" Подключаемся к БД с созданным паролем mysql -u root -p Создаем БД для Torrentmonitor create database tm; Меняем БД для работы с ней \u tm Импортируем таблицы source /opt/share/www/tm/db_schema/mysql.sql Выход из MariaDB \q Перезапустим сервис, чтоб подхватилась созданная БД /opt/etc/init.d/S70mariadbd restart Переименовываем файл /opt/share/www/tm/config.php.example в config.php и редактируем: ... #Для MySQL: Config::write('db.host', 'localhost'); Config::write('db.type', 'mysql'); Config::write('db.charset', 'utf8'); Config::write('db.port', '3306'); Config::write('db.basename', 'tm'); # имя БД Config::write('db.user', 'root'); # имя пользователя для доступа к БД Config::write('db.password', 'Passw0rd'); # пароль к БД #Для PostgreSQL:... Переходим в браузере на ip.add.re.ss:88/tm , появится страница входа (пароль на вход - torrentmonitor). SQLite PHP7 ставим пакеты: opkg install php7-cli php7-fastcgi php7-mod-curl php7-mod-iconv \ php7-mod-json php7-mod-mbstring php7-mod-pdo php7-mod-pdo-sqlite \ php7-mod-session php7-mod-simplexml php7-mod-xml php7-mod-zip создаём скрипт запуска php `mcedit /opt/etc/init.d/S79php-fcgi` и делаем его исполняемым `chmod +x /opt/etc/init.d/S79php-fcgi` #!/bin/sh export PHP_FCGI_CHILDREN='' ENABLED=yes PROCS=php-fcgi ARGS="-b /opt/var/run/php-fcgi.sock &" PREARGS="" DESC=$PROCS PATH=/opt/bin:/opt/sbin:/opt/usr/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin . /opt/etc/init.d/rc.func правим конфиг nginx `mcedit /opt/etc/nginx/nginx.conf`: и `mcedit /opt/etc/nginx/fastcgi_params` и для php - `mcedit /opt/etc/php.ini` если в конфиг nginx вносили свои изменения, проверяем синтаксис на корректность `nginx -t` (для копи-пасты - не надо, проверено ) если не создан, создаём каталог для файлов сервера `mkdir /opt/share/www` "пара штрихов к портрету" `echo "<?php phpinfo(); ?>" >> /opt/share/www/phpinfo.php` и `ln -s /opt/share/nginx/html/ /opt/share/www/html` стартуем сервисы `/opt/etc/init.d/S79php-fcgi start` и `/opt/etc/init.d/S80nginx start` идём на адрес:88/html/ и смотрим приветственную страницу nginx, по адресу:88/phpinfo.php - сводную информацию о php (если нет - снова перечитываем и проходим все шаги ещё раз ) Качаем архив `wget http://korphome.ru/torrent_monitor/tm-latest.zip` , ставим пакет `opkg install unzip` и распаковываем `unzip tm-latest.zip -x -d /opt/share/www/` не нравиться имя папки? меняем (напр., tm) `mv /opt/share/www/TorrentMonitor-master/ /opt/share/www/tm` и переходим в неё `cd /opt/share/www/tm/` Готовим конфиг `cp config.php.example config.php` `mcedit config.php` ставим пакет `opkg install sqlite3-cli` и импортируем таблицы БД `cat db_schema/sqlite.sql | sqlite3 /opt/var/torrentmonitor.sqlite`, до кучи - задаём права доступа `chmod 666 /opt/var/torrentmonitor.sqlite` Всё! Можно отправляться по известному адресу и настраивать на работу... Не забываем добавить в cron задание */30 * * * * php-cli /opt/share/www/tm/engine.php >> /opt/var/log/torrent_monitor_error.log 2>&1
×