Описание
Playbook для Ansible, автоматизирующий настройку обхода блокировок РКН через Wireguard на роутере с OpenWRT
Для взаимодействия c OpenWRT используется модуль gekmihesg/ansible-openwrt
Списки берутся с antifilter.download
Бонусом устанавливается и настраивается DNSCrypt
Полное описание происходящего: https://itdog.info/tochechnyj-obhod-blokirovok-rkn-na-routere-s-openwrt-s-pomoshhyu-wireguard-i-dnscrypt/
И вот здесь: https://habr.com/ru/post/440030/
Тестировалось с
- Ansible 2.9.6
- OpenWrt 20.02.3
Использование
Для работы необходим wg сервер вне зоны действия РКН
Установить модуль gekmihesg/ansible-openwrt
ansible-galaxy install gekmihesg.openwrt
Скачать playbook и темплейты в /etc/ansible
cd /etc/ansible
git clone https://github.com/itdoginfo/ansible-openwrt-hirkn
mv ansible-openwrt-hirkn/* .
rm -rf ansible-openwrt-hirkn README.md
Добавить роутер в файл hosts в группу openwrt
[openwrt]
192.168.1.1
Подставить переменные в hirkn.yml
vars:
ansible_template_dir: /etc/ansible/templates/
wg_server_address: wg_server_ip/url
wg_private_key: privatekey-client
wg_public_key: publickey-client
wg_listen_port: 51820
wg_client_port: 51820
wg_client_address: 192.168.100.3/24
Обязательно нужно задать:
wg_server_address - ip/url wireguard сервера
wg_private_key, wg_public_key - ключи для "клиента"
Остальное можно менять, в зависимости от того как настроен wireguard сервер
Если ваш wg сервер использует preshared_key, то раскомментируйте wg_preshared_key и задайте ключ
Запуск playbook
ansible-playbook playbooks/hirkn.yml
После выполнения playbook роутер сразу начнёт выполнять обход блокировок через Wireguard сервер.
DNSCrypt-proxy2
Если у вас уже стоит dnscrypt-proxy первой версии, его необходимо удалить
opkg remove dnscrypt-proxy
Во второй версии есть отказоустойчивость из коробки.
"DST Root CA X3" issue
С версии 19* по 20.02.0 есть проблема со скачиванием файлов c https://antifilter.download/. Там используется LE сертификат.
Workroud в том, что бы переключить системную ssl библиотеку на openssl. Проверялось на 20.02.0
sed -i 's/https/http/g' /etc/opkg/distfeeds.conf
opkg install libopenssl
opkg install openssl-util
opkg --force-depends remove libustream-wolfssl20201210
opkg install libustream-openssl20201210
sed -i 's/http/https/g' /etc/opkg/distfeeds.conf
Чтобы curl использовал openssl его надо пересобирать, поэтому добавлена возможность использовать wget.
Для этого надо изменить переменную download_utility на wget
download_utility: wget