成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

解析Qmail之郵件轉發規則

運維 系統運維
Qmail是一個用來代替UNIX下Sendmail軟件的郵件傳送程序。qmail使用SMTP協議與其它系統上的MTA交換郵件。那他的郵件轉發規則是怎么樣的呢,請看下文。

說起Qmail,大家都知道他是郵件系統里安全度最高的之一,那他的郵件轉發規則是什么,請看下文。

  關于郵件的轉發規則,即是一個很普通的話題也是一個很重要的話題。說它是一個普通話題是因為凡是玩郵件服務的哥們都或多或少了解這個話題,說他是一個很重要的話題,是因為我們中間好多人都為這個玩意兒感到困惑過,可不,前幾天我還在IGENUS論壇上請教過大麻兄關于郵件的轉發規則的問題呢,我也一直為這個咚咚感到很迷惑,還好,通過在大麻兄的耐心指導和自己長期不懈的摸索測試,現在終于搞明白了。在這里我很樂意把自己的學習所獲貼出來與大家分享,希望能給初學者給點引導,讓他們少走彎路,同時也希望高手們批評指點,謝謝!

  在QMAIL中要鬧清楚郵件轉發規則,要依次明白三個方面的咚咚。

  1 rcpthosts 文件 /var/qmail/control/rcpthosts

  2 tcp.smtp 文件 /etc/tcp.smtp或者是/home/vpopmail/etc/tcp.smtp

  3 smtp 認證

  下面,我來一個一個地談這三個咚咚,注意,我是說,我先要把這三個反面各自獨立來談,談各自的功能和使用方法,后面我將把這三個方面結合起來談,那才是在實戰中要明白和要用到的最重要的東西。

  1 rcpthosts 文件

  這個郵件服務器可以接受轉發請求的目的

  主機列表(或者說目的地址列表),比如在這個文件里有sina.com,souhu.com。那么你可以通過這個服務器轉發發往sina.com,souhu.com的任何郵件,如果你想通過這個服務器給aaa@bbb.com發信的話,就會報錯:553 sorry,that domain isn't in my list ofallowed rcpthosts!知道了吧,因為bbb.com確實沒有在rcpthosts里面啦,于是就理所當然地被拒絕轉發了。那么如果根本就沒有rcpthost這個文件情況又如何呢?在這種情況下,QMAIL會理解為open relay,意味開放式轉發,也就是說任何人可以通過你的這個郵件服務器向任何人發送郵件。這種情況是很危險的,因為你的服務器很容易被垃圾郵件制造者當作發送垃圾郵件的中繼站,你的服務器將被反垃圾聯盟列入黑名單,那么你的服務器就什么事都做不成了,除非你只是在局域網內部使用。所以,rcpthosts這個文件是很有用的。你想對哪個地址開放,就直接在rcpthosts里加入這個目的地址就OK了,就這么簡單!

  2 tcp.smtp 文件

  這個文件的位置無關緊要,一般在/etc/tcp.smtp或者/home/vpopmail/etc/tcp.smtp如上所述,rcpthosts文件可以進行轉發約束,但是用起來不是很爽,須知,你可能要給很多目的地址的朋友發信,那么你得一條一條地在rcpthosts里錄入,如果你是在一個局域網內部使用你的郵件服務器,為了更方便的控制轉發規則,這里有個更好的辦法,這就是tcp.smtp這個文件的作用了。

  這里就要使用ucspi-tcp軟件包的tcpserver程序,該程序的功能類似于inetd-監聽進入的連接請求,為要啟動的服務設置各種環境變量,然后啟動指定的服務。tcpserver的配置文件就是tcp.smtp,該文件定義了是否對某個網絡設置RELAYCLIENT環境變量。例如,本地網絡是地址為192.168.*.*,則tcp.smtp的內容應該設置如下:

  127.0.0.1:allow,RELAYCLIENT=""

  192.168.:allow,RELAYCLIENT=""

  :allow

  這幾個規則的含義是指若連接來自127.0.0.1和192.168.*.*則允許,并且為其設置環境變量RELAYCLIENT,否則允許其他連接,但是不設置RELAYCLIENT環境變量。這樣當從其他地方到本地的25號連接將會被允許,但是由于沒有被設置環境變量,所以其連接將會被qmail-smptd所拒絕。

  但是tcopserver并不直接使用tcp.smtp文件,而是需要先將該文件轉化為cbd文件:

  進入tcp.smtp這個文件所在的目錄,然后使用如下命令:

  tcprules tcp.smtp.cdb tcp.smtp.temp < tcp.smtp

  3 smtp 認證

  對于只在局域網內部使用郵件服務器的情況下,已經夠用了,但是單純靠tcp.smtp這個控制無法適合漫游用戶,因為對于一個漫游用戶來說,其連接服務器時用的IP是不固定的,在這種情況下,tcp.smtp文件就沒有隨時滿足任意一個合法漫游用戶需要的靈活性。為了適應這種需要,smtp認證就應運而生了。所謂smtp認證,就象POP驗證用戶身份一樣,只要你是合法的用戶,輸入用戶名和密碼就可以登陸服務器轉發郵件了,對于漫游用戶來說很方便,同時也避免了open relay的危險性。要讓QMAIL具備用戶驗證的功能需要給QMAIL打補丁。下面具體談談如何實現QMAIL的SMTP認證功能。

  第一步:下載程序

  qmail-smtp補丁:http://members.elysium.pl/brush/qmail-smtpd-auth/

  密碼檢驗補丁:http://members.elysium.pl/brush/cmd5checkpw/

  第二步:編譯安裝qmail-smtpd

  將qmail-smtpd-auth-0.26.tar.gz解壓縮:

  [root@www src]# tar xvfz qmail-smtpd-auth-0.26.tar.gz

  [root@www src]# cd qmail-smtpd-auth-0.26

  [root@www qmail-smtpd-auth-0.26]# ls

  CHANGES Makefile README TODO inetd.conf qmail-smtpd.c

  qmail-smtpd.patch

  將安裝成功的qmail目錄下的qmail-smtp.c拷貝到qmail-smtpd-auth-0.26目錄下:

  [root@www qmail-smtpd-auth-0.26]# cp ../qmail-1.03/qmail-smtpd.c ./

  然后對該文件進行補丁處理:

  [root@www qmail-smtpd-auth-0.26]# patch -p1 < qmail-smtpd.patch

  將qmail-smtpd.c 拷貝到qmail 的源文件目錄里:

  [root@www qmail-smtpd-auth-0.26]# cp qmail-smtpd.c ../qmail-1.03

  最好先將原文件備份。單獨編譯 qmail-smtpd :

  [root@aidmail qmail-smtpd]# make qmail-smtpd

  ./load qmail-smtpd rcpthosts.o commands.o timeoutread.o

  timeoutwrite.o ip.o ipme.o ipalloc.o control.o constmap.o

  received.o date822fmt.o now.o qmail.o cdb.a fd.a wait.a

  datetime.a getln.a open.a sig.a case.a env.a stralloc.a

  alloc.a substdio.a error.a str.a fs.a auto_qmail.o `cat socket.lib`

  將新生成的qmail-smtpd 拷貝到/var/qmail/bin 目錄下。在之前應該對原來的執行文件進行備份。

  第三步:編譯安裝 kpw-0.22.tar.gz [root@www src]# tar xvfz cmd5checkpw-0.22.tar.gz

  [root@www src]# cd cmd5checkpw-0.22

  [root@www cmd5checkpw-0.22]# make ;make instll

  第四步:設置/home/vpopmail/bin/vchkpw 的SetUID和SetGID

