2017-01-06 34 views
-1

====基本信息====Ubuntu 14.01主機/ Ubuntu 14.01容器; Postfix不發送郵件; Telnet不連接到外部主機

  • iRedMail版本(檢查/ etc/iredmail釋放):iRedMail-0.9.5-1

  • 的Linux/BSD版本的名稱和版本:MySQL的

  • 網站本身:Ubuntu的14.01 TurnkeyLinux核心

  • 商店郵件帳戶在後臺(LDAP/MySQL的/ PGSQL)內的Ubuntu 14.01容器rver(Apache或Nginx的):阿帕奇

  • 後綴日誌摘要:

    01月06日10時24分38秒iredmail後綴/提交/ smtpd的[2631]:從XYZ [127.0.0.1]

    連接Jan 6 10:24:38 iredmail postfix/submission/smtpd [2631]:從xyz [127.0.0.1]建立的匿名TLS連接:帶密碼ECDHE-RSA-AES128-GCM-SHA256(128/128位)的TLSv1.2

    Jan 6 10:24:38 iredmail postfix/submission/smtpd [2631]:6EEA060306:client = xyz [127.0.0.1],sasl_method = LOGIN,sasl_username = address @ xyz

    01月06日10時24分38秒iredmail後綴/清理[2636]:6EEA060306:消息ID =

    01月06日10時24分38秒iredmail roundcube:用戶iaaberga [192.168.121.1];郵件爲[email protected]; 250:2.0.0 OK:排隊作爲6EEA060306

    01月06日10點24分38秒iredmail後綴/ QMGR [2587]:6EEA060306:從=,大小= 575,nrcpt = 1(隊列活性)

    揚6 10:24:38 iredmail postfix/submission/smtpd [2631]:從xyz斷開[127.0.0.1]

    Jan 6 10:24:38 iredmail postfix/smtpd [2648]:connect from xyz [127.0.0.1 ]

    01月06日10時24分38秒iredmail後綴/ smtpd的[2648]:C97F262D1B:客戶= XYZ [127.0.0.1]

    1月6日10:24:3 8 iredmail postfix/cleanup [2636]:C97F262D1B:message_id =

    Jan 6 10:24:38 iredmail postfix/qmgr C97F262D1B:from =,size = 1628,nrcpt = 1(queue active)

    01月06日10時24分38秒iredmail後綴/ smtpd的[2648]:[127.0.0.1]

    01月06日10時24分38秒iredmail AMaViS對[1742]從XYZ斷開:(01742-01)傳遞CLEAN {RelayedInternal},ORIGINATING/MYNETS LOCAL [127.0.0.1]:35413 - >,Queue-ID:6EEA060306,Message-ID:,mail_id:4QjhhYZODSHf,Hits:-2.986,size:575,queued_as:C97F262D1B,dkim_new = dkim :yz,328 ms,測試:[ALL_TRUSTED = -1,RP_MATCHES_RCVD = -3.199,TVD_RCVD_SINGLE = 1.213]

    Jan 6 10:24:38 iredmail postfix/smtp 6EEA060306:to =,relay = 127.0.0.1 [127.0.0.1]:10026,delay = 0.4,delay = 0.05/0.01/0.01/0.33,dsn = 2.0.0,status =發送(來自MTA的250 2.0.0(smtp:[127.0.0.1]:10025):250 2.0。0 OK:排隊作爲C97F262D1B)

    01月06日10時24分38秒iredmail後綴/ QMGR [2587]:6EEA060306:除去

    01月06日10時24分47秒iredmail後綴/ SMTP [2618]:連接到mx6.mail.icloud.com [17.172.34.71]:25:連接超時

    Jan 6 10:24:47 iredmail postfix/smtp [2622]:連接到alt1.gmail-smtp-in.l.google .COM [173.194.69.27]:25:連接超時

====

嗨!

我在Ubuntu 14.01/Ubuntu 14.01主機/容器系統上安裝了iRedmail作爲lxc容器。

雖然我可以收到電子郵件,但Postfix不會發送郵件(這些郵件似乎是通過網絡郵件客戶端發送的,但永遠不會到達目的地)。

從容器級連接似乎工作在一般情況下:我可以ssh到我有權訪問的某個主機;我可以使用apt-get工具來安裝新的sw等。

試圖在端口25上telnet alt1.gmail-smtp-in.l.google.com不成功(如果在容器內完成)。

[email protected] ~# telnet alt1.gmail-smtp-in.l.google.com 25 
Trying 173.194.69.26... 

最終連接將失敗。

如果我從容器做出口,嘗試同樣的telnet連接,一切都很好

[email protected] ~# telnet alt1.gmail-smtp-in.l.google.com 25 
Trying 173.194.69.27... 
Connected to alt1.gmail-smtp-in.l.google.com. 
Escape character is '^]'. 
220 mx.google.com ESMTP t19si1302495wrb.232 - gsmtp 
QUIT 
221 2.0.0 closing connection t19si1302495wrb.232 - gsmtp 
Connection closed by foreign host. 

這是容器的iptables的配置:

*mangle 
:PREROUTING ACCEPT [0:0] 
:INPUT ACCEPT [0:0] 
:FORWARD ACCEPT [0:0] 
:OUTPUT ACCEPT [0:0] 
:POSTROUTING ACCEPT [0:0] 
COMMIT 
*filter 
:FORWARD ACCEPT [0:0] 
:INPUT DROP [0:0] 
:OUTPUT ACCEPT [0:0] 
-A INPUT -i lo -j ACCEPT 
-A INPUT -p icmp -m icmp --icmp-type echo-request -j ACCEPT 
-A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT 
-A INPUT -p tcp -m tcp --dport 22 -j ACCEPT 
-A INPUT -p tcp -m tcp --dport 80 -j ACCEPT 
-A INPUT -p tcp -m tcp --dport 443 -j ACCEPT 
-A INPUT -p tcp -m tcp --dport 12320 -j ACCEPT 
-A INPUT -p tcp -m tcp --dport 12321 -j ACCEPT 

