作者 主題: [最佳]Sendmail 十問考大家....  (閱讀 55494 次)

0 會員 與 1 訪客 正在閱讀本文。

netman

  • 管理員
  • 俺是博士!
  • *****
  • 文章數: 17464
    • 檢視個人資料
    • http://www.study-area.org
[最佳]Sendmail 十問考大家....
« 回覆 #30 於: 2003-09-06 00:32 »
耶~~~ James 是我們的明日之星﹗加油,能否要到 abel 的答案,就靠你了...

James Wu

  • 鑽研的研究生
  • *****
  • 文章數: 683
    • 檢視個人資料
[最佳]Sendmail 十問考大家....
« 回覆 #31 於: 2003-09-06 00:39 »
丫..壓力好大
看來要趕快找資料,不能在鬼混了
感謝學長們的器重,我會努力滴

abelyang

  • 酷!學園 學長們
  • 俺是博士!
  • *****
  • 文章數: 1097
    • 檢視個人資料
[最佳]Sendmail 十問考大家....
« 回覆 #32 於: 2003-09-06 16:45 »
還是大家認養不同的題目去研究呢 ?
都丟給 James 兄去解大概得花不少的時間吧 ~~

引用
1. BCC (如 outlook 收信人:無)如何知道寄給什麼人?
2. 如何不允許 BCC ?
3. 如何 deny any_words@yourdomain.com (其中 any_words 為您系統上不存在的使用者)的來信 ?
4. 一網域名稱為 xxx.com.tw. , 收件方為 yyy.com.tw., 若他們在 TWNIC 的指定如下:
ns1.xxx.com.tw. IP1
ns2.xxx.com.tw. IP2

ns1.yyy.com.tw. IP3
ns2.yyy.com.tw. IP4

但是在個自的 DNS zone file (xxx and yyy) 內僅有 IN NS ns1 的描述,
但四部主機皆有各自該有的 zone file 資料
請問:
1. 如果 xxx 寄給 yyy, 在 Local DNS (BIND 8.X/9.X)沒有 cache 的狀況下有什麼情況?
2. 如果 xxx 寄給 yyy, 在 Local DNS (BIND 8.X/9.X)巳有 cache 各又是什麼情況 ?
3. 如果 yyy 收件動作,要檢查寄件主機 (xxx) 的正反解一致性,又會有什麼情況?
4. 如果 xxx 寄給 yyy, 在 Local DNS 無 cache 狀況下, ns1.yyy 又不 work 又會有什麼情況?

5. 如何擋掉一封 mail 中超過 10 個的 Received: 欄位
6. 如何做寄出備份 ? (種除了精華區的二種方法外任提一種)
7. 如何在 sendmail.mc 或 sendmail.cf 中檔掉 [0-9]+.txt@yourdomain 的信件
8. 如何限制某一來信 IP 固定時間內只能送進你的 mail server 幾封信 ?
9. 從 network 設定開始, sendmail 如何收送 IPv6 address 的信件?
10. 如何從 linux command line 取得本篇文章寄出,並在以 Outlook 以 html 格式顯示 ?


第1 2 題 :   用 procmail,善用預設變數 (第二題 duan 兄巳解答,但 To: 如果有值...)
3:  除了原來我列的外, 用 HACK 也行,另外一個觀點是從 server 發出去的信都固定加一個特有的 header, 來信時如果是 yourdomain 但沒有這個 header 就 drop 掉
4. ...
5. HACK
6. google search 可以找到第三種第四種做法,巧妙個有不同
8. 找 sendmail 有關 regex 的章節 (也可用 HACK 較簡單)
9. 如何 config IPv6 address, 及在 sendmail 上設定其 listen IPv6 address,第一部份是屬於網路設定,第二部份在 sendmail 網站上即有
10. 巳解答

大家要認領嗎 ? 還是 James 要全包了  :o ?
學習要有動力,不過解出來我也沒有什麼獎品給各位啦~
但過程中你學到會很多哦~絕對不只某題的答案而以

James Wu

  • 鑽研的研究生
  • *****
  • 文章數: 683
    • 檢視個人資料
[最佳]Sendmail 十問考大家....
« 回覆 #33 於: 2003-09-07 06:17 »
7. 如何在 sendmail.mc 或 sendmail.cf 中檔掉 [0-9]+.txt@yourdomain 的信件
假如你希望擋掉所有以數字為e-mail address開頭的信件如 2312343@bigisp.com,你可以利用Local_check_mail和 regex map:

