歡迎您光臨本站 註冊首頁

sendmail中,在MTA本機上向另一MTA發信,咋沒受RELAY限制?禁掉access中所有行也沒用.

sendmail中,在MTA本機上向另一MTA發信,受不受RELAY限制?

試驗后證實若使用MUA來通過MTA向另一MTA發現,是受RELAY限制的,但在MTA的本機上直接向另一MTA發信,卻未受RELAY限制,哪怕將access中所有行全部禁止掉也沒作用,這是哪裡有問題呢?

我的sendmail.mc中配置了DAEMON_OPTIONS(`Port=smtp,Addr=0.0.0.0, Name=MTA'),應該和這行沒有關係吧.實在找不出其他地方哪裡有問題了.

其他收發一切正常,僅此一點覺得應該不對,從MTA上直接發,也應該受RELAY限制,否則寫在access中的127及local行豈不是沒用了?

謝謝!!!

[ 本帖最後由 rekcah0 於 2007-7-9 19:02 編輯 ]
《解決方案》

頂, 請指點,謝謝謝謝
《解決方案》

原帖由 rekcah0 於 2007-7-13 12:45 發表 http://linux.chinaunix.net/bbs/images/common/back.gif
頂, 請指點,謝謝謝謝

本機發信, 一般是呼叫 /usr/sbin/sendmail 程式直接寄信, 一般都是讀取 submit.cf 檔案,該 submit.cf 沒有使用 access 這個 FEATURE,所以不參考 access 檔案配置。

--
《解決方案》

謝謝版主指點,

那麼本地發信,是不受access文件的限制了,那麼access文件中原有的127及local兩行都定義允許relay,這兩行豈不就是沒有意義了嗎?

謝謝謝謝!!!
《解決方案》

原帖由 rekcah0 於 2007-7-15 02:22 發表 http://linux.chinaunix.net/bbs/images/common/back.gif
謝謝版主指點,

那麼本地發信,是不受access文件的限制了,那麼access文件中原有的127及local兩行都定義允許relay,這兩行豈不就是沒有意義了嗎?

謝謝謝謝!!!

若程式是由本機發起連線到自己主機的 port 25 進行 smtp 連線, 那當然透過 daemon 的 smtp 溝通, 那 daemon 本身當然是使用 sendmail.cf, access 配置當然有效.

--
《解決方案》

謝謝老大的再三指點...真是不勝感激啊....

那我telnet 到一個MTA上去,這個MTA上運行著sendmail服務,然後我在MTA上的終端內用mail命令向另一個MTA發信,這種情況下, 到底參不參考access文件呢?
《解決方案》

原帖由 rekcah0 於 2007-7-16 10:06 發表 http://linux.chinaunix.net/bbs/images/common/back.gif
謝謝老大的再三指點...真是不勝感激啊....

那我telnet 到一個MTA上去,這個MTA上運行著sendmail服務,然後我在MTA上的終端內用mail命令向另一個MTA發信,這種情況下, 到底參不參考access文件呢?

看不懂你的問題。

本機使用 mail 發信都是呼叫 /usr/sbin/sendmail 程式,所以那不是走 smtp 溝通,所以不參考 access

--
《解決方案》

我是自己在區域網內部建立了DNS服務,並且再建立了兩個MTA跑sendmail服務,所有方面都是正常的.

現在我在兩個MTA間發送郵件進行功能測試, 如果我在第三台機器(模擬客戶端)上,通過MUA連接MTA1, 向MTA2發信,那麼我的信能否被MTA1轉交RELAY給MTA2, 是受到MTA1上面的access文件限制的.

但我如果telnet到MTA1上面直接用mail命令向MTA2發信,我發現此時信能否被MTA1轉交RELAY給MTA2,不是受MTA1(本機)的access文件限制的,無論access如何修改.

這是正常的嗎?應該不正常,因為MTA1上的access文件中有127和local的定義, 既然有這兩行,就表示access文件對本機的RELAY動作也是起作用的呀.否則,127和local兩行寫在access文件中有什麼作用呢?

謝謝老大的耐心指導!!!
《解決方案》

所謂 relay 是說某個 ip 連線端連到 mail server 要寄信, 收件者不是該 mail server 上面的使用者, 而該 mail server 會把信件收下來後然後投地給遠端主機.

你在 mail server 本身直接使用 mail 指令寄信, mail 是直接呼叫 mail server 本身的 /usr/sbin/sendmail 透過 stdin/stdout 方式溝通寄信, 這過程不是 smtp 溝通, sendmail 一般是讀取 submit.cf 檔案, 該 submit.cf 沒有引入使用 access 功能定義, 所以沒有參考 access 的參考問題. 再者, 這個溝通過程對於 sendmail 根本不是 relay 的流程, 所以就算參考了 access 內容, 也不需要經過 127.0.0.1 RELAY 這類敘述才可以運作.

若是你在本機跑一個程式, 該程式是直接連到 mail server ip 的 port 25 來 smtp 溝通寄信的話, 那就是與常駐的 sendmail 溝通, 該 sendmail 程式本身就是使用 sendmail.cf 檔案, 該 sendmail.cf 有引入 access 功能定義, 所以會參考 access 檔案內容, 所以得開 127.0.0.1 要可以 RELAY 才能夠允許再透過該 mail server 寄信給其他主機使用者.

所以請區分清楚, 於本機直接呼叫 /usr/sbin/sendmail userid@hostname 寄信出去, 與連線到本機 port 25 與 mta 進行 smtp 溝通的差異, 前者無 relay 的動作, 但是後者有.
《解決方案》

您說的我基本上明白了,原來在MTA本地發信,也分為直接呼叫sendmail發信和連接本地25埠發信兩種方式,而這兩種方式的流程基本上是不同的,我再按您的指導好好測試測試.

多次麻煩前輩關照,慚愧不已,對老大花費寶貴的無私幫助,感激不盡.

[火星人 ] sendmail中,在MTA本機上向另一MTA發信,咋沒受RELAY限制?禁掉access中所有行也沒用.已經有549次圍觀

http://coctec.com/docs/service/show-post-37293.html