# Mail SMTP 
-A INPUT -p tcp -m tcp --dport 25 -j ACCEPT 
-A FORWARD -p tcp -d 192.168.121.1 --dport 25 -j ACCEPT 

# POP3 
-A INPUT -p tcp -m tcp --dport 110 -j ACCEPT 

# SMTPS 
-A INPUT -p tcp -m tcp --dport 465 -j ACCEPT 
# IMAPS 
-A INPUT -p tcp -m tcp --dport 587 -j ACCEPT 
# IMAPS - 2 
-A INPUT -p tcp -m tcp --dport 993 -j ACCEPT 

COMMIT 

我不熟悉集裝箱的網絡,所以我很可能錯過任何明顯的東西!

它確實外觀與後綴配置問題..

感謝您的幫助,

阿爾

+0

因此,回顧一下:Ubuntu'主機'可以telnet到谷歌。 Ubuntu的'container'不能telnet到Google,但對SSH或apt-get沒有問題。 它通過主機(即在AWS上)接收電子郵件。 – aaberga

+0

刷新容器中的iptables規則,將策略更改爲接受並重試。如果你的iptables規則有問題,你的telnet應該可以工作。另一件事是在Ubuntu主機上重新啓動容器服務並啓動容器並重試。 –

+0

感謝Farhad,但這沒有幫助。 我現在大概知道出了什麼問題。正如我懷疑要以不受控制的方式編輯容器的iptables設置,我創建了第二個容器,並查看了哪些iptables設置看起來像那裏。 正如我在這,我也嘗試了 根@ iredmail2〜#遠程登錄alt1.gmail-smtp-in.l.google.com 25 命令 嘗試 ... 連接到alt1.gmail-smtp-in.l.google.com。 轉義字符是'^]'。 ESMTP後綴 QUIT 221 2.0.0再見 由外國主機關閉的連接。 – aaberga

回答

0

因爲它經常發生(一旦你知道解決)問題是微不足道的...

總之:在主機錯誤的NAT設置攔截和轉發來自所有來源的流量,包含!

這是主機的iptables規則的相關部分,因爲它是:

*nat 
:PREROUTING ACCEPT [22532:1479233] 
:INPUT ACCEPT [22432:1472721] 
:OUTPUT ACCEPT [11623:812922] 
:POSTROUTING ACCEPT [2959:155572] 
-A PREROUTING -p tcp -m tcp --dport 25 -j DNAT --to-destination 192.168.121.174:25 
-A PREROUTING -p tcp -m tcp --dport 110 -j DNAT --to-destination 192.168.121.174:110 
-A PREROUTING -p tcp -m tcp --dport 143 -j DNAT --to-destination 192.168.121.174:143 
-A PREROUTING -p tcp -m tcp --dport 465 -j DNAT --to-destination 192.168.121.174:465 
-A PREROUTING -p tcp -m tcp --dport 587 -j DNAT --to-destination 192.168.121.174:587 
-A PREROUTING -p tcp -m tcp --dport 993 -j DNAT --to-destination 192.168.121.174:993 
-A PREROUTING -p tcp -m tcp --dport 995 -j DNAT --to-destination 192.168.121.174:995 
-A POSTROUTING -o br0 -j MASQUERADE 
-A POSTROUTING -s 192.168.121.0/24 ! -o natbr0 -j MASQUERADE 
COMMIT 

它告訴iptables傳遞所有流量要說到端口25的郵件服務器容器的虛擬地址。 即使對於來自容器本身的流量也會發生這種情況。

BINGO !!

現在這是正確的設置,其中br0是連接到外部世界的AWS網絡接口。 因此,只有首先到達那裏的數據包應該被路由到電子郵件服務器包的NATted虛擬地址。

*nat 
:PREROUTING ACCEPT [22532:1479233] 
:INPUT ACCEPT [22432:1472721] 
:OUTPUT ACCEPT [11623:812922] 
:POSTROUTING ACCEPT [2959:155572] 
-A PREROUTING -p tcp -m tcp --in-interface br0 --dport 25 -j DNAT --to-destination 192.168.121.174:25 
-A PREROUTING -p tcp -m tcp --in-interface br0 --dport 110 -j DNAT --to-destination 192.168.121.174:110 
-A PREROUTING -p tcp -m tcp --in-interface br0 --dport 143 -j DNAT --to-destination 192.168.121.174:143 
-A PREROUTING -p tcp -m tcp --in-interface br0 --dport 465 -j DNAT --to-destination 192.168.121.174:465 
-A PREROUTING -p tcp -m tcp --in-interface br0 --dport 587 -j DNAT --to-destination 192.168.121.174:587 
-A PREROUTING -p tcp -m tcp --in-interface br0 --dport 993 -j DNAT --to-destination 192.168.121.174:993 
-A PREROUTING -p tcp -m tcp --in-interface br0 --dport 995 -j DNAT --to-destination 192.168.121.174:995 
-A POSTROUTING -o br0 -j MASQUERADE 
-A POSTROUTING -s 192.168.121.0/24 ! -o natbr0 -j MASQUERADE 
COMMIT 

顯然,沒有攔截循環,容器內的郵件服務器很容易發送郵件!

相關問題