Существуют различные способы блокировки интернет-рекламы (рекламы). Одним из самых популярных является использование расширения браузера. Но что происходит, когда вы хотите использовать рекламу, которая работает в других приложениях или даже в мобильных играх? В таком случае нужно блокировать объявления из их источника, то есть непосредственно в сети. Именно здесь появляется AdGuard. С помощью AdGuard вы можете блокировать все или большинство объявлений, заставляя AdGuard действовать в качестве посредника (сервера DNS), который фильтрует контент между вашей сетью и Интернетом.

В этой статье вы установите и настроите AdGuard Home на Ubuntu 24.04, включите шифрование TLS с автоматическим обновлением и настройте пользовательские настройки DNS.

Предпосылки

  • Сервер с Ubuntu 24.04 в качестве ОС
  • Права пользователя: пользователь root или обычный пользователь с привилегиями sudo.

Конвенции

1
2
# - данные команды должны выполняться с правами root либо непосредственно от имени пользователя root, либо с помощью команды sudo.
$ - данные команды должны выполняться от имени обычного пользователя.

Шаг 1. Обновите систему

Свежая установка Ubuntu 24.04 требует обновления пакетов до последних доступных версий.

1
$ sudo apt update -y && sudo apt upgrade -y

Система может нуждаться в перезагрузке после обновления.

1
$ sudo reboot -f

Шаг 2. Свободный порт 53 от systemd-resolved

Ubuntu 24.04 использует systemd-resolved для локального кэширования DNS и разрешения, которое связывается с портом 53 по умолчанию. Страж для домашнего использования требуется порт DNS. Выполните следующие действия, чтобы перенастроить systemd-resolved и свободный порт 53.

Создайте каталог для хранения нового файла конфигурации.

1
$ sudo mkdir -p /etc/systemd/resolved.conf.d

Создание и редактирование нового файла конфигурирования.

1
$ sudo nano /etc/systemd/resolved.conf.d/adguardhome.conf

Создание нового файла конфигурации вместо редактирования существующего гарантирует, что изменения не будут перезаписаны во время обновления системы.

Добавьте в файл следующее содержимое.

1
2
3
[Resolve]
DNS=127.0.0.1
DNSStubListener=no

Сохраните и закройте файл.

Далее сохраните существующий файл resolv.conf.

1
$ sudo mv /etc/resolv.conf /etc/resolv.conf.backup

Создайте новый симлинк.

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

Перезапуск systemd-resolved для применения изменений.

1
$ sudo systemctl restart systemd-resolved

Проверить порт 53 можно бесплатно.

1
$ sudo lsof -i :53

Шаг 3. Настройка правил Firewall

Настройте UFW для подключения к требуемым портам AdGuard Home перед установкой и настройкой.

1
2
3
4
5
6
$ sudo ufw allow 53
$ sudo ufw allow 853
$ sudo ufw allow 3000/tcp
$ sudo ufw allow 80/tcp
$ sudo ufw allow 443/tcp
$ sudo ufw reload

Шаг 4. Установите AdGuard Home

Следуйте шагам ниже, чтобы установить AdGuard Home с помощью официального скрипта установки.

1
$ curl -s -S -L https://raw.githubusercontent.com/AdguardTeam/AdGuardHome/master/scripts/install.sh | sh -s -- -v

Создание каталогов для сертификатов и сценариев.

1
$ sudo mkdir -p /opt/AdGuardHome/{certs,scripts}

Проверьте статус сервиса AdGuard Home.

1
$ sudo /opt/AdGuardHome/AdGuardHome -s status

Выход должен включать строку, указывающую, что услуга работает.

Шаг 5. Установите SSL-сертификат

Мы установим бесплатный SSL-сертификат от Let’s Encrypt с помощью certbot. Certbot - это инструмент ACME для создания SSL-сертификатов, предоставляемых Let’s Encrypt. Прежде чем создать новый SSL-сертификат для вашего adguard.example.com, убедитесь, что вы уже указали запись DNS домена/субдомена на ваш IP-адрес сервера.

1
$ sudo apt install certbot python3-certbot-nginx -y

После установки вы можете запустить эту команду для выдачи SSL-сертификата.

1
$ sudo certbot 

