SharUpOff | Code
88 subscribers
38 photos
16 links
Download Telegram
DNSCrypt - это протокол шифрования и набор готового программного обеспечения для организации защищённого канала передачи DNS-трафика: https://github.com/DNSCrypt

Ни для кого не секрет, что провайдеры любят заглядывать в наш DNS-трафик, а порой даже берут на себя ответственность нарушать работу протокола.

Несколько лет я использовал только dnscrypt-proxy на роутере. Все запросы на 53 порт, которые пытались пройти мимо, неумолимо заворачивались:

iptables -t nat -I PREROUTING -i br0 -p udp --dport 53 -j DNAT --to $(nvram get lan_ipaddr)

К примеру, Chrome старается игнорировать системные настройки и ходит за DNS к себе, в Google. Поэтому порт 853, а также адреса вроде 8.8.8.8 и 8.8.4.4 тоже заблокированы в моей домашней сети. Остаётся только одна полностью контролируемая точка выхода DNS-запросов.

😴 Конечной точкой долгое время был сервер Яндекса. Буквально пару дней назад он устал и запросы перестали ходить. Видимо, пришло время поднять свой encrypted-dns-server.

😵 Пакет, который разработчик любезно собрал для Debian, на моей Ubuntu 20.04 LTS не поделил память с OOM Killer.

Пробую собрать. Rust. Cargo, кажется, пытается выкачать весь GitHub. Последние 500Мб на моей скромной VPS'ке стремительно заканчиваются приблизительно на 27% готовности зависимостей.

Остаётся последний вариант. Изучив трёхэтажный однострочник для запуска Docker решил лучше накатать простейший Compose:

services:
server:
image: jedisct1/dnscrypt-server
command:
- start
ports:
- 123.123.123.123:12345:12345/udp
- 123.123.123.123:12345:12345/tcp
volumes:
- /etc/dnscrypt-server:/opt/encrypted-dns/etc/keys

🛠 Перед первым запуском нужно проинициализировать сервис:

docker compose run server init -N example.com -E 123.123.123.123:12345

В ответ будет выведена строка sdns://AQQAAAAAAAAAEDc3Ljg4... Она нужна для настройки клиента.

Интернет дома снова работает. Теперь ещё чуточку надёжнее.

#traffic #iptables #dns #dnscrypt #devops #linux #docker #compose
Please open Telegram to view this post
VIEW IN TELEGRAM
👍4🔥32
🚀 github.com/sharupoff/gwhosts-proxy

Помнишь, я обещал допинать какой-нибудь домашний проект? Правки можно вносить бесконечно, но как бы то ни было, gwhosts-proxy вот уже несколько лет делит трафик на роутере на правильный и не очень.

🔎 Как это работает? Если поднять промежуточный DNS-сервер прямо на шлюзе, можно читать DNS-запросы и управлять таблицей маршрутизации.

Провайдеры тоже так делают. Use DNSCrypt.

⚙️ Что под капотом? Netlink, парсер DNS-пакетов, и Select. В средние века, когда этих вот async/await'ов ещё не было, мы развлекались как могли.

👀 Кстати, о роутере. Обзавёлся одной очень интересной железкой... Но об этом в другой раз.

👋 Стабильного соединения с миром сновидений.

#python #dns #select #netlink #networking #gwhosts
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥5