分享java帶來的快樂

          我喜歡java新東西

          配置Sendmail

           

          要生成sendmail.cf文件

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

          # cd /etc/mail
          # vi sendmail.mc
          

          (1)找到:

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

          打開注解,啟用相應的認證機制,主要是為了支持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
          

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

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



          設置MTA和MSA端口。

          (4)找到:

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

          將該行注釋掉,以允許通過網絡連接Sendmail。

          (5)找到:

          dnl FEATURE(`accept_unresolvable_domains')
          

          禁止不可解析域名的轉發郵件。

          最后保存退出。

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

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

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

          # rpm -qa | grep sendmail-cf
          

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

          # rpm -ivh sendmail-cf*.rpm
          

          檢測編譯結果

          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 設置密碼
          

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

          其他設置

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

          1、限制最大郵件。

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

          2、最大的群發數目。

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

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

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

          4、mail別名文件--aliases。

          # vi /etc/aliases
          系統內部別名:discuz:bbsadmin
          discuz是我的用戶名,其他的是別名,用逗號隔開。
          轉發到其他的郵箱:discuz:bbsadmin@discuz.com
          # newaliases --寫到庫中
          

          5、郵件控制文件

          relay、ok、reject和discard。

          relay: 可以實現轉發。

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

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

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

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

          7.設置完成后outlook發送郵件要求驗證時,出現錯誤

          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服務一定要啟動否則無法進行用戶驗證
          etc/rc.d/init.d/saslauthd start
          配置下載

          sendmail -bd -q1h

            Sendmail的命令參數的含義如下:

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

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

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

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

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

            在終端命令窗口運行以下命令來關閉Sendmail服務:

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

            我們還可以在終端命令窗口運行以下命令來檢測Sendmail服務器的運行狀態:

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

            系統應該顯示:

            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 強強 閱讀(829) 評論(0)  編輯  收藏 所屬分類: sendmail

          主站蜘蛛池模板: 龙江县| 东乡县| 寻乌县| 枣阳市| 光山县| 定陶县| 三明市| 平昌县| 抚松县| 津市市| 鄢陵县| 朝阳市| 锡林浩特市| 阿瓦提县| 宝清县| 石城县| 云和县| 定陶县| 利川市| 崇文区| 天柱县| 湖北省| 大同市| 班玛县| 鸡西市| 西充县| 上杭县| 塔河县| 丹棱县| 正蓝旗| 封丘县| 湟中县| 阿拉善盟| 上蔡县| 东兰县| 施秉县| 澎湖县| 高雄市| 前郭尔| 麟游县| 金坛市|