這點很重要,否則認證無法通過。這是因為smtpd 的進程是由qmaild 執行的。而密碼驗證程序原來只使用于pop3進程,分別由root或vpopmail執行,為的是讀shadow或數據庫中的密碼,并取出用戶的郵件目錄。這些操作qmaild 都沒有權限去做。如果smtp進程要調用密碼驗證程序,則必須要使用setuid 和setgid。

  chmod 6755 /home/vpopmail/bin/vchkpw

  第五步:設置tcp.smtp 有了SMTP認證是不是就不需要tcp.smtp

  這個文件了?其實不然,因為通過tcp.smtp這個控制文件可以方便局域網用戶使用郵件服務器,對于這些用戶只要tcp.smtp這個文件控制就可以了,沒有必要對身份嚴格校驗了。假若你覺得10網段的用戶都不需要SMTPR認證就可以轉發郵件的話,就這么干:

  vi /etc/tcp.smtp 或者 vi /home/vpopmail/etc/tcp.smtp

  192.168.10.:allow,RELAYCLIENT=""

  127.:allow,RELAYCLIENT=""

  :allow

  保存,然后執行命令

  tcprules /etc/tcp.smtp.cdb /etc/tcp.smtp.tmp < /etc/tcp.smtp

  第六步:修改smtpd啟動腳本

  #!/bin/sh

  QMAILDUID=`id -u qmaild`

  NOFILESGID=`id -g qmaild`

  exec /usr/local/bin/softlimit -m 2000000

  /usr/local/bin/tcpserver -v -p -x /etc/tcp.smtp.cdb

  -u $QMAILDUID -g $NOFILESGID 0 smtp /var/qmail/bin/qmail-smtpd 2>&1

  改為下面的樣子:

  #!/bin/sh

  QMAILDUID=qmaild

  NOFILESGID=nofiles

  exec /usr/local/bin/softlimit -m 2000000

  /usr/local/bin/tcpserver -H -R -l 0 -t 1 -v -p -x /etc/tcp.smtp.cdb

  -u $QMAILDUID -g $NOFILESGID 0 smtp /var/qmail/bin/qmail-smtpd

  /home/vpopmail/bin/vchkpw /bin/true /bin/cmd5checkpw /bin/true 2>&1

  可愛可恨的SMTP認證到這里就OK了!

  4 三個方面的關系

  如文章最開頭所述,三個方面的關系對于你究竟如何使你的郵件服務器具有安全性很重要,關于這一點對于初學者來說不是那么容易把握準確。這三個咚咚并不是缺一不可,可以只有一部分存在,也可以都存在,那么在這諸多可能的情況下,整個郵件服務器對于轉發規則又是如何控制的呢?

  下面我分幾種情況來說:

  第一種情況:沒有SMTP認證,沒有tcp.smtp文件,也沒有rcpthosts這個文件

  這種情況就是“標準”的open relay,也就是完全開放轉發,這種情況可能存在,但不應該存在!

  第二種情況:僅有rcpthosts這個文件,沒有tcp.smtp也沒有SMTP認證

  這種情況下,就只有rcpthosts這個文件擔當轉發規則約束的重任了,QMAIL僅僅根據這個文件的目的

  地址列表來確定是否轉發用戶的郵件

  第三種情況:有tcp.smtp,rcpthosts兩個東西存在

  首先QMAIL從tcp.smtp.cdb文件確認用戶是否可以轉發郵件,是根據請求者的IP來定奪的。如果用戶IP

  是在容許的IP范圍之內,那么就容許轉發,否則再看看目的地址是否在rcpthosts這個文件的容許范圍

  之內,如果是,就可以轉發,如果也不是,那么就被徹底拒絕轉發了。也就是說,在這種情況下,這兩個

  文件共同承擔著轉發規則約束的重任。

  第四種情況:三個咚咚都存在

  QMAIL在接受到請求的時候,首先檢查tcp.smtp這個文件,如果是容許的IP,就同意轉發,否則再看看

