ѕоставка оборудовани€ √аранти€ и помощь с настройкой. —кидка дл€ наших читателей по промокоду WIKIMERIONET  упить
»нтерфейс статистики Merion Mertics показывает ключевые диаграммы и графики по звонкам, а также историю звонков в формате, который легко поймет менеджер ѕопробовать бесплатно
¬недрение
контакт-центра
 онтакт - центр как канал продаж и маркетинговой коммуникации ¬недрить
»нтеграци€ с CRM ѕомогаем навести пор€док с данными
и хранить их в единой экосистеме
ѕодключить
»“ Ѕезопастность ”мна€ информационна€ безопасность дл€ вашего бизнеса «аказать
ћерион Ќетворкс

7 минут чтени€

Ќа самом деле поиск DNS это не то, что требует частого внимани€. Ќо иногда приходитс€ заботитьс€ об этом. Ќапример, если у вашего провайдера слабые сервера или же в вашей сети часто происход€т DNS обращени€, то нужно настроить локальный кэширующий DNS сервер.

”становка локального сервера кешировани€ DNS на Linux

 ак кэширующий DNS-сервер может пригодитьс€?

 эширующий DNS-сервер занимаетс€ обработкой DNS запросов, которые выполн€ет ваша система, затем сохран€ет результаты в пам€ти или кэширует их. ¬ следующий раз, когда система посылает DNS запрос дл€ того же адреса, то локальный сервер почти мгновенно выдает результат.

Ёта иде€ может показатьс€ бесполезной. ѕодумаешь, какие-то там секунды. Ќо если DNS сервера провайдера трат€т много времени на разрешение имени, то в результате падает скорость »нтернет серфинга. Ќапример, домашн€€ страница новостного канала MSNBC дл€ корректной работы обращаетс€ более чем к 100 уникальным доменам. ƒаже если на запрос тратитс€ одна дес€та€ секунды, в итоге получаетс€ 10 секунд ожидани€, что по нынешним меркам слишком много.

Ћокальный кэширующий DNS увеличивает скорость не только дома или в офисе, он также помогает работе серверов. Ќапример, у вас есть почтовый сервер с анти-спам фильтром, который выполн€ет очень много DNS запросов. Ћокальный кэш намного увеличить скорость его работы.

» наконец, system-resolved поддерживает новейшие стандарты вроде DNSSEC и DNSoverTLS или DoT. Ёти технологии увеличивают безопасность при работе в »нтренет.


 акой локальный кэширующий сервер выбрать?

¬ этом руководстве будет использован сервер systemd-resolved. Ёта утилита €вл€етс€ частью набора управлени€ системой systemd. ≈сли в вашей системе используетс€ systemd, а большинство дистрибутивов Linux используют это, то в системе уже установлен systemd-resolved, но не запущен. Ѕольшинство систем не используют эту утилиту.

systemd-resolved запускает небольшой локальный кэширующий DNS-сервер, который мы настроим на запуск при загрузке системы. «атем мы изменим конфигурацию всей системы так, чтобы DNS запросы шли на локальный сервер.


 ак проверить используетс€ ли systemd-resolved?

¬ некоторых дистрибутивах, например Ubuntu 19.04, по умолчанию используетс€ systemd-resolved.

≈сли у вас уже запущен systemd-resolved, тогда не нужно что-то настраивать в системе. Ќо нужно проверить на корректность утилит управлени€ сетевыми настройками, такие как NetworkManager, так как они могут игнорировать системные настройки сети.

ѕеред тем как перейти к следующему разделу проверьте запущен ли в вашей системе systemd-resolved:

$ resolvectl status

≈сли в ответ получите сообщение ниже, значит в системе не настроен systemd-resolved:

$ resolvectl status
Failed to get global data: Unit dbus-org.freedesktop.resolve1.service not found.

» наоборот, если на выходе видите что-то подобное, то systemd-resolved уже работает:

Global
       LLMNR setting: yes
MulticastDNS setting: yes
  DNSOverTLS setting: opportunistic
      DNSSEC setting: allow-downgrade
    DNSSEC supported: no
  Current DNS Server: 1.1.1.1
         DNS Servers: 1.1.1.1
                      1.0.0.1

¬ключение и настройка systemd-resolved

ќтдельно устанавливать systemd-resolved не нужно, так как этот сервис €вл€етс€ частью systemd. ¬сЄ что нужно сделать это запустить его и добавить в автозагрузку. ƒл€ включени€ данной службы введите команду ниже:

$ sudo systemctl start systemd-resolved.service

ƒалее нужно ввести следующую команду, чтобы добавить службу в автозапуск.

$ sudo systemctl enable systemd-resolved.service

» наконец нужно прописать DNS сервера, куда будет обращатьс€ локальный сервер дл€ разрешени€ имен. ≈сть много разных сервисов, но приведЄнные ниже самые быстрые, бесплатные и оба поддерживают DNSSEC и DoT:

Google Public DNS

8.8.8.8
8.8.4.4

Cloudflare Public DNS

1.1.1.1
1.0.0.1

ƒл€ этого откройте конфигурационный файл systemd-resolved любым текстовым редактором:

$ sudo nano /etc/systemd/resolved.conf

ќтредактируйте строку, котора€ начинаетс€ на:

#DNS=

» пропишите одну из вышеуказанных пар. ћы используем Cloudflare Public DNS:

DNS=1.1.1.1 1.0.0.1