LOCAL_CONFIG
Kallnumbers regex -a@MATCH ^[0-9]+$


LOCAL_RULESETS SLocal_check_mail
# check address against various regex checks
R$* $: $>Parse0 $>3 $1
R$+ < @ bigisp.com. > $* $: $(allnumbers $1 $)
R@MATCH $#error $: 553 Header Error

亦可以由判斷內容的的標題來拒絕信件 例如檢查有效的Message-ID: header:

LOCAL_RULESETS
HMessage-Id: $>CheckMessageId


SCheckMessageId
R< $+ @ $+ > $@ OK
R$* $#error $: 553 Header Error
學長這是我在之前的網頁查到的資料
那在實作上是如何做呢?
FEATURE不是會去找feature的資料夾看看有沒有這個檔案嗎?
可是我發現我的資料夾底下沒有這個檔案也
那是否改成用define,再自行定義那個檔要去那裡找呢?
O'reilly的書實在有看沒有懂=.=
還有請好心的學長們幫忙認領一些題目
小弟實在力量有限..

James Wu

  • 鑽研的研究生
  • *****
  • 文章數: 683
    • 檢視個人資料
[最佳]Sendmail 十問考大家....
« 回覆 #34 於: 2003-09-07 06:28 »
如何 deny any_words@yourdomain.com (其中 any_words 為您系統上不存在的使用者)的來信 ?
http://ccms.ntu.edu.tw/~chenyc/virus.htm
是否可參考阻擋病毒的作法
比對信件的表頭再設定規則來處理呢?

abelyang

  • 酷!學園 學長們
  • 俺是博士!
  • *****
  • 文章數: 1097
    • 檢視個人資料
[最佳]Sendmail 十問考大家....
« 回覆 #35 於: 2003-09-07 15:32 »
如何 deny any_words@yourdomain.com (其中 any_words 為您系統上不存在的使用者)的來信 ?
http://ccms.ntu.edu.tw/~chenyc/virus.htm
是否可參考阻擋病毒的作法
比對信件的表頭再設定規則來處理呢?

可以,但是這可能得多一些處理哦...因為你要如何知道系統現在有那些人(account)呢 ?

不過這個 link 再研究下去就可以解掉另外一題,用 ruleset 和用 procmail 有什麼差別相信 james 再研究下去就可以體會的很深囉(procmail 超吃資源哦)!!

abelyang

  • 酷!學園 學長們
  • 俺是博士!
  • *****
  • 文章數: 1097
    • 檢視個人資料
[最佳]Sendmail 十問考大家....
« 回覆 #36 於: 2003-09-08 10:55 »
引述: "James Wu"
7. 如何在 sendmail.mc 或 sendmail.cf 中檔掉 [0-9]+.txt@yourdomain 的信件

....中間略

學長這是我在之前的網頁查到的資料
那在實作上是如何做呢?..


昨天沒看到這一段 ....
上述那個 Ruleset 可以做到 reject allnum@yourdomain ,
恭喜 James 兄, 找得到就是一種能力值得嘉獎哦...
那裏不了解我可以幫您解釋一下.
 
直接放在 mc file 內即可,你可以實驗看看.
用 regex 有時候在 sendmail上可能會有問題 (啟動時會有 error msg),
可以參考這裏  http://www.sendmail.org/compiling.html#BuildingSendmail

引用
FEATURE不是會去找feature的資料夾看看有沒有這個檔案嗎?
可是我發現我的資料夾底下沒有這個檔案也
那是否改成用define,再自行定義那個檔要去那裡找呢?
O'reilly的書實在有看沒有懂=.=
還有請好心的學長們幫忙認領一些題目
小弟實在力量有限  


這個在 sendmail 內是用 HACK, 您可以看一下下列這個 Link,
至於這幾段可以在 http://www.digitalanswers.org/check_local/ 找到 HACK 用法, 從 sendmail.org 的這一頁 http://www.sendmail.org/m4/anti_spam.html#header_checks 可以找到連結
Oreilly 的那 sendmail 書對大多數人還是天書,我得它並沒有適當的循序漸進,
所以看到一個階段就會看不下去或看不懂了

James 加油哦~~沒有人催您,您有時間再研究即可,相信數日以來,您對 sendmail 的了解一定更多了,但這些事急不了,我個人也是看了很久再加上實驗,至少也要數個星期才能透徹,但有看就是你的,不是嗎 ?
讓 sendmail 在 header 處理時即 reject 掉 , 是不是比要讀整封信再來判斷來得好呢 !

