构建postfix邮件服务器
邮件服务器的角色及使用的协议
MTA(邮件传输代理):一般被称为邮件服务器软件。MTA软件负责接收客户端软件发送的邮件并将邮件传输给其他的MTA程序。
MUA(邮件用户代理):一般北城为邮件客户端软件。MUA软件的功能是为用户提供发送、接收和管理电子邮件的界面。在windows界面中常用的MUA软件有outlook、outlook Express、formail等,在linux平台中常用的MUA软件Thunderbird、Kmail等
MDA(邮件分发代理):MDA软件负责在服务器中将邮件分发到用户的邮箱目录
SMTP(简单邮件传输协议)主要用于发送和传输邮件,MUA使用SMTP协议将邮件发送到MTA服务器中,而MTA将邮件传输给其他MTA服务器时同样也使用SMTP协议
POP(port office protocol。邮件协议):主要用于从邮件服务器中收取邮件,目前的
最新版本是pop3
IMAP(internet message access protocol,互联网消息访问协议):同样用于收取邮件
常用的邮件服务器软件
1, 商业邮件系统
Exchange:windows系统中最著名的邮件服务器软件,也是微软公司的重量级产品。
Notes/Domino:由IBM公司出品的商业电子邮件和办公制作软件产品
2, 开源邮件系统
Sendmail:对于运行在UNIX/linux环境中的邮件服务器
Qmail:另一款运行在unix/linux环境中的邮件服务器,比sendmai更好的工作效率和配置、管理方便
Postfix:同样是运行在unix/linux环境中,postfix由wietse负责开发,其目的是为sendmail提供一个更好的替代产品
Postfix邮件服务器基础
Postfix可以直接使用本地系统用户作为邮件用户,也可以使用虚拟用户,虚拟用户对应的账号信息通常存储于数据库中,最常见的mysql数据库
编译安装postfix(必须基于LAMP平台)
大多数情况下。RHEL5系统默认安装了sendmail程序,用于提供基本的发信服务
在安装postmail之前先将sendmail服务停止,一面与postfix冲突。
1, service sendmail stop
chkconfig --level 35 sendmail off
2, 创建运行postfix服务的用户(postfix)。组(postfix、postdrop)
并指定用户的组和附加组分别为postfix和postdrop
3.解压并释放源码包、合并补丁(不是必须的)
tar zcvf postfix-2.4.6.tar.gz
cd postfix-2.4.6
4,预配置编译参数
Make makefiles \
>
>
>
5,编译并进行安装
Make && make install
Postfix的目录及配置文件
/etc/postfox:包括postfix服务的主配置文件、各类脚本、查询表等
/usr/libexec/postfix/:该目录包括postfix服务的各个服务器程序脚本
/var/spool/postfix/:该目录中包括postfix服务的邮件列队相关的子目录
Postfix的配置文件
Postfix系统最主要的配置文件包括:/etc/postfix/main.cf和/etc/postfix/master.cf
Postfix的启动控制
Postfix系统的启动控制主要通过/usr/sbin/postfix命令只需要添加相应的start stop reload
基于postfix构建简单的电子邮件系统
案例需求
——公司共包括有北京总部及分散在全国各分公司的员工300多名,为了保证电子信息传递的及时、稳定性,减少业务沟通故障,需要在RHEL5服务器中搭建一套电子邮件系统。考虑到系统的安全性和稳定性,选择使用Postfix作为发送和传递邮件的服务器、Dovecot提供邮件收取服务,另外结合Apache安装SquirrelMail程序作为辅助用户使用邮件的Web界面
需求描述
邮件服务器的网络参数
主机名:mail.benet.com
IP地址:192.168.0.1/24
配置postfix、dovecot服务提供发信、收信功能
安装配置squirrelmail实现Webmail功能
邮件帐号使用系统用户,启用SMTP发信认证
限定每个用户的邮箱空间大小为500M
限定可发送的单封电子邮件不超过50M
邮件群组设置:
市场部market,包括用户:zhang3、li4、wang5
技术部tech,包括用户:zhao6、qian7、sun8
实现思路
任务1——
1,先配置好DNS服务器,负责benet.com域内主机的名称解析,并设置MX记录指向邮件服务器192.168.0.1
2编译安装
3 使用postconf工具查看当前postfix服务所使用的配置参数
Cd /etc/postfix
Postconf –n > main2.cf
Mv main.cf main.cf.bak
mv main2.cf main.cf
3, 编辑main.cf文件,调整postfix的基本运行参数
Vi /etc/postfix/main.cf
inet_interfaces = 172.16.33.33, 127.0.0.1
myhostname = mail.benet.com
mydomain = benet.com
myorigin = $mydomain
mydestination = $mydomain, $myhostname
home_mailbox = Maildir/ (这个M必须大写)
4, 添加邮件用户的账号
groupadd mainusers
useradd -g mainusers –s /sbin/nologin xiaoqi
useradd –g mainusers –s /sbin/nologin lisi
passwd xiaoqi
passwd lisi
5,SMTP发送邮件测试
telnet localhost 25
邮件发送并投递成功后,可以到服务器中lisi用户的宿主目录下进行查看,刚接收到的邮件保存在Maildir子目录中
构建Dovecot服务器
1, 编译安装Dovecot软件包
useradd –M –s /sbin/nologin dovecot
tar zxvf dovecot-1.1.4.tar.gz
cd dovecot-1.1.4
./configure –sysconfdir=/etc –with-mysql
make && make install
2,配置Dovecot的运行参数
1) 建立dovecot.conf配置文件并进行简单设置
cp /etc/dovecot-example.conf /etc/dovecot.conf
vi /etc/dovecot.conf
ssl_disable = yes (禁用SSL机制)
protocols = pop3 imap (指定支持的邮局协议
disable_plaintext_auth = no (允许明文密码认证
mail_localion = maildir:~/Maildir (设置邮件存储格式及位置)
2) 创建PAM认证文件
vi /etc/pam.d/dovecot
auth required pam_nologin.so
auth required system_auth
account required system_auth
session required system_auth
3,启动Dovecot服务,并验证其监听的TCP端口(110 143)
/usr/local/sbin/dovecot –c /etc/dovecot.conf
netstat –anptl | grep dovecot
4,POP3接受邮件测试
telnet localhost 110
user lisi
pass 123
list
retr 1
quit
使用outlook Express邮件客户端
1, 启动outlook Express 邮件客户端程序
进行发送和接收邮件就可以了
Webmail邮件界面
1, 依次安装程序包,中文语言包
tar jxvf squirrelmail-1.4.13.tar.bz2 –C /usr/local/apache2/htdocs/
cd /usr/local/apache2/htdocs/
mv squirrelmail-1.4.13 webmail
cd webmail
tar jxvf ~/zh_CN-1.4.13-20071220.tar.bz2
2,创建及调整数据目录,附件目录(在webmail目录下)
mkdir –p attach data
chown –R daemon:daemon attach/ data/
chmod 730 attach/
3,建立config.php配置文件
$squirrelmail_default_language = ‘zh_CN’;
$default_charset = ‘zh_CN.UTF-8’;
$domain = ‘benet.com’;
$smtpServerAddress = ‘localhost’;
$smtpPort = 25;
$imap_server_type = ‘dovecot’;
$imapPort = 143;
$data_dir = ‘/usr/local/apache2/htdocs/webmail/data/’;
$p_w_upload_dir =’/usr/local/apache2/htdocs/webmail/attach/’;
4启动httpd服务,并在浏览器中登录squirrelmail系统
http://mail.benet.com/webmail/
进行用户名和密码验证登录就可以了
设置SMTP的用户认证
1, 查看系统中已经安装的cyrus SASL软件来实现基本的SMTP认证机制
2, 设置Cyrus SASL函数库,并启动saslauthd服务
cp /usr/lib/sasl2/sendmail.conf /usr/lib/sasl2/smtp
d.conf
vi /usr/lib/sasl2/smtpd.conf
pwcheck_method: saslauthd
service saslauthd start
chkconfig –level 35 saslauthd on
3,修改main.cf配置文件,添加SMTP认证相关的配置参数,并重新加载配置文件
Vi /etc/postfix/main.cf
smtp_sasl_auth_enable = yes
smtpd_sasl_security_options = noanonymous
mynetworks = 127.0.0.1
smtpd_recipient_restrictions =
permit_mynetworks,
permit_sasl_authenticated,
reject_unauth_destination
4,测试SMTP发信认证
使用Outlook Express 邮件客户端进行发信测试
修改邮件用户xiaoqi的很脏好属性,在“服务器”选项卡中选中,“我的服务器需要身份验证” 即可在客户端启动SMTP认证支持,若不选中此项,将无法向外域发送邮件
设置邮件别名,实现群发功能
1, 修改main.cf配置文件,使用/etc/aliases文件的hash数据作为查询表
Vi /etc/postfix/main.cf
Alias_maps = hash:/etc/aliases
2,修改/etc/aliases文件,添加一条别名记录,
vi /etc/aliases
student: zhangsan, lisi, mike, john
newaliases(启动别名)
3进行验证(向student发邮件,其他用户都能收到)
限制用户可发送的邮件大小
1, 修改main.cf配置文件,将可发送的邮件大小限制为20MB,
vi /etc/postmail/main.cf
message_size_limit = 2000
:wq
2, 重启postfix服务
Postfix reload
限制用户的邮箱空间大小
1, mailbox_size_limit配置参数(主要针对使用Mailbox邮件存储方式的情况)
2, virtual_mailbox_limit配置参数(主要针对使用虚拟用户的情况)
3, quota磁盘配额功能(主要是针对linux系统用户作为邮件账号的情况,可以直接使用linux中的quota磁盘配额功能,这种方式对使用Mailbox或Maildir存储方式都起作用)