* 本文的目的是配置一个sendmail master服务器,以供自己学习研究使用
* 硬件环境:一台PC,RH FC3
* 192.168.1.21 是sendmail服务器,hostname 是atslxt001
* 时间:2005年8月22日星期一
* 作者:kilvon
* 版本:2.0
* 24-Aug-2005 添加了几个参数说明
1. 一般配置信息
Backend process: sendmail
Script: /etc/rc.d/init.d/sendmail
Port: 25 (smtp)
RPM packages:
-rw-r--r-- 1 root root 585357 Oct 21 2004 sendmail-8.13.1-2.i386.rpm
-rw-r--r-- 1 root root 309562 Jan 19 2005 sendmail-cf-8.13.1-2.i386.rpm
-rw-r--r-- 1 root root 643609 May 26 16:29 sendmail-doc-8.13.1-2.i386.rpm
Configuration files:
/etc/mail/sendmail.cf
/etc/aliases
/etc/mail/
2.主要配置文件
/etc/mail/sendmail.cf是默认的sendmail配置文件,包含域别名,信头格式,转发规则等数据;这个文件一般不会直接被修改。这个文件是由/etc/mail/sendmail.mc经由宏处理器m4处理后得到:
#m4 /etc/mail/sendmail.mc > /etc/mail/sendmail.cf
每次修改sendmail.mc,都需要做上面的操作,然后重启sendmail服务。
3.编辑sendmail.mc
每一个sendmail.mc宏应该定义了操作系统类型,文件位置,请求特征及邮件发送工具,用户列表;在每一行的开头添加了dnl表示注释;默认情况下,sendmail server只监控本地的连接
DAEMON_OPTIONS(`Port=smtp,Addr=127.0.0.1, Name=MTA')dnl
一般都会把上面这行注释掉以接受来自intranet或者internet的邮件。
FEATURE(`accept_unresolvable_domains')dnl
接受无法反向解析的域发来的邮件,但这会比较容易受到垃圾邮件,该选项对于笔记本和无法使用7X24小时DNS的机器有用。
FEATURE(`relay_based_on_MX')dnl
自动接收DNS中MX纪录来源的邮件转发
FEATURE(`blacklist_recipients')dnl
允许使用黑名单来禁止收件人,用户在/etc/mail/access中设定黑名单
MASQUERATE_AS(`tcs.com’)
大多数情况下,发送邮件时都需要把主机名称从邮件后缀中去掉,比如后缀是atslxt001.tcs.com改为tcs.com,发出去的邮件地址就是root@tcs.com了。
EXPOSED_USER(`root’)
这个选项是和上面这个选项一起使用,设置不需要masquerate的用户地址,这样就可以知道是从哪个特定的主机发出来的邮件。
4.禁止第三方mail relay
Ø 首先注释掉FEATURE(`accept_unresolvable_domains')
Ø 然后把垃圾邮件地址加入到/etc/mail/access文件中,比如
spam.domain reject
spam@doemain reject
xxx.xxx.xxx.xxx reject
注意关键字的含义:
OK #接受EMAIL,即使被其他规则拒绝了
RELAY #允许邮件主机RELAY的域,等于OK
REJECT #拒绝email并显示内部通用的错误消息
DISCARD #接受并丢弃,无报错消息
注意编辑完/etc/mail/access后,在/etc/mail下运行
[root@atslxt001 mail]# make access.db
5. 定义本地用户的别名
可以将别名定义为:
Ø 一个或多个本地用户
Ø 本地文件
Ø 指令(使用管道)
Ø 另外一个EMAIL地址
设定完/etc/aliases后,必须运行newaliases(该命令是sendmail –bi的别名)来更新aliases.db
6. 邮件存贮的位置在/var/spool/mail下,这个可以自己定义,在文件/etc/login.defs中。
7.为了确定sendmail是否正确标识主机名称,通过命令行开启调试模式并且设定为0:
#sendmail –d0 < /dev/null
如果sendmail返回的主机名称是localhost,那么/etc/hosts 或者 /etc/sysconfig/network文件配置有误。应该返回 (node name) $k = atslxt001.tcs.com。
8.查看maillog的纪录
#xterm –e tail –f /var/log/maillog &