Русский
Русский
English
Статистика
Реклама

Entware

Пошаговая стратегия или установка Entware и DNSCrypt на модемы Zyxel Keenetic

10.05.2021 02:20:41 | Автор: admin

Что понадобится и предварительные действия

  • ZyXEL Keenetic с USB-портом, любой кроме моделей 4GII/III - одна штука

  • Usb Flash - одна штука

Флешка может быть любой. В моем случае это поддельный Kingston, в котором из 8Гб реально нашлось только 256Мб

Проверяем версию прошивки в дешбоарде. Для установки Entware нужна версия прошивки NDMS v2.07 (2.08) и выше. Если у вас она такова - сразу переходите к пункту 2. Установка Entware

Мой опытный образец Zyxel Keenetic DSL с прошивкой 2.05. Без повышения версии прошивки установка Entware на нём преждевременно прекращается с сообщением Opkg::Manager: /opt/etc/init.d/doinstall: FATAL: kernel too old.

Поэтому

  1. Обновляем прошивку на версию 2.11 из канала legacy

    1. Соединяемся с роутером
      telnet your_router_ip
      вводим логин/пароль админ юзера

    2. Переключаем канал на legacy:
      components sync legacy - для прошивок до 2.06
      components list legacy - для прошивок 2.06 и выше

    3. В веб-интерфейсе идем System -> Update
      Проверяем, что в поле "Use" появилось значение "Debug version". Жмем кнопку "Update" и ждём.

    4. После установки модем ребутнётся. Проверяем в дешбоарде версию.
      NDMS version: 2.11.D.9.0-1 - Значит, всё получилось.

  2. Установка Entware

    1. Качаем установщик для Keenetic DSL, LTE, VOX, DSL (KN-2010), DUO (KN-2110) ( http://bin.entware.net/mipssf-k3.4/installer/mips-installer.tar.gz)
      для остальных интернет-центров Keenetic - mipsel-installer.tar.gz

    2. Берём любую чистую флешку. Я форматировал в FAT32. У флешки обязательно должна быть метка тома (любая, кроме пустой). Вставляем её в роутер.

    3. Проверяем что в System->Update установлены компоненты FTP и OPKG. Если нет - устанавливаем

    4. Если у вас еще не настроен FTP, то заходим в Applications->FTP, включаем FTP сервер, разрешаем анонимный доступ (или не разрешаем, тогда нужно указать, каким пользователям роутера разрешено пользоваться FTP)

    5. Заходим по FTP на роутер (анонимно или нет - см п 2.4), далее в каталог с именем метки нашей флешки (cм п 2.2)

    6. Создаём каталог install и заходим в него

    7. Копируем установщик из п 2.1 в каталог install

    8. Заходим в Applications->OPKG, Ставим галку "Enable", в "Use external storage" выбираем метку нашей флешки, жмём кнопку "Apply"

    9. Переходим в System->Log, ждём сообщения
      "installer[5/5] Установка системы пакетов "Entware" завершена! Не забудьте сменить пароль и номер порта!"
      Теперь можно логиниться на порт 22 или 222 с логином root и паролем keenetic
      Не забываем сменить пароль и номер порта ;)
      порт - в файле /opt/etc/config/dropbear.conf
      пароль - командой passwd

    10. Если FTP сервер не нужен - не забываем его выключить.
      Ну, по крайней мере, закрыть анонимный доступ :)

  3. Установка DNSCrypt2
    Проверяем DNS на утечку перед установкой (в данном случае утечка - это когда ваш браузер лазит к вашему провайдеру чтобы резолвить DNS. И это пока еще нормально, но скоро мы от этого вылечимся)
    https://dnsleaktest.com/
    https://browserleaks.com/dns
    https://whatleaks.com/
    или аналогичные

    1. Заходим в Entware по SSH

    2. Устанавливаем DNSCrypt2
      opkg update
      opkg install dnscrypt-proxy2

    3. Устанавливаем немного дополнительных пакетов
      opkg install ca-certificates cron iptables

    4. Редактируем /opt/etc/dnscrypt-proxy.toml
      нас интересует строка
      listen_addresses = ['127.0.0.1:53']
      разрешаем слушать любые адреса:
      listen_addresses = ['0.0.0.0:53']

    5. Стартуем DNSCrypt2
      /opt/etc/init.d/S09dnscrypt-proxy2 start

    6. Подменяем DNS резолвер прошивки
      ВНИМАНИЕ! Здесь мы подключаемся к роутеру через telnet (не в Entware по SSH) - см п 1.1 и там выполняем
      opkg dns-override
      system configuration save

    7. Идём в вебморду Home Network -> Segments
      Ищем сегмент со своим Wifi подключением, редактируем в секцию DHCP server: прописываем в
      DNS 1 IP роутера
      DNS 2 оставляем пустым

    8. Идем в вебморду Internet -> Connections Выбираем своё исходящее подключение: прописываем в
      DNS 1 IP роутера
      DNS 2 и 3 оставляем пустыми

    9. Идем в вебморду Internet -> Extra Проверяем, чтобы в секции DNS servers не было никаких других серверов кроме IP нашего роутера. Если есть - удаляем.

    10. Переподключаемся к роутеру (по WiFi или проводу) Заодно перепроверяем настройки подключения к роутеру своих устройств, чтобы в них не было принудительно установленных DNS-серверов

    11. Здесь всё (почти работает). Но утечки всё еще возможны. Поэтому мы сейчас запретим весь трафик, который уходит наружу через 53 порт.
      Для чего логинимся в Entware по ssh и создаем скрипт
      /opt/etc/ndm/netfilter.d/10-ClientDNS-Redirect.sh

      ВНИМАНИЕ!
      Замените 10.1.1.1 на IP вашего роутера

      #!/bin/sh
      [ "$type" == "ip6tables" ] && exit 0
      [ "$table" != "nat" ] && exit 0
      [ -z "$(iptables -nvL -t nat | grep "to:10.1.1.1:53")" ] && iptables -t nat -I PREROUTING -p udp --dport 53 -j DNAT --to-destination 10.1.1.1:53
      exit 0

      Это можно сделать, например, вот так:

      ВНИМАНИЕ! Замените 10.1.1.1 на IP вашего роутера

      echo -e '#!/bin/sh\n[ "$type" == "ip6tables" ] && exit 0\n[ "$table" != "nat" ] && exit 0\n[ -z "$(iptables -nvL -t nat | grep "to:10.1.1.1:53")" ] && iptables -t nat -I PREROUTING -p udp --dport 53 -j DNAT --to-destination 10.1.1.1:53\nexit 0' >> /opt/etc/ndm/netfilter.d/10-ClientDNS-Redirect.sh

    12. Делаем 10-ClientDNS-Redirect.sh исполняемым:
      chmod +x /opt/etc/ndm/netfilter.d/10-ClientDNS-Redirect.sh

    13. Ребутим роутер (без этого пункта https://browserleaks.com/dns периодически светил мои родные DNS сервера)

    14. Проверяемся на утечки.

Отныне используемые DNS сервера будут находится рандомно по всему миру, а трафик к ним будет шифроваться.

Ссылки по теме

https://forum.keenetic.net/announcement/5-где-взять-тестовые-сборки/ https://help.keenetic.com/hc/ru/articles/115002060049
https://forum.keenetic.net/topic/4299-entware/?do=findComment&comment=50640
https://forum.keenetic.net/topic/4755-защищаем-dns-запросы-с-помощью-dnscrypt-proxy2-бонусом-блокировка-рекламы/

Подробнее..

Размещаем сайт на домашнем роутере

04.07.2020 18:11:54 | Автор: admin
Мне давно хотелось потрогать руками интернет-сервисы, настроив веб-сервер с нуля и выпустив его в Интернет. В этой статье хочу поделиться полученным опытом превращения домашнего роутера из узкофункционального устройства в практически полноценный сервер.

Началось всё с того, что служивший верой и правдой роутер TP-Link TL-WR1043ND перестал удовлетворять потребности домашней сети, захотелось 5ГГц диапазона и быстрого доступа к файлам на накопителе, подключенном к роутеру. Просмотрев профильные форумы (4pda, ixbt), сайты с отзывами и посмотрев на ассортимент местных магазинов решил приобрести Keenetic Ultra.

В пользу именно этого устройства сработали хорошие отзывы владельцев:
отсутствие проблем с перегревом (тут пришлось отказаться от продукции Asus);
надежность в работе (тут вычеркнул TP-Link);
простота в настройке (побоялся не справиться и вычеркнул Microtik).

Пришлось примириться с минусами:
нет WiFi6, хотелось взять оборудование с запасом на будущее;
4 LAN порта, хотелось больше, но это уже не домашняя категория.

В итоге получилась вот такая серверная:



слева оптический терминал Ростелекома;
справа наш подопытный роутер;
проводом к роутеру подсоединен завалявшийся m.2 SSD на 128 ГБ, помещенный в коробку USB3 с алиэкспресса, сейчас он аккуратно закреплен на стенке;
на переднем плане удлинитель с независимым отключением розеток, провод от него идет к недорогому UPS;
на заднем плане пучок витой пары на этапе ремонта квартиры сразу запланировал RJ45 розетки в местах предполагаемого размещения техники, чтобы не зависеть от замусоренности WiFi.

Итак, у нас есть оборудование, необходимо его настроить:



первичная настройка роутера занимает около 2 минут, указываем параметры подключения к провайдеру (у меня оптический терминал переключен в режим бриджа, PPPoE соединение поднимает роутер), название WiFi сети и пароль в принципе всё, роутер запускается и работает.



Ставим переадресацию внешних портов на порты самого роутера в разделе Сетевые правила Переадресация:





Теперь можно перейти к продвинутой части, чего я хотел от роутера:
1) функционал небольшого NAS для домашней сети;
2) выполнение функций веб-сервера для нескольких частных страничек;
3) функционал персонального облака для доступа к личным данным из любой точки мира.

