【postfix系列之一】编译安装Postfix邮件服务器

一、安装前的准备工作

邮件依赖于DNS系统,所以安装postfix之前,要把DNS给弄好。如果系统有sendmail,需要把sendmail关掉

由于是编译安装postfix,所以如果有rpm的postfix,要删除掉,并且把postfix用户等信息也删除掉。因为我后面要配合做mysql认证,好像rpm的postfix不支持mysql认证,我也没有验证过,为了保险起见,直接源码来安装了!

创建postfix用户及组

注:这里不要为了偷懒而不去删除postfix用户,postfix的rpm包安装好之后,postfix用户的UID和GID是89,如果这里以这样一个ID去运行服务,后面会出一些错误!所以最好自己创建一个用户,ID号大于500的。我这里使用的是2525,也不建议大家改,因为这里一改,后面很多很多地方,都需要改。postfix搞起来本身就非常的麻烦!

安装编译环境及依赖软件包

有些源里可能没有perl-Unix-Syslog这个包,可以使用下面的命令来下载安装

还有perl-GD这个包,地址如下,下载完之后,使用yum localinstall来安装,因为这个有依赖关系,建议使用dag的源,这些包dag源里都有,dag源还是很给力的,顶一下!

 

启动saslauthd服务及mysql

二、开始安装postfix

开始安装

 注:上面的命令要注意的是根据自己的情况去修改一些东西。我这里是64位的系统,所以mysqlclient指的是/usr/lib64/,如果是32位的系统,就是/usr/lib/ 否则会报/usr/bin/ld: cannot find -lmysqlclient

安装完成后,可以看到postfix提示生成别名二进制文件

我这里准备搭建的是企业级的邮件系统,需要支持虚拟用户的,本地用户测试这一些东西,现在就先不搞了!

提供脚本管理postfix启动与停止,把下面的内容放在/etc/init.d/postfix里面

为脚本添加执行权限,并加入开机启动

为postfix开户基于cryus-sasl的认证功能

使用以下命令验正postfix是否支持cyrus风格的sasl认证,如果您的输出为以下结果,则是支持的:

添加以下内容:

注意:
1、在postfix的配置文件中,参数行和注释行是不能处在同一行中的;
2、任何一个参数的值都不需要加引号,否则,引号将会被当作参数值的一部分来使用;
3、每修改参数及其值后执行 postfix reload 即可令其生效;但若修改了inet_interfaces,则需重新启动postfix;
4、如果一个参数的值有多个,可以将它们放在不同的行中,只需要在其后的每个行前多置一个空格即可;postfix会把第一个字符为空格或tab的文本 行视为上一行的延续;

三、安装Courier authentication library

courier-authlib是Courier组件中的认证库,它是courier组件中一个独立的子项目,用于为Courier的其它组件提供认证服务。其认证功能通常包括验正登录时的帐号和密码、获取一个帐号相关的家目录或邮件目录等信息、改变帐号的密码等。而其认证的实现方式也包括基于PAM通过/etc/passwd和/etc/shadow进行认证,基于GDBM或DB进行认证,基于LDAP/MySQL/PostgreSQL进行认证等。因此,courier-authlib也常用来与courier之外的其它邮件组件(如postfix)整合为其提供认证服务。

修改/etc/authdaemonrc 文件

配置通过MySQL认证,修改/etc/authmysqlrc,其中2525,2525 为postfix 用户的UID和GID。

提供SysV服务脚本及添加共享库文件并启动服务

由于是socket的方式,所以没有端口,验证一下进程有没启

新建虚拟用户邮箱所在的目录,并将其权限赋予postfix用户:

接下来配置SMTP 认证,编辑 /usr/lib64/sasl2/smtpd.conf ,确保其为以下内容:

四、让postfix支持虚拟域和虚拟用户并为postfix配置dovecot

支持虚拟域和虚拟用户,编辑/etc/postfix/main.cf,添加如下内容:

配置dovecot

编辑dovecot通过mysql认证的文件

启动dovecot服务:

五、安装Extmail和Extman

Extmail是一款国人开发的开源的webmail工具,主要是使用perl写的。Extmail用于用户的登陆注册,发送接收邮件等。Extman是Extmain的管理工具,主要用于管理员来管理Extmail的信息,比如添加虚拟用,添加用户等!

下载地址:http://www.extmail.org/cgi-bin/download.cgi

安装Extmail

修改Extmail的主配置文件

建立extmail的临时文件目录及session目录

apache相关配置

由于extmail要进行本地邮件的投递操作,故必须将运行apache服务器用户的身份修改为您的邮件投递代理的用户;如果apache打开了SUEXEC,需要配置suexec,挺麻烦的,我是直接关掉了

建立Extmail虚拟主机配置文件

安装及配置Extman

修改主配置文件

而后修改cgi目录的属主:

导入Extman的数据库

授予用户extmail访问extmail数据库的权限

为Extman创建临时目录并给予权限

全部完成后,就可以通过IP地址或者域名来访问Extmail了。

extmail的首页,可以在域名那里输入你的域名,然后点下面的注册来注册一个用户,不过默认只有一个extmail的域,所以我们需要登陆Extman来管理域列表,添加一个我们自己的虚拟域

Extmail-index

点登录邮箱那个下拉三角,选择登录邮箱管理,默认的管理员账号和密码是:

 

Extmail-to-extman

Extman-log

很简单,一看就知道是做什么的,不过多解释了。

Extman-index

 六、配置Extman后台显示图形日志

我们点到图形日志,发现全是叉叉!

extmail-graph

 

这里需要安装一下perl的插件,还有服务需要启动一下

启动相关服务并加入开机启动

mail-graphok

 

七、配置mail日志每天回滚

一个简单东西,但是这个也是很重要的,试想一下,一个邮件的日志达到GB级别,分析起来也是很吃力的。如果能按日来每天自动回滚,这个日志不会太大,也方便查看分析某一天的日志。我们只需要使用lgoroute来简单的配置一下就可以了

这样做完之后,就可以把日志回滚到/data/maillog/里面了

Bug Fixd:

一、启动报错

错误解决:

二、使用POP协议认证报错

错误解决:

三、登陆的时候不断提示输入用户名密码

错误解决:

四、SASL认证失败

错误解决:

五、登陆报错

错误解决:

六、启动apache报错

目录明明是存在的,而且看日志是报403

错误解决:

七、打开Extmail报错

错误解决

八、不显示验证码

如下图

extmail-yanzhengma

查看apache的错误日志报如下

 错误解决:

 

extmail-yanzhengma-ok

 

九、启动dovecot报错

有可能是IPV6的支持被关掉了,改下配置文件,把监听IPV6地址的选项去掉即可

FIX:

十、安装完maildrop后,图形又不显示了

本来是好的,但是安装完maildrop之后,发现图形又不显示了,裂图了,这是因为安装完maildrop之后,邮件的用户修改了,如果没有修改,是不会出现这个情况的,只需要修改一下一个目录的权限即可。

 

发表评论

电子邮件地址不会被公开。 必填项已用*标注