这几天因为公司flash要求,要用到发e-mail所以要在服务器上要建立邮件服务器,所以这个任务当然是交给我了,本人因为是linux界中属于鸟类人物,当时接到任务时候有些渺茫,不用多说了,首先百度一下,搜了很多教程。开始动手装,因为教程中的linux版本与自己的版本不一样,但是大致上都差不多。我就照葫芦画瓢,几天下来,设置都差不多,但是总不成功。``有些郁闷呢。````后来发现与DNS也有关系,DNS 设置过很简单。。然后又先从DNS开始,``因为MAIL SERVER 与DNS SERVER 干系很紧密的。。所以,要先设置一台DNS 服务器,为了节省时间就把 DNS SERVER 和MAIL SERVER 装在了一台服务器上。``最后的最后 终于完成了。中途遇到很多麻烦的事,都被我一一解决了。。现在虽然完成了,但是还有一个问题没有解决,但是算不上E-mail的问题,所以我的工作是完成了。我的机器DNS 是内网的居然可以连接到外网。。我的域名并没有注册啊。。很奇怪,居然我的内网设置的 E-mail服务器可以 发送到外网 新浪啊。。网易啊 都发送成功~~迷茫。。。。不知道怎么回事。如果不注册。。。但是肯定的是,别人给我发不了。。。还没有实验。呵呵~~奇怪ing 下面是我的工作日志。。。。
我的机器是 FC5 ,我安装 yum 然后我下载所有关联包
1.yum install Sendmail bind-8.2 caching-nameserver Sendmail-cf dovecot
2[.确定上述安装正常,要设置好Mail Server必须先设置好DNS。首先修改/etc/named.conf 假设域名是ludy.com,局域网IP范围是:192.168.0.*,linux主机名是ludy.com,ludy.com主机IP地址是192.168.0.108
a..修改/etc/named.conf 加入
zone “ludy.com”{
type master;
file “named.ludy.com”;
};
zone “0.168.192.in-addr.arpa”{
type master;
file “named.192.168.0”;
};
b.创建区资源文件:
创建区资源文件/var/named/named.ludy.com 内容如下
;
; BIND data file for local loopback interface
;
$TTL 604800
$ORIGIN ludy.com.
@ IN SOA ludy.com. root.ludy.com. (
2006080401 ; Serial
604800 ; Refresh
86400 ; Retry
2419200 ; Expire
604800 ) ; Negative Cache TTL
;
IN NS ns
IN MX 10 mail.ludy.com.
@ IN A 192.168.0.108
ns IN A 192.168.0.108
www IN A 192.168.0.108
webserver IN CNAME www
mail IN A 192.168.0.108
c..接下来创建该区的反向映射资源文件/var/named/named.192.168.0内容如下:
;
; BIND reverse data file for local loopback interface
;
$TTL 604800
@ IN SOA ludy.com. root.ludy.com. (
2006080401 ; Serial
604800 ; Refresh
86400 ; Retry
2419200 ; Expire
604800 ) ; Negative Cache TTL
;
@ IN NS ludy.com.
108 IN PTR mail.ludy.com.
108 IN PTR www.ludy.com.
108 IN PTR ns.ludy.com.
d..重启DNS服务
/etc/init.d/named restart
e.在客户机上的设置
# cat /etc/resolv.conf
search ludy.com
nameserver 192.168.0.108
f.用nslookup测试
[root@ludy named]# nslookup
> set type=any
> ludy.com
Server: 192.168.0.108
Address: 192.168.0.108#53
ludy.com
origin = ludy.com
mail addr = root.ludy.com
serial = 2006080401
refresh = 604800
retry = 86400
expire = 2419200
minimum = 604800
ludy.com nameserver = ns.ludy.com.
ludy.com mail exchanger = 10 mail.ludy.com.
Name: ludy.com
Address: 192.168.0.108
说明测试成功`
DNS安装成功
3.修改/etc/mail/hocal-hosts-name文件
增加本地域和主机的FQDN,记住只是本地主机的FQDN和域名FQDN,不要添加其他域的,否则向外域发送邮件的时候会出现user unknown的错误
[root@ludy named]# cat /etc/mail/local-host-names
# local-host-names - include all aliases for your machine here.
mail.ludy.com
ludy.com
4.更改/etc/mail/sendmail.mc文件,修改下列地方:
Daem=smtp,Addr=127.0.0.1, Name=MTA 更改为:
Daem=smtp,Addr=yourip或者0.0.0.0, Name=MTA
然后m4 /etc/mail/sendmail.mc > /etc/mail/sendmail.cf
5.用户管理
认证的配置:修改/etc/mail/sendmail.mc中的字段,
取消“TRUST_AUTH_MECH”一行和下一行“define”处的注释。
然后m4 /etc/ mail/sendmail.mc>/etc/mail/sendmail.cf。
[root@ludy named]# chkconfig --list saslauthd 开启认证
saslauthd 0:关闭 1:关闭 2:关闭 3:启用 4:关闭 5:启用 6:关闭
[root@ludy named]# chkconfig --level 35 saslauthd on
建立用户帐号
[root@ludy named]# groupadd mailuser
[root@ludy named]# adduser -g mailuser -s /sbin/nologin mike
[root@ludy named]# adduser -g mailuser -s /sbin/nologin john
[root@ludy named]# passwd mike
[root@ludy named]# passwd john 密码都是123
设置邮件别名和邮件群发
修改/etc/aliases文件实现邮件转发和邮件列表:
admin: mike 为邮件用户mike设置别名admin
testgroup: mike,john 实现群发 发给testgroup的邮件发给mike 和 john 以上2个可以分别测试
6.访问控制设置
更改/etc/mail/accesss文件,增加
Connect:ludy.com RELAY
完成后makemap hash /etc/mail/access.db < /etc/mail/access进行数据库更新。
7.启动sendmail服务
/etc/init.d/sendmail start
然后测试[root@ludy named]# telnet 192.168.0.108 25
Trying 192.168.0.108...
Connected to mail.ludy.com (192.168.0.108).
Escape character is '^]'.
220 ludy.com ESMTP Sendmail 8.13.8/8.13.8; Tue, 21 Aug 2007 09:38:15 +0800
ehlo ludy.com
250-ludy.com Hello www.ludy.com [192.168.0.108], pleased to meet you
250-ENHANCEDSTATUSCODES
250-PIPELINING
250-8BITMIME
250-SIZE
250-DSN
250-ETRN
250-AUTH LOGIN PLAIN---认证应该生效
250-DELIVERBY
250 HELP
8.开启POP3端口
修改/etc/dovecot.conf
取消在protocols = imap imaps pop3 pop3s 前的#注释。
然后启动dovecot服务
[root@ludy named]# /etc/init.d/dovecot restart
停止 Dovecot Imap: [失败]
启动 Dovecot Imap: [确定]
[root@ludy named]# chkconfig --level 35 dovecot on
9.然后修改防火墙设置
修改/etc/sysconfig/iptables加入
-A RH-Firewall-1-INPUT -m state --state NEW -m tcp -p tcp --dport 25 -j ACCEPT
-A RH-Firewall-1-INPUT -m state --state NEW -m tcp -p tcp --dport 110 -j ACCEPT
然后重启放火墙 /etc/init.d/iptables restart
10.修改selinux设置
修改/etc/sysconfig/selinux
SELINUXTYPE=targeted 把SELINUX设定为disable
重启/etc/init.d/selinux restart