配置Sendmail

要生成sendmail.cf文件

·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

一般是編譯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:[email protected] # newaliases --寫到庫中 

5、郵件控制文件

relay、ok、reject和discard。

relay: 可以實現轉發。

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

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

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

# vi /etc/mail/access 
localhost.localdomain RELAY ---允許 localhost RELAY 127.0.0.1 RELAY [email protected] 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,而不是[email protected]
· FEATURE(accept_unresolvable_domains).通常來講,sendmail拒絕接受發送者郵件地址指定的主機通過DNS不能解析的郵件,而該參數允許接收這種郵件。
· FEATURE(relay_based_on_MX).該參數允許轉發郵件接受者地址的MX記錄指向本地的的郵件,例如,本地接收到一個發送目的地址爲[email protected]的郵件,而b.com域名的MX記錄指向了本地機器,則本地機器就允許轉發該郵件。
下面幾個特性可能會有安全漏洞,一般當郵件服務器位於防火牆後時才應該使用,因爲這些參數可能導致你的系統易於被垃圾郵件發送者利用。
 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章