—охраните изменени€ и перезапустите службу systemd-resolved:

$ sudo systemctl restart systemd-resolved.service

»так, systemd-resolved уже запущен и готов дл€ выполнени€ быстрых и безопасных DNS запросов, как только мы настроим систему соответствующим образом.


Ќастройка системы дл€ использовани€ systemd-resolved

≈сть несколько путей настройки системы на использование локального DNS сервера. ћы рассмотрим два наиболее используемых метода. ѕервый Ц рекомендуемый метод, второй конфигураци€ в режиме совместимости. –азница в том, как будет обрабатыватьс€ файл /etc/resolv.conf.

¬ файле /etc/resolv.conf содержатс€ IP адреса серверов разрешени€ имен, которые используютс€ программами. ѕрограммы при необходимости разрешени€ доменного имени обращаютс€ к этому файлу в поисках адресов серверов разрешени€ имен.

»так, первый метод конфигурации заключаетс€ в создании символьной ссылки на /run/systemd/resolve/stub-resolv.conf. ¬ этом случае файл /etc/resolv.conf управл€етс€ службой systemd-resolved.

Ёто может вызвать проблемы в том случае, если другие программы пытаютс€ управл€ть файлом /etc/resolv.conf. –ежим совместимости оставл€ет /etc/resolv.conf не тронутым, позвол€€ программам управл€ть им. ¬ этом режиме, в настройках программ, управл€ющих файлом /etc/resolv.conf в качестве системного сервера разрешени€ имен должен быть указан IP 127.0.0.53.


 онфигураци€ в рекомендуемом режиме

ѕри этом режиме конфигураци€ проводитс€ вручную. —начала нужно удалить или переименоватьс€ оригинальный файл /etc/resolv.conf. Ћучше переименовать, чтобы при необходимости можно было использовать информацию в нем

.
$ sudo mv /etc/resolv.conf /etc/resolv.conf.original

«атем создаем символьную ссылку:

$ sudo ln -s /run/systemd/resolve/stub-resolv.conf /etc/resolv.conf

» наконец перезапускаем службу systemd-resolved:

$ sudo systemctl restart systemd-resolved.service

Ќастройка в режиме совместимости

¬ режиме совместимости, нужно убедитьс€, что локальный сервер разрешени€ имен system-resolved запущен и используетс€ системными службами. ќткройте файл /etc/resolv.conf любым редактором:

$ sudo nano /etc/resolv.conf

”далите все строки, которые содержать ключевое слово nameserver и добавьте одну единственную строку:

nameserver 127.0.0.53

Ётот файл мажет быть изменЄн любой программой. „тобы предотвратить это нужно настроить программы так, чтобы в качестве DNS они использовали адрес 127.0.0.53.


ќтладка systemd-resolved

ѕосмотреть, как система выполн€ет DNS запросы после внесЄнных изменений сложно. —амый эффективный метод Ц это включить режим отладки дл€ службы systemd-resolved, а затем просмотреть файл логов.

systemd-resolved можно перевести в режим отладки созданием специального служебного файла, в котором содержатс€ настройки отладки. ƒелаетс€ это следующей командой:

$ sudo systemctl edit systemd-resolved.service

¬ставьте в файл следующие строки:

[Service]
Environment=SYSTEMD_LOG_LEVEL=debug

ѕосле этого служба systemd-resolved автоматический перезапуститьс€. ќткройте второй терминал и просмотрите логи в journald:

$ sudo journalctl -f -u systemd-resolved

—трока, котора€ содержит слова УUsing DNS serverФ показывает, какой DNS сервер используетс€ дл€ разрешени€ имЄн. ¬ нашем случае это DNS сервера Cloudflare

Using DNS server 1.1.1.1 for transaction 19995.

—лова УCache missФ в начале строки означает, что дл€ данного домена нет закэшированной информации:

Cache miss for example.com IN SOA

» наконец слова УPositive cacheФ в начале строки означает, что systemd-resolved уже запрашивал информацию об этом домене и теперь ответы возвращает из кэша:

Positive cache hit for example.com IN A

Ќе забудьте отключить режим отладки, так как в это врем€ создаетс€ большой файл логов. —делать это можно командой:

$ sudo systemctl edit systemd-resolved.service

а затем удалить добавленные выше две строки.


»спользование защищенных DNS запросов

systemd-resolved один из немногих DNS серверов, которые поддерживает DNSSEC и DNSoverTLS. Ёта два механизма позвол€ют убедитьс€, что полученна€ DNS информаци€ подлинна€ (DNSSEC) и он не был изменЄн по пути (DoT).

Ёти функции легко включаютс€ редактированием основного конфигурационного файла system-resolved:

$ sudo nano /etc/systemd/resolved.conf

»змените файл следующим образом:

DNSSEC=allow-downgrade
DNSOverTLS=opportunistic

—охраните изменени€ и перезапустите службу systemd-resolved.

$ sudo systemctl restart systemd-resolved.service

ѕока прописанные DNS сервера поддерживают эти две функции все DNS запросы будут защищены. DNS сервера Google и CloudFlare поддерживают эти механизмы защиты.


«аключение

“еперь ваша система будет выполн€ть DNS запросы быстро и эффективно даже если провайдер не работает достаточно быстро.  роме этого, ваша цифрова€ жизнь лучше защищена новейшими механизмами защиты DNS запросов.


ѕолезна ли ¬ам эта стать€?