Что такое DNS-резолвер и зачем он нужен? Link to heading

DNS-резолвер – это ПО, которое преобразует доменные имена в IP-адреса и наоборот. Локальный резолвер особенно полезен как на домашнихсерверах, и прям на самих рабочих машинах, поскольку ускорить процесс разрешения доменных имен или настроить форвадинг. Основные плюсы: — Кэширование запросов – мгновенные ответы на уже известные DNS-запросы — Защита конфиденциальности – провайдер не видит, какие сайты вы посещаете — Стабильность работы – минимизация влияния перегруженных публичных резолверов — Prefetch-механизм – автоматическое обновление записей в фоне — Безопасность – возможность настройки зашифрованного форвардинга — Форвардинг — Prefetch-механизм

Установка Link to heading

У меня в диструбитве он уже был установлен по умолчанию. Но на debian based системах его можно установить с помощью пакетного менеджера:

sudo apt update
sudo apt install unbound

Настройка Link to heading

В основном конфиге /etc/unbound/unbound.conf у меня только одна настройка: include-toplevel: "/etc/unbound/unbound.conf.d/*.conf, т.е все настройки берутся из конфигов по пути: /etc/unbound/unbound.conf.d/ И в каталоге /etc/unbound/unbound.conf.d/ у меня несколько файлов с настройками. Перейдем к ним всем по очереди:

dietpi.conf Link to heading

Для моего сервера это деффолтный файл, он уже был. В нем живут все основные настройки. У вас это может быть и с другим именем или все настройки оставите в файле /etc/unbound/unbound.conf.

Основные пункты моих настроек:

Основные настройки Link to heading

do-daemonize: no
num-threads: 1

— do-daemonize: no — - запрещает демонизацию процесса для лучшего контроля через systemd, а именно им он и запускается. — num-threads: 1 - использует один поток, мне пока хватает

Логирование Link to heading

verbosity: 0
log-queries: no
log-replies: no

— Минимальная детализация логов — Отключено логирование запросов и ответов

Сетевые настройки Link to heading

interface: 0.0.0.0
port: 53

— Слушает на всех сетевых интерфейсах — Использует стандартный DNS-порт 53

Контроль доступа Link to heading

access-control: 0.0.0.0/0 refuse
access-control: 10.0.0.0/8 allow
access-control: 127.0.0.1/8 allow
access-control: 192.168.0.0/16 allow

— Запрещает доступ всем, кроме этих локальных сетей

Настройки протоколов Link to heading

do-udp: yes
do-tcp: yes
do-ip4: yes
do-ip6: no

— Включает UDP и TCP протоколы — Отключаем IPv6

Безопасность и защита Link to heading

harden-glue: yes
harden-dnssec-stripped: yes
harden-algo-downgrade: yes
harden-large-queries: yes
harden-short-bufsize: yes

— Набор настроек для “усиления” безопасности DNS-резолвера

Конфиденциальность Link to heading

use-caps-for-id: yes
rrset-roundrobin: yes
qname-minimisation: yes
minimal-responses: yes
hide-identity: yes
identity: "Server"
hide-version: yes

— Минимизация информации, передаваемой в DNS-запросах

Кэширование Link to heading

cache-min-ttl: 300
cache-max-ttl: 86400
serve-expired: yes
neg-cache-size: 4M
prefetch: yes
prefetch-key: yes
msg-cache-size: 50m
rrset-cache-size: 100m

— Минимальный и максимальный TTL для кэширования — Размер различных типов кэша

Ограничения и буферы Link to heading

ratelimit: 1000
unwanted-reply-threshold: 10000
edns-buffer-size: 1232
so-rcvbuf: 4m
so-sndbuf: 4m

— Ограничение количества запросов в секунду — Защита от нежелательных ответов — Настройки буферов для оптимизации производительности

Дополнительные настройки Link to heading

module-config: "validator iterator"

— Активирует модуль DNSSEC

root-auto-trust-anchor-file.conf Link to heading

auto-trust-anchor-file: "/var/lib/unbound/root.key"

Это и есть сама настройка для работы DNSSEC (Domain Name System Security Extensions)

