编译安装Postfix
前期准备工作
[root@mail ~]# rpm -qa | grep cyrus
cyrus-sasl-plain-2.1.22-5.el5_4.3
cyrus-sasl-devel-2.1.22-5.el5_4.3
cyrus-sasl-lib-2.1.22-5.el5_4.3
cyrus-sasl-2.1.22-5.el5_4.3
1.停用sendmail服务,以避免冲突
[root@mail ~]# service sendmail stop
[root@mail ~]# chkconfig --level 35 sendmail off
2.获得源码文件包
- 源程序包:postfix-2.4.6.tar.gz
- VDA补丁包:postfix-2.4.6-vda-ng.patch.gz
vda补丁用于支持对虚拟邮件用户设置邮箱空间配额 postfix用户的UID为1000,所属组为postfix,附加组为postdrop,且不创建宿主目录,禁止直接登录到本地系统
3.添加运行邮件系统的帐号
用户帐号 postfix ,组帐号 postfix、postdrop
[root@mail ~]# groupadd -g 1200 postdrop
[root@mail ~]# groupadd -g 1000 postfix
[root@mail ~]# useradd -M -u 1000 -g postfix -G postdrop -s /sbin/nologin postfix
4.解压释放源码包、合并VGA补丁
[root@mail ~]# tar zxvf postfix-2.4.6.tar.gz
[root@mail ~]# gunzip postfix-2.4.6-vda-ng.patch.gz
[root@mail ~]# cd postfix-2.4.6
[root@mail postfix-2.4.6]# patch -p1 < ../postfix-2.4.6-vda-ng.patch
- postdrop组的gid为1200,postfix用户的uid、gid为1000 —— 主要是为了和普通的系统用户区分开,实际上用什么数字并没有严格的限制
- 要在postfix的源码目录下打补丁,执行: patch -p1 < /补丁文件所在目录/postfix-2.4.6-vda-ng.patch
5.预配置编译参数
- 注意参考 README_FILES 子目录中的说明文档
- 添加MySQL数据库查询、SASL认证支持
[root@mail postfix-2.4.6]# make makefiles \
> 'CCARGS=-DHAS_MYSQL -I/usr/local/mysql/include/mysql \
> -DUSE_SASL_AUTH \
> -DUSE_CYRUS_SASL -I/usr/include/sasl' \
> 'AUXLIBS=-L/usr/local/mysql/lib/mysql -lmysqlclient -lz -lm \
> -L/usr/lib/sasl2 -lsasl2 '
Postfix Installation From Source Code
- CCARGS参数:为C语言编译器提供额外的参数(C-language Compiler Arguments ),-I选项(字母i的大写)指出额外的头文件的存放目录
- AUXLIBS参数:指出位于标准位置之外的额外/辅助的函数库(Auxiliaries Libraries),-lmysqlclient、-lz、-lm、-lsasl2中的”l“为字母L的小写 在安装过程中,会提示用户设置一些参数,可以直接回车,接受默认值即可,至此即可完成postfix的安装
- 配置postfix支持TLS加密传输:
[root@mail postfix-2.4.6]# make makefiles \
> 'CCARGS=-DHAS_MYSQL -I/usr/local/mysql/include/mysql \
> -DUSE_SASL_AUTH \
> -DUSE_TLS \
> -DUSE_CYRUS_SASL -I/usr/include/sasl' \
> 'AUXLIBS=-L/usr/local/mysql/lib/mysql -lmysqlclient -lz -lm \
> -L/usr/lib/sasl2 -lsasl2 \
> -lssl -lcrypto '
Postfix的主要目录
- 配置文件目录:/etc/postfix/
- 服务程序目录:/usr/libexec/postfix/
- 邮件队列目录:/var/spool/postfix/*
- incoming-传入:刚接收到的邮件
- active-活动:正在投递的邮件
- deferred-推迟:以前投递失败的邮件
- hold-约束:被阻止发送的邮件
- corrupt-错误:不可读或不可分析的邮件
- 邮件管理程序目录:/usr/sbin/*
- postalias:用于构造、修改和查询别名表
- postmap:用于构造、修改或者查询查询表
- postconf:用于显示和编辑main.cf配置文件
- postfix:用于启动、停止postix,要求root用户权限
- postqueue-用于管理邮件队列,一般用户使用
- postsuper-用于管理邮件队列,要求有root用户权限
After any changes are made to Postfix configuration files,
it’s normally best to reload them into the daemon with the following command:
# /etc/init.d/postfix reload
Postfix的配置文件
- /etc/postfix/master.cf
- master主程序的配置文件
- /etc/postfix/main.cf
- postfix服务的配置文件
- 辅助配置工具 postconf
- 执行 postconf ,查看当前的有效配置
- 执行 postconf -n ,查看非默认配置
- 执行 postconf -d ,查看默认配置
简化配置文件
[root@mail ~]# cd /etc/postfix
[root@mail postfix]# postconf -n > main2.cf
[root@mail postfix]# mv main.cf main.cf.bak
[root@mail postfix]# mv main2.cf main.cf
Postfix的日志文件
- /var/log/maillog
- 记录了postfix服务的邮件传递等过程信息
- 常用分析方法
- 动态跟踪日志变化
tail -f /var/log/maillog
- 关键词搜索
egrep '(reject|warning|error|fatal|panic):' /var/log/maillog
Postfix的控制启动
- Postfix服务控制
- 使用/usr/sbin/postfix程序
- 常见控制参数:start、stop、reload、check
[root@mail postfix]# postfix start
postfix/postfix-script: starting the Postfix mail system
[root@mail postfix]# netstat -antp | grep :25
tcp 0 0 0.0.0.0:25 0.0.0.0:* LISTEN 7830/master