茫茫網海中的冷日
         
茫茫網海中的冷日
發生過的事,不可能遺忘,只是想不起來而已!
 恭喜您是本站第 1675561 位訪客!  登入  | 註冊
主選單

Google 自訂搜尋

Goole 廣告

隨機相片
IMG_60D_00024.jpg

授權條款

使用者登入
使用者名稱:

密碼:


忘了密碼?

現在就註冊!

小企鵝開談 : [分享]Postfix怪問題:自己不能給自己發郵件!

發表者 討論內容
冷日
(冷日)
Webmaster
  • 註冊日: 2008/2/19
  • 來自:
  • 發表數: 15771
[分享]Postfix怪問題:自己不能給自己發郵件!
Postfix怪問題:自己不能給自己發郵件!
(2012-04-08 04:22:02)

Postfix怪問題:自己不能給自己發郵件!很怪很怪的問題!

Postfix:自己不能給自己發郵件!

未用數據庫,郵件收發、認證等功能一直非常正常。
突然從某天發現,自己不能給自己發郵件了,客戶端顯示錯誤信息:
由於服務器拒絕收件人之一,無法發送郵件。
被拒絕的電子郵件地址是「ddd@xxxx.com」。
主題 'dddd'http://www.phpxt.net/http://www.dmasive.com, 帳戶: 'ddd@xxxx.com', 服務器: 'mail.xxxx.com', 協議: SMTP, 服務器響應: '551 User not local; please try ', 端口:25, 安全(SSL): 否, 服務器錯誤: 551, 錯誤號: 0x800CCC79

很怪很怪的問題!

Postfix:自己不能給自己發郵件!

樓上,能不能說詳細點?
你都不能詳細的拜迪蕾娜紅酒木瓜靚湯貼出你的配置文件,我再詳細也沒用是跨國吧(SERVER在CN, 人在比如英國)?樓上擔心的是GFW的問題



原文出處:Postfix怪问题:自己不能给自己发邮件!_lhadft17_新浪博客
冷日
(冷日)
Webmaster
  • 註冊日: 2008/2/19
  • 來自:
  • 發表數: 15771
[分享]Postfix 551 User not local; please try
Postfix 551 User not local; please try
By Pankon March 27, 2008 12:59 AM

若是您在大陸要寄信時看到這個 551 User not local; please try 錯誤,
就是 GFW 在作怪 (英文版的 Wikipedia 改稱作 Golden Shield Project)
解決方式: 改用 SSL SMTP



原文出處:Postfix 551 User not local; please try - Pank's Blog
冷日
(冷日)
Webmaster
  • 註冊日: 2008/2/19
  • 來自:
  • 發表數: 15771
[分享]您是否遇到過突然無法訪問自己公司國外的伺服器,但是能ping通
您是否遇到過突然無法訪問自己公司國外的伺服器,但是能ping通;

使用Postfix TLS突破GFW封鎖

您是否遇到過在Google搜索突然出現該網頁無法顯示;
您是否遇到過突然無法訪問自己公司國外的伺服器,但是能ping通;
您是遇到過在使用Outlook收取郵件當收取到某一封時Outlook突然抱錯︰
「Your server has unexpectedly terminated the connection.
Possible causes for this include server problems, network problems, or a long period of inactivity.
Account: 'XXX.com', Server: 'mail.XXX.com', Protocol: POP3, Port: 110, Secure(SSL): No, Socket Error: 10053, Error Number: 0x800CCC0F」 

然後無法連接;
這一切的一切大部分都是因為GFW引起的。

一、什麼是GFW?
GFW是The Great Fire Wall of China的簡寫,指「中國網路防火牆」(字面意為「中國防火長城」),這是對「國家公共網路監控系統」的俗稱,國內簡稱「防火長城」。
GFW是「金盾工程」的一個子功能。「金盾工程」是以公安訊息網路為先導,以各項公安工作訊息化為主要內容,建立統一指揮、快速回應、協同作戰機制,在全國範圍內開展公安訊息化的工程,主要包括建設公安綜合業務通信網、公安綜合資訊系統、全國公安指揮調度系統以及全國公共網路監控中心等。該項目2003年開始生效。一般所說的GFW,主要指公共網路監控系統,尤其是指對境外涉及敏感內容的網站、IP位址、關鍵詞、網址等的過濾。

