• <ruby id="5koa6"></ruby>
    <ruby id="5koa6"><option id="5koa6"><thead id="5koa6"></thead></option></ruby>

    <progress id="5koa6"></progress>

  • <strong id="5koa6"></strong>
    • 軟件測試技術
    • 軟件測試博客
    • 軟件測試視頻
    • 開源軟件測試技術
    • 軟件測試論壇
    • 軟件測試沙龍
    • 軟件測試資料下載
    • 軟件測試雜志
    • 軟件測試人才招聘
      暫時沒有公告

    字號: | 推薦給好友 上一篇 | 下一篇

    帶SMTP認證功能的qmail配置

    發布: 2007-7-02 21:50 | 作者: admin | 來源: | 查看: 8次 | 進入軟件測試論壇討論

    領測軟件測試網

    一、操作系統

    RatHat Linux 6.2

    二、必需的軟件

    1、qmail-1.03 ()
    2、checkpassword (cr.yp.to/checkpwd.html) 或 vpopmail ()
    3、qmail-smtpd.c () 關鍵文件

    其實,qmail和checkpassword都可以是編譯好的,并正在使用中的。這樣只需一個文件就可以搞定,
    而且不影響正常使用。

    三、軟件的安裝

    1、正常安裝qmail,checkpassword 或 vpopmail 。

    2、設置relay規則。
    relay的意思是:服務器接受客戶端的smtp請求,將客戶端發往第三方的郵件進行轉發。
    relay 必須是可控制的。qmail下控制relay很簡單,只要客戶端接入的smtp進程的環境變量里
    包含(RELAYCLIENT="")就允許relay ,否則拒收。實現方法是在/etc/tcp.smtp 里對需要relay
    的IP逐條設置(RELAYCLIENT=""),然后用tcprules 生成規則表。因為本文要實現SMTP認證后的
    relay ,不需要對任何IP進行預先設定,所以默認規則設置成“只對本服務器relay”。

    echo @#127.0.0.1:allow,RELAYCLIENT=""@# > /etc/tcp.smtp
    /usr/local/bin/tcprules /etc/tcp.smtp.cdb /etc/tcp.smtp.tmp < /etc/tcp.smtp

    3、將qmail-smtpd.c 拷貝到qmail 的源文件目錄里,最好先將原文件備份。
    單獨編譯 qmail-smtpd 。(vi Makefile;找到跟qmail-smtpd有關的命令)

    ./compile qmail-smtpd.c

    ./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`

    4、將新生成的qmail-smtpd 拷貝到/var/qmail/bin 目錄下。為了與原來的執行文件有區別,
    這里把新的執行文件改名為 qmail-smtpd.auth 。

    5、設置 /bin/checkpassword 或 /home/vpopmail/bin/vchkpw 可以SetUID和SetGID。這點
    很重要,否則認證無法通過。這是因為smtpd 的進程是由qmaild 執行的。而密碼驗證程序
    原來只使用于pop3進程,分別由root或vpopmail執行,為的是讀shadow或數據庫中的密碼,
    并取出用戶的郵件目錄。這些操作qmaild 都沒有權限去做。如果smtp進程要調用密碼驗證
    程序,則必須要使用 setuid 和setgid 。其實這點大可放心,這兩個密碼驗證程序都是帶
    源代碼的,本身非常安全,只需要放在安全的目錄里就可以了(設置其他用戶除qmaild 可
    執行外都沒有權限執行;其實如果沒有其他SHELL帳戶,也就不用這么麻煩了)。

    chmod 4755 /bin/checkpassword 或
    chmod 4755 /home/vpopmail/bin/vchkpw

    6、命令行測試
    如果使用的是vpopmail,要把下面的 /bin/checkpassword 換成 /home/vpopmail/bin/vchkpw 。

    #su - qmaild -c "/var/qmail/bin/qmail-popup localhost /bin/checkpassword pwd"〈回車>
    +OK ,〈>
    user realuser〈回車>
    +OK
    pass password〈回車>

    如果結果顯示的是用戶目錄,說明成功了;如果顯示"-ERR authorization failed",除檢查
    密碼外,還要檢查用戶上級的各個目錄是否可讀,還有密碼驗證程序的權限是否設置正確。

    7、修改smtpd啟動命令行,原來是:

    /usr/local/bin/tcpserver -H -R -l 0 -t 1 -c 100 -x/etc/tcp.smtp.cdb -u604 -g601 \
    0 smtp /var/qmail/bin/qmail-smtpd 2>&1 | /var/qmail/bin/splogger smtpd 3 &

    (其中604是qmaild 的UID,601是qmaild 的GID),改為:

    /usr/local/bin/tcpserver -H -R -l 0 -t 1 -c 100 -x/etc/tcp.smtp.cdb -u604 -g601 \
    0 smtp /var/qmail/bin/qmail-smtpd.auth /bin/checkpassword /bin/true 2>&1 \
    | /var/qmail/bin/splogger smtpd 3 &

    如果使用的是vpopmail,要把上面的 /bin/checkpassword 換成 /home/vpopmail/bin/vchkpw 。

    8、KILL掉原來的smtpd進程,啟動新的smtpd進程。

    9、在客戶端上使用 OutlookExpress 和 Netscape 4.6 以上版本的郵件軟件進行檢驗。

    四、以上設置在 checkpassword 和 vpopmail 兩種驗證方式下均已實踐通過。

    文章來源于領測軟件測試網 http://www.kjueaiud.com/


    關于領測軟件測試網 | 領測軟件測試網合作伙伴 | 廣告服務 | 投稿指南 | 聯系我們 | 網站地圖 | 友情鏈接
    版權所有(C) 2003-2010 TestAge(領測軟件測試網)|領測國際科技(北京)有限公司|軟件測試工程師培訓網 All Rights Reserved
    北京市海淀區中關村南大街9號北京理工科技大廈1402室 京ICP備2023014753號-2
    技術支持和業務聯系:info@testage.com.cn 電話:010-51297073

    軟件測試 | 領測國際ISTQBISTQB官網TMMiTMMi認證國際軟件測試工程師認證領測軟件測試網

    老湿亚洲永久精品ww47香蕉图片_日韩欧美中文字幕北美法律_国产AV永久无码天堂影院_久久婷婷综合色丁香五月

  • <ruby id="5koa6"></ruby>
    <ruby id="5koa6"><option id="5koa6"><thead id="5koa6"></thead></option></ruby>

    <progress id="5koa6"></progress>

  • <strong id="5koa6"></strong>