Email-Server

sendmail的出站ip地址怎麼設置?

  • December 23, 2017

sendmail的出站ip地址怎麼設置?

有幾十個教程,但大多數只是告訴你要設置什麼而沒有解釋任何內容,並且大多數都假設你正在執行虛擬機並且只有一個靜態 IP。

設置 伺服器是執行 centos 7 的物理機,在 LAN 和 SElinux 中打開埠 25,並啟用從 apache 發送電子郵件的選項。當我嘗試發送出站電子郵件時,我不斷收到超時錯誤。我已經在 gmail、yahoo 和 godaddy 電子郵件上進行了測試。

當我使用nmap --traceroutecURL 進行測試時,我看到我的出站連接正在通過動態 IP 地址,該地址的埠 25 被 isp 阻止。

我仍然需要從 LAN 連接,因為 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

來自郵件日誌的錯誤

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 的答案:如何控制將郵件中繼到 mx.google.com 時使用的 ip 號碼實際上是正確的答案,但我永遠不會這樣認為,因為我不這麼認為我正在轉發一封電子郵件。感謝大家幫助我完成它。

看看https://www.unix-ninja.com/p/Changing_the_Source_IP_Address_in_Sendmail並確保完全遵循格式,您之前需要一個反撇號Family(它沒有出現在您的評論中,所以也許您忘記了?)。根據經驗,它可以幫助您將其放在dnl語句的末尾,因此請嘗試以下操作:

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

只需將 IP 替換為連接到您的伺服器的 IP(並確保沒有防火牆切斷來自該 IP 的傳出連接)。

然後:

  1. make在適當的目錄中,例如/etc/mail
  2. 重新啟動發送郵件

在 make 之後,您可以直覺地檢查 .cf 文件,您應該會在其中看到您的 IP,表明CLIENT_OPTIONS已正確考慮了 IP。

至於放在哪裡,它確實可能是相關的,您的文件可能已經記錄在案,否則您需要顯示更多目前.mc文件。

引用自:https://serverfault.com/questions/888587