Назад | Перейти на главную страницу

Postfix - MX: Хост не найден, ошибка, но dig и nslookup в порядке

У меня был рабочий Postfix почтовый сервер на Centos 7 когда я решил перенастроить сеть своего хоста (IP-адресация, DNS и т. д.), после перенастройки отправка почты больше не работает.

/var/log/maillog:

Dec  7 10:20:03 server postfix/error[1711]: 030763B26: to=<gmailaccount@domain.com>, relay=none, delay=0.09, delays=0.08/0/0/0, dsn=4.4.3, status=deferred (delivery temporarily suspended: Host or domain name not found. Name service error for name=domain.com type=MX: Host not found, try again)

Я почти уверен, что поиск MX пользователя Postfix работает:

[lester@server ~]$ sudo -u postfix -H cat /etc/resolv.conf
nameserver 8.8.8.8
[lester@server ~]$
[lester@server ~]$ sudo -u postfix -H dig gmail.com MX

; <<>> DiG 9.11.4-P2-RedHat-9.11.4-9.P2.el7 <<>> gmail.com MX
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 56702
;; flags: qr rd ra; QUERY: 1, ANSWER: 5, AUTHORITY: 0, ADDITIONAL: 1

;; OPT PSEUDOSECTION:
; EDNS: version: 0, flags:; udp: 512
;; QUESTION SECTION:
;gmail.com.         IN  MX

;; ANSWER SECTION:
gmail.com.      3158    IN  MX  30 alt3.gmail-smtp-in.l.google.com.
gmail.com.      3158    IN  MX  40 alt4.gmail-smtp-in.l.google.com.
gmail.com.      3158    IN  MX  20 alt2.gmail-smtp-in.l.google.com.
gmail.com.      3158    IN  MX  5 gmail-smtp-in.l.google.com.
gmail.com.      3158    IN  MX  10 alt1.gmail-smtp-in.l.google.com.

;; Query time: 11 msec
;; SERVER: 8.8.8.8#53(8.8.8.8)
;; WHEN: Sat Dec 07 10:27:03 EST 2019
;; MSG SIZE  rcvd: 161

[lester@server ~]$

Я чувствую, что здесь не хватает чего-то очень очевидного. Я искал несколько часов, но все ссылки, которые я нахожу, указывают на то, что Postfix не может выполнять поиск MX.

Какие-либо предложения?

Я вспомнил, что у этого хозяина selinux включен, поэтому я покопался в журналах аудита и альте!

/var/log/audit/audit.log:

type=AVC msg=audit(1575731823.372:174): avc:  denied  { read } for  pid=1613 comm="smtp" name="resolv.conf" dev="vda1" ino=28066 scontext=system_u:system_r:postfix_smtp_t:s0 tcontext=system_u:object_r:unlabeled_t:s0 tclass=file permissive=0

Проверьте контекст selinux в /etc/resolv.conf:

[lester@server ~]$ ls -lZ /etc/resolv.conf
-rw-r--r--. root root system_u:object_r:unlabeled_t:s0 /etc/resolv.conf
[lester@server ~]$ 

Восстановить контекст selinux:

[lester@server ~]$ sudo restorecon /etc/resolv.conf
[lester@server ~]$ ls -lZ /etc/resolv.conf
-rw-r--r--. root root system_u:object_r:net_conf_t:s0  /etc/resolv.conf
[lester@server ~]$ 

Начать сначала Postfix:

[lester@server ~]$ sudo systemctl restart postfix
[lester@server ~]$

Все вернулось в норму.