项目环境:
一台server ip:192.168.1.100 一台mail ip:192.168.1.200 一台win7 ip:192.168.1.222
项目需求:
1:在DNS Master上搭建DNS,能够解析mail.sw.com
2:在Mail Server上部署邮件服务器,和webmail软件
3:在Win7上用网页浏览测试
实现步骤:
1:在DNS服务器的正向解析数据库文件中添加MX记录
[root@server named]# vim sw.com.zone
$TTL 86400 @ IN SOA sw.com. root.sw.com. ( 2014062602 ; serial (d. adams) 3H ; refresh 15M ; retry 1W ; expiry 1D ) ; minimum IN NS server.sw.com. IN MX 5 mail.sw.com. server IN A 192.168.1.1 mail IN A 192.168.1.100
[root@server named]# service named restart
2:在mail服务器上安装postfix程序,启动服务,设置为开机启动,备份主配置文件
[root@mail ~]# yum -y install postfix
[root@mail ~]# service postfix start
[root@mail ~]# chkconfig postfix on
[root@mail ~]# netstat -anptul | grep :25 //查看25端口被哪个邮件程序监听
tcp 0 0 127.0.0.1:25 0.0.0.0:* LISTEN 4653/master //正被postfix的master监听
[root@mail ~]# cd /etc/postfix/
[root@mail postfix]# postconf -n > mail.txt //把postfix当前配置导出为简化版
[root@mail postfix]# cp main.cf main.cf.bak //备份原配置文件
[root@mail postfix]# mv mail.txt main.cf //用导出的简化配置替换原主文件
3:安装sasl认证服务,启动服务并设为开机启动,然后生成认证配置文件
[root@mail ~]# yum install cyrus-sasl
[root@mail ~]# service saslauthd start
[root@mail ~]# chkconfig saslauthd on
[root@mail ~]# cp /usr/lib64/sasl2/smtp.conf /etc/sasl2/smtpd.conf //从模板拷贝生成配置文件,然后生效
[root@mail ~]# service saslauthd restart
4:配置主配置文件
[root@mail postfix]# vim main.cf
... 8 #inet_interfaces = localhost //注释掉监听本地端口 20 myhostname = mail.sw.com //邮件服务器主机名 21 mydomain = sw.com //邮件服务器所在区域 22 myorigin = $mydomain //指定发件人DNS后缀 23 mydestination = $mydomain //指定Postfix允许处理sw.com的邮件 24 home_mailbox = Maildir/ //邮箱类型为每用户每封邮件都单独存放在家目录的Maildir下 25 mynetworks = 127.0.0.1 //设置只允许本机转发到外部区域 26 smtpd_sasl_auth_enable = yes //启用SASL认证 27 smtpd_sasl_security_options = noanonymous //阻止匿名发信 28 smtpd_recipient_restrictions = //收件人过滤,下两行顶格有空格表示和本行其实是一行 29 permit_mynetworks,permit_sasl_authenticated, //允许mynetworks和通过sasl认证的用户 31 reject_unauth_destination //拒绝向未授权的目标域发信
[root@mail ~]# service postfix restart
5:安装收信服务, 启动服务并设为开机启动
[root@mail ~]# yum -y install dovecot
[root@mail ~]# service dovecot start
[root@mail ~]# chkconfig dovecot on
6:安装webmail软件,编辑配置文件
[root@mail ~]# yum -y install squirrelmail
[root@mail ~]# vim /etc/squirrelmail/config.php
... 26 $squirrelmail_default_language = 'zh_CN'; //改成中文显示 28 $domain = 'sw.com'; //域名 29 $imapServerAddress = '192.168.1.100'; //收信服务器地址 ... 32 $smtpServerAddress = '192.168.1.100'; //发信服务器地址 ...
[root@mail ~]# service httpd start
[root@mail ~]# chkconfig httpd on
7:在win7上用网页测试
总结:postfix是目前linux上开源比较好用的邮件服务器,但默认情况下允许所有转发,很容易当成垃圾邮件的中转。本项目为了杜绝此现象,在邮件服务器上利用sasl程序做了本地用户认证控制,只允许经过服务器认证后的用户往外域发送邮件。
排错:1:linux默认25端口会被sendmail等其他邮件程序占用,请netstat看看当前25端口被哪个程序使用
2:导出postfix简化配置时先要执行postfix -n > 文件 然后在备份原配置文件,要不然导出失败
3:注意拼写检查,Maildir/ 是M大写,小写不生效