Что понадобится и предварительные действия
-
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.
Поэтому
-
Обновляем прошивку на версию 2.11 из канала legacy
-
Соединяемся с роутером
telnet your_router_ip
вводим логин/пароль админ юзера -
Переключаем канал на legacy:
components sync legacy
- для прошивок до 2.06
components list legacy
- для прошивок 2.06 и выше -
В веб-интерфейсе идем System -> Update
Проверяем, что в поле "Use" появилось значение "Debug version". Жмем кнопку "Update" и ждём. -
После установки модем ребутнётся. Проверяем в дешбоарде версию.
NDMS version: 2.11.D.9.0-1 - Значит, всё получилось.
-
-
Установка Entware
-
Качаем установщик для 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 -
Берём любую чистую флешку. Я форматировал в FAT32. У флешки обязательно должна быть метка тома (любая, кроме пустой). Вставляем её в роутер.
-
Проверяем что в System->Update установлены компоненты FTP и OPKG. Если нет - устанавливаем
-
Если у вас еще не настроен FTP, то заходим в Applications->FTP, включаем FTP сервер, разрешаем анонимный доступ (или не разрешаем, тогда нужно указать, каким пользователям роутера разрешено пользоваться FTP)
-
Заходим по FTP на роутер (анонимно или нет - см п 2.4), далее в каталог с именем метки нашей флешки (cм п 2.2)
-
Создаём каталог install и заходим в него
-
Копируем установщик из п 2.1 в каталог install
-
Заходим в Applications->OPKG, Ставим галку "Enable", в "Use external storage" выбираем метку нашей флешки, жмём кнопку "Apply"
-
Переходим в System->Log, ждём сообщения
"installer[5/5] Установка системы пакетов "Entware" завершена! Не забудьте сменить пароль и номер порта!"
Теперь можно логиниться на порт 22 или 222 с логином root и паролем keenetic
Не забываем сменить пароль и номер порта ;)
порт - в файле/opt/etc/config/dropbear.conf
пароль - командойpasswd
-
Если FTP сервер не нужен - не забываем его выключить.
Ну, по крайней мере, закрыть анонимный доступ :)
-
-
Установка DNSCrypt2
Проверяем DNS на утечку перед установкой (в данном случае утечка - это когда ваш браузер лазит к вашему провайдеру чтобы резолвить DNS. И это пока еще нормально, но скоро мы от этого вылечимся)
https://dnsleaktest.com/
https://browserleaks.com/dns
https://whatleaks.com/
или аналогичные-
Заходим в Entware по SSH
-
Устанавливаем DNSCrypt2
opkg update
opkg install dnscrypt-proxy2
-
Устанавливаем немного дополнительных пакетов
opkg install ca-certificates cron iptables
-
Редактируем
/opt/etc/dnscrypt-proxy.toml
нас интересует строка
listen_addresses = ['127.0.0.1:53']
разрешаем слушать любые адреса:
listen_addresses = ['0.0.0.0:53']
-
Стартуем DNSCrypt2
/opt/etc/init.d/S09dnscrypt-proxy2 start
-
Подменяем DNS резолвер прошивки
ВНИМАНИЕ! Здесь мы подключаемся к роутеру через telnet (не в Entware по SSH) - см п 1.1 и там выполняем
opkg dns-override
system configuration save
-
Идём в вебморду Home Network -> Segments
Ищем сегмент со своим Wifi подключением, редактируем в секцию DHCP server: прописываем в
DNS 1 IP роутера
DNS 2 оставляем пустым -
Идем в вебморду Internet -> Connections Выбираем своё исходящее подключение: прописываем в
DNS 1 IP роутера
DNS 2 и 3 оставляем пустыми -
Идем в вебморду Internet -> Extra Проверяем, чтобы в секции DNS servers не было никаких других серверов кроме IP нашего роутера. Если есть - удаляем.
-
Переподключаемся к роутеру (по WiFi или проводу) Заодно перепроверяем настройки подключения к роутеру своих устройств, чтобы в них не было принудительно установленных DNS-серверов
-
Здесь всё (почти работает). Но утечки всё еще возможны. Поэтому мы сейчас запретим весь трафик, который уходит наружу через 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
-
Делаем 10-ClientDNS-Redirect.sh исполняемым:
chmod +x /opt/etc/ndm/netfilter.d/10-ClientDNS-Redirect.sh
-
Ребутим роутер (без этого пункта https://browserleaks.com/dns периодически светил мои родные DNS сервера)
-
Проверяемся на утечки.
-
Отныне используемые 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-бонусом-блокировка-рекламы/