构建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

配置postfixdovecot服务提供发信、收信功能

安装配置squirrelmail实现Webmail功能

邮件帐号使用系统用户,启用SMTP发信认证

限定每个用户的邮箱空间大小为500M

限定可发送的单封电子邮件不超过50M

邮件群组设置:

市场部market,包括用户:zhang3li4wang5

技术部tech,包括用户:zhao6qian7sun8

实现思路

任务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 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 /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 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存储方式都起作用)