我們通過閱讀這篇文章,可以清楚的了解到解析Qmail之郵件轉發規則是怎么樣的。希望對大家有幫助!

【編輯推薦】

責任編輯:趙鵬 來源: 網絡轉載
相關推薦

2011-01-19 16:31:15

Qmail

2011-02-21 16:04:40

Qmail

2009-02-10 16:09:00

郵件服務器LinuxQmail

2011-01-19 15:33:07

Qmail郵件隊列清除

2011-02-21 15:47:18

2011-01-19 15:21:32

Qmail垃圾郵件

2011-02-21 13:40:17

2009-08-12 17:56:53

2011-01-18 15:54:32

2011-02-21 10:13:38

Postfix

2018-03-29 08:54:42

Linux電子郵件郵件傳輸代理

2011-08-02 11:30:41

iOS開發 郵件發送

2011-02-21 14:31:04

Qmail

2011-02-21 14:10:33

QmailSMTP

2011-01-19 15:40:25

Qmail安全

2011-01-21 18:08:22

Qmail

2011-02-21 14:44:03

2011-01-19 14:20:53

Qmail安裝

2011-01-19 14:31:15

Qmail安裝設定

2014-09-12 21:48:20

海外郵件中繼轉發服務
點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 天堂av在线影院 | 国产一区二区三区 | 久久的色 | 欧美一区中文字幕 | 午夜不卡福利视频 | 欧美成年人网站 | 精品无码久久久久久国产 | 特级黄一级播放 | av网站观看 | 在线看一区二区三区 | 2020国产在线 | 不卡视频在线 | 一区二区影视 | 精产国产伦理一二三区 | 欧美日在线 | 国产高清免费 | 999久久久久久久久6666 | yeyeav| 青青草av网站 | 亚洲免费久久久 | 97精品国产| 五月天天色 | 男女深夜网站 | 国产精品美女一区二区 | 精品欧美在线观看 | 伊人成人免费视频 | 黄色一级毛片 | 五月天婷婷久久 | 久久99久久98精品免观看软件 | 亚洲高清一区二区三区 | 亚洲高清成人 | 久久精品亚洲欧美日韩久久 | 91久久 | 91成人免费看 | 亚洲一区二区久久久 | 午夜视频网 | 亚洲国产视频一区二区 | 中文字幕高清 | 免费一级大片 | 免费视频一区 | 人人干人人玩 |