小州 wrote:
> ※ 引述《367@microsoft.com (Linux 的白痴)》之銘言:
>> 小弟用的是 Postfix, 然後用 access 濾掉來源含 dynamic 字的 connection.
>> 從下面這段 log 來看是成功的.
>> Sep 22 04:44:25 mailbox postfix/smtpd[18308]: NOQUEUE:
>> reject: RCPT from 189-015-202-058.xd-dynamic.ctbcnetsuper.com.br
>> [189.15.202.58]: 550 5.7.1 <189-015-202-058.xd-dynamic.ctbcnetsuper
>> .com.br[189.15.202.58]>: Client host rejected: No dynamic IP allow
>> to access; from= xxxxx略xxxxxx
>> 其中連線的來源是
>> 189-015-202-058.xd-dynamic.ctbcnetsuper.com.br[189.15.202.58]
>> 因為含有 dynamic 所以 reject.
>
> 不過要先看你拒絕的方式設定..
非常謝謝提醒, 得確是 access 裡面的 regular expression 寫錯. 最近才
改用 regexp 的方式, 對於 . 在 hostname 和 regexp 意義大不同, 思路
不夠清楚.
>> 但在 log 中也發現有些連線還是可以通過檢查, 比如下面這一段.
>> Sep 22 20:58:49 mailbox postfix/cleanup[29631]: 58576304068:
>> hold: header Received: from adsl-dynamic-pool-xxx.hcm.fpt.vn
>> (unknown [118.68.109.105])??by mailbox.paclaw.com (Postfix)
>> with ESMTP id 58576304068??for xxxx略xxxx其中的來源是
>> adsl-dynamic-pool-xxx.hcm.fpt.vn (unknown [118.68.109.105])
>> 看不懂的地方是在 "unknow" 這裡. 原本 unknown 這個地方不是應該放的是
>> adsl-dynamic-pool-xxx.hcm.fpt.vn, 怎麼這一段跑到括弧外面? 而 access
>> 檢查的正是 unknown 這個地方. 正因為如此, 所以這個 mail 被放行. 這樣的說
>> 法對嗎? 如果是對的, 那要在smtpd 的哪裡作檢查可擋掉括弧外面的 hostname
>> 含 dynamic?
>
> 這樣推斷:
>
> Received: from a ( b ) by c
>
> 1. a 是當初對方 smtp 溝通的 helo 敘述
> 2. b 表示該紀錄實際發信端的來源資訊
> 3. c 表示實際處理接收投遞的主機名稱
>
> 其中 a 部分基本上只是 smtp 溝通時候 helo 用的主機名稱, 所以可以隨便
> 調整修改. 所以推斷為 adsl-dynamic-pool-xxx.hcm.fpt.vn 這是很合理的,
> 因為他用該 hostname 當主機名稱打招呼.
>
> 你提供記錄內 b 為 unkown,我想可能當時後反查寄信端 ip 118.68.109.105
> 時候查不到該主機名稱, 所以就顯示 unknown .
對於 b 的部份, 試了好幾個 IP, 用 nslookup 看, 最起碼在當時都是可以看到
hostname. 不知是否真那麼巧, server 反查時都剛好查不到該主機名稱. 還是寄
件者有通天本領讓 server 收信的瞬間反查不到該主機名稱? 還是我對"反查"的
方式誤解?
討論串 (同標題文章)