<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    【永恒的瞬間】
    ?Give me hapy ?

    Chapter 1. 安裝

    安裝所需軟件

    安裝步驟

    1. 先安裝cyrus-sasl-2.1.18.tar.gz,sendmail安裝時要用到sasl(簡單認證和安全層協(xié)議)的庫文件的頭文件。解壓縮:

      debian:~/inst# tar -zxvf cyrus-sasl-2.1.18.tar.gz
          

      編譯,進入剛解壓的源碼目錄,運行以下命令完成安裝。

      debian:~/inst/sasl2# ./configure --prefix=/usr/local/sasl2 --enable-login
          一定要加--enable-login,因為SASL2默認不支持login這種驗證方式,而OUTLOOK是通過login來進行SMTP驗證的。
          debian:~/inst/sasl2# make
          debian:~/inst/sasl2# make install
          

      完成以上linux程序安裝三步曲之后,就可以開始配置和測試了。

    2. 配置SASL,為了把SASL應(yīng)用于sendmail認證,還需進行一些配置工作。sendmail會到/usr/lib目錄下去找SASL2庫,而我們是把程序安裝在/usr/local/sasl2中,為什么不把軟件安裝在/usr/lib目錄呢?這主要是為了好管理自已安裝的軟件啦。所以我們要在/usr/lib目錄下做一個鏈接:

      debian:~# cd /usr/lib
          debian:/usr/lib# ln -s /usr/local/sasl2/lib/* .
          

      接著要在/var/目錄下建一個目錄給saslauthd進程存在臨時數(shù)據(jù)。

      debian:~# cd /var
          debian:var# mkdir state
          debian:var/state# cd state
          debian:var/state# mkdir saslauthd
          
      [Note]
      注:如果沒有這些目錄,運行saslauthd時,會提示出錯。

      接著為確保CYRUS-SASL2函數(shù)庫知道怎樣驗證所收來的SASL認證請求,必須創(chuàng)建一個SASL的配置文件來把MTA程序定義成一個SASL應(yīng)用。配置文件名為Sendmail.conf(注意是大寫的S),位于/usr/lib/sasl2目錄中,也就是/usr/local/sasl2/lib/sasl2這個目錄,記得上面新建的鏈接了嗎?在該文件中你定義你希望使用的認證數(shù)據(jù)庫方法,以下這個例子使用saslauthd來驗證認證請求。

      debian:~# cd /usr/lib/sasl2
          debian:/usr/lib/sasl2# echo 'pwcheck_method: saslauthd' > Sendmail.conf
          
    3. 現(xiàn)在可以運行saslauthd了,并進行測試。

      debian:~# cd /usr/local/sasl2/sbin
          debian:/usr/local/sasl2/sbin# ./saslauthd -a shadow
          

      用shadow的用戶和密碼進行驗證

      debian:/usr/local/sasl2/sbin# ./testsaslauthd -u userid -p password
          0: OK "Success."
          

      如果出現(xiàn)以上信息,就說明saslauthd正常運行了。testsaslauthd程序默認是沒有編譯的,你需要在源碼目錄樹的saslauthd子目錄中運行 # make testsaslauthd命令生成。

    4. sasl2安裝完成后,就要開始安裝sendmail了。先解壓sendmail源碼:

      debian:~/inst# tar -zxvf sendmail.8.12.10.tar.gz
          

      如果要sendmail支持SASL,需要修改源碼的位置配置文件site.config.m4。site.config.m4位于源碼目錄樹的devtools/Site。文件中應(yīng)包含以下行:

      PREPENDDEF(`confMAPDEF', `-DMAP_REGEX')
          APPENDDEF(`confENVDEF', `-DTCPWRAPPERS -DSASL=2')
          APPENDDEF(`conf_sendmail_LIBS', `-lwrap -lsasl2')
          APPENDDEF(`confLIBDIRS', `-L/usr/local/sasl2/lib')
          APPENDDEF(`confINCDIRS', `-I/usr/local/sasl2/include')
          第一行配置正則表達式相關(guān)內(nèi)容
          第二、三行配置表示在sendmail程序中支持sasl2和tcp_wrapper(可通過hosts.allow和
          hosts.deny控制訪問)
          第四、五行配置指出sasl2的庫文件和頭文件的位置。
          

      接著在編譯前要建立一些用戶和目錄,并確保有正確的權(quán)限。sendmail必須有一個set-group-id(默認是smmsp組)的程序來在一個組可寫的目錄中查詢排隊郵件。所以我們要建立一個smmsp用戶和組。并建立如下目錄并設(shè)置相應(yīng)的權(quán)限,具體設(shè)置要求可查詢源碼目錄樹下sendmail/SECURITY文檔。

      debian:~# groupadd smmsp
          debian:~# useradd smmsp -d /var/spool/clientmqueue -s /dev/null
          debian:~# mkdir /var/spool/clientmqueue
          debian:~# chown -R smmsp:smmsp /var/spool/clientmqueue
          debian:~# chmod -R 770 /var/spool/clientmqueue
          debian:~# mkdir /etc/mail
          debian:~# mkdir /var/spool/mqueue
          debian:~# chmod go-w / /etc /etc/mail /usr /var /var/spool /var/spool/mqueue
          debian:~# chown root / /etc /etc/mail /usr /var /var/spool /var/spool/mqueue
          

      接下來就可以進入源碼目錄樹開始編譯了。

      debian:~/inst/sendmail-8.12.11# ./Build -c              #-c選項能刪除上次編譯產(chǎn)生的文件。
          debian:~/inst/sendmail-8.12.11# ./Build install         #安裝
          

    Chapter 2. 配置

    要sendmail正常運行,還需配置幾個文件,其中最重要的就是sendmail.cf 文件了。它在源碼目錄樹下的cf/cf目錄下有很多例子可參考。你可以拷貝使用。由于sendmail.cf中的語法很復(fù)雜,所以不建議手工修改。我們可以以sendmail.mc文檔配合sendmail-cf目錄下的宏通過m4預(yù)處理器自動生成。m4預(yù)處理器用來從一組宏文件中創(chuàng)建sendmail配置文件。宏文件作為輸入被讀進來。宏被展開,然后寫到一個輸出文件。sendmail-cf目錄一般放在/usr/share目錄下。其實sendmail-cf目錄的內(nèi)容和源碼目錄樹下的cf目錄的內(nèi)容是一樣的,所以,為了保證sendmail-cf目錄的內(nèi)容與安裝版本同步,要把源碼目錄樹下的cf目錄的內(nèi)容拷貝到/usr/share/sendmail-cf目錄。

    sendmail.mc配置文檔內(nèi)容如下:

    divert(-1)
    include(`/usr/share/sendmail-cf/m4/cf.m4')
    VERSIONID(`linux setup for Red Hat Linux')dnl
    OSTYPE(`linux')
    dnl Uncomment and edit the following line if your mail needs to be sent out
    dnl through an external mail server:
    dnl define(`SMART_HOST',`smtp.your.provider')
    define(`confDEF_USER_ID',``8:12'')dnl
    undefine(`UUCP_RELAY')dnl
    undefine(`BITNET_RELAY')dnl
    dnl define(`confAUTO_REBUILD')dnl
    define(`confTO_CONNECT', `1m')dnl
    define(`confTRY_NULL_MX_LIST',true)dnl
    define(`confDONT_PROBE_INTERFACES',true)dnl
    define(`PROCMAIL_MAILER_PATH',`/usr/bin/procmail')dnl
    define(`ALIAS_FILE', `/etc/mail/aliases')dnl
    define(`STATUS_FILE', `/etc/mail/statistics')dnl
    define(`UUCP_MAILER_MAX', `2000000')dnl
    define(`confUSERDB_SPEC', `/etc/mail/userdb.db')dnl
    define(`confPRIVACY_FLAGS', `authwarnings,novrfy,noexpn,restrictqrun')dnl
    define(`confAUTH_OPTIONS', `A')dnl
    TRUST_AUTH_MECH(`EXTERNAL DIGEST-MD5 CRAM-MD5 LOGIN PLAIN')dnl
    define(`confAUTH_MECHANISMS', `EXTERNAL GSSAPI DIGEST-MD5 CRAM-MD5
    LOGIN PLAIN')dnl
    dnl define(`confCACERT_PATH',`/usr/share/ssl/certs')
    dnl define(`confCACERT',`/usr/share/ssl/certs/ca-bundle.crt')
    dnl define(`confSERVER_CERT',`/usr/share/ssl/certs/sendmail.pem')
    dnl define(`confSERVER_KEY',`/usr/share/ssl/certs/sendmail.pem')
    dnl define(`confTO_QUEUEWARN', `4h')dnl
    dnl define(`confTO_QUEUERETURN', `5d')dnl
    dnl define(`confQUEUE_LA', `12')dnl
    dnl define(`confREFUSE_LA', `18')dnl
    define(`confTO_IDENT', `0')dnl
    dnl FEATURE(delay_checks)dnl
    FEATURE(`no_default_msa',`dnl')dnl
    FEATURE(`smrsh',`/usr/sbin/smrsh')dnl
    FEATURE(`mailertable',`hash -o /etc/mail/mailertable.db')dnl
    FEATURE(`virtusertable',`hash -o /etc/mail/virtusertable.db')dnl
    FEATURE(redirect)dnl
    FEATURE(always_add_domain)dnl
    FEATURE(use_cw_file)dnl
    FEATURE(use_ct_file)dnl
    dnl The '-t' option will retry delivery if e.g. the user runs over his quota.
    FEATURE(local_procmail,`',`procmail -t -Y -a $h -d $u')dnl
    FEATURE(`access_db',`hash -T<TMPF> -o /etc/mail/access.db')dnl
    FEATURE(`blacklist_recipients')dnl
    EXPOSED_USER(`root')dnl
    dnl This changes sendmail to only listen on the loopback device 127.0.0.1
    dnl and not on any other network devices. Comment this out if you want
    dnl to accept email over the network.
    DAEMON_OPTIONS(`Port=smtp,Addr=0.0.0.0, Name=MTA')
    dnl NOTE: binding both IPv4 and IPv6 daemon to the same port requires
    dnl       a kernel patch
    dnl DAEMON_OPTIONS(`port=smtp,Addr=::1, Name=MTA-v6, Family=inet6')
    dnl We strongly recommend to comment this one out if you want to protect
    dnl yourself from spam. However, the laptop and users on computers that do
    dnl not have 24x7 DNS do need this.
    FEATURE(`accept_unresolvable_domains')dnl
    dnl FEATURE(`relay_based_on_MX')dnl
    MAILER(smtp)dnl
    MAILER(procmail)dnl
    

    記得要使以下兩個條語句有效,它的意思是如果access.db訪問控制沒有設(shè)置,則啟用以下驗證方式進行smtp驗證。

    TRUST_AUTH_MECH(`EXTERNAL DIGEST-MD5 CRAM-MD5 LOGIN PLAIN')dnl
    define(`confAUTH_MECHANISMS', `EXTERNAL GSSAPI DIGEST-MD5 CRAM-MD5
    LOGIN PLAIN')dnl
    

    sendmail宏定義說明

    • divert(n)為m4定義一個緩沖動作,當(dāng)n=-1時緩沖被刪除,n=0時開始一個新緩沖

    • OSTYPE定義宏所使用的操作系統(tǒng),該宏允許m4程序增加同相關(guān)操作系統(tǒng)相關(guān)的文件

    • Domain定義MTA將使用哪些域來傳輸郵件

    • Feature定義配置文件中使用的一個特定的功能集

    • Define定義配置文件中的一個特定的選項值

    • MASQUERADE_AS定義sendmail來應(yīng)答郵件的其它主機名

    • MAILER定義sendmail使用的郵件傳輸方法

    • dnl注釋

    完成sendmail.mc文檔的編寫后就可以用m4程序生成正式的sendmail.cf配置文檔。語法如下:

    # m4 sendmail.mc > sendmail.cf
    

    也可以用源碼目錄樹下的cf/cf/Build命令生成。前提是你要在該目錄下有一個sendmail.mc文檔。語法如下:

    # ./Build sendmail.cf
    

    接著就可以把sendmail.cf and submit.cf文檔安裝到/etc/mail目錄中的,語法如下:

    # ./Build install-cf
    

    其實也可以自已用cp命令拷貝的啦。記得把sendmail.mc文檔也拷貝一份到/etc/mail目錄,以便以后修改配置時可重新生成sendmail.cf文檔。ok,接著到/etc/mail目錄下配置一些文檔。

    debian:~# cd /etc/mail
    debian:/etc/mail# echo 'examply.com' >> local-host-names 接收郵件的主機名
    debian:/etc/mail# echo 'localhost    RELAY'  >> access 用來拒絕或允許來自某個域的郵件,本例允許本地轉(zhuǎn)發(fā)。
    debian:/etc/mail# makemap hash access < access 生成access.db數(shù)據(jù)庫
    debian:/etc/mail# touch domaintable 用來把舊域名映射互新域名
    debian:/etc/mail# makemap hash domaintable < domaintable
    debian:/etc/mail# touch mailertable 來覆蓋向指定域的路由
    debian:/etc/mail# makemap hash mailertable < mailertable
    debian:/etc/mail# touch trusted-users
    debian:/etc/mail# touch virtusertable 用來把用戶和域名映射到其它地址
    debian:/etc/mail# makemap hash virtusertable < virtusertable
    debian:/etc/mail# chown root:wheel /var/spool/mqueue/
    debian:/etc/mail# chmod 700 /var/spool/mqueue
    debian:/etc/mail# touch aliases 別名數(shù)據(jù)庫,文本形式??蓞⒄赵创a目錄樹下sendmail/aliases文件。
    debian:/etc/mail# newaliases                  從文本文件中創(chuàng)建一個新的別名數(shù)據(jù)庫文件。
    debian:/etc/mail# sendmail -v -bi調(diào)試啟動。
    /etc/mail/aliases: 42 aliases, longest 10 bytes, 432 bytes total
    如果出現(xiàn)以上提示信息,則啟動成功。可用以下命令正式啟動:
    debian:/etc/mail# sendmail -bd -q30m
    該命令以后臺進程方式(-bd)運行,并使其每隔30分鐘(-q30m)輪詢一次未發(fā)送郵件隊列,檢查是否有新郵件。
    

    服務(wù)器啟動后,可以用telnet連接服務(wù)器。

    debian:~# telnet localhost 25
    Trying 127.0.0.1...
    Connected to localhost.
    Escape character is '^]'.
    220 test.tigerhead ESMTP Sendmail 8.12.10/8.12.10; Tue, 30 Mar 2004 14:50:14 +0800
    ehlo test你輸入的命令,按回車結(jié)束。
    250-test.tigerhead Hello LOCALHOST.localdomain [127.0.0.1], pleased to meet you
    250-ENHANCEDSTATUSCODES
    250-PIPELINING
    250-8BITMIME
    250-SIZE
    250-DSN
    250-ETRN
    250-AUTH DIGEST-MD5 CRAM-MD5 LOGIN PLAIN
    250-DELIVERBY
    250 HELP
    以250-開頭的為服務(wù)器的響應(yīng)信息。注意倒數(shù)第三行,這就是成功配置smtp驗證的顯示。
    輸入quit離開。
    

    安裝完成后為確保系統(tǒng)安全,還需調(diào)整一些目錄的權(quán)限??蓞⒖約endmail源碼目錄下sendmail/SECURITY文檔。

    # chmod 0640 /etc/mail/aliases /etc/mail/aliases.{db,pag,dir}
    # chmod 0640 /etc/mail/*.{db,pag,dir}
    # chmod 0640 /etc/mail/statistics /var/log/sendmail.st
    # chmod 0600 /var/run/sendmail.pid /etc/mail/sendmail.pid
    -r-xr-sr-xroot   smmsp... /PATH/TO/sendmail
    drwxrwx---smmsp  smmsp... /var/spool/clientmqueue
    drwx------root   wheel... /var/spool/mqueue
    -r--r--r--root   wheel... /etc/mail/sendmail.cf
    -r--r--r--root   wheel... /etc/mail/submit.cf
    

    Chapter 3. sendmail功能介紹

    • aliases 別名數(shù)據(jù)庫設(shè)置

      test:test1,test2,test3設(shè)置test群組別名,test不是一個實際的用戶,只是一個別名。發(fā)給
          test的信,test1,2,3都可收到。
          test:test,testbak在testbak郵箱中備份test的郵件。
          test:test,test@163.com遠程郵件備份,原理同上。
          test:   :include: /etc/mail/userlist使用用戶列表設(shè)置群組。
          userlist格式如下:
          test1, \
          test2, \
          test3, \
          test4
          關(guān)于系統(tǒng)預(yù)設(shè)aliases,由于sendmail預(yù)設(shè)用mailer-daemon and postmaster作為資料傳送者,
          或郵件退回的帳號,但系統(tǒng)實際沒有這兩個帳號,所以要如下設(shè)置別名。
          mailer-daemon:  postmaster
          postmaster:     root
          設(shè)置完成后不要忘了用newaliases命令生成數(shù)據(jù)庫。
          
    • ~/.forward文件配置,其實該文檔的作用和aliases數(shù)據(jù)庫的作差不多啦,都是配置別名,做郵件轉(zhuǎn)發(fā)的。因為alises只能由管理員控制,個人用戶不能修改,所以就可以在個人的目錄下建立一個轉(zhuǎn)寄文檔。以設(shè)置個人的郵件轉(zhuǎn)寄列表。文檔格式如下:

      test
          test1
          test2
          test3
          and os on
          
      [Note]
      但由于個人用戶安全意識差,如果設(shè)置不當(dāng)會有安全漏洞,不建議使用。
    • access訪問控制列表設(shè)置

      92.168 RELAY
          test.NETOK
          test.COM REJECT
          test.COM550 SORRY,WE DON'T ALLOW SPAMMERS HERE
          test.ORGDISCARD
          Ok--遠程主機可以向你的郵件服務(wù)器發(fā)送郵件;
          RELAY--允許中轉(zhuǎn);
          REJECT--不能向你的郵件服務(wù)器發(fā)郵件和不能中轉(zhuǎn);
          DISCARD--發(fā)來的郵件將被丟棄,同時并不向發(fā)送者返回錯誤信息。
          nnn text-- 發(fā)來的郵件將被丟棄,但sendmail將會向發(fā)送者返回nnn確定的smtp代碼和text變量確定的文本描述。

      設(shè)置完成后要用makemap hash access.db < access命令生成數(shù)據(jù)庫。

    • mailq郵件隊列查詢命令。輸出各列的意義如下:

      Q-ID               郵件id號。
          Size               郵件容量。
          Q-Time             郵件進入隊列(也就是/var/spool/mqueue目錄)的時間和不能郵寄的原因。
          Sender/Recipient   發(fā)信和收信人的郵箱地址。
          
    • mailstats郵寄狀態(tài)查詢命令,可查詢sendmail運行作至今郵件收發(fā)總計資料。輸出各列的意義如下:

      M     :
          msgsfr:發(fā)送的郵件數(shù)量。
          bytes_from:郵件容量
          megsto:收到郵件的數(shù)量。
          bytes_to:同上
          msgsrej:郵件deny的次數(shù)。
          msgsdis:郵件discard的次數(shù)。
          Mailer :esmtp對外郵件 ,local本地郵件 。
          
    • mail郵件命令。

      debian:~# mail                   查看/var/spool/mail/目錄下自已郵箱內(nèi)容。以q退出把看過的郵件保存在~/mbox中。
          debian:~# mail test@example.com  直接發(fā)郵件給人。
          debian:~# mail -s 'title text' test@example.com < mail.txt      把文檔中內(nèi)容郵寄出去。
          debian:~# mail -f ~/mbox         查看home目錄下郵箱內(nèi)容。
          

      用mail發(fā)附件也是可行,要用到uuencode and uudecode命令進行編碼。

      編碼:uuencode [file] name          example:uuencode hello hello>hello.uue   default input is stdin;default output is stdout.
          解碼:uudecode [-o outfile] name    example:uudecode hello.uue 可以用-o選項輸出另外一個文件名。
          debian:~# uuencode ~/.bashrc bashrc | mail -s 'test uuencode' test@example.com
          
    posted on 2007-06-05 13:28 ???MengChuChen 閱讀(334) 評論(0)  編輯  收藏 所屬分類: javamail
    主站蜘蛛池模板: 国产精品亚洲精品日韩已方 | 中文字幕亚洲不卡在线亚瑟| 国产成人麻豆亚洲综合无码精品| 亚洲天堂一区二区三区四区| 午夜亚洲av永久无码精品| a毛片在线还看免费网站| 亚洲免费福利在线视频| 亚洲色图国产精品| 国产精品亚洲精品青青青| 亚洲夜夜欢A∨一区二区三区| 国产91在线免费| 成全影视免费观看大全二| 国产午夜无码视频免费网站| 亚洲AV天天做在线观看| 一级看片免费视频| 成人性生交大片免费看无遮挡| 一个人看的hd免费视频| 最新中文字幕电影免费观看| 久久青青草原亚洲av无码app| 一级毛片在播放免费| 无码人妻久久一区二区三区免费丨| 亚洲精品无码午夜福利中文字幕| 亚洲精品无码国产片| 一个人免费观看在线视频www| 亚洲国产成人久久综合区| 五月天婷亚洲天综合网精品偷| 亚洲天堂福利视频| 91麻豆国产免费观看| 18禁男女爽爽爽午夜网站免费 | 无码国产精品一区二区免费| 亚洲Av永久无码精品三区在线| 国产av无码专区亚洲av果冻传媒| 日韩国产精品亚洲а∨天堂免| 永久免费av无码网站大全| 国产成人精品日本亚洲专区6| 毛片免费全部播放无码| 亚洲大香人伊一本线| 亚洲精品动漫免费二区| 学生妹亚洲一区二区| 中国在线观看免费高清完整版| jlzzjlzz亚洲jzjzjz|