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

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

  • <strong id="5koa6"></strong>
  • Qmail技巧與提示

    發表于:2007-07-02來源:作者:點擊數: 標簽:
    以下是對Qmail的初學者的一些建議,都是由熱心的網友提供的。 文章來源: ●必要時重啟你的Qmail,你會發現許多問題迎刃而解. :-) [John Mitchell] ●仔細檢查所有Qmail下文件、目錄的讀寫權限,確認是否滿足qmail的要求。 [John Mitchell] ●把你要使用的虛

    以下是對Qmail的初學者的一些建議,都是由熱心的網友提供的。
    文章來源:

    ●必要時重啟你的Qmail,你會發現許多問題迎刃而解. :-) [John Mitchell]

    ●仔細檢查所有Qmail下文件、目錄的讀寫權限,確認是否滿足qmail的要求。 [John Mitchell]

    ●把你要使用的虛擬域名添加到 control/rcpthosts 文件中,否則發信者會收到服務器通知:”該域名不存在“。[John Mitchell]

    ●我在配置我的qmail系統時遇到一個令人發狂的問題,后來我才發現,我沒有給我的域名添加MX記錄!記住,DNS服務器的配置是重要的,特別是在使用了虛擬域名的時候。 [John Mitchell]

    ●如何限制別人濫用你的郵件列表You might want to limit posting to mailing lists.

    ●如果您想要限制你的郵件列表被濫用,你需要在郵件列表文件頭加入一個過濾程序。一種選擇是使用qmail的補丁程序 qlist ,你可以在官方站點qmail.org找到它。它會使用 pgp 來標記你的郵件信息,一個包含pgp標識的過濾的郵件列表大致如下:

    |if grep "^-----BEGIN PGP MESSAGE-----$"; then exit 0; else exit 100; fi
    |if grep "^-----END PGP MESSAGE-----$"; then exit 0; else exit 100; fi
    |if pgp -f; then exit 0; else exit 100; fi
    +list
    &address
    &address
    ...

    只有郵件列表允許的用戶(假定是別名)才擁有pgp的密鑰?;蛘邽樾枰挠脩糁付ㄒ粋€密鑰文件。

    另外一種過濾器通過檢查郵件,判斷是否來自本地用戶或者來自最近的qmail-smtpd進程。如果是本地用戶就允許通過,遠程站點的就退回該信件。它的形式如下:

    |if grep Received: | tail +1l | grep.network; then echo
    "This is a moderated list"; exit 100; fi
    +list
    &address
    &address
    ...

    如果不是本地系統的用戶,你可以分配一個別名(記得chmod 700 ~alias),使它能投遞到郵件列表。運行:

    |grep -v ^Delivered-To: | forward LISTNAME

    必須刪除 Delivered-To: 這行,否則將它放棄這個別名。

    --
    -russ
    Crynwr Software sells network driver support | PGP ok
    521 Pleasant Valley Rd. | +1 315 268 1925 voice | Peace, Justice, Freedom:
    Potsdam, NY 13676-3213 | +1 315 268 9201 FAX | pick two (only mostly true

    ●control/virtualdomains應該包含合法的用戶名。如果你沒有在該文件中使用用戶名,這些就會由 ~alais 來處理。但是,如果你忘記使用它,而恰好創建了一個和別名同名的用戶,可能你會遇到意想不到的事情。這種情況下,使用別名代替真實用戶可以避免意外情況。 [Russ Nelson]

    ●當你將 .forward 轉換到 .qmail 文件時,在使用procmail這樣的過濾程序之前,一定記著先用preline處理。[Ira Abramov]

    ●preline是一個管道處理程序。在它處理郵件的時候,如果有某個程序關閉了標準輸入,preline就會中斷處理并給出錯誤信息:

    deferral: preline:_fatal:_unable_to_copy_input:_broken_pipe/

    如果你使用sendmail的vacation程序,你就會發現這個問題。請使用peter的程序來代替vacation program [ Peter Samuel]

    ●請從init.d 教本中啟動qmail [Larry Doolittle] 如下:

    #
    # qmail /etc/init.d script for qmail ()
    #
    # Version: @(#) /etc/init.d/qmail 1.00 03-Sep-1997
    #
    # Author: Larry Doolittle
    # derived from skeleton by Miquel van Smoorenburg,
    #
    #
    # Source function library.
    . /etc/rc.d/init.d/functions
    # See how we were called.
    case "$1" in
    start)
    touch /var/lock/subsys/qmail
    env - PATH="/var/qmail/bin:$PATH"
    csh -cf qmail-start ./Mailbox splogger qmail &
    # should limit RLIMIT_AS here, but bash apparently doesn
    # know that exists. For now it is hacked into qmail-smtpd.
    # 0.5M data should be plenty, resists DOS attacks
    tcpserver -u 1911 -g 2081 0 smtp /var/qmail/bin/qmail-smtpd &
    echo $! >/var/lock/subsys/qmail-smtpd
    ;;
    stop)
    killall qmail-send
    kill `cat /var/lock/subsys/qmail-smtpd`
    rm -f /var/lock/subsys/qmail-smtpd
    rm -f /var/lock/subsys/qmail
    ;;
    *)
    echo "Usage: qmail {start|stop}"
    exit 1
    esac

    exit 0

    ●創建 control/rcpthosts 文件的方法:
    sed s/:.*// rcpthosts
    [Russ Nelson]

    ●如果你想借助某些數據庫程序來投遞郵件,你可以這樣:創建一個 ~alias/.qmail-default 文件:
    |if T=`X`; then forward $T; else
    echo "Sorry, no mailbox here by that name (#5.1.1)";
    exit 100; fi

    所有都在一行。用你的程序代替X部分,這個程序應該用來查找用戶的。找到的話,返回0并打印目標地址,否則返回一個非零值。比如,你使用NIS來查找用戶,用下面這行代替X:
    ypmatch $LOCAL aliases . [Russ Nelson]

    ●你可以使用形如incoming:outgoing的mapping文件,來實現搜索mailbox:

    |if MAP=`grep -i "$LOCAL:" mapping` && T=`echo $MAP | awk -F: {print $2}` ;
    then forward $T;
    else echo "Sorry, no mailbox here by that name (#5.1.1)";
    exit 100; fi

    ●某些系統日志調用TZ變量來標識郵件的時戳。而qmail的env會引起時戳錯誤,此時使用:
    env - PATH="/var/qmail/bin:$PATH" TZ=CST6CDT qmail-start ./Mailbox splogger qmail
    來啟動qmail。[Harald Hanche-Olsen]

    ●你有理由使用類sendmail的投遞,包括 .forward 文件和/var/spool/mail 郵件目錄, 使用下面的腳本:

    #!/bin/sh
    exec qmail-start |dot-forward .forward
    |preline -f /bin/mail -f "$SENDER" -d "$USER" splogger qmail

    這依賴于你系統的二進制郵件接口。當然,我不建議這么作,但需要保留/var/spool/mail 的可以使用qmail。

    ●假如你想使用僅允許本地投遞的私有的.qmail 文件, 你可以使用以下的測試(全在一行):

    | if [ -n "`sed -n -e /invoked from network/p -e 2q`" ]; then exit 100; else exit 0; fi T

    然后,看一下結果的頭行,如果郵件來自網絡遠程用戶,就退回它;否則表示來自本地用戶,轉發它。[John R. Levine]

    ●如果允許未知ip地址的用戶relay,這里對管理員有幾個建議:
    1、使用安全的ip地址和端口,比起用戶密碼認證要安全的多。
    2、如果你想要真正的安全,檢查你每一個本地客戶郵件的PGP簽名。毫不驚奇,對大多數用戶而言,PGP比XTND、XMIT補丁安全的多。

    ●Dan Bernstein 建議允許普通用戶通過ucspi訪問qmail-qread。建議使用如下腳本:
    #!/bin/sh
    exec /local/etc/tcpclient -RHl0 -- 127.0.0.1 20025 sh -c exec cat <&6
    并啟動服務器:
    tcpserver -u126 -g120 -R 127.0.0.1 20025 /var/qmail/bin/qmail-qread &

    ●使用tcpserver -Hl your.host.name 可以使qmail跳過對進入郵件的DNS查詢.對于外發郵件,使用control/smtproutes也可以做到這一點。

    ●如果你不想讓一份無法投遞的郵件在隊列里呆太久,你可以在 queue/info 目錄里運行
    touch -d 1 week ago
    來結束它的隊列生命周期。這樣,如果再次投敵不成功,這份郵件就會被退回。

    ●使用qmail-local的一個投遞到 動態Mailbox或者Maildir名 的方法:
    |qmail-local "$USER" "$HOME" "$LOCAL" "" "nodeliver"
    "$HOST" "$SENDER" "/你的/用戶/maildir/目錄/"
    或許對編寫webmail很有用哦。

    ●如果你想對一臺裝好了qmail的Solaris系統作升級工作,記著刪除所有匹配 /etc/rc?.d/[SK]??sendmail(?表示通配符)的文件。否則,升級工作會恢復這些文件聯結,結果導致你的系統有兩個MTA運行--試想一下,sendmail和qmail爭用一個smtp端口?!

    ●如果你不喜歡在自己的home目錄下看見大量的.qmail 文件,可以使用 users/assign 把這些文件放到子目錄下
    =vern:vern:2244:18:/home/vern:::
    +vern-:vern:2244:18:/home/vern:s/::
    .qmail 和 .qmail-default依然保留在home目錄下,其他放在 .qmails/ 下面。它將~/.qmail-foo 改變成 ~/.qmails/foo ,并清空了HOME目錄。

    ●將你的/usr/lib/linuxconf/redhat/perm 這個文件中的"/usr/sbin/sendmail"這一行刪除.這可以避免你使用linuxconf時帶來的安全漏洞。如果不這樣做,linuxconf 會將/var/qmail/bin/sendmail 設定成 suid 下運行,多危險!。

    原文轉自:http://www.kjueaiud.com

    老湿亚洲永久精品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>