加油,任何問題隨時反應,對於您我隨時奉陪哦.

James Wu

  • 鑽研的研究生
  • *****
  • 文章數: 683
    • 檢視個人資料
[最佳]Sendmail 十問考大家....
« 回覆 #37 於: 2003-09-08 15:17 »
感謝學長指導,我再去嚐試看看
聽學長這麼說,就放心多了
 8) 我會給自己多一點時間的
實作上碰到問題再來麻煩學長

netman

  • 管理員
  • 俺是博士!
  • *****
  • 文章數: 17464
    • 檢視個人資料
    • http://www.study-area.org
[最佳]Sendmail 十問考大家....
« 回覆 #38 於: 2003-09-08 15:29 »
得 abel 兄背後支援,機會難逢哦,james 加油﹗

duan

  • 榮譽博士
  • 活潑的大學生
  • ***
  • 文章數: 253
    • 檢視個人資料
[最佳]Sendmail 十問考大家....
« 回覆 #39 於: 2003-09-09 21:23 »
引述: "abelyang"

第3題或許大家較迫切吧.我舉一個自己的方法,是用  procmail , 但方法不是只有一重哦 (這一題還有討論空間...)


之前數天雖然已經有看到 post, 不過慚愧的是沒什麼時間去找答案,
不敢上來胡謅   :Q

不過這些實在是有深度的問題, 沒有花大功夫下去不容易有答案,
而 abelyang 兄的謬讚, 令弟倍感汗顏.   ^^;

弟對相當多的網路設定都只能算是入門, 因為接觸的 scale 都不大, 然後
又喜歡亂忙, 又寫程式, 又碰系統, 正所謂鼯鼠五技而窮, 遇到高手時往往汗顏.  @_@

這次的問題弟就偷懶一下, 揀 James 兄和 abelyang 兄現成的答案了.  :Q
題外話, 同在台北, 要是 study-area 有活動的話, abelyang 兄有沒有空
出來見見, 認識一下啊?  :P

( 這篇真像是雜七雜八的討論文章啊  ^^;;;)

abelyang

  • 酷!學園 學長們
  • 俺是博士!
  • *****
  • 文章數: 1097
    • 檢視個人資料
[最佳]Sendmail 十問考大家....
« 回覆 #40 於: 2003-09-10 11:39 »
引用
不過這些實在是有深度的問題, 沒有花大功夫下去不容易有答案,
而 abelyang 兄的謬讚, 令弟倍感汗顏. ^^;

雖有深度但對大多數人而言可能不實用吧~只是說我們單位特性,太多廣告信了,
我個人每天至少收到全世界來得 spam >300 , 我的老板更誇張...上千封
(為什麼不保護好 email address 呢 ...這個不是我們個人問題)

雖然我巳使儘吃奶的力氣了, 大概只能 down 到 二成吧~~
從 router / mail server 層層關卡 (一些很明確是 spam 的話,就用程式 update 我們家 26xx 的 ACL list),總之和 spam 奮戰讓我變得更堅強  :D 這算是意外之福吧

duan 兄客氣了, 您學有專精是大家有目共睹的,文學造詣更是令人激賞  :D
(PS: 幫您查了, 鼯鼠五技
能飛不能過屋
能緣不能窮木
能游不能渡谷
能穴不能掩身
能走不能先人
) 是呀~~有人可能會更多...但是.., 蜈蚣百足不如雄雞兩翼  (提外話,雖是提外話,但還是可以發人省思的, duan 兄時感自己之不足,正是高手典範  :) )


引用
同在台北, 要是 study-area 有活動的話, abelyang 兄有沒有空
出來見見, 認識一下啊?

如果有活動,小弟時間上允許一定來參加....(遠程就敬謝了, abel 日:小兒在,不遠遊,遊必有方)

VBird

  • 管理員
  • 俺是博士!
  • *****
  • 文章數: 1516
    • 檢視個人資料
    • http://linux.vbird.org
[最佳]Sendmail 十問考大家....
« 回覆 #41 於: 2003-09-11 13:45 »
James 加油的啦!
好多題目我也看不懂.....

AnsonShen

  • 懷疑的國中生
  • **
  • 文章數: 59
    • 檢視個人資料
[最佳]Sendmail 十問考大家....
« 回覆 #42 於: 2003-09-15 16:38 »
小弟看了上面的問題後,沒有一題解的出來  >"<!
不過有另一個問題想請教一下
在clinet 端上 smtp server:your smtp server
然後寄信給 your domain local user
結果成功了!!!(不知是不是設定上的問題)

因為是寄給local user,這樣不算是relay mail ,所以SMTP Server會接受!!
不知這樣對不對!
不知有沒有什麼方法可以抯擋這樣的問題
不知道這算不算新的問題呀(如果有人問過,請別罵我)

我的期許不用超"鳥"過"羊",更不用破"網"而出,
因為太強了 ^^

abelyang

  • 酷!學園 學長們
  • 俺是博士!
  • *****
  • 文章數: 1097
    • 檢視個人資料
[最佳]Sendmail 十問考大家....
« 回覆 #43 於: 2003-09-17 16:37 »
您的觀點都沒有錯~
至於檔 telnet 自己手動去寄信的方法大概只能從 session 的角度去看
正常的 mail header 送出來時,至少時間都很短,但如果有人用 telnet 自己打
那些 SMTP command 的話,session 的時間就會拉很長...我想應該有些
Firewall 可以做到才是

另外一種就是重 mail server 的設定去做
像下面這些 Options (僅列部份,其他可在 sendmail.cf 中找到)
#O Timeout.helo=5m
#O Timeout.mail=10m
#O Timeout.rcpt=1h
#O Timeout.datainit=5m
#O Timeout.datablock=1h
#O Timeout.datafinal=1h
#O Timeout.rset=5m
#O Timeout.quit=2m

去實驗看看囉 , m 可以改成 s , 純實驗就好,不建議您做在正式的 mail server 上

AnsonShen

  • 懷疑的國中生
  • **
  • 文章數: 59
    • 檢視個人資料
[最佳]Sendmail 十問考大家....
« 回覆 #44 於: 2003-09-18 00:28 »
首先先謝謝abelyang大大的回答,
小弟想到的是
如果用程式去控制,這樣的話就可以發一些垃圾郵件,
而這些郵件都可以送達,
另外就是提到的參數部份,如果將m改成s,
如果網路狀況不好不就被踢掉了!!!  >"<

在次謝謝您的提示!!
小弟會努力的
引述: "abelyang"
您的觀點都沒有錯~
至於檔 telnet 自己手動去寄信的方法大概只能從 session 的角度去看
正常的 mail header 送出來時,至少時間都很短,但如果有人用 telnet 自己打
那些 SMTP command 的話,session 的時間就會拉很長...我想應該有些
Firewall 可以做到才是

另外一種就是重 mail server 的設定去做
像下面這些 Options (僅列部份,其他可在 sendmail.cf 中找到)
#O Timeout.helo=5m
#O Timeout.mail=10m
#O Timeout.rcpt=1h
#O Timeout.datainit=5m
#O Timeout.datablock=1h
#O Timeout.datafinal=1h
#O Timeout.rset=5m
#O Timeout.quit=2m

去實驗看看囉 , m 可以改成 s , 純實驗就好,不建議您做在正式的 mail server 上

James Wu

  • 鑽研的研究生
  • *****
  • 文章數: 683
    • 檢視個人資料
[最佳]Sendmail 十問考大家....
« 回覆 #45 於: 2003-09-28 01:23 »
1. BCC (如 outlook 收信人:無)如何知道寄給什麼人?
所有的郵件訊息都是由二個不同的部份所組成
標頭(含有諸如郵件由何人寄來等資訊)與本體
(訊息的真正內容)
當使用-t命令列開關執行時(從標頭中收集收件人地址)
sendmail會儲存一份隱藏副本的收件人名單
刪除BCC標頭,然後將郵件遞送給每一位隱藏副本的收信人

最近實在雜事太多,這麼晚才有空找資料..

James Wu

  • 鑽研的研究生
  • *****
  • 文章數: 683
    • 檢視個人資料
[最佳]Sendmail 十問考大家....
« 回覆 #46 於: 2003-09-29 23:22 »
6. 如何做寄出備份 ? (種除了精華區的二種方法外任提一種)
inflex:(安裝好後檢查一下inflex可執行檔內的virus scan app的路徑是否正確)
http://pldaniels.com/inflex/index.html

NOD32:(只要解開放到適當目錄即可,不需安裝)
http://www.nod32.com