二、GFW工作模式
GFW是專門用來對付國外網站的,但並不是全部國外的網站都會被封鎖。那什麼樣的網站會被GFW封鎖?GFW採用什麼方法封鎖?
GFW主要的工作模式有以下三種︰
域名劫持
全球一共有13組根(Root)級別的DNS伺服器,目前中國大陸已有多台DNS鏡像。但沒有一組受中國大陸直接控制,所以中國大陸方面未能從根本上控制網站域名。於是,中國大陸採取域名劫持手段來進行封鎖中國大陸以外的「不合規格」的站點。域名劫持就是在劫持的網路範圍內攔截域名解析的請求,分析請求的域名,把審查範圍以外的請求放行,否則直接返回假的IP位址或者什麼也不做使得請求失去附應,其效果就是對特定的網址不能訪問或訪問的是假網址。
簡單的說,域名劫持是阻止人們直接訪問某個域名所綁定的網站。GFW採用這種手段來阻止中國大陸網民訪問部分中國大陸以外的網站。例如說,一個反對中國共產黨的網站地址為www.fg.com,若www.fg.com被劫持了,那麼www.fg.com將無法訪問。
國家入口通訊閘的IP封鎖
這個技術和上面的域名劫持有點相似,只不過域名劫持封鎖的是域名,但IP封鎖是直接封鎖網站所在伺服器的IP位址。很多對電腦比較瞭解的網民開始採取代理伺服器的模式訪問被封鎖的站點,所以GFW也封鎖了網民常用的一部份代理伺服器的IP位址。
主幹路由器關鍵字過濾阻斷
這個技術有點複雜,那麼我們來舉個例子吧︰
當你做飛機的時候,要進行安全檢查,若你的行李裡有違禁物品的話,將無法透過安檢。
GFW相當於安全檢查機器。當你訪問一個國外網站的時候,必須經過GFW。GFW會檢查目標網站的內容,若目標網站內含有敏感的詞語的話,GFW將會切斷你和目標網站的鏈接。當你使用海外的搜索引擎的時候,GFW會對你輸入進搜索引擎的關鍵詞進行審查,若你輸入了敏感的關鍵詞的話,GFW將會切斷你和搜索引擎的鏈接。
對於郵件具體表現為︰
如果郵件標題或內容有被GFW認為是所謂的敏感字符,會被GFW將數據包截獲並自動拋棄,隨即斷開源IP與目標IP的連接,斷開時間隨敏感字符的嚴重性不等。換而言之如果公司採用NAT上網,使用pop3自動收取郵件,並且郵件伺服器在國外,只要有一個被GFW認為帶敏感字符的郵件,那麼整個公司都將再也無法和這個server聯繫。

三、具體症狀
Queue內出現大量無法發送至國外、HK及TW的郵件,maillog錯誤如下︰
conversation with 111.111.0.0[111.111.0.0] timed out while sending MAIL FROM
lost connection with 111.111.0.0[111.111.0.0] while sending message body
host 111.111.0.0[111.111.0.0] said: 500 error (in reply to MAIL FROM command)

而未能收到郵件的對方卻往往會收到一封或多封內容為「aaazzzaaazzzaaazzzaaazzzaaazzz」的無主題郵件

國外、HK及TW發往國內的郵件也會因為GFW而無法投遞,退信顯示如下錯誤:
Remote host said: not local; please try <forward-path>
551 User not local; please try <forward-path>

四、解決方案
A. Mail Server與MUA不在同一國家
對於伺服器與MUA不在同一國家造成無法正常使用POP3、SMTP收取郵件的情況可以採用加密的Webmail (https)或POP3s、SMTPS解決。

B.國內MTA 發送郵件至國外、HK及台灣地區MTA
1).使用國外的郵件服務,比如hotmail,gmail來發送;
2).繞開GFW,或者加密通信通道。比如使用SSL加密,連接到海外郵件伺服器,再轉發email。或者使用VPN連接到海外,凡是發出去的emali全部走vpn通道。

本次採用Postfix的TLS實現SSL加密連接到海外郵件伺服器,再轉發email的方案突破GFW的封鎖,經實際環境測試效果非常好。

1.TLS含義
Transport Layer Security (TLS, formerly called SSL) provides certificate-based authentication and encrypted sessions. An encrypted session protects the information that is transmitted with SMTP mail or with SASL authentication.

