Обновляем дистрибутив до актуального состояния
sudo zypper ref
sudo zypper up
sudo zypper ref
sudo zypper up
Так как уже установили dnsmasq-full перейдем непосредственно к настройке всего остального
Логинемся по ssh к OpenWRT и выполняем
opkg update
opkg install stubby
Далее включаем ручной режим в /etc/config/stubby
config stubby 'global'
option manual '1'
Пример конфига, порт и серверы вольны менять как захотите.
resolution_type: GETDNS_RESOLUTION_STUB
round_robin_upstreams: 1
appdata_dir: "/var/lib/stubby"
tls_authentication: GETDNS_AUTHENTICATION_REQUIRED
tls_query_padding_blocksize: 128
dnssec_return_status: GETDNS_EXTENSION_TRUE
edns_client_subnet_private: 1
idle_timeout: 10000
listen_addresses:
- 127.0.0.1@5453
- 0::1@5453
dns_transport_list:
- GETDNS_TRANSPORT_TLS
upstream_recursive_servers:
- address_data: 2606:4700:4700::1111
tls_auth_name: "cloudflare-dns.com"
- address_data: 2606:4700:4700::1001
tls_auth_name: "cloudflare-dns.com"
- address_data: 1.1.1.1
tls_auth_name: "cloudflare-dns.com"
- address_data: 1.0.0.1
tls_auth_name: "cloudflare-dns.com"
Чтобы заработал DNSSEC добавил строку dnssec_return_status: GETDNS_EXTENSION_TRUE.
Данная статья поможет создать собственный репозиторий OpenWRT, со сборкой пакетов и хостингом их, средствами Gitlab Pages и CI/CD.
$ git clone https://git.openwrt.org/project/usign.git
$ cd usign/
$ cmake .
$ make
./usign -G -c "My own OpenWRT repo" -s secret.key -p public.key
Ключи готовы, к ним вернемся позже.
Заходим на сайт Opennic для получения списка ближайших серверов. В моем случае это:
91.217.137.37 (ns5.ru)
176.126.70.119 (ns1.sto.se)
192.71.245.208 (ns2.lom.it)
195.10.195.195 (ns31.de)
Так как в прошлой статье установили и настроили dnsmasq для резолва .onion сайтов, то на OpenWRT просто редактируем /etc/dnsmasq.conf и добавляем следующие строки:
server=/bbs/chan/cyb/dyn/geek/gopher/indy/libre/neo/null/o/oss/oz/parody/pirate/lib/91.217.137.37
server=/bbs/chan/cyb/dyn/geek/gopher/indy/libre/neo/null/o/oss/oz/parody/pirate/lib/176.126.70.119
server=/bbs/chan/cyb/dyn/geek/gopher/indy/libre/neo/null/o/oss/oz/parody/pirate/lib/192.71.245.208
server=/bbs/chan/cyb/dyn/geek/gopher/indy/libre/neo/null/o/oss/oz/parody/pirate/lib/195.10.195.195
Где IP из указанного выше списка.
Перезапускаем dnsmasq
/etc/init.d/dnsmasq restart
Проверяем доступность того же Рутрекера
opkg update
opkg install ipset tor tor-geoip dnsmasq-full
Отрываем на редактирование /etc/tor/torrc
cp /etc/tor/torrc /etc/tor/torrc.opkg
vim /etc/tor/torrc
И приводим конфиг к такому виду
User tor
PidFile /var/run/tor.pid
DataDirectory /var/lib/tor
ExcludeExitNodes {RU},{UA},{AM},{KG}
VirtualAddrNetwork 10.8.0.0/16
AutomapHostsSuffixes .onion,.exit
AutomapHostsOnResolve 1
TransPort 192.168.1.1:9040
SOCKSPort 192.168.1.1:9050
DNSPort 9053
Перезапускаем Tor
/etc/init.d/tor restart
Добавляем в /etc/config/firewall
config ipset
option name 'onion'
option storage 'hash'
option match 'dest_ip'
option timeout '86400'
config redirect
option name 'torify-onion'
option src 'lan'
option proto 'tcp'
option ipset 'onion'
option dest_port '9040'
option dest 'lan'
Перезагружаем firewall