分享java帶來的快樂

          我喜歡java新東西

          配置Sendmail

           

          要生成sendmail.cf文件

          一般是編譯sendmail.mc來生成sendmail.cf,這樣的好處是通過編譯,會查看出一些sendmail的設(shè)置錯誤和漏洞。

          # cd /etc/mail
          # vi sendmail.mc
          

          (1)找到:

          TRUST_AUTH_MECH(`EXTERNAL DIGEST-MD5 CRAM-MD5 LOGIN PLAIN')dnl
          

          打開注解,啟用相應(yīng)的認證機制,主要是為了支持Outlook。

          (2)找到:

          DAEMON_OPTIONS(`Port=25, Name=MSA,M=Ea')dnl 這樣sendmail將在25端口進行強制身份認證
          dnl DAEMON_OPTIONS(`Port=smtp,Addr=0.0.0.0, Name=MTA')dnl
          dnl DAEMON_OPTIONS(`Port=587, Name=MSA,M=a')dnl

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

          打開注解,啟用相應(yīng)的認證機制,主要是為了支持Outlook。

          (3)在(2)后添加兩行:



          設(shè)置MTA和MSA端口。

          (4)找到:

          dnl DAEMON_OPTIONS(`Port=smtp,Addr=127.0.0.1, Name=MTA')
          

          將該行注釋掉,以允許通過網(wǎng)絡(luò)連接Sendmail。

          (5)找到:

          dnl FEATURE(`accept_unresolvable_domains')
          

          禁止不可解析域名的轉(zhuǎn)發(fā)郵件。

          最后保存退出。

          編譯sendmail.mc生成sendmail.cf文件

          # m4 /etc/mail/sendmail.mc > /etc/mail/sendmail.cf
          # /etc/rc.d/init.d/sendmail restart --重起sendmail服務(wù)。
          

          如果在執(zhí)行m4 /etc/mail/sendmail.mc > /etc/mail/sendmail.cf 報錯的話,那么檢查是否安裝sendmail-cf.*.rpm是否安裝:

          # rpm -qa | grep sendmail-cf
          

          如果沒有安裝,則需要在安裝光盤中找到sendmail-cf包,并安裝:

          # rpm -ivh sendmail-cf*.rpm
          

          檢測編譯結(jié)果

          1、檢測SASL被編譯到sendmail中。

          #/usr/sbin/sendmail -d0.1 -bv root |grep SASL
          

          輸出類似如下:

          NETUNIX NEWDB NIS PIPELINING SASL SCANF STARTTLS TCPWRAPPERS
          

          保證你看到SASL就是正確的。

          2、檢測25端口:

          # telnet localhost 25
          
          Trying 127.0.0.1... Connected to localhost. Escape character is '^]'. 220 fyhtest.163.net ESMTP Sendmail 8.12.5/8.12.5; Thu, 10 Apr 2003 16:35:42 -0400 ehlo test 250-fyhtest.163.net Hello localhost [127.0.0.1], pleased to meet you 250-ENHANCEDSTATUSCODES 250-PIPELINING 250-8BITMIME 250-SIZE 250-DSN 250-ETRN 250-AUTH LOGIN PLAIN 250-DELIVERBY 250 HELP
          quit ---退出

          只要輸出有LOGIN PLAIN就可以了。

          到這里,sendmail就配置完了,你可以添加一個用戶進行測試:

          #useradd test
          #passwd test 設(shè)置密碼
          

          把你服務(wù)器的域名添加到/etc/mail/local-host-names中。

          其他設(shè)置

          要想更好的使用sendmail,常用到的一些設(shè)置:

          1、限制最大郵件。

          # vi /etc/mail/sendmail.cf
          # maximum message size
          MaxMessageSize=5000000 (注:5M)
          

          2、最大的群發(fā)數(shù)目。

          # vi /etc/mail/sendmail.cf
          # maximum number of recipients per SMTP envelope
          MaxRecipientsPerMessage=20 (注:20個)
          

          3、域名文件----local-host-name 可以用他來實現(xiàn)虛擬域名或多域名支持。

          # vi /etc/mail/local-host-name
          test.com
          test1.com
          

          4、mail別名文件--aliases。

          # vi /etc/aliases
          系統(tǒng)內(nèi)部別名:discuz:bbsadmin
          discuz是我的用戶名,其他的是別名,用逗號隔開。
          轉(zhuǎn)發(fā)到其他的郵箱:discuz:bbsadmin@discuz.com
          # newaliases --寫到庫中
          

          5、郵件控制文件

          relay、ok、reject和discard。

          relay: 可以實現(xiàn)轉(zhuǎn)發(fā)。

          ok: 是用來允許用戶的任意訪問,它會覆蓋任何其它已建立的檢查(實際設(shè)置中,最好不要設(shè)為這項,除非你對該用戶是絕對信任的);

          reject: 可以實現(xiàn)對來訪地址的拒絕,它根本就不容許該地址與你的郵件服務(wù)器進行連接通信;

          discard: 的作用是在接收到傳輸?shù)泥]件消息后,把它丟棄掉。在發(fā)送者看來,他的郵件的確是接收了,但他并不知道,發(fā)送的目的地址根本不可能接收到他的郵件,服務(wù)器巧妙地欺騙了他。

          # vi /etc/mail/access
          
          localhost.localdomain RELAY ---允許 localhost RELAY 127.0.0.1 RELAY peng@sina.com ok @sexgirl.net reject 211.77.22.45 discard
          # makemap hash /etc/mail/access.db < /etc/mail/access --寫到庫中
          
          6、Sendmail環(huán)境下的防止郵件relay  
          從8.9版本開始,缺省的是不允許郵件轉(zhuǎn)發(fā)(mail relay)的。最簡單的允許郵件轉(zhuǎn)發(fā)的方法是在文件/etc/mail/relay-domains中進行設(shè)置。該文件中列出的域名內(nèi)的信件都允許通過本地服務(wù)器進行郵件轉(zhuǎn)發(fā)。 
          為了更精確的設(shè)置,可以在sendmail.mc中添加如下幾個參數(shù)允許被用來設(shè)置郵件轉(zhuǎn)發(fā): 
          · FEATURE(relay_hosts_only). 通常情況下,在文件/etc/mail/relay-domains中列出的域名的主機都允許通過本地機轉(zhuǎn)發(fā),而該設(shè)置指示指定必須羅列出每個允許通過本機轉(zhuǎn)發(fā)郵件的主機。 
          · FEATURE(relay_entire_domain). 該參數(shù)指示允許所有本地域通過本機進行郵件轉(zhuǎn)發(fā)。 
          · FEATURE(access_db). 該參數(shù)指定利用哈希數(shù)據(jù)庫/etc/mail/access來決定是否允許某個主機通過本地進行郵件轉(zhuǎn)發(fā)。 
          · FEATURE(blacklist_recipients).若該參數(shù)被設(shè)置,則在決定是否允許某個主機轉(zhuǎn)發(fā)郵件時同時察看郵件發(fā)送著地址和郵件接受者地址。 
          · FEATURE(rbl).允許基于maps.vix.com由黑名單(Realtime Blackhole List)進行郵件拒絕,以防范垃圾郵件。 
          · FEATURE(accept_unqualified_senders).允許接受發(fā)送者地址不包括域名的郵件,例如user,而不是user@B.NET。 
          · FEATURE(accept_unresolvable_domains).通常來講,sendmail拒絕接受發(fā)送者郵件地址指定的主機通過DNS不能解析的郵件,而該參數(shù)允許接收這種郵件。 
          · FEATURE(relay_based_on_MX).該參數(shù)允許轉(zhuǎn)發(fā)郵件接受者地址的MX記錄指向本地的的郵件,例如,本地接收到一個發(fā)送目的地址為user@b.com的郵件,而b.com域名的MX記錄指向了本地機器,則本地機器就允許轉(zhuǎn)發(fā)該郵件。 
          下面幾個特性可能會有安全漏洞,一般當郵件服務(wù)器位于防火墻后時才應(yīng)該使用,因為這些參數(shù)可能導致你的系統(tǒng)易于被垃圾郵件發(fā)送者利用。 
          ·FEATURE(relay_local_from).該參數(shù)指定若消息自稱源于本地域,則允許轉(zhuǎn)發(fā)該郵件。
          ·FEATURE(promiscuous_relay).打開對所有的郵件的轉(zhuǎn)發(fā)。

          7.設(shè)置完成后outlook發(fā)送郵件要求驗證時,出現(xiàn)錯誤

          Jan 30 14:45:57 qiuding sendmail[13908]: o0U6jvs1013908: [116.230.242.136] did not issue MAIL/EXPN/VRFY/ETRN during connection to MTA
          Jan 30 14:45:58 qiuding sendmail[13909]: o0U6jw4h013909: [116.230.242.136] did not issue MAIL/EXPN/VRFY/ETRN during connection to MTA
          Jan 30 14:47:38 qiuding sendmail[13918]: o0U6lcCc013918: [116.230.242.136] did not issue MAIL/EXPN/VRFY/ETRN during connection to MTA
          Jan 30 14:47:41 qiuding sendmail[13919]: o0U6lefW013919: [116.230.242.136] did not issue MAIL/EXPN/VRFY/ETRN during connection to MTA
          Jan 30 14:47:42 qiuding sendmail[13920]: o0U6lfoF013920: [116.230.242.136] did not issue MAIL/EXPN/VRFY/ETRN during connection to MTA
          Jan 30 14:47:43 qiuding sendmail[13921]: o0U6lgtZ013921: [116.230.242.136] did not issue MAIL/EXPN/VRFY/ETRN during connection to MTA
          Jan 30 14:47:43 qiuding sendmail[13922]: o0U6lh53013922: [116.230.242.136] did not issue MAIL/EXPN/VRFY/ETRN during connection to MTA
          Jan 30 14:47:44 qiuding sendmail[13923]: o0U6li7I013923: [116.230.242.136] did not issue MAIL/EXPN/VRFY/ETRN during connection to MTA
          大量查找資料原來是
          認證進程沒有啟動  SASLAUTHD服務(wù)一定要啟動否則無法進行用戶驗證
          etc/rc.d/init.d/saslauthd start
          配置下載

          sendmail -bd -q1h

            Sendmail的命令參數(shù)的含義如下:

            -b:指定Sendmail在后臺運行,并且監(jiān)聽端口25的請求。

            -d:指定Sendmail以Daemon方式運行(守護進程)。

            -q:當Sendmail無法將郵件成功地發(fā)送到目的地時,它會將郵件保存在隊列里。該參數(shù)指定郵件在隊列里保存的時間。例子里的1h表示保留1小時。

            在終端命令窗口運行以下命令來重新啟動Sendmail服務(wù):

            [root@ahpeng root]#/etc/rc.d/init.d/sendmail restart

            在終端命令窗口運行以下命令來關(guān)閉Sendmail服務(wù):

            [root@ahpeng root]#/etc/rc.d/init.d/sendmail stop

            我們還可以在終端命令窗口運行以下命令來檢測Sendmail服務(wù)器的運行狀態(tài):

            [root@ahpeng root]# /etc/rc.d/init.d/sendmail status

            系統(tǒng)應(yīng)該顯示:

            sendmail (pid 3251) 正在運行…

          /etc/mail目錄下操作
          makemap hash access.db<access
          killall -9 sendmail
          etc/rc.d/init.d/saslauthd start
          sendmail -bd -q30m

          posted on 2007-10-18 23:26 強強 閱讀(816) 評論(0)  編輯  收藏 所屬分類: sendmail

          主站蜘蛛池模板: 河北省| 宜宾市| 娄烦县| 商洛市| 黑山县| 西乌珠穆沁旗| 沧源| 嫩江县| 沁阳市| 正阳县| 静安区| 张家港市| 肇州县| 泽州县| 九寨沟县| 利川市| 衢州市| 安西县| 桐城市| 徐闻县| 永安市| 泊头市| 乐昌市| 澳门| 谢通门县| 柏乡县| 兰考县| 固原市| 北安市| 辽宁省| 含山县| 富裕县| 临海市| 磐石市| 沁阳市| 方正县| 曲沃县| 温泉县| 遵义县| 遂昌县| 阿荣旗|