要生成sendmail.cf文g
一般是~译sendmail.mc来生成sendmail.cf,q样的好处是通过~译Q会查看Z些sendmail的设|错误和漏洞?
# cd /etc/mail
# vi sendmail.mc
(1)扑ֈQ?
TRUST_AUTH_MECH(`EXTERNAL DIGEST-MD5 CRAM-MD5 LOGIN PLAIN')dnl
打开注解Q启用相应的认证机制Q主要是Z支持Outlook?
(2)扑ֈQ?
DAEMON_OPTIONS(`Port=25, Name=MSA,M=Ea')dnl q样sendmail在25端口q行强制w䆾认证
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
打开注解Q启用相应的认证机制Q主要是Z支持Outlook?
(3)?2)后添加两行:
讄MTA和MSA端口?
(4)扑ֈQ?
dnl DAEMON_OPTIONS(`Port=smtp,Addr=127.0.0.1, Name=MTA')
该行注释掉Q以允许通过|络q接Sendmail?
(5)扑ֈQ?
dnl FEATURE(`accept_unresolvable_domains')
止不可解析域名的{发邮件?
最后保存退出?
~译sendmail.mc生成sendmail.cf文g
# m4 /etc/mail/sendmail.mc > /etc/mail/sendmail.cf
# /etc/rc.d/init.d/sendmail restart --重vsendmail服务?
如果在执行m4 /etc/mail/sendmail.mc > /etc/mail/sendmail.cf 报错的话Q那么检查是否安装sendmail-cf.*.rpm是否安装Q?
# rpm -qa | grep sendmail-cf
如果没有安装Q则需要在安装光盘中找到sendmail-cf包,q安装:
# rpm -ivh sendmail-cf*.rpm
编译结?/h2>
1、检SASL被编译到sendmail中?
#/usr/sbin/sendmail -d0.1 -bv root |grep SASL
输出cM如下Q?
NETUNIX NEWDB NIS PIPELINING SASL SCANF STARTTLS TCPWRAPPERS
保证你看到SASL是正确的?
2、检?5端口Q?
# 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 讄密码
把你服务器的域名d?etc/mail/local-host-names中?
其他讄
要想更好的用sendmailQ常用到的一些设|:
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 Q注Q?0个)
3、域名文?---local-host-name 可以用他来实现虚拟域名或多域名支持?
# vi /etc/mail/local-host-name
test.com
test1.com
4、mail别名文g--aliases?
# vi /etc/aliases
pȝ内部别名Qdiscuz:bbsadmin
discuz是我的用户名Q其他的是别名,用逗号隔开?
转发到其他的邮箱Qdiscuz:bbsadmin@discuz.com
# newaliases --写到库中
5、邮件控制文?
relay、ok、reject和discard?
relay: 可以实现转发?
ok: 是用来允许用LL讉KQ它会覆盖Q何其它已建立的检查(实际讄中,最好不要设,除非你对该用hl对信Q的)Q?
reject: 可以实现Ҏ访地址的拒l,它根本就不容许该地址与你的邮件服务器q行q接通信Q?
discard: 的作用是在接收到传输的邮件消息后Q把它丢弃掉。在发送者看来,他的邮g的确是接收了Q但他ƈ不知道,发送的目的地址Ҏ不可能接收到他的邮gQ服务器巧妙地欺骗了他?
# 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环境下的防止邮grelay
?.9版本开始,~省的是不允讔R件{?mail relay)的。最单的允许邮g转发的方法是在文?etc/mail/relay-domains中进行设|。该文g中列出的域名内的信g都允讔R过本地服务器进行邮件{发?nbsp;
Z更精的讄Q可以在sendmail.mc中添加如下几个参数允许被用来讄邮g转发Q?nbsp;
· FEATURE(relay_hosts_only). 通常情况下,在文?etc/mail/relay-domains中列出的域名的主机都允许通过本地{发,而该讄指示指定必须|列出每个允讔R过本机转发邮g的主机?nbsp;
· FEATURE(relay_entire_domain). 该参数指C允许所有本地域通过本机q行邮g转发?nbsp;
· FEATURE(access_db). 该参数指定利用哈希数据库/etc/mail/access来决定是否允许某个主机通过本地q行邮g转发?nbsp;
· FEATURE(blacklist_recipients).若该参数被设|,则在军_是否允许某个L转发邮g时同时察看邮件发送着地址和邮件接受者地址?nbsp;
· FEATURE(rbl).允许Zmaps.vix.com由黑名单(Realtime Blackhole List)q行邮g拒绝Q以防范垃圾邮g?nbsp;
· FEATURE(accept_unqualified_senders).允许接受发送者地址不包括域名的邮gQ例如userQ而不是user@B.NET?nbsp;
· FEATURE(accept_unresolvable_domains).通常来讲Qsendmail拒绝接受发送者邮件地址指定的主机通过DNS不能解析的邮Ӟ而该参数允许接收q种邮g?nbsp;
· FEATURE(relay_based_on_MX).该参数允许{发邮件接受者地址的MX记录指向本地的的邮gQ例如,本地接收C个发送目的地址为user@b.com的邮Ӟ而b.com域名的MX记录指向了本地机器,则本地机器就允许转发该邮件?nbsp;
下面几个Ҏ可能会有安全漏z,一般当邮g服务器位于防火墙后时才应该用,因ؓq些参数可能D你的pȝ易于被垃N件发送者利用?nbsp;
·FEATURE(relay_local_from).该参数指定若消息自称源于本地域,则允许{发该邮g?br />
·FEATURE(promiscuous_relay).打开Ҏ有的邮g的{发?/pre>
|
7.讄完成后outlook发送邮件要求验证时Q出现错?br />
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
大量查找资料原来?br />
认证q程没有启动 SASLAUTHD服务一定要启动否则无法q行用户验证
etc/rc.d/init.d/saslauthd start
配置下蝲
sendmail -bd -q1h
Sendmail的命令参数的含义如下Q?br />
-bQ指定Sendmail在后台运行,q且监听端口25的请求?br />
-dQ指定Sendmail以Daemon方式q行(守护q程)?br />
-qQ当Sendmail无法邮件成功地发送到目的地时Q它会将邮g保存在队列里。该参数指定邮g在队列里保存的时间。例子里?h表示保留1时?br />
在终端命令窗口运行以下命令来重新启动Sendmail服务Q?br />
[root@ahpeng root]#/etc/rc.d/init.d/sendmail restart
在终端命令窗口运行以下命令来关闭Sendmail服务Q?br />
[root@ahpeng root]#/etc/rc.d/init.d/sendmail stop
我们q可以在l端命oH口q行以下命o来检Sendmail服务器的q行状态:
[root@ahpeng root]# /etc/rc.d/init.d/sendmail status
pȝ应该昄Q?br />
sendmail (pid 3251) 正在q行…
/etc/mail目录下操?br />
makemap hash access.db<access
killall -9 sendmail
etc/rc.d/init.d/saslauthd start
sendmail -bd -q30m