Первое реализуется встроенными средствами, не требуя особых усилий:

берем предназначенный для этой роли накопитель (флешку, карту памяти в картридере, жесткий диск или SSD во внешнем боксе и форматируем в Ext4 с помощью MiniTool Partition Wizard Free Edition (у меня нет компьютера с linux под рукой, там можно встроенными средствами). Как я понимаю, при работе система пишет на флешку только логи, поэтому, если их ограничить после настройки системы можно использовать и карты памяти, если планируете много и часто писать на накопитель лучше SSD или HDD.



После этого подключаем накопитель к роутеру и наблюдаем его на экране системного монитора



Переходим щелчком по USB-диски и принтеры в раздел Приложения и настраиваем общий ресурс в разделе Сеть Windows:



И у нас имеется сетевой ресурс, который можно использовать с компьютеров под Windows, подключив при необходимости как диск: net use y: \\192.168.1.1\SSD /persistent:yes

Скорость такого импровизированного NAS вполне достаточна для домашнего применения, по проводу он использует весь гигабит, по WiFi скорость составляет около 400-500 мегабит.



Настройка хранилища один из необходимых шагов для настройки сервера, далее нам нужно:
приобрести домен и статический IP адрес (можно обойтись и без этого, используя Dynamic DNS, но статический IP у меня уже был, поэтому проще оказалось воспользоваться бесплатными сервисами Яндекса делегировав туда домен, мы получаем DNS-хостинг и почту на своем домене);



настроить DNS сервера и добавить A-записи, указывающие на ваш IP:



Вступление в силу настроек делегирования домена и DNS занимает несколько часов, поэтому параллельно занимаемся настройкой роутера.

Для начала необходимо установить репозиторий Entware, из которого мы сможем ставить на роутер необходимые пакеты. Я воспользовался этой инструкцией, только не заливал установочный пакет по FTP, а создал папку прямо на подключенном ранее сетевом диске и скопировал туда файл обычным способом.

Получив доступ по SSH, меняем пароль командой passwd и ставим командой opkg install [имена пакетов] все нужные пакеты:



В ходе настройки на роутере оказались установлены следующие пакеты (результат вывода команды opkg list-installed):

Список пакетов
bash 5.0-3
busybox 1.31.1-1
ca-bundle 20190110-2
ca-certificates 20190110-2
coreutils 8.31-1
coreutils-mktemp 8.31-1
cron 4.1-3
curl 7.69.0-1
diffutils 3.7-2
dropbear 2019.78-3
entware-release 1.0-2
findutils 4.7.0-1
glib2 2.58.3-5
grep 3.4-1
ldconfig 2.27-9
libattr 2.4.48-2
libblkid 2.35.1-1
libc 2.27-9
libcurl 7.69.0-1
libffi 3.2.1-4
libgcc 8.3.0-9
libiconv-full 1.11.1-4
libintl-full 0.19.8.1-2
liblua 5.1.5-7
libmbedtls 2.16.5-1
libmount 2.35.1-1
libncurses 6.2-1
libncursesw 6.2-1
libndm 1.1.10-1a
libopenssl 1.1.1d-2
libopenssl-conf 1.1.1d-2
libpcap 1.9.1-2
libpcre 8.43-2
libpcre2 10.34-1
libpthread 2.27-9
libreadline 8.0-1a
librt 2.27-9
libslang2 2.3.2-4
libssh2 1.9.0-2
libssp 8.3.0-9
libstdcpp 8.3.0-9
libuuid 2.35.1-1
libxml2 2.9.10-1
locales 2.27-9
mc 4.8.23-2
ndmq 1.0.2-5a
nginx 1.17.8-1
openssl-util 1.1.1d-2
opkg 2019-06-14-dcbc142e-2
opt-ndmsv2 1.0-12
php7 7.4.3-1
php7-mod-openssl 7.4.3-1
poorbox 1.31.1-2
terminfo 6.2-1
zlib 1.2.11-3
zoneinfo-asia 2019c-1
zoneinfo-europe 2019c-1


Возможно, тут что-то лишнее затесалось, но места на накопителе много, поэтому разбираться не стал.

После установки пакетов настраиваем nginx, я пробовал с двумя доменами на втором настроен https, и пока висит заглушка. 81 и 433 внутренние порты вместо 80 и 443 используются, поскольку на нормальных портах висят админки роутера.

etc/nginx/nginx.conf
user nobody;
worker_processes 1;
#error_log /opt/var/log/nginx/error.log;
#error_log /opt/var/log/nginx/error.log notice;
#error_log /opt/var/log/nginx/error.log info;
#pid /opt/var/run/nginx.pid;

events {
worker_connections 64;
}

http {
include mime.types;
default_type application/octet-stream;
#log_format main '$remote_addr $remote_user [$time_local] "$request" '
# '$status $body_bytes_sent "$http_referer" '
# '"$http_user_agent" "$http_x_forwarded_for"';
#access_log /opt/var/log/nginx/access.log main;
sendfile on;
#tcp_nopush on;
#keepalive_timeout 0;
keepalive_timeout 65;
#gzip on;

server {
listen 81;
server_name milkov.su www.milkov.su;
return 301 milkov.su$request_uri;
}

server {
listen 433 ssl;
server_name milkov.su;
#SSL support
include ssl.conf;
location / {
root /opt/share/nginx/html;
index index.html index.htm;
error_page 500 502 503 504 /50x.html;
location = /50x.html {
root html;
}
}
}

etc/nginx/ssl.conf
ssl_certificate /opt/etc/nginx/certs/milkov.su/fullchain.pem;
ssl_certificate_key /opt/etc/nginx/certs/milkov.su/privkey.pem;
ssl_ciphers 'ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-AES256-GCM-SHA384:DHE-RSA-AES128-GCM-SHA256:DHE-DSS-AES128-GCM-SHA256:kEDH+AESGCM:ECDHE-RSA-AES128-SHA256:ECDHE-ECDSA-AES128-SHA256:ECDHE-RSA-AES128-SHA:ECDHE-ECDSA-AES128-SHA:ECDHE-RSA-AES256-SHA384:ECDHE-ECDSA-AES256-SHA384:ECDHE-RSA-AES256-SHA:ECDHE-ECDSA-AES256-SHA:DHE-RSA-AES128-SHA256:DHE-RSA-AES128-SHA:DHE-DSS-AES128-SHA256:DHE-RSA-AES256-SHA256:DHE-DSS-AES256-SHA:DHE-RSA-AES256-SHA:AES128-GCM-SHA256:AES256-GCM-SHA384:AES128-SHA256:AES256-SHA256:AES128-SHA:AES256-SHA:AES:CAMELLIA:DES-CBC3-SHA:!aNULL:!eNULL:!EXPORT:!DES:!RC4:!MD5:!PSK:!aECDH:!EDH-DSS-DES-CBC3-SHA:!EDH-RSA-DES-CBC3-SHA:!KRB5-DES-CBC3-SHA';
ssl_prefer_server_ciphers on;
ssl_dhparam /opt/etc/nginx/dhparams.pem;
ssl_session_cache shared:SSL:10m;
ssl_session_timeout 5m;
ssl_stapling on;


Для того, чтобы сайт работал по https, воспользовался известным скриптом dehydrated, установив его по этой инструкции. Затруднений этот процесс не вызвал, запнулся только на том, что в тексте скрипта для работы на моем роутере надо закомментировать строчку в файле /opt/etc/ssl/openssl.cnf:

[openssl_conf]
#engines=engines

И отмечу, что генерация dhparams.pem командой openssl dhparam -out dhparams.pem 2048 на моем роутере занимает больше 2 часов, если бы не индикатор прогресса потерял бы терпение и перезагрузил.

После получения сертификатов перезапускаем nginx командой "/opt/etc/init.d/S80nginx restart". В принципе на этом настройка закончена, но сайта еще нет если положим в каталог /share/nginx/html файл index.html, увидим заглушку.
index.html
<!DOCTYPE html>
Тестовая страничка!


Тестовая страничка!


Это простая статическая тестовая страничка, абсолютно ничего интересного.






Чтобы разместить информацию красиво, непрофессионалу типа меня проще воспользоваться готовыми шаблонами, после долгого перебора различных каталогов нашел templatemo.com там неплохой выбор бесплатных шаблонов, не требующих обязательного указания авторства (что редкость в интернете, большая часть шаблонов в лицензии требуют сохранить ссылку на ресурс, откуда они получены).

Выбираем подходящий шаблон там есть на самые разные случаи, скачиваем архив, и раcпаковываем его в каталог /share/nginx/html, делать это можно уже со своего компьютера, затем редактируем шаблон (тут потребуются минимальные знания HTML, чтобы не нарушить структуру) и заменяем графику, как показано на рисунке ниже.



Резюме: роутер вполне пригоден для размещения на нем легкого сайта, в принципе если не предполагается большой нагрузки, можно поставить и php, и экспериментировать с более сложными проектами (смотрю на nextcloud/owncloud, вроде есть успешные установки на такое железо). Возможность установки пакетов поднимает его полезность например, когда надо было защитить RDP порт ПК в локальной сети, поставил knockd на роутер и проброс порта к ПК открывался только после port knocking.

Почему именно роутер, а не обычный PC? Роутер одна из немногих компьютерных железяк, круглосуточно работающих во многих квартирах, домашний роутер обычно абсолютно бесшумен и легкий сайт с числом посещений в сутки меньше сотни его совершенно не напряжет.
Подробнее..

Категории

Последние комментарии

  • Имя: Макс
    24.08.2022 | 11:28
    Я разраб в IT компании, работаю на арбитражную команду. Мы работаем с приламы и сайтами, при работе замечаются постоянные баны и лаги. Пацаны посоветовали сервис по анализу исходного кода,https://app Подробнее..
  • Имя: 9055410337
    20.08.2022 | 17:41
    поможем пишите в телеграм Подробнее..
  • Имя: sabbat
    17.08.2022 | 20:42
    Охренеть.. это просто шикарная статья, феноменально круто. Большое спасибо за разбор! Надеюсь как-нибудь с тобой связаться для обсуждений чего-либо) Подробнее..
  • Имя: Мария
    09.08.2022 | 14:44
    Добрый день. Если обладаете такой информацией, то подскажите, пожалуйста, где можно найти много-много материала по Yggdrasil и его уязвимостях для написания диплома? Благодарю. Подробнее..
© 2006-2024, personeltest.ru