Вам будет предложено несколько вопросов, и вы увидите такой выход:

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
Saving debug log to /var/log/letsencrypt/letsencrypt.log
Enter email address (used for urgent renewal and security notices)
 (Enter 'c' to cancel): you@example.com

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Please read the Terms of Service at
https://letsencrypt.org/documents/LE-SA-v1.5-February-24-2025.pdf. You must
agree in order to register with the ACME server. Do you agree?
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
(Y)es/(N)o: y

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Would you be willing, once your first certificate is successfully issued, to
share your email address with the Electronic Frontier Foundation, a founding
partner of the Let's Encrypt project and the non-profit organization that
develops Certbot? We'd like to send you email about our work encrypting the web,
EFF news, campaigns, and ways to support digital freedom.
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
(Y)es/(N)o: n
Account registered.

Which names would you like to activate HTTPS for?
We recommend selecting either all domains, or all domains in a VirtualHost/server block.
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
1: adguard.example.com
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Select the appropriate numbers separated by commas and/or spaces, or leave input
blank to select all options shown (Enter 'c' to cancel): 1
Requesting a certificate for adguard.example.com

Successfully received certificate.
Certificate is saved at: /etc/letsencrypt/live/adguard.example.com/fullchain.pem
Key is saved at:         /etc/letsencrypt/live/adguard.example.com/privkey.pem
This certificate expires on 2025-10-20.
These files will be updated when the certificate renews.
Certbot has set up a scheduled task to automatically renew this certificate in the background.

Deploying certificate
Successfully deployed certificate for adguard.example.com to /etc/nginx/conf.d/adguard.example.com.conf
Congratulations! You have successfully enabled HTTPS on https://adguard.example.com

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
If you like Certbot, please consider supporting our work by:
 * Donating to ISRG / Let's Encrypt:   https://letsencrypt.org/donate
 * Donating to EFF:                    https://eff.org/donate-le
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

Если есть проблема при создании SSL-сертификата или Certbot не может генерировать сертификат, вполне вероятно, что обновление DNS не полностью распространяется.

Создайте сценарий копии сертификата на основе вашего метода установки.

1
$ sudo nano /opt/AdGuardHome/scripts/copy-certs.sh

Добавьте содержимое сертификата копии сценария. Замените adguard.example.com своим фактическим доменом.

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
#!/bin/bash

DOMAIN="adguard.example.com"
CERT_DIR="/opt/AdGuardHome/certs"

cp /etc/letsencrypt/live/$DOMAIN/fullchain.pem $CERT_DIR/cert.pem
cp /etc/letsencrypt/live/$DOMAIN/privkey.pem $CERT_DIR/key.pem
chmod 644 $CERT_DIR/cert.pem
chmod 600 $CERT_DIR/key.pem

/opt/AdGuardHome/AdGuardHome -s restart

Сделайте сценарий исполняемым и запустите его.

1
2
$ sudo chmod +x /opt/AdGuardHome/scripts/copy-certs.sh
$ sudo /opt/AdGuardHome/scripts/copy-certs.sh

Проверьте сертификаты.

1
$ sudo ls -la /opt/AdGuardHome/certs/

Вы должны увидеть cert.pem и key.pem. Файлы с правильными разрешениями.

Шаг 6. Настройка автоматического обновления сертификата

Срок действия сертификатов шифрования истекает каждые 90 дней. В этом разделе настройте автоматическое обновление сертификатов TLS.

Создайте сценарий обновления Certbot.

1
$ sudo nano /etc/letsencrypt/renewal-hooks/deploy/adguard-renewal.sh

Добавьте в файл следующее содержимое.

1
2
#!/bin/bash
/opt/AdGuardHome/scripts/copy-certs.sh

Сохраните и закройте файл.

Сделайте сценарий исполняемым.

1
$ sudo chmod +x /etc/letsencrypt/renewal-hooks/deploy/adguard-renewal.sh

Чтобы справиться с конфликтами порта 80 во время обновления (поскольку AdGuard Home связывается с портом 80 после установки), создайте сценарии остановки и запуска, а затем добавьте предварительные и пост-обманки в конфигурацию обновления Certbot. Это временно останавливает AdGuard Home перед попыткой обновления и начинает ее после.

