DNS over TLS
Обновена на: March 24, 2022Много ми се иска да пиша интро. Само че много ме мързи.
DNS over TLS (DoT) е криптиран DNS. Съществува също DoH (over HTTPS). Последното е по-скоро рекуест по HTTPS, както и звучи, но първото е чист рекуест с TLS на секюр порт – 853.
На нашия компютър можем да го сетъпнем джиджено с локален рутер, който прави връзка до 853ти порт, после bind-ва на 127.0.0.1:53. Казваш на машината, че nameserver-а е 127.0.0.1 и имаш криптиран DNS.
Много хора препоръчват stubby за тая работа, но аз напоследък съм на golang вълна и си търсих нещо портативно. Намерих routedns. Сигурен съм, че ако не все още, то скоро някой ще напише прокси на С, което да е по-малко по размер. Ама знае ли човек.
Тестваме като сме готови с 1.1.1.1/help
Най-много време ми отне да разбера как точно routedns очаква да приложа trusted server-ите на машината си, за да може да се получи handshake-a, а отговорът е достатъчно лесен. Приеми, че същото се прилага както за Linux, така и за macOS:
routedns ./cloudflare.toml
[resolvers]
[resolvers.cloudflare-dot]
address = “1.1.1.1:853”
protocol = “dot”
ca = “/etc/ssl/cert.pem”[listeners]
[listeners.local-udp]
address = “127.0.0.1:53”
protocol = “udp”
resolver = “cloudflare-dot”[listeners.local-tcp]
address = “127.0.0.1:53”
protocol = “tcp”
resolver = “cloudflare-dot”