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

Настроить почтовый ретранслятор в Red Hat

У меня есть сервер Linux Red Hat, который не может отправлять исходящие письма. У меня также есть сервер Solaris, который уже настроен ранее для ретрансляции почты на почтовый сервер. Чтобы пользователь мог получать электронную почту от Red Hat, мне нужно ретранслировать почту через сервер Solaris. И мой начальник строго попросил меня использовать sendmail вместо postfix.

пока что я делаю:

сервер solaris: bres.net.com - 192.65.7.8

красная шляпа: имя хоста: бэтмен ip: 192.55.7.43

Отредактируйте /etc/mail/sendmail.mc

define(`SMART_HOST',`bres.net.com')dnl
MASQUERADE_AS(`net.com')dnl
FEATURE(masquerade_envelope)dnl
FEATURE(masquerade_entire_domain)dnl
MASQUERADE_DOMAIN(localhost)dnl
MASQUERADE_DOMAIN(localhost.net.com)dnl
MASQUERADE_DOMAIN(batman.net.com)dnl
MASQUERADE_DOMAIN(others.net.com)dnl

Отредактируйте / etc / hosts

127.0.0.1       batman.net.com localhost.localdomain  localhost  batman
192.55.7.43     batman    batman.net.com   loghost
192.65.7.8      bres      bres.net.com

Отредактируйте /etc/resolv.conf

search net.com
bres.net.com  192.65.7.8      

Создайте новый sendmail.cf:

m4 sendmail.mc > sendmail.cf

Перезапустить sendmail

Проверьте это, отправив письмо

Проверить журнал / var / log / maillog

Nov 22 12:00:54 localhost sendmail[22251]: uAM402ru022251: from=root, size=591, class=0, nrcpts=1, msgid=<201611220400.uAM402ru022251@batman.net.com>, relay=root@localhost
Nov 22 12:02:54 localhost sendmail[22281]: uAM40sRm022281: from=<root@batman.net.com >, size=863, class=0, nrcpts=1, msgid=<201611220400.uAM402ru022251@batman.net.com>, proto=ESMTP, daemon=MTA, relay=batman.net.com[127.0.0.1]    
Nov 22 12:02:54 localhost sendmail[22251]: uAM402ru022251: to=root, ctladdr=root (0/0), delay=00:02:52, xdelay=00:02:00, mailer=relay, pri=30591, relay=[127.0.0.1] [127.0.0.1], dsn=2.0.0, stat=Sent (uAM40sRm022281 Message accepted for delivery)
Nov 22 12:04:14 localhost sendmail[22303]: uAM40sRm022281: to=<root@batman.net.com>, delay=00:01:20, xdelay=00:01:20, mailer=relay, pri=120863, relay=bres.net.com, dsn=4.0.0, stat=Deferred: Name server: bres.net.com: host name lookup failure

После изменения определите (SMART_HOST',192.65.7.8 ') dnl =, журнал будет выглядеть следующим образом:

Nov 23 09:51:49 batman sendmail[8953]: uAN1m5aZ008953: from=<root@batman.net.com>, size=1052, class=0, nrcpts=1, msgid=<201611222200.uAMM02K3007934@batman.net.com>, proto=ESMTP, daemon=MTA, relay=batman.net.com [127.0.0.1]
Nov 23 09:51:49 batman sm-msp-queue[8950]: uAMM02K3007934: to=root, ctladdr=root (0/0), delay=03:51:47, xdelay=00:03:44, mailer=relay, pri=120780, relay=[127.0.0.1] [127.0.0.1], dsn=2.0.0, stat=Sent (uAN1m5aZ008953 Message accepted for delivery)
Nov 23 09:51:49 batman sendmail[8964]: uAN1m5aZ008953: to=<root@batman.net.com>, ctladdr=<root@batman.net.com> (0/0), delay=00:00:00, xdelay=00:00:00, mailer=local, pri=31276, dsn=2.0.0, stat=Sent
Nov 23 09:51:49 batman sendmail[8953]: uAN1m5ab008953: from=<root@batman.net.com>, size=3002, class=0, nrcpts=1, msgid=<201611222002.uAMK2UOH007318@batman.net.com>, proto=ESMTP, daemon=MTA, relay=batman.net.com [127.0.0.1]
Nov 23 09:51:49 batman sm-msp-queue[8950]: uAMK2UOH007318: to=root, ctladdr=root (0/0), delay=05:49:19, xdelay=00:00:00, mailer=relay, pri=122704, relay=[127.0.0.1] [127.0.0.1], dsn=2.0.0, stat=Sent (uAN1m5ab008953 Message accepted for delivery)
Nov 23 09:51:49 batman sendmail[8966]: uAN1m5ab008953: to=<root@batman.net.com>, ctladdr=<root@batman.net.com> (0/0), delay=00:00:00, xdelay=00:00:00, mailer=local, pri=33231, dsn=2.0.0, stat=Sent
Nov 23 09:54:11 batman sendmail[8962]: uAN1oRWw008962: from=root, size=66, class=0, nrcpts=1, msgid=<201611230150.uAN1oRWw008962@batman.net.com>, relay=root@localhost
Nov 23 09:54:11 batman sendmail[8962]: uAN1oRWw008962: to=kelly@net.com, delay=00:03:44, mailer=esmtp, pri=30066, dsn=4.4.3, stat=queued

Я могу ретранслировать электронную почту, изменив определение SMARTHOST и добавив один файл конфигурации (service.switch) в etc / mail.

define(`SMART_HOST',`relay:[192.65.7.8]')dnl

добавить service.switch в etc / mail

####### start of file #########

hosts files
aliases files

####### end of file ###########

После изменений почтовый ретранслятор работал нормально. Но после перезапуска сервера Red Hat sendmail не работает, и журналы отображаются, как показано ниже:

Nov 25 10:00:30 batman sendmail[15372]: uAP20Ude015372: from=root, size=66,class=0, nrcpts=1, msgid=<201611250200.uAP20Ude015372@batman.net.com>, relay=root@localhost
Nov 25 10:00:30 batman sendmail[15372]: uAP20Ude015372: to=kelly@net.com, ctladdr=root (0/0), delay=00:00:00, xdelay=00:00:00, mailer=relay, pri=30066,relay=[127.0.0.1] [127.0.0.1], dsn=4.0.0, stat=Deferred: Connection refused by [127.0.0.1]

и перед этим журналом журнал показывает:

Nov 24 10:09:47 batman sendmail[24936]: uAO29kOL024936: ruleset=check_rcpt, arg1=<root@batman.net.com>, relay=[192.65.7.8], reject=450 4.4.0 <root@batman.net.com>... Relaying temporarily denied. Cannot resolve PTR record for 192.65.7.8

В журнале показано, что соединение отклонено и невозможно разрешить запись PTR. Пожалуйста помоги.

«Ошибка поиска имени хоста» указывает на ошибку DNS, не обязательно на неправильную конфигурацию sendmail.

Sendmail, или, скорее, отправка электронной почты сильно зависит от DNS и плохо работает с хостами и доменами, которые существуют только как записи в /etc/hosts файл.

Самый простой - убедиться, что nslookup bres.net.com работает.

Может дело в форматировании вашего вопроса, но запись bres.net.com 192.65.7.8 не принадлежит resolv.conf и там должна быть запись nameserver <IP-address of nameserver> там тоже. Простой файл resolv.conf выглядит так:

#/etc/resolv.conf
domain example.com
search example.com
nameserver 8.8.8.8
options attempts:2

Вы можете попробовать использовать IP-адрес смарт-хоста, а не имя хоста, чтобы избежать некоторых проблем с DNS:

define(`SMART_HOST',`[192.65.7.8]')dnl