博客统计信息

用户名:刘文斌3313
文章数:88
评论数:13
访问量:16206
无忧币:387
博客积分:802
博客等级:4
注册日期:2010-05-11

我的技术圈(0)

更多>>
搭建postfix邮件服务器(rpm包)
2010-08-20 21:16:31
版权声明:原创作品,谢绝转载!否则将追究法律责任。

 

搭建postfix邮件服务器
实验环境:
     RHEL5系统中,搭建Postfix邮件系统,实现单域环境下收发邮件Postfix可以直接使用本地系统用户作为邮件用户,也可以使用虚拟邮件用户。虚拟邮件用户对应的账号信息通常存储于数据库中,最常见的是MYSQL数据库。
实验准备:
Ø       系统安装
    安装RHEL5(或者更高版本,也可以安装CENTOS5,可以采用图形化和文本模式两种安装模式,一般为了提高服务器的整体性能,一般采用文本模式安装。在这里我使用文本模式安装RHEL5,并且在安装过程没有选择任何软件包。在大多数情况下,RHEL 5系统默认安装了sendmail程序,用于提供基本的发信服务。因此,在安装Postfix前将sendmail服务停止,以免与Postfix服务发生冲突。
Ø       软件安装
     所有需要软件包(postfix,dovecot,squirrelmail,httpd)都采用rpm包,如果存在依赖关系,使用yum方式安装。
Ø       服务器基本配置
      主机名mail.lwb.com  
IP地址172.16.100.147
子网掩码255.255.0.0
      默认网关172.16.100.147
      DNS服务器172.16.100.147
实验思路:
1.     做主机名
2.     DNS
3.     安装并配置postfix服务器
4.     安装并配置dovecot服务器
5.     配置发信认证及webmail系统
6.     建立邮箱用户,进行收发邮件
实验步骤:
1.做主机名(主机名为mail.lwb.com)
     主机名中必须包含邮件域的域名。如果是已经装好的系统,可以将主机名更改为包含相应邮件域的主机名;如果是新安装的系统,在安装时就可以直接设置主机名。不管是哪种情况,做好后,都要进行相应的检查,保证配置正确。
Ø       检查/etc/hosts文件,查看是否有主机名称解析记录
Ø       检查/etc/sysconfig/network文件,查看主机名是否正确
2.配置DNS
2.1更改主配置文件(需要修改全局配置,并且在区域配置中添加相应邮件域及反向域)
2.2创建区域数据库配置文件
Ø       在正向域中,需要添加A记录和MX邮件记录

mail      IN      A      172.16.100.147
lwb.com. IN      MX    10      mail

Ø       在反向域中,添加PTR记录

147       IN      PTR    lwb.com.

2.3.添加权限(这里添加权限方式跟普通添加读写权限方式不一样,不过这样做之后权限很合适,要详细了解,请查看《搭建DNS服务器》)

[root@mail ~]# bind-chroot-admin –s

2.4重启服务,并设置开机自动启动

[root@mail ~]# service named restart
[root@mail ~]# chkconfig named on

3.安装并配置postfix服务器
     在配置之前,需要做yum,可以自动解决安装软件包时的相容性和依赖关系。

[root@mail ~]# mkdir /media/rhel5
[root@mail ~]# mount /dev/cdrom /media/rhel5
[root@mail ~]# cd /media/rhel5/Server
[root@mail Server]# rpm -ivh createrepo-0.4.4-2.fc6.noarch.rpm
[root@mail Server]# cd /media/
[root@mail media]# createrepo .
[root@mail ~]# vi  /etc/yum.repos.d/rhel-debuginfo.repo
修改为以下内容
[rhel5]
baseurl=file:///media
enabled=1
gpgcheck=0

3.1安装Postfix

[root@mail ~]# rpm -ivh postfix-2.3.3-2.i386.rpm

3.2编辑main.cf配置文件(该配置文件的修改分先后顺序)

[root@mail ~]# vi /etc/postfix/main.cf
inet_interfaces = all                 //设置监听25端口在哪些IP地址可以使用
myhostname = mail.lwb.com         //设置Postfix服务器使用的主机名
mydomain = lwb.com               //设置Postfix服务器使用的邮件域
myorigin = $mydomain                //设置发件人邮件地址中的邮件域名
mydestination = $mydomain,$myhostname //设置可接收的邮件地址中的域名
home_mailbox = Maildir/            //设置邮件存储位置和格式

3.3重启postfix服务,并验证其监听的TCP端口(25

[root@mail ~]# service postfix restart
[root@mail ~]# chkconfig postfix on
[root@mail ~]# netstat -antp |grep :25
查看其25端口是否是如下信息(看是否有40
tcp      0     0 0.0.0.0:25      0.0.0.0:*   LISTEN    4626/master

4.安装并配置dovecot服务器
4.1安装dovecot(需要使用YUM方式安装)

[root@mail ~]# yum install dovecot* -y

4.2修改dovecot.conf配置文件

[root@mail ~]# vi /etc/dovecot.conf
ssl_disable = yes                      //禁用SSL机制
protocols = pop3 imap                 //指定支持的邮局协议
disable_plaintext_auth = no            //允许明文密码认证
mail_location = maildir:~/Maildir       //设置邮件存储格式及位置

4.3创建PAM认证文件(默认已创建,如果没有则创建如下文件)

[root@mail ~]# vi /etc/pam.d/dovecot
#%PAM-1.0
auth       required     pam_nologin.so
auth       include      system-auth
account    include      system-auth
session     include      system-auth

4.4cd /重启dovecot,并验证其监听的TCP端口(110143

[root@mail ~]# service dovecot restart
[root@mail ~]# chkconfig dovecot on
查看其端口信息
[root@mail ~]# netstat -anpt |grep dovecot
tcp      0     0 :::110          :::*        LISTEN    4687/dovecot
tcp      0     0 :::143          :::*        LISTEN    4687/dovecot

5.配置webmail系统和SMTP用户认证
5.1配置webmail系统
  1.安装squirrlmail(使用yum方式,会自动安装httpdphp

[root@mail ~]# yum install squirrelmail* -y

 2.创建及调整数据目录、附加目录(如果没有特殊需求也可不做此步,以及第3步的最后两项也不用更改,使用默认值)

[root@mail ~]# cd /var/www/html/mail/
[root@mail mail]#mkdir attach data
[root@mail mail]#chown –R daemon.daemon attach data
[root@mail mail]#chmod 730 attach

   3.修改config.php配置文件(如果没有该文件,拷贝模板文件config_default.php,在进行修改)
注:/usr/share/squirrelmail目录连接到网站根目录,而不要直接移到根目录下,会出现无法找到或打开默认配置文件。

[root@mail ~]# ln -s /usr/share/squirrelmail/ /var/www/html/mail
[root@mail ~]# cd /var/www/html/mail/config
[root@mail config]# vi config.php
$squirrelmail_default_language = 'zh_CN';
$default_charset          = 'zh_CN.UTF-8';
$domain                 = 'lwb.com';
$smtpServerAddress      = 'localhost';
$smtpPort               = 25;
$imap_server_type       = 'dovecot';
$imapPort               = 143;
$data_dir                 = '/var/www/html/mail/data/';
$attachment_dir           = '/var/www/html/mail/attach/';

4.重启httpd服务

[root@mail ~]# service httpd restart
[root@mail ~]# chkconfig httpd on

5.2设置SMTP用户认证
     1.安装于“cyrus”相关的软件包(默认系统已经安装)
     2.修改main.cf配置文件,添加如下配置项

[root@mail ~]#vi /etc/postfix/main.cf          //添加下面内容
smtpd_sas1_auth_enable = yes
smtpd_sas1_security_options = noannonymous
mynetworks = 127.0.0.1
smtpd_recipient_restrictions=permit_mynetworks,permit_sas1_authenticated,reject_unauth_destination

3.启动saslauthd服务

[root@mail ~]# service saslauthd restart
[root@mail ~]# chkconfig saslauthd on

4.重启postfix服务

[root@mail ~]# service postfix restart

6.建立邮箱用户(这里邮箱用户就是系统用户,为保证安全性,不允许登陆系统那个),然后直接在客户端浏览器中输入http://mail.lwb.com/webmail/,web登陆页面中输入邮件用户账号和密码,即可进行收发邮件。
 
总结:
设置邮件群发功能
 修改/etc/aliases文件,在该文件中,每一行对应为一条别名(这里可以把别名理解为组,把用户加入别名中,给别名发邮件,别名中的所有用户就会收到邮件)设置记录。设置后执行“newaliases”命令,以便重新生成“/etc/aliases.db”数据库文件。
例:

[root@mail ~]#vi /etc/aliases
zu:user1,user2,user3,user4
[root@mail ~]#newaliases

限制用户可发送的邮件大小
/etc/postfix/main.cf配置文件中,添加如下配置项,该配置项对系统用户和虚拟邮件用户同时起作用,根据实际情况设置邮件大小限制。“20971520”表示20M

[root@mail ~]# vi /etc/postfix/main.cf
message_size_limit = 20971520

限制用户的邮箱空间大小
Postfix邮件系统中,根据邮件用户的类型、邮件存储的方式不同,可以分别采取不同的方式来限制用户的邮箱空间大小。下面是三种方式来限制用户的邮箱大小,使用时应根据Postfix服务器的具体情况进行选择。
u     Mailbox_size_limit配置参数:主要针对使用Mailbox邮件存储方式的情况,默认的限制值为50MB。该配置参数对系统用户起作用。
u     Virtual_mailbox_limit配置参数:主要针对使用虚拟邮件用户的情况,默认的值也是50MB。安装了VDA补丁以后,该配置参数对使用MailboxMaidir存储方式的用户都起作用。
u     Quota磁盘配额功能:主要针对Linux系统用户作为邮件用户,可以直接使用Linux中的quota磁盘配额功能。这种方式对使用MailboxMaildir存储方式的用户都起作用。
为了避免对Postfix邮件系统的干扰,可以先暂时关闭防火墙和selinux服务。如果还是不能出现预期结果,就从前往后逐步检查配置是否正确。

[root@mail ~]#chkconfig –level 35 iptables off
[root@mail ~]#vi /etc/selinux/config
SELINUX=disabled
[root@mail ~]#reboot

 
 
总结与分析:
如果Postfixdovecot都是rpm包安装,而squirrelmail程序包、中文语言包是tar软件包,如果出现以下问题。
需要在/var/www/html/mail/data,将创建的data目录的属主由设置为的daemon改为apache即可解决该问题。
在编译安装软件包时,有时候需要给特定的目录或文件设置属主、属组,这些都是在做软件包时特定要求的系统用户来执行,当然root用户也可执行。
1:在做Discuz!论坛,释放出来的部分文件或目录需要设置属主为daemon
2:在做Webmail邮件页面时,创建的数据目录data和附加目录attach,需要daemon的属主和属组。

本文出自 “刘文斌” 博客,谢绝转载!

0人
了这篇文章
类别:linux服务技术圈()┆阅读()┆评论() ┆ 推送到技术圈返回首页

文章评论

 
 

发表评论            

2011-2012跨年度有奖征文:项目回忆录
昵  称:
登录  快速注册
验证码:

请点击后输入验证码博客过2级,无需填写验证码

内  容: