作者: Baron. Wan
telnet localhost 25
example.com.tw ......
HELO gmail.com
MAIL FROM: < yyy @ gmail.com >
RCPT TO: < ggg @ uuu.com.tw >
DATA
from: < yyy @ gmail.com >
to: < ggg @ uuu.com.tw >
subject: test
test
.
QUIT
一封信件的檔頭解析如下:
Received: from gmail.com (localhost.localdomain [127.0.0.1])
by example.com.tw
for ggg @ uuu.com.tw
X-Envelope-From: yyy @ gmail.com
Return-Path: yyy @ gmail.com
那個 `by` 為實際發信的地址
2008年12月3日 星期三
procmail ~ 自己寄給自己?
作者: Baron. Wan
有垃圾信偽裝寄件者是自己, 然後寄給自己 O.O?!! 以下是比對了數封的相關垃圾信件後, 做出的處理動作....
:0 H
* ^[fF]rom:
{
FROMUSER=`grep "^[fF]rom:"|sed 's/^.* .* //'|sed 's/^.* //'`
TOUSER=`formail -xReceived:|grep "for"|head -1|sed 's/^.*for //'|awk -F" " '{print $1}'|sed 's/^/\ /'|sed 's/;$//'|sed 's/\ //'`
TOUSER2=`grep "^[tT]o:"|sed 's/^.* .* //'|sed 's/,//'|sed 's/^/\ /'|grep "${FROMUSER}"`
WHOISU=`if [ -n "${TOUSER2}" ]||[ "${FROMUSER}" = "${TOUSER}" ]&&[ -n "${FROMUSER}" ]; then echo "True"; else echo "False"; fi`
:0
* WHOISU ?? True
{
:0f
# to addition black list
| formail -i "X-SPAM-NOTUSER: MAILER_SPAM_NOTFROMUSER"
}
}
有垃圾信偽裝寄件者是自己, 然後寄給自己 O.O?!! 以下是比對了數封的相關垃圾信件後, 做出的處理動作....
:0 H
* ^[fF]rom:
{
FROMUSER=`grep "^[fF]rom:"|sed 's/^.* .* //'|sed 's/^.* //'`
TOUSER=`formail -xReceived:|grep "for"|head -1|sed 's/^.*for //'|awk -F" " '{print $1}'|sed 's/^/\ /'|sed 's/;$//'|sed 's/\ //'`
TOUSER2=`grep "^[tT]o:"|sed 's/^.* .* //'|sed 's/,//'|sed 's/^/\ /'|grep "${FROMUSER}"`
WHOISU=`if [ -n "${TOUSER2}" ]||[ "${FROMUSER}" = "${TOUSER}" ]&&[ -n "${FROMUSER}" ]; then echo "True"; else echo "False"; fi`
:0
* WHOISU ?? True
{
:0f
# to addition black list
| formail -i "X-SPAM-NOTUSER: MAILER_SPAM_NOTFROMUSER"
}
}
procmail ~ 紀錄發信位址
作者: Baron. Wan
:0 H
* ^Received:
{
FROM_MAILDOMAIN=`formail -xReceived:|grep "by"|tail -1|sed 's/^.*by //'|awk -F" " '{print $1}'`
:0f
| formail -i "X-SPAM-FROMDOMAIN: ${FROM_MAILDOMAIN}"
}
那個 Received:...by 是哪裡? 簡單的說 by 之後接的就是發信來源地!
這有甚麼作用呢? 作用很多的. 許多垃圾郵件經過觀察, 發送來源地竟然是在自己的Mail Server ?!! 很奇怪吧, 可是明明就沒中毒...其實一點也不奇怪, 你只要將 smtp 指向可接收外部信件的 mail server, 就可以由那台主機發信啦, 至於可以發送到哪裡, 那要看那台主機有沒有 Relay 囉, 不然只能寄送給主機內的User了. 可是這樣 自己人寄給自己人不就被擋了? 所以上面會去比對發信的來源地.
:0 H
* ^Received:
{
FROM_MAILDOMAIN=`formail -xReceived:|grep "by"|tail -1|sed 's/^.*by //'|awk -F" " '{print $1}'`
:0f
| formail -i "X-SPAM-FROMDOMAIN: ${FROM_MAILDOMAIN}"
}
那個 Received:...by 是哪裡? 簡單的說 by 之後接的就是發信來源地!
這有甚麼作用呢? 作用很多的. 許多垃圾郵件經過觀察, 發送來源地竟然是在自己的Mail Server ?!! 很奇怪吧, 可是明明就沒中毒...其實一點也不奇怪, 你只要將 smtp 指向可接收外部信件的 mail server, 就可以由那台主機發信啦, 至於可以發送到哪裡, 那要看那台主機有沒有 Relay 囉, 不然只能寄送給主機內的User了. 可是這樣 自己人寄給自己人不就被擋了? 所以上面會去比對發信的來源地.
訂閱:
意見 (Atom)