Как установить исходящий IP-адрес sendmail? [дубликат]

Как вы устанавливаете исходящий IP-адрес sendmail?

Существуют десятки руководств, но в большинстве просто рассказывается, что устанавливать без объясняя что-либо, и большинство из них предполагают, что вы используете виртуальную машину и имеете только статический IP-адрес.

Настройка Сервер - это физическая машина под управлением centos 7 с открытым портом 25 в локальной сети и в SElinux с включенной опцией отправки электронной почты из apache. Я продолжаю получать ошибки тайм-аута, когда пытаюсь отправить исходящие электронные письма. Я тестировал электронные письма Gmail, Yahoo и godaddy.

Когда я тестировал nmap --traceroute и cURL, я увидел, что мои исходящие соединения проходят через динамический IP-адрес, порт 25 которого заблокирован ISP.

Мне все еще нужно подключаться из локальной сети, потому что ssh и большинство других портов закрыты для внешнего мира. Порт 25, 80, 443 и пара других открыты для внешнего мира. Все, кроме порта 25, похоже, правильно обрабатываются соответствующими приложениями.

Вывод ip show

$ ip route show
default via 192.168.1.254 dev enp4s0f0 proto static metric 100
default via 108.223.xxx.222 dev enp4s0f1 proto static metric 101
default via 108.223.xxx.222 dev enp4s0f3 proto static metric 102
108.223.xxx.217 dev enp4s0f1 proto kernel scope link src 108.223.xxx.217 metric 100
108.223.xxx.217 dev enp4s0f3 proto kernel scope link src 108.223.xxx.217 metric 101
108.223.xxx.218 dev enp4s0f1 proto kernel scope link src 108.223.xxx.218 metric 100
108.223.xxx.218 dev enp4s0f3 proto kernel scope link src 108.223.xxx.218 metric 101
108.223.xxx.219 dev enp4s0f1 proto kernel scope link src 108.223.xxx.219 metric 100
108.223.xxx.219 dev enp4s0f3 proto kernel scope link src 108.223.xxx.219 metric 101
108.223.xxx.220 dev enp4s0f1 proto kernel scope link src 108.223.xxx.220 metric 100
108.223.xxx.220 dev enp4s0f3 proto kernel scope link src 108.223.xxx.220 metric 101
108.223.xxx.221 dev enp4s0f1 proto kernel scope link src 108.223.xxx.221 metric 100
108.223.xxx.221 dev enp4s0f3 proto kernel scope link src 108.223.xxx.221 metric 101
108.223.xxx.222 dev enp4s0f1 proto static scope link metric 100
108.223.xxx.222 dev enp4s0f3 proto static scope link metric 101
192.168.1.0/24 dev enp4s0f0 proto kernel scope link src 192.168.1.71 metric 100
192.168.1.71 dev enp4s0f3 proto kernel scope link src 192.168.1.71 metric 100

Ошибки из maillog

Dec 16 18:14:53 localhost sendmail[77855]: vBGNErI1077873: to=myemail@gmail.com, ctladdr=cdata (1000/1000), delay=00:00:00, xdelay=00:00:00, mailer=relay, pri=30014, relay=[127.0.0.1] [127.0.0.1], dsn=2.0.0, stat=Sent (vBGNErDq077874 Message accepted for delivery)
Dec 16 18:24:12 localhost sendmail[77855]: vBGGdu99077513: to=<myemail@gmail.com>, ctladdr=<myuser@mydomain.us> (1000/1000), delay=06:44:16, xdelay=00:10:00, mailer=esmtp, pri=750469, relay=alt4.gmail-smtp-in.l.google.com. [108.177.15.26], dsn=4.0.0, stat=Deferred: Connection timed out with alt4.gmail-smtp-in.l.google.com.
Dec 16 18:24:12 localhost sendmail[77855]: vBGGAGt4077433: to=<myemail@gmail.com>, ctladdr=<myuser@mydomain.us> (1000/1000), delay=07:13:56, xdelay=00:00:00, mailer=esmtp, pri=840469, relay=alt4.gmail-smtp-in.l.google.com., dsn=4.0.0, stat=Deferred: Connection timed out with alt4.gmail-smtp-in.l.google.com.
Dec 16 18:24:12 localhost sendmail[77855]: vBGFweLX077340: to=<myemail@gmail.com>, ctladdr=<myuser@mydomain.us> (1000/1000), delay=07:25:32, xdelay=00:00:00, mailer=esmtp, pri=930469, relay=alt4.gmail-smtp-in.l.google.com., dsn=4.0.0, stat=Deferred: Connection timed out with alt4.gmail-smtp-in.l.google.com.

Вывод netstat -tuplen | grep 25 , чтобы проверить, что порт 25 открыт

$ sudo netstat -tuplen | grep 25
tcp        0      0 0.0.0.0:25              0.0.0.0:*               LISTEN      0          93443      10849/sendmail: acc

РЕДАКТИРОВАТЬ: Ответ, помеченный как дубликат, говорит о ретрансляции электронной почты Gmail.Не думаю, что я об этом прошу. Я пытаюсь создать электронное письмо с моего сервера, в моем домене и IP-адресе, и отправить его на удаленный почтовый сервер. Я прочитал этот ответ и попытался понять, но не думаю, что это связано. Если да, пожалуйста, объясните, как это связано.

ИЗМЕНИТЬ ПОСЛЕ ПРИНЯТИЯ ОТВЕТА: Ответ на CentOS 6.2 sendmail: как контролировать IP-адрес, используемый при пересылке почты на mx.google.com , на самом деле правильный ответ, но я никогда бы не распознал это как таковое, потому что я не думал, что пересылаю электронное письмо. Спасибо всем за то, что помогли мне это сделать.

1
задан 23 December 2017 в 07:21
1 ответ

Взгляните на https://www.unix-ninja.com/p/Changing_the_Source_IP_Address_in_Sendmail и обязательно следуйте формату, вам понадобится обратный апостроф перед Семья (это не отображается в вашем комментарии, может быть, вы его забыли?). По опыту это помогает: вы помещаете dnl в конец оператора, поэтому попробуйте что-нибудь вроде этого:

CLIENT_OPTIONS(`Family=inet, Address=203.0.113.2')dnl

просто замените IP на один, подключенный к вашему серверу (и убедитесь, что нет брандмауэра, прерывающего исходящее соединение с этого IP-адреса).

Затем:

  1. make в соответствующем каталоге, например / etc / mail
  2. restart sendmail

После make вы можете визуально изучить файл .cf. увидеть в нем свой IP-адрес, показывающий, что CLIENT_OPTIONS были должным образом учтены.

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

1
ответ дан 3 December 2019 в 23:22

Теги

Похожие вопросы