— auto-trust-anchor-file - указывает путь к файлу, содержащему корневой ключ доверия (trust anchor)

“/var/lib/unbound/root.key” - это сам файл, который содержит ключ корневой DNS-зоны

forward-default.conf Link to heading

forward-zone:
    name: "."
    forward-addr: 8.8.8.8
    forward-addr: 8.8.4.4

— forward-zone - определяет зону для форвардинга DNS-запросов — name: “.” - точка (.) указывает, что все DNS-запросы будут форвардиться — forward-addr - IP-адреса гугловыхDNS-серверов, на которые будут перенаправляться запросы

forward-ru.conf Link to heading

forward-zone:
    name: "ru"
    forward-addr: 77.88.8.8
    forward-addr: 77.88.8.1

— forward-zone - определяет зону для форвардинга DNS-запросов — name: “ru” - указывает, что эта конфигурация применяется только к доменам зоны .ru — forward-addr - IP-адреса Яндекс DNS-серверов, на которые будут перенаправляться запросы

openai.conf Link to heading

forward-zone:
    name: "chatgpt.com"
    forward-addr: 83.220.169.155

forward-zone:
    name: "ab.chatgpt.com"
    forward-addr: 83.220.169.155

forward-zone:
    name: "api.openai.com"
    forward-addr: 83.220.169.155

forward-zone:
    name: "arena.openai.com"
    forward-addr: 83.220.169.155

forward-zone:
    name: "auth.openai.com"
    forward-addr: 83.220.169.155

forward-zone:
    name: "auth0.openai.com"
    forward-addr: 83.220.169.155

forward-zone:
    name: "beta.api.openai.com"
    forward-addr: 83.220.169.155

forward-zone:
    name: "beta.openai.com"
    forward-addr: 83.220.169.155

forward-zone:
    name: "blog.openai.com"
    forward-addr: 83.220.169.155

forward-zone:
    name: "cdn.oaistatic.com"
    forward-addr: 83.220.169.155

forward-zone:
    name: "cdn.openai.com"
    forward-addr: 83.220.169.155

forward-zone:
    name: "chat.openai.com"
    forward-addr: 83.220.169.155

forward-zone:
    name: "community.openai.com"
    forward-addr: 83.220.169.155

forward-zone:
    name: "contest.openai.com"
    forward-addr: 83.220.169.155

forward-zone:
    name: "debate-game.openai.com"
    forward-addr: 83.220.169.155

forward-zone:
    name: "discuss.openai.com"
    forward-addr: 83.220.169.155

forward-zone:
    name: "files.oaiusercontent.com"
    forward-addr: 83.220.169.155

forward-zone:
    name: "gpt3-openai.com"
    forward-addr: 83.220.169.155

forward-zone:
    name: "gym.openai.com"
    forward-addr: 83.220.169.155

forward-zone:
    name: "help.openai.com"
    forward-addr: 83.220.169.155

forward-zone:
    name: "ios.chat.openai.com"
    forward-addr: 83.220.169.155

forward-zone:
    name: "jukebox.openai.com"
    forward-addr: 83.220.169.155

forward-zone:
    name: "labs.openai.com"
    forward-addr: 83.220.169.155

forward-zone:
    name: "microscope.openai.com"
    forward-addr: 83.220.169.155

forward-zone:
    name: "oaistatic.com"
    forward-addr: 83.220.169.155

forward-zone:
    name: "openai.com"
    forward-addr: 83.220.169.155

forward-zone:
    name: "openai.fund"
    forward-addr: 83.220.169.155

forward-zone:
    name: "openai.org"
    forward-addr: 83.220.169.155

forward-zone:
    name: "platform.api.openai.com"
    forward-addr: 83.220.169.155

forward-zone:
    name: "platform.openai.com"
    forward-addr: 83.220.169.155

forward-zone:
    name: "spinningup.openai.com"
    forward-addr: 83.220.169.155

forward-zone:
    name: "universe.openai.com"
    forward-addr: 83.220.169.155

Настройка для форварда доменов ChatGPT от OpenAI через DNS от Comss.one чтобы работал ChatGPT на ПК и всех устройств в локалке.

Запускаем Link to heading

sudo systemctl enable unbound
sudo systemctl start unbound