2.系統要求
Postfix 2.3以上並且編譯支持TLS

3.具體實現
假設現有兩台安裝postfix的Mail Server, 主伺服器在國內 (簡稱CN)有健全的郵件收發功能,轉發服務在加拿大(簡稱CA),且各自擁有MX記錄與Internet固IP。

1). Mail flow:
Mail (CN) => yahoo.com => postfix transport_maps (CN) => TLS => postfix (CA) => yahoo.com

2). CN主機配置
main.cf:
# relay setting via TLS
transport_maps = hash:/etc/postfix/transport_maps
smtp_tls_policy_maps = hash:/etc/postfix/tls_policy_maps

transport_maps︰
yahoo.com     smtp:[CA主機域名]

tls_policy_maps︰
[CA主機域名]     encrypt

postmap /etc/postfix/transport_maps
postmap /etc/postfix/tls_policy_maps


3). CA主機配置
main.cf:
# TLS relay config
mydestination = $mynetworks
smtpd_banner = $myhostname TLS enabled $mail_name - by extmail.org
smtpd_tls_security_level = encrypt
smtpd_use_tls = yes
smtpd_tls_auth_only = no
smtp_tls_CAfile = /etc/postfix/tls/smtpd.pem
smtp_tls_cert_file = /etc/postfix/tls/smtpd.pem
smtp_tls_key_file = /etc/postfix/tls/smtpd.pem
smtpd_tls_CAfile = /etc/postfix/tls/smtpd.pem
smtpd_tls_cert_file = /etc/postfix/tls/smtpd.pem
smtpd_tls_key_file = /etc/postfix/tls/smtpd.pem
smtpd_tls_received_header = yes
smtpd_tls_loglevel = 0
smtpd_starttls_timeout = 60s
mynetworks = 127.0.0.1 111.111.0.0 (CA主機IP)

4). TLS cert generation (CA)
mkdir /etc/postfix/tls

建立mkcert和smtpd.cnf文件,內容如下:
mkcert:
# package installation routine.
test -x /usr/bin/openssl || exit 0
prefix="/etc/postfix/tls"
if test -f /etc/postfix/tls/smtpd.pem
then
    echo "$prefix/smtpd.pem already exists."
    exit 1
fi
umask 077
cp /dev/null $prefix/smtpd.pem
chmod 600 $prefix/smtpd.pem
chown root $prefix/smtpd.pem
cleanup() {
    rm -f $prefix/smtpd.pem
    rm -f $prefix/smtpd.rand
    exit 1
}
dd if=/dev/urandom of=$prefix/smtpd.rand count=1 2>/dev/null
/usr/bin/openssl req -new -x509 -days 365 -nodes \
    -config $prefix/smtpd.cnf -out $prefix/smtpd.pem -keyout $prefix/smtpd.pem || cleanup
/usr/bin/openssl gendh -rand $prefix/smtpd.rand 512 >>$prefix/smtpd.pem || cleanup
/usr/bin/openssl x509 -subject -dates -fingerprint -noout -in $prefix/smtpd.pem || cleanup
rm -f $prefix/smtpd.rand


smtpd.cnf:
RANDFILE = /etc/postfix/tls/smtpd.rand
[ req ]
default_bits = 1024
encrypt_key = yes
distinguished_name = req_dn
x509_extensions = cert_type
prompt = no
[ req_dn ]
C=CN
ST=SH
L=ShangHai
O=ExtMail Server
OU=Automatically-generated SMTPD SSL key
CN=localhost
emailAddress=postmaster@extmail.org
[ cert_type ]
nsCertType = server

chmod 755 /etc/postfix/tls/mkcert
./mkcert


本配置經實際環境測試效果非常良好,本介紹不包含郵件發送的基本配置,如有需要請查閱論壇相關文章。您可以任意使用與轉載,但請註明出處:extmail.org。
非常感謝HZQBBC在整個配置過程中給與技術支持。


原文出處: - Sherlock系列 - 您是否遇到過突然無法訪問自己公司國外的伺服器,但是能ping通; HGIGA Service Docs
GFW 在 Wiki 上的說明:防火長城 - 维基百科,自由的百科全书
前一個主題 | 下一個主題 | 頁首 | | |



Powered by XOOPS 2.0 © 2001-2008 The XOOPS Project|