Вопрос или проблема
Я пытаюсь настроить почтовый сервер на Debian с opendkim и opendmarc
Когда я получаю письмо, SpamAssassin отвергает его, потому что opendkim не может выполнить DNS-запрос
Я протестировал команду opendkim-testkey, DNS-запрос превышает время ожидания:
$ opendkim-testkey -s 20161025 -d gmail.com -vvv
opendkim-testkey: используется файл конфигурации по умолчанию /etc/opendkim.conf
opendkim-testkey: проверка ключа '20161025._domainkey.gmail.com'
opendkim-testkey: запрос '20161025._domainkey.gmail.com' превышает время ожидания
Я пытался выполнить DNS-запрос с помощью dig на сервере, с успехом
$ dig txt 20161025._domainkey.gmail.com
;; СЕКЦИЯ ОТВЕТА:
20161025._domainkey.gmail.com. 282 IN TXT “k=rsa; p=MIIB[…]AB”
Читая другие посты, я попытался добавить Nameservers, но это совершенно ничего не изменило
Есть ли у кого-нибудь идея?
Я только что решил свою проблему:
В файле /etc/opendkim.conf я закомментировал
TrustAnchorFile /usr/share/dns/root.key
Мой локальный DNS-сервер уже выполняет эту задачу
В моем случае это была проблема с файерволом, OpenDKIM выполняет DNS-запросы на корневые серверы (см. TrustAnchorFile в /etc/opendkim.conf). Открытие моего файервола в исходящем направлении для всех IP-адресов в /usr/share/dns/root.key решило проблему.
Вы можете заставить openDKIM использовать локальный сервер имен.
В файле /etc/opendkim.conf просто раскомментируйте строку, содержащую Nameservers
, и укажите сервер, который вы намереваетесь использовать. Особенно если вы находитесь за файерволом и используете локальный DNS-сервер для разрешения, вы можете предотвратить выполнение запросов openDKIM к корневым серверам, чтобы вам не пришлось настраивать параметры файервола.
Ответ или решение
Ответ на вопрос о проблеме таймаута запросов OpenDKIM
Ваша проблема с таймаутом запросов OpenDKIM может быть вызвана несколькими факторами, а именно настройками конфигурации, брандмауэром или использованием локального DNS-сервера. Рассмотрим, как можно решить данную проблему.
-
Проверка конфигурации OpenDKIM:
Убедитесь, что в файле конфигурации OpenDKIM (/etc/opendkim.conf
) правильно настроены параметры, отвечающие за DNS-запросы. В частности, проверьте параметрNameservers
. Если он закомментирован или отсутствует, OpenDKIM попытается обратиться к корневым DNS-серверам, что может вызывать таймауты, если данные запросы блокируются вашим брандмауэром.Чтобы указать локальный DNS-сервер, раскомментируйте строку с
Nameservers
и укажите IP-адрес вашего локального DNS-сервера:Nameservers 192.168.1.1
Замените
192.168.1.1
на IP-адрес вашего DNS-сервера. -
Проверка настроек брандмауэра:
Если ваш сервер подключен к брандмауэру, убедитесь, что разрешены исходящие соединения на все IP-адреса, указанные в файле/usr/share/dns/root.key
(если вы не используете локальный DNS-сервер). Если вы хотите ограничить доступ к корневым DNS-серверам, то можно открыть только необходимые порты:- TCP/53 (DNS)
- UDP/53 (DNS)
-
Изменение или отключение TrustAnchorFile:
Если вы уже используете локальный DNS-сервер, вы можете отключить использование корневого ключа в OpenDKIM, закомментировав строку:TrustAnchorFile /usr/share/dns/root.key
Это позволит OpenDKIM использовать ваши локальные DNS-запросы для проверки, что может помочь устранить таймауты.
-
Тестирование:
После внесения изменений важно протестировать работу OpenDKIM с помощью команды:opendkim-testkey -s 20161025 -d gmail.com -vvv
Убедитесь, что запросы выполняются успешно и не имеют таймаутов.
-
Мониторинг и проверка работы:
Следите за логами OpenDKIM, которые обычно находятся в директории/var/log/syslog
или/var/log/mail.log
, чтобы выявить возможные ошибки, связанные с DNS.
Соблюдая вышеописанные шаги, вы сможете устранить проблему с таймаутами запросов от OpenDKIM и обеспечить корректную обработку электронной почты вашим почтовым сервером. Если после всех этих действий проблема сохраняется, возможно, стоит проверить настройки вашего DNS-сервера локально или настройки сети.