inflex只要使用./install.sh回答問題即可完成安裝,安裝完成後按指示重新啟動sendmail
即可。(-C flag)
NOD32只是眾多可選擇的防毒軟體之一,也可以試試別家的。

in inflex:
備份信件至某一指定帳號(outgoing and incoming):
(thanks to john@osware.net)
    cat ${tmpdir}/mailpack | ${sendmail} -C${cf} -f ${sender} ${receivers}
        exitstatus=$?
    //add line below:
    cat ${tmpdir}/mailpack | ${sendmail} -C${cf} -f ${sender} loguser@yourdomain.com
        rm -rf ${tmpdir}
不曉得這算不算是一種方法呢?

abelyang

  • 酷!學園 學長們
  • 俺是博士!
  • *****
  • 文章數: 1097
    • 檢視個人資料
[最佳]Sendmail 十問考大家....
« 回覆 #47 於: 2003-09-30 09:49 »
最近忙~幾天沒上來 ^^"
引用
1. BCC (如 outlook 收信人:無)如何知道寄給什麼人?
所有的郵件訊息都是由二個不同的部份所組成
標頭(含有諸如郵件由何人寄來等資訊)與本體
(訊息的真正內容)
當使用-t命令列開關執行時(從標頭中收集收件人地址)
sendmail會儲存一份隱藏副本的收件人名單
刪除BCC標頭,然後將郵件遞送給每一位隱藏副本的收信人


BCC 有兩種狀況~一種是寄出,一種是收進來 ~
要知到寄出時有無 BCC 就是信件還沒進入 MTA 時找標頭...
要知道收件時有無 BCC ...無法知道,但是 Mlocal 的處理有方法可以找到(只是可能不夠準確...收件人 To 欄位不等於實際收件人...)

引用
6. 如何做寄出備份 ? (種除了精華區的二種方法外任提一種)
inflex:(安裝好後檢查一下inflex可執行檔內的virus scan app的路徑是否正確)
http://pldaniels.com/inflex/index.html

NOD32:(只要解開放到適當目錄即可,不需安裝)
http://www.nod32.com

inflex只要使用./install.sh回答問題即可完成安裝,安裝完成後按指示重新啟動sendmail
即可。(-C flag)
NOD32只是眾多可選擇的防毒軟體之一,也可以試試別家的。

in inflex:
備份信件至某一指定帳號(outgoing and incoming):
(thanks to john@osware.net)
cat ${tmpdir}/mailpack | ${sendmail} -C${cf} -f ${sender} ${receivers}
exitstatus=$?
//add line below:
cat ${tmpdir}/mailpack | ${sendmail} -C${cf} -f ${sender} loguser@yourdomain.com
rm -rf ${tmpdir}
不曉得這算不算是一種方法呢?


我覺得只要做得出來都是好方法 !! 不過從前我在 google 找到一個
用 sendmail.cf 直接做 outgoing backup 的做法 ~
如果記得沒有錯的話, 就是 call 兩段不同的 .cf , 一段做存檔,一段做寄件,
完全不用加東西,但存檔就只能在 local 端...,但也能如 James 兄上面提到的
再用 sendmail -t 參數做 BCC....

James 兄~再努力一下~~學海無涯~但也不能回頭了

James Wu

  • 鑽研的研究生
  • *****
  • 文章數: 683
    • 檢視個人資料
[最佳]Sendmail 十問考大家....
« 回覆 #48 於: 2003-10-03 00:31 »
我會繼續努力滴
學長放心
雖然找資料都會找到想逃掉 :oops:
sendmail.cf看起來真像天書..

James Wu

  • 鑽研的研究生
  • *****
  • 文章數: 683
    • 檢視個人資料
[最佳]Sendmail 十問考大家....
« 回覆 #49 於: 2003-10-12 06:19 »
abelyang學長:
   請教一下,剛才我看了您之前提供的連結,
