Postfix邮件系统(二)
一、设置SMTP发信认证
(1)、启用SMTP发信认证
【作用】:拒绝非法用户向外域发送邮件
【SMTP认证机制取决于三个组件】Cyrus-SASL函数库、saslauthd服务、postfix服务
【Cyrus-SASL】:cyrus simple Authentication and Layer,cyrus简单认证安全层
1、设置Cyrus SASL函数库,并启动Saslauthd服务
vim /usr/lib/sasl2/smtpd.con
pwcheck_method:saslauthd /设置使用saslauthd服务作为认证方式
/etc/init.d/saslauthd start /启动saslauthd服务
chkconfig --level 35 saslauthd on
2、修改main.cf配置文件,添加SMTP认证配置,并重载服务
vim /etc/postfix/main.cf
......//省略部分内容
smtpd_sasl_auth_enable = yes /启用SMTP认证
smtpd_sasl_security_options = noanonymous /禁用匿名使用SMTP服务
mynetworks = 127.0.0.1
smtpd_recipient_restrictions = /启用接收地址过滤
permit_mynetworks,
permit_sasl_authenticated, /允许通过验证的用户
reject_unauth_destination /禁止未授权的目标地址
postfix reload
【SMTP认证相关的几行设置含义】
mynetworks:用来控制可以通过本服务器外发邮件的网络地址或IP地址,设置为127.0.0.1是为了确保后面的Web邮箱系统可以正常发送邮件
smtpd_recipient_restrictions:设置收件人地址过滤规则,其匹配策略是“从上至下逐条检测、有匹配即停止”如:
permit_mynetworks:允许IP为mynetworks的客户使用本邮件系统发送邮件
permit_sasl_authenticated:允许通过SMTP认证的用户向外发送邮件
reject_unauth_destination:当收件人地址不包括地postfix的授权网络时,将拒绝发送该邮件。授权网络包括由inet_interfaces、mydestination、relay_domain等配置参数指定的域及其子域
(2)、验证SMTP发信认证
1、测试SMTP发信认证→→telnet方式
【验证不使用SMTP认证的情况】
telnet mail.benet.com 25
helo mail.benet.com /告知客户机
mail from:[email protected] /告知发件人地址
rcpt to:[email protected] /告知收件人地址
#######<[email protected]>: Relay access denied /拒绝向外域发
Quit 送邮件
【验证使用SMTP认证的情况】
用“Ehlo”来宣告地址
通过“Auth Login”进行登录认证
用户名、密码字串默认使用BASE64编码的加密格式,使用openssl工具可以生成
2、测试SMTP发信认证→→→→Outlook 2007方式
【验证不使用SMTP认证的情况】
当服务器向外域发送邮件时,将会被拒绝
【验证使用SMTP认证的情况】
要求:修改邮箱属性
方法:账户设置→其他设置→发送服务器→选中“我的发送服务器(SMTP)要求验证”
二、构建Web邮件系统
【定义】:Web邮件是提供给用户发信、收信的网页操作界面
【优点】:Web邮件系统依赖于已有的收信、发信服务器,但不需要用户预先配置邮箱属性,使用更加方便
(1)、部署并配置Squirrelmail
【类型】:OpenWebmail、IGENUS、Extmail、Squirrelmail(以它为实例)
【源码包】:squirrelmail-1.4.18.tar.gz zh_CN_1.4.18-20090526.tar.gz
1、将Squirrelmail部署到网站目录
tar zxf Squirrelmail-1.4.18.tar.gz -C /usr/local/http/htdocs/
tar zxf zh_CN_1.4.22-20090526.tar.gz -C /usr/local/htdocs/Squirrelmail-1.4.221
mv /usr/local/http/htdocs/Squirrelmail-1.4.22/ /usr/local/http/htdocs/webmail
2、创建数据目录、附件目录
cd /usr/local/http/htdocs/webmail/
mkdir -p data/ attach/
chown -R daemon:daemon data/ attach/
3、创建主配置文件config.php
【位于】:/usr/local/http/htdocs/webmail/config/
cp config/config_default.php config/config.php
vim config/config.php
......//省略部分内容
$domain = “benet.com”;
$smtpServerAddress = “localhost”; /SMTP服务器地址
$smtpPort = 25; /SMTP服务端口
$imap_server_type = ‘dovecot’; /IMAP服务器地址
$imapPort = 143; /IMAP服务端口
$data_dir = ‘/usr/local/http/htdocs/webmail/data/’;
/数据目录位置
$attachment_dir = ‘/usr/local/http/htdocs/webmail/attach/’;
/附件目录位置
$squirrelamil_default_language = ‘zh_CN’; /界面语言
$default_charset = ‘zh_CN,UTF=8’; /默认字符集
4、访问Web邮箱系统
http://www.benet.com/webmail
(2)、使用Squirrelmail收发邮件
做下测试看实验成功与否
三、其他扩展设置
(1)、通过别名设置邮件组
1、postfix的查询表
vim /etc/postfix/main.cf
......//省略部分内容
alias_maps=hash:/etc/aliases /使用hash格式的查询表,手动添加这项/
postfix reload
2、设置邮件组(别名查询表)
【位于】:/etc/aliases
【格式】:别名:地址1,地址2,......
vim /etc/aliases
......//省略部分内容
administrator:admin,ad,......
newaliases /更新数据库/
(2)、邮件大小及邮箱空间限制
1、限制用户可发送的邮件大小
#postfix系统默认仅支持10MB大小的邮件
#vim /etc/postfix/main.cf
......//省略部分内容
message_size_limit=51200000 /更改新的大小为50MB
(针对所有用户做限制)
#postfix reload
3、限制用户的邮箱空间大小
【使用quota磁盘配额】
适用于Mailbox或Maildir两种存储方式,针对使用Linux系统用户作为邮件账户的情况,建议采用这种方式
【配置参数mailbox_size_limit】
仅适用于Mailbox存储方式,默认的限制为50MB,此配置参数也较少使用
【配置参数virtual_mailbox_limit】
适用于Mailbox或Maildir两种存储方式,但只针对虚拟用户(非系统用户),此配置参数需要对postfix安装VDA补丁以后才能发挥作用