邮件服务器_SMTP认证控制和Webmail系统
本文来自Linux网络服务_邮件服务器-Redhat Enterprise 5.9的扩展:
基本配置地址:http://murongqingqqq.blog.51cto.com/2902694/1372049
第一部分:SMTP认证控制
邮件服务器_SMTP认证控制
白话说来:如果没有SMTP认证控制,所有人都可以通过你的邮件服务器向其他域发送邮件,这时就会被其他邮件服务器视为垃圾邮件,那么你所搭建的邮件服务器很可能会变成一个垃圾邮件服务器,有了SMTP认证控制,只有进行了身份验证的账号才能向其他域发送邮件!!!
第一步:启动saslauthd服务
配置文件为/etc/sasl2/smtpd.conf
配置可参考/usr/lib64/sasl2/smtpd.conf
[root@server1 ~]# service saslauthd start
启动 saslauthd: [确定]
[root@server1 ~]# vim /etc/sasl2/smtpd.conf //本身不存在,需要创建
[root@server1 ~]# cat /etc/sasl2/smtpd.conf
pwcheck_method:saslauthd
[root@server1 ~]# service saslauthd restart
停止 saslauthd: [确定]
启动 saslauthd: [确定]
[root@server1 ~]# chkconfig --list saslauthd
saslauthd 0:关闭 1:关闭 2:关闭 3:关闭 4:关闭 5:关闭 6:关闭
[root@server1 ~]# chkconfig saslauthd on
[root@server1 ~]# testsaslauthd -u hunter -p 123 -s smtp
0: OK"Success."
[root@server1 ~]#
第二步:调整postfix配置,启用认证
只需在main.cf文件的末尾添加下面内容即可:
[root@server1 ~]# vim /etc/postfix/main.cf
[root@server1 ~]# tail -6 /etc/postfix/main.cf //添加下面内容即可
mynetworks= 127.0.0.1 //设置本地网络
smtpd_sasl_auth_enable= yes //启用SASL认证
smtpd_sasl_security_options= noanonymous //阻止匿名发信
smtpd_recipient_restrictions= permit_mynetworks, //设置收件人过滤
permit_sasl_authenticated,
reject_unauth_destination //后面这三行是一行的内容,分开写需要另一起行加空格
[root@server1 ~]# service postfix restart
关闭 postfix: [确定]
启动 postfix: [确定]
[root@server1 ~]#
第三步:测试SMTP认证
使用telnet工具:连接到25,执行认证发信指令
在使用SMTP认证的时候,需要获得BASE64编码的认证字串
发件人用户名、密码:
[root@server1 ~]# printf"nick" | openssl base64
bmljaw== //获得BASE64的用户编码
[root@server1 ~]# printf"123" | openssl base64
MTIz //获得的密码123的BASE64编码
[root@server1 ~]#
示例1:启动了SMTP认证后,没有进行认证,不允许向外域发送邮件:
[root@server1 ~]# telnet mail.tarena.com 25
Trying192.168.1.100...
Connected tomail.tarena.com (192.168.1.100).
Escape character is'^]'.
220 mail.tarena.comESMTP Postfix
mailfrom:nick@tarena.com
250 2.1.0 Ok
rcptto:test@qq.com
554 5.7.1 <test@qq.com>: Relayaccess denied //被拒绝发送外域邮件
quit
221 2.0.0 Bye
Connection closed byforeign host.
[root@server1 ~]#
示例2:认证通过后,允许向外域发送:
[root@server1 ~]# telnet mail.tarena.com 25
Trying192.168.1.100...
Connected tomail.tarena.com (192.168.1.100).
Escape character is'^]'.
220 mail.tarena.comESMTP Postfix
helomail.tarena.com //向邮件服务器打招呼
250 mail.tarena.com
auth login //进行认证登录
334 VXNlcm5hbWU6
bmljaw== //通过BASE64获得的认证用户名
334 UGFzc3dvcmQ6
MTIz //这个就是通过BASE64编码获得的认证用户密码
235 2.0.0Authentication successful
mailfrom:hunter@tarena.com
250 2.1.0 Ok
rcpt to:test@qq.com
250 2.1.5 Ok //返回这个结果,证明了认证通过之后,允许向外域发送邮件
... //因为test@qq.com是随便写的,根本不存在,下面输入的为未连接等错误信息。
第二部分:搭建Webmail系统
Linux下常见网站邮箱程序
SquirrelMail(小松鼠)
ExtMail
OpenWebmail
OpenWebmail
RoundCube
第一步:部署squirrelmail套件
在httpd服务器上安装:
yum安装squirrelmail软件包
确认添加的httpd配置
安装squirrelmail软件包的时候,会有关于httpd和php的软件包依赖,所以在安装squirrelmail之前最好安装apache服务器。
[root@server1 ~]# yum install squirrelmail -y
[root@server1 ~]# grep "^Include" /etc/httpd/conf/httpd.conf
Includeconf.d/*.conf //确保httpd.conf配置文件包含conf.d的配置
[root@server1 ~]# tail -1 /etc/httpd/conf.d/squirrelmail.conf
Alias/webmail /usr/share/squirrelmail //该文件中其实就这一行配置
第二步:配置squirrelmail
指定发信、授信服务器地址;
将config.php一下内容加以修改即可:
[root@server1 ~]#cat /etc/squirrelmail/config.php
....
$squirrelmail_default_language= 'zh_CN'; //改为中文
$domain = 'tarena.com'; //域名
$imapServerAddress = '192.168.1.100'; //收信服务器
$imapPort = 143;
$useSendmail = true;
$smtpServerAddress = '192.168.1.100'; //发信服务器
$smtpPort = 25;
$sendmail_path = '/usr/sbin/sendmail';
.......
第三步:通过浏览器访问Webmail系统
如下图所示,访问mail.tarena.com/webmail即可!
贴个图展示一下,小松鼠挺好看,哈哈!