HACK的用法大概了解了,可是那些規則要寫在那裡丫?
看起來HACK是用在sendmail.mc裡頭的
那規則呢?以下面這行為例好了
HACK(`check_header', `X-Spam-Again', `HSA', `match_all')dnl
這是檢查信件標頭,若有HSA或X-Spam-Again則退信對嗎?
規則是否寫在HACK前面像底下這樣
LOCAL_CONFIG
Fno_num_domains /etc/mail/file.with.domains

Kreg_no_nums regex -a@MATCH -n [0-9]+
規則還有其它方式寫嗎?
是否能用if?還是有他的特定格式@@這裡就不了解了
那一頁看了好幾次才稍微懂一點 :oops: 請學長賜教

abelyang

  • 酷!學園 學長們
  • 俺是博士!
  • *****
  • 文章數: 1097
    • 檢視個人資料
[最佳]Sendmail 十問考大家....
« 回覆 #50 於: 2003-10-13 10:02 »
引用
HACK的用法大概了解了,可是那些規則要寫在那裡丫?
看起來HACK是用在sendmail.mc裡頭的

HACK 是用在 sendmail.mc 中沒有錯,但要把這一段看清楚些哦
http://www.digitalanswers.org/check_local/#setup

引用
HACK(`check_header', `X-Spam-Again', `HSA', `match_all')dnl
這是檢查信件標頭,若有HSA或X-Spam-Again則退信對嗎?

是的~當信件進來時~在處理表頭處 (像 postfix 一樣,不用接整封信才去 parser,而是在 header 看到這個字眼時就 reject 這封信


引用
那規則呢?以下面這行為例好了
規則是否寫在HACK前面像底下這樣
LOCAL_CONFIG
Fno_num_domains /etc/mail/file.with.domains

這裏要配合 HACK 中 DBTAGs 的用法....James 兄離目標愈來愈近了哦 ~~基本上您可以像上面 HSA 那一段, 將 'X-Spam-Again' ...等 Spam header 加在檔案中,像 access.db 等一樣的用法,如此就很具彈性


引用
Kreg_no_nums regex -a@MATCH -n [0-9]+
規則還有其它方式寫嗎?

這裏不是很懂您的意思 ? 規則即是一般的 POSIX Regular Expression, -n 我記得是不 (not) 的意思,整句話的意思是不為全數字

引用
是否能用if?還是有他的特定格式@@這裡就不了解了

不需要考慮 if 問題, 因為 HACK 的功能就是 match 你的定義,就 reject (或 accept) , 即隱含 if 的意味.
如果用看的,有時候有些地方很容易一知半解, 實作過後就較容易理解了..

用 HACK 不用收整封信就能 reject 該信了,不會像 procmail 要到 Mlocal 階段,就像 postfix 的 header_check 一般

James Wu

  • 鑽研的研究生
  • *****
  • 文章數: 683
    • 檢視個人資料
[最佳]Sendmail 十問考大家....
« 回覆 #51 於: 2003-10-16 05:06 »
引用
3. 如何 deny any_words@yourdomain.com (其中 any_words 為您系統上不存在的使用者)的來信 ?

在sendmail.mc裡加入
HACK(`check_header',`_CHECK_LOCALUSER_')dnl


_CHECK_LOCALUSER_
If the MAIL FROM has a local domain ($=w) check, if the localpart is valid on the system. If not, the mail is rejected.

不會就這麼簡單吧.....
---------------------------------------------------
果然沒這麼簡單,測試結果發現仍然沒擋掉@@
繼續努力

yijing

  • 可愛的小學生
  • *
  • 文章數: 8
    • 檢視個人資料
[最佳]Sendmail 十問考大家....
« 回覆 #52 於: 2003-10-28 00:25 »
最近在學sendmail
不過覺得很複雜....
看過鳥哥的文件了
不過實作起來還是不太了解
不知道要怎麼辦
請大家告訴我對於初學者我應該要怎麼學習呢....拜託拜託

yousee

  • 訪客
[最佳]Sendmail 十問考大家....
« 回覆 #53 於: 2003-10-28 12:52 »
編輯 sendmail.cf
擋掉所有以數字為e-mail address開頭的信件如 2312343@
代碼: [選擇]
# 宣告一個具有鍵值(keyed)的資料庫
# 這一條名稱為allnumbers
# 而鍵值名稱為@MATCH,而其值為 ^[0-9]+$ 表示所有以數字為e-mail address標頭的信件
Kallnumbers regex -a@MATCH ^[0-9]+$

# 宣告一個ruleset
# S標頭就是宣告一個規則集的標始,R標頭定義一條規則
# 檢查的標準就是
# 1.Local_check_mail的ruleset中定義去找allnumbers的鍵值資料庫
# 2.在鍵值資料庫中使用MATCH中的值來濾除信件
SLocal_check_mail
# check address against various regex checks
R$* <Tab>$: $>Parse0 $>3 $1
R$+ < @ > $* <Tab>$: $(allnumbers $1 $)
R@MATCH<Tab>$#error $: 553 Header Error

檔掉偽裝您的domain 比如 abc.com 的信件
代碼: [選擇]
# 以下定義一個標頭以H為本行標頭,指定郵件檢查Received: 標頭
HReceived:      $>ChecksReceived

# 宣告一個具有鍵值(keyed)的資料庫
# 這一條名稱為Dimailer
# 而鍵值名稱為SUSPECT,而其值為 Received: from abc.com
# -f 標定是要忽略大小寫
KDimailer regex -f -aSUSPECT Received: from abc.com
# 宣告一個ruleset
# S標頭就是宣告一個規則集的標始,R標頭定義一條規則
# 檢查的標準就是
# 1.檢查標頭只要是Received: ,就去找ChecksReceived的ruleset
# 2.ChecksReceived的ruleset中定義去找Dimailer的鍵值資料庫
# 3.在鍵值資料庫中使用SUSPECT中的值來濾除信件

SChecksReceived
R$+                             $: $(Dimailer $1 $)
RSUSPECT                        $#error $: "553 Header Error"

重新啟動 sendmail
IT IS OK!
YA!

yousee

  • 訪客
[最佳]Sendmail 十問考大家....
« 回覆 #54 於: 2003-10-29 17:18 »
引述: "James Wu"
引用
3. 如何 deny any_words@yourdomain.com (其中 any_words 為您系統上不存在的使用者)的來信 ?

在sendmail.mc裡加入
HACK(`check_header',`_CHECK_LOCALUSER_')dnl


_CHECK_LOCALUSER_
If the MAIL FROM has a local domain ($=w) check, if the localpart is valid on the system. If not, the mail is rejected.

不會就這麼簡單吧.....
---------------------------------------------------
果然沒這麼簡單,測試結果發現仍然沒擋掉@@
繼續努力

我也試過
真的不行
後來我搜尋 check_local-5.6/hack/*.mc
發現 CHECK_LOCALUSER
是在 check_local.m4 裡
所以改成
代碼: [選擇]
HACK(`check_local`,`_CHECK_LOCALUSER_')dnl
m4 建出來的 .cf
增加一大串
沒TRY過
我不敢用
也不敢TRY
因為這關係到全公司
所以提出來
看看有沒有"敢死隊"想TRY
呵呵呵!

James Wu

  • 鑽研的研究生
  • *****
  • 文章數: 683
    • 檢視個人資料
[最佳]Sendmail 十問考大家....
« 回覆 #55 於: 2003-10-29 23:05 »
hack還要配合access來用
只是最近忙還沒時間研究
頭痛死了,還被叫去新竹=.=

阿坤

  • 可愛的小學生
  • *
  • 文章數: 16
    • 檢視個人資料
Re: [最佳]Sendmail 十問考大家....
« 回覆 #56 於: 2003-10-30 16:47 »
4. 一網域名稱為 xxx.com.tw. , 收件方為 yyy.com.tw., 若他們在 TWNIC 的指定如下:
ns1.xxx.com.tw. IP1
ns2.xxx.com.tw. IP2

ns1.yyy.com.tw. IP3
ns2.yyy.com.tw. IP4

但是在個自的 DNS zone file (xxx and yyy) 內僅有 IN NS ns1 的描述,
但四部主機皆有各自該有的 zone file 資料
請問:
   1. 如果 xxx 寄給 yyy, 在 Local DNS (BIND 8.X/9.X)沒有 cache 的狀況下有什麼情況?
   2. 如果 xxx 寄給 yyy, 在 Local DNS (BIND 8.X/9.X)巳有 cache 各又是什麼情況 ?
   3. 如果 yyy 收件動作,要檢查寄件主機 (xxx) 的正反解一致性,又會有什麼情況?
   4. 如果 xxx 寄給 yyy, 在 Local DNS 無 cache 狀況下, ns1.yyy 又不 work 又會有什麼情況?



小菜鳥回應
1.在Local Dns没有Cache的狀況,ns1.xxx會向上層DSN查詢(通常會是你的ISP) 查到後就會把信寄出去了.
2.在Cache有效期限內就直接將信寄出,反之期限以過就回到1的程序.
3.若xxx的反解有誤的會就會依yyy的設定處理(ex 拒絕,丟棄,退信....).
4.會往上層查詢,看有無其他的NS主機,查到ns2.yyy後依其MX記錄將信寄出去. :-?

abelyang

  • 酷!學園 學長們
  • 俺是博士!
  • *****
  • 文章數: 1097
    • 檢視個人資料
Re: [最佳]Sendmail 十問考大家....
« 回覆 #57 於: 2003-10-30 17:06 »
引述: "阿坤"
4. 一網域名稱為 xxx.com.tw. , 收件方為 yyy.com.tw., 若他們在 TWNIC 的指定如下:
ns1.xxx.com.tw. IP1
ns2.xxx.com.tw. IP2

ns1.yyy.com.tw. IP3
ns2.yyy.com.tw. IP4

但是在個自的 DNS zone file (xxx and yyy) 內僅有 IN NS ns1 的描述,
但四部主機皆有各自該有的 zone file 資料
請問:
   1. 如果 xxx 寄給 yyy, 在 Local DNS (BIND 8.X/9.X)沒有 cache 的狀況下有什麼情況?
   2. 如果 xxx 寄給 yyy, 在 Local DNS (BIND 8.X/9.X)巳有 cache 各又是什麼情況 ?
   3. 如果 yyy 收件動作,要檢查寄件主機 (xxx) 的正反解一致性,又會有什麼情況?
   4. 如果 xxx 寄給 yyy, 在 Local DNS 無 cache 狀況下, ns1.yyy 又不 work 又會有什麼情況?



小菜鳥回應
1.在Local Dns没有Cache的狀況,ns1.xxx會向上層DSN查詢(通常會是你的ISP) 查到後就會把信寄出去了.
2.在Cache有效期限內就直接將信寄出,反之期限以過就回到1的程序.
3.若xxx的反解有誤的會就會依yyy的設定處理(ex 拒絕,丟棄,退信....).
4.會往上層查詢,看有無其他的NS主機,查到ns2.yyy後依其MX記錄將信寄出去. :-?

這個狀況阿坤兄沒有說清楚哦.... "查到" 的說明不夠清楚
    另外,這個問題尚需針對 BIND 8.X 及 9.X 不同的版本不同的狀況做出回答....,我想您說的狀況都多存在 BIND 8 上
您的其他幾個回答意思都差不多.如果查到,那是一定沒問題的,
但是有些 "情況" 下會查不到,像 4.4 題,在 BIND 9 下就不 work 了
(BIND 8 會 work)

阿坤

  • 可愛的小學生
  • *
  • 文章數: 16
    • 檢視個人資料
Re: [最佳]Sendmail 十問考大家....
« 回覆 #58 於: 2003-10-31 09:19 »
引述: "abelyang"
引述: "阿坤"
4. 一網域名稱為 xxx.com.tw. , 收件方為 yyy.com.tw., 若他們在 TWNIC 的指定如下:
ns1.xxx.com.tw. IP1
ns2.xxx.com.tw. IP2

ns1.yyy.com.tw. IP3
ns2.yyy.com.tw. IP4

但是在個自的 DNS zone file (xxx and yyy) 內僅有 IN NS ns1 的描述,
但四部主機皆有各自該有的 zone file 資料
請問:
   1. 如果 xxx 寄給 yyy, 在 Local DNS (BIND 8.X/9.X)沒有 cache 的狀況下有什麼情況?
   2. 如果 xxx 寄給 yyy, 在 Local DNS (BIND 8.X/9.X)巳有 cache 各又是什麼情況 ?
   3. 如果 yyy 收件動作,要檢查寄件主機 (xxx) 的正反解一致性,又會有什麼情況?
   4. 如果 xxx 寄給 yyy, 在 Local DNS 無 cache 狀況下, ns1.yyy 又不 work 又會有什麼情況?



-?

這個狀況阿坤兄沒有說清楚哦.... "查到" 的說明不夠清楚
    另外,這個問題尚需針對 BIND 8.X 及 9.X 不同的版本不同的狀況做出回答....,我想您說的狀況都多存在 BIND 8 上
您的其他幾個回答意思都差不多.如果查到,那是一定沒問題的,
但是有些 "情況" 下會查不到,像 4.4 題,在 BIND 9 下就不 work 了
(BIND 8 會 work)



我想再對"查到"說明請Abelyang指導
Local Dns會向上層Dns查得負責解析yyy.com.tw的ns ns1.yyy.com.tw資料,再從ns1.yyy.com.tw得到mx的資料,這樣子就完成了"查到"的程序了

James Wu

  • 鑽研的研究生
  • *****
  • 文章數: 683
    • 檢視個人資料