Unbound — рекурсивный, валидирующий и кэширующий DNS-резидент
Что такое DNS-резолвер и зачем он нужен?
DNS-резолвер – это ПО, которое преобразует доменные имена в IP-адреса и наоборот. Локальный резолвер особенно полезен как на домашнихсерверах, и прям на самих рабочих машинах, поскольку ускорить процесс разрешения доменных имен или настроить форвадинг. Основные плюсы: — Кэширование запросов – мгновенные ответы на уже известные DNS-запросы — Защита конфиденциальности – провайдер не видит, какие сайты вы посещаете — Стабильность работы – минимизация влияния перегруженных публичных резолверов — Prefetch-механизм – автоматическое обновление записей в фоне — Безопасность – возможность настройки зашифрованного форвардинга — Форвардинг — Prefetch-механизм
Установка
У меня в диструбитве он уже был установлен по умолчанию. Но на debian based системах его можно установить с помощью пакетного менеджера:
sudo apt update sudo apt install unbound
Настройка
В основном конфиге /etc/unbound/unbound.conf
у меня только одна настройка: include-toplevel: "/etc/unbound/unbound.conf.d/*.conf
, т.е все настройки берутся из конфигов по пути: /etc/unbound/unbound.conf.d/
И в каталоге /etc/unbound/unbound.conf.d/
у меня несколько файлов с настройками. Перейдем к ним всем по очереди:
dietpi.conf
Для моего сервера это деффолтный файл, он уже был. В нем живут все основные настройки. У вас это может быть и с другим именем или все настройки оставите в файле /etc/unbound/unbound.conf
.
Основные пункты моих настроек:
Основные настройки
do-daemonize: no num-threads: 1
— do-daemonize: no — - запрещает демонизацию процесса для лучшего контроля через systemd, а именно им он и запускается. — num-threads: 1 - использует один поток, мне пока хватает
Логирование
verbosity: 0 log-queries: no log-replies: no
— Минимальная детализация логов — Отключено логирование запросов и ответов
Сетевые настройки
interface: 0.0.0.0 port: 53
— Слушает на всех сетевых интерфейсах — Использует стандартный DNS-порт 53
Контроль доступа
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
— Запрещает доступ всем, кроме этих локальных сетей
Настройки протоколов
do-udp: yes do-tcp: yes do-ip4: yes do-ip6: no
— Включает UDP и TCP протоколы — Отключаем IPv6
Безопасность и защита
harden-glue: yes harden-dnssec-stripped: yes harden-algo-downgrade: yes harden-large-queries: yes harden-short-bufsize: yes
— Набор настроек для “усиления” безопасности DNS-резолвера
Конфиденциальность
use-caps-for-id: yes rrset-roundrobin: yes qname-minimisation: yes minimal-responses: yes hide-identity: yes identity: "Server" hide-version: yes
— Минимизация информации, передаваемой в DNS-запросах
Кэширование
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 для кэширования — Размер различных типов кэша
Ограничения и буферы
ratelimit: 1000 unwanted-reply-threshold: 10000 edns-buffer-size: 1232 so-rcvbuf: 4m so-sndbuf: 4m
— Ограничение количества запросов в секунду — Защита от нежелательных ответов — Настройки буферов для оптимизации производительности
Дополнительные настройки
module-config: "validator iterator"
root-auto-trust-anchor-file.conf
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
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
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
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 на ПК и всех устройств в локалке.
Запускаем
sudo systemctl enable unbound sudo systemctl start unbound