Создайте стоп-сценарий.

1
$ sudo nano /opt/AdGuardHome/scripts/stop-adguard.sh

Добавьте в файл следующее содержимое.

1
2
#!/bin/bash
/opt/AdGuardHome/AdGuardHome -s stop > /dev/null 2>&1

Создайте стартовый сценарий.

1
$ sudo nano /opt/AdGuardHome/scripts/start-adguard.sh

Добавьте в файл следующее содержимое.

1
2
#!/bin/bash
/opt/AdGuardHome/AdGuardHome -s start > /dev/null 2>&1

Сделайте их исполняемыми.

1
$ sudo chmod +x /opt/AdGuardHome/scripts/{stop-adguard.sh,start-adguard.sh}

Отредактируйте конфигурацию обновления Certbot, чтобы добавить хуки. Замените adguard.example.com своим доменом.

1
$ sudo nano /etc/letsencrypt/renewal/adguard.example.com.conf

Добавить или обновить в разделе [renewalparams]:

1
2
pre_hook = /opt/AdGuardHome/scripts/stop-adguard.sh
post_hook = /opt/AdGuardHome/scripts/start-adguard.sh

Сохраните и закройте файл.

Проверьте процесс автоматического обновления.

1
$ sudo certbot renew --dry-run

Результат:

1
2
3
...
Congratulations, all simulated renewals succeeded
...

Шаг 7. Настройка начальной настройки AdGuard Home

Доступ к веб-интерфейсу AdGuard Home для завершения начальной конфигурации.

Откройте свой веб-браузер и перейдите к интерфейсу настройки.

1
http://YOUR_SERVER_IP:3000

Нажмите Get Started на странице приветствия.

AdGuard Home Setup Добро пожаловать

Настройка веб-интерфейса Admin:

Listen Interface: Выберите Все интерфейсы

Порт: 80

Настройка DNS-сервера:

Listen Interface: Выберите Все интерфейсы

Порт: 53

Нажмите Далее и создайте учетную запись администратора с именем пользователя и надежным паролем.

Нажмите Далее. Вы попадете на страницу Настройка устройств, где вы увидите настройки конфигурации для различных типов устройств. Нажмите Далее.

Нажмите Open Dashboard для доступа к основному интерфейсу.

Удалите порт 3000 из межсетевого экрана после завершения начальной конфигурации.

1
2
$ sudo ufw delete allow 3000/tcp
$ sudo ufw reload

Шаг 8. Настройка TLS Шифрование

Настройка доступа HTTPS с использованием сертификатов TLS для безопасного доступа к панели инструментов.

Доступ к панели инструментов AdGuard Home и вход в панель инструментов с учетными данными, которые вы установили ранее.

1
http://YOUR_SERVER_IP

Нажмите кнопку «Настройки» в верхнем меню навигации и нажмите «Настройки шифрования».

настройка_меню

Настройте следующие настройки шифрования:

Включите шифрование: Проверьте, чтобы включить.

Имя сервера: Введите свое доменное имя.

Перенаправить на HTTPS автоматически: Включить.

Порт HTTPS: 443

Порт DNS-over-HTTPS: 443

DNS-over-TLS порт: 853

DNS-over-QUIC порт: 853

Настройка траекторий сертификатов:

Выбрать Установите опцию пути файла сертификата.

Путь сертификатов: /opt/AdGuardHome/certs/cert.pem

Путь закрытого ключа: /opt/AdGuardHome/certs/key.pem

Нажмите сохранить, чтобы применить настройки шифрования. После включения шифрования, доступ к AdGuard Home с помощью https://adguard.example.com.

Шаг 9. Настройка DNS Настройки конфиденциальности

AdGuard Home поддерживает зашифрованные DNS-протоколы. Настройте вышестоящие DNS-серверы, которые поддерживают DNS-over-HTTPS (DoH) или DNS-over-TLS (DoT) для повышения конфиденциальности.

Нажмите кнопку «Настройки» в верхнем меню навигации и нажмите «Настройки DNS».

В поле Upstream DNS-серверов добавьте зашифрованные DNS-провайдеры по вашему выбору, такие как:

1
2
3
4
5
https://dns.cloudflare.com/dns-query
https://dns.google/dns-query
https://dns.quad9.net/dns-query
tls://1.1.1.1
tls://8.8.8.8

Эти вышестоящие серверы используют шифрование HTTPS или TLS для защиты DNS-запросов между AdGuard Home и вышестоящими провайдерами.

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

1
2
3
1.1.1.1
8.8.8.8
9.9.9.9

Резервные серверы обычно используют стандартный незашифрованный DNS (порт 53), потому что они служат в качестве аварийного резервного копирования при отказе зашифрованных соединений. Во время нормальной работы AdGuard Home использует только зашифрованные серверы.

Включите следующие функции DNS:

Параллельные запросы: Возможность одновременного запроса нескольких серверов для более быстрых ответов

Включение DNSSEC: проверка DNS-ответов на подлинность

Включите подсеть клиента EDNS: Улучшение производительности CDN

Отключить IPv6: Включить только в том случае, если ваша сеть не поддерживает IPv6.

Нажмите сохранить, чтобы применить конфигурацию DNS.

Шаг 10. Настройка Blocklist

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

Из верхнего меню навигации нажмите Фильтры и выберите блок-списки DNS.

Щелкнуть Добавьте блок-лист и нажмите Выберите из списка.

Выберите опции на изображении ниже, затем нажмите Сохранить.

Добавить в блок-лист.

Просмотрите интернет некоторое время, а затем проверьте панель инструментов AdGuard Home в своем браузере.

1
http://SERVER-IP

Вы увидите все сайты, трекеры и объявления, которые были заблокированы.

Шаг 11. Пользовательский DNS

Переписывание DNS - это правила, которые отменяют стандартное разрешение DNS, отображая конкретные доменные имена на пользовательские IP-адреса. AdGuard поддерживает переписывание DNS, что позволяет отображать доменные имена на конкретные IP-адреса в вашей сети. Это работает как мини-локальный DNS-сервер для внутреннего использования. Например, вы можете создать карту Adguard Home для SERVER-IP, чтобы получить доступ к панели инструментов AdGuard. Следуйте шагам ниже, чтобы получить доступ к панели инструментов AdGuard Home с помощью Adguard. Домашний, а не серверный IP-адрес.

Из верхнего меню навигации нажмите Фильтры и выберите DNS-перезаписи.

щелкнуть Добавьте DNS-переписку.

Введите домен и IP-адрес вашего сервера, а затем нажмите «Сохранить».

Шаг 12. Настройка клиентских устройств

Вы можете настроить свои устройства на использование AdGuard Home в качестве DNS-сервера. Конфигурация варьируется между различными типами устройств. В разделе ниже описывается настройка маршрутизатора для использования сервера AdGuard Home в качестве DNS-сервера.

Шаг 13. Конфигурация маршрутизатора

Настройте маршрутизатор, чтобы автоматически применять AdGuard Home DNS ко всем подключенным устройствам.

Доступ к веб-странице администратора вашего маршрутизатора обычно http://192.168.1.1.

Перейдите в раздел настроек DHCP или DNS.

Включите пользовательский DNS и добавьте IP-адрес вашего сервера AdGuard Home или замените существующие адреса DNS-сервера IP-адресом вашего сервера AdGuard Home.

Сохраните и примените настройки.

Вы можете найти настройки конфигурации для большинства типов устройств из опции «Руководство по настройке» в верхнем меню навигации панели инструментов AdGuard Home.

Шаг 14. Мониторинг и обслуживание

AdGuard Home показывает статистику запросов DNS на своей панели инструментов.

Шаг 15. Посмотреть статистику

Доступ к панели инструментов по адресу https://adguard.example.com. Вы должны увидеть журналы запросов DNS, которые достигли вашего DNS-сервера AdGuard Home.

Завершение

Вы успешно развернули AdGuard Home на Ubuntu 24.04 с автоматическим обновлением сертификата TLS и зашифрованными протоколами DNS с использованием официального скрипта установки. Чтобы узнать больше о его использовании, обратитесь к странице AdGuard Home Wiki.

Если вам понравился этот пост, пожалуйста, поделитесь им со своими друзьями или оставьте комментарий ниже.