没有合适的资源?快使用搜索试试~ 我知道了~
首页Postfix安装配置 Postfix安装配置
Postfix安装配置 Postfix安装配置
需积分: 13 134 浏览量
更新于2023-05-25
评论
收藏 822KB PDF 举报
Postfix安装配置 Postfix安装配置 Postfix安装配置 Postfix安装配置 Postfix安装配置 Postfix安装配置
资源详情
资源评论
资源推荐

Centos5.2 搭建 Postfix 邮件系统
序言:
用了 5天的时间,终于现实了我要达到目标.最开始的 2天其实已经按着网上的教程现实了本次试验的目标.但是其中很多错误
的排查,并没有及时的纪录和思考.以及对整个系统所需要的软件包功能,也没有多少理解.总觉得第一次的试验多少是侥幸成功.糊
里糊涂的一次试验.因此,为了在验证一次,加深理解.我又从新建了虚拟机,从新安装操作系统,从新搭建 postfix 邮件系统.
多哩罗嗦写下这长一个文档,尽可能的纪录下了每一步操作,及产生错误时解决的方法.
从开始对 linux的一无所知到搭建起这个系统,算来已经有 3,4个月了.当我看到 postfix时,这个系统好大,用了如此多的软件
包.我想我要把它搭起来,会是一件伟大的事,在本论坛的 mail服务器版看了很多很多安装教程,把<POSTFIX权威指南>粗粗的看
了一次.看 postfix 的安装教程似乎不是很困难,可是当我一步一步做下来的时候,几乎每一步都会出错,有的错误一个小时两个小
时都解决不了,我想过放弃,太难了.我还对 linux 还不了解,等以后我了解多了,在搞它.可我又想,这么复杂的一个系统,我要把它拿
下,多有成就感.好吧,有错不怕,见一个解决一个,能解决一个是一个,大不了最后失败.
两天的时间,解决着每个出现的错误,解决一个,我就似乎看到成功不远了.最后当我现实了我想要到达的目标时,感觉迷迷糊
糊的,什么都没明白,就是解决错误了.于是我想在从来一次吧.做一件事,总的让自己清楚是做了些什么.当然最重要的是把过程记
录下来,以后多练习,多总结.总有一天我不会再用一周的时间才能把它搞定.第二次依旧有很多出现了大量错误,加上我边做别记录
操作,花了 3 天时间.
在此次试验过程中,很多的错误都是由于输入的参数和配置错误引起的,仔细要仔细.试验不是为了一点错都不出错就成功的,
那样似乎没有任何成就感,而且网上到处都是基本的安装配置教程,学习不是为了按着教程一步不犯错的完成,这样似乎失去了意
义,就是要出错,学的就是一种排查和解决错误的能力.
到现在越学,越觉得 linux 太复杂了,太难了.似乎依旧不得要领,无法入门,写这么多废话,希望能和大家分享和探讨下学习
linux 方法和经验.欢迎大家批评指正.
在此,感谢网上那些分享教程的朋友,感谢本论坛的热心朋友,虽然我很少提问题,但问的问题,总会获得论坛里热心的朋友回
答.
From the Internet,For the Internet.
By Drvial

一 系统运行环境
1.1 硬件要求
基本上,能够安装 linux 系统就能够满足硬件的要求…….
1.2 运行环境
操作系统为 centos 5.2+VMware-workstation6.0.
我使用的 VM6 虚拟机和 Centos5.2 做的本次试验.
1.3 所需软件
1, Centos 服务器操作系统
2, Postfix 邮件服务器系统的 smtp 服务器,在邮件服务器系统中充当 MTA 角色.
3, Mysql 开源数据库,用于存储邮件系统虚拟域,虚拟帐户信息.
4, apache web服务器软件,用于 extman 对邮件系统的后台管理,extmail 的 web 邮件收发.
5, php extman和 extmail 需要使用 php 解析
6, cyrus-sasl 用于实现身份验证的 smtp 服务器
7, courier-authlib 现实带验证的 pop3 服务器
8, courier-imap 用于实现 pop3,imap 收邮件功能
9,extman 用于邮件服务器的后台管理
10,extmail 用于实现 webmail
11,DBD-mysql 用于解决依赖关系,extmail 将会用到
12,unix-syslog 用于解决依赖关系,extmail 将会用到
13,BerkeleyDB 用于提供数据库效率
14, openssl 提供安全的邮件服务器连接 (本次试验未配置此功能)
15, maildrop 用于替代 postfix 的 mta 功能,邮件投递代理,将收到的邮件转发到用户的邮箱目录(本次试验未配置此功
能)
16,clamav 反病毒工具 (本次试验未配置此功能)
17,SpamAssassin 反垃圾邮件过滤器 (本次试验未配置此功能)
18,amavisd-new
是一个连接 MTA 和内容检测工具 (本次试验未配置此功能)
二 准备工作
2.1 下载所需要的软件
按照上面给出的地址下载,默认情况,本文所有软件包都放置在/usr/local/src 下.所使用的安装包都为源码包.
2.2 禁用服务和软件
默认环境下,有部分服务和软件已被起用及安装到系统里,这些都影响到本系统的安装.所以需要禁止和卸载.
2.2.1 禁用 selinux
Selinux 是 linux 系统中一个强制性的安全机制,但也带来了不少麻烦,为了避免不必要的麻烦,还是先关了吧。我之前
在 Fedora cora 5 上安装邮件服务器时就因为没有关掉 selinux ,而苦恼了一段时间。
[root @test root]# vi /etc/selinux/conifg
# This file controls the state of SELinux on the system.
# SELINUX= can take one of these three values:
# enforcing - SELinux security policy is enforced.
# permissive - SELinux prints warnings instead of enforcing.
# disabled - SELinux is fully disabled.
将 SELINUX=enforcing
改成
SELINUX=disabled
# SELINUXTYPE= type of policy in use. Possible values are:
# targeted - Only targeted network daemons are protected.
# strict - Full SELinux protection.
SELINUXTYPE=targeted

2.2.2 卸载 sendmail
默认安装系统时,sendmail
查看系统是否安装 sendmail
[root@mail mysql]# rpm -qa | grep sendmail
sendmail-8.13.8-2.el5
卸载
[root@mail mysql]# rpm -e sendmail
error: Failed dependencies:
/usr/sbin/sendmail is needed by (installed) redhat-lsb-3.1-12.3.EL.el5.centos.i386
smtpdaemon is needed by (installed) mdadm-2.6.4-1.el5.i386
smtpdaemon is needed by (installed) fetchmail-6.3.6-1.1.el5.i386
smtpdaemon is needed by (installed) mutt-1.4.2.2-3.0.2.el5.i386
提示出错,有相关依赖关系,使用--nodeps 强制卸载
[root@mail mysql]# rpm -e --nodeps sendmail
warning: /var/log/mail/statistics saved as /var/log/mail/statistics.rpmsave
会提示警告不要管,继续.
2.2.3 卸载 httpd
[root@mail bin]# rpm -qa |grep httpd
httpd-2.2.3-11.el5_1.centos.3
[root@mail bin]# rpm -e --nodeps httpd
卸载 sasl
[root@mail mysql]# rpm -qa | grep sasl
cyrus-sasl-plain-2.1.22-4
cyrus-sasl-lib-2.1.22-4
cyrus-sasl-2.1.22-4
[root@mail mysql]# rpm -e --nodeps cyrus-sasl-plain cyrus-sasl-lib cyrus-sasl
2.3 创建邮件系统运行时所需要的用户和组
因为安全和管理方面的考虑,一些软件我们不希望其以 root用户为属主而运行,甚至有些软件没有为其创建专用用户,安装
不能进行.因此,我们要预先创建 postfix 系统所用到的用户和组.对于 centos 或 redhat 等发行版,用命令 useradd 创建用户时,
也就同时创建了一个同名的组.而另外一些 linux 发行版创建用户时不会创建同名组,这需要单独执行 groupadd 来创建所需组.
下面是我们需要创建的用户和组,及其说明.
用户名 组名 作用 备注
mysql mysql 数据库 mysql 运行用户
extmail extmail 虚拟邮件帐号所使用用户及组 uid:501,gid:501
postfix postfix postfix主程序使用帐号和组
postdrop postfix setid_group setgid_group=postdrop
#这里有 2 个值得注意的地方,他们是 extmail 用户,组及 postdrop.在 postfix 邮件系统中,有好几个程序是以 extmail
来运行,postdrop 是 postfix 主配置文件 main.cf 里标明的, setgid_group=postdrop.
三 安装软件包
3.1 Mysql 安装和配置
3.1.1 编译安装 mysql
[root@mail /]# cd /usr/local/src
[root@mail src]# ls
apache mysql php postfix
[root@mail src]# cd mysql/
[root@mail mysql]# ls

mysql-5.1.36.tar.gz
[root@mail mysql]# tar –zxvf mysql-5.1.36.tar.gz
[root@mail mysql]# cd mysql-5.1.36
[root@mailmysql-5.1.36]#./configure --prefix=/usr/local/mysql
--enable-thread-safe-client --enable-local-infile --with-charset=gbk --with-low-memory
#我在这里出错了,提示: configure: error: No curses/termcap library found
#google说是缺少 ncurses 包,挂载安装盘,找到 ncurses-devel-5.5-24.20060715.i386.rpm 安装
[root@mailmysql-5.1.36]#make
[root@mailmysql-5.1.36]#make install
make[4]: Entering directory `/data0/software/mysql-5.1.34/mysql-test'
#到这里时候会等待很久,我开始以为出错了,强行终止了,google 发行已经有前人没耐心犯过错了~
3.1.2 MySQL配置文件
如果你想要设置一个选项文件,使用support-files目录中的一个作为模板。在这个目录中有 4 个模板文件,是根据
不同机器的内存定制的。
[root@mail mysql-5.1.36]# cp support-files/my-medium.cnf /etc/my.cnf
[root@mail mysql-5.1.36]# cp support-files/mysql.server /etc/rc.d/init.d/mysqld
3.1.3 设置开机自动启动
[root@mail mysql-5.1.36]# chmod 700 /etc/rc.d/init.d/mysqld
[root@mail mysql-5.1.36]# chkconfig --add mysqld
[root@mail mysql-5.1.36]# chkconfig --level 345 mysqld on
[root@mail mysql-5.1.36]# cd /usr/local/mysql/
3.1.4 初始化授权表
用 mysql_install_db 创建 MySQL
[root@mail mysql]# ./bin/mysql_install_db --user=mysql
设定目录访问权限,并设置 mysql,root 帐号访问权限。
[root@mail mysql]# chown -R root .
[root@mail mysql]# chgrp -R mysql .
[root@mail mysql]# chown -R mysql var
3.1.5 运行 mysql
[root@mail mysql]# bin/mysqld_safe --user=mysql &
(如果没有问题的话,应该会出现类似这样的提示:
[1] 42264
#Starting mysqld daemon with databases from /usr/local/mysql/var
如果出现 mysql ended这样的语句,表示 Mysql没有正常启动,你可以到 log中查找问题,Log文件的通常在 /etc/my.cnf
中配置,大多数问题是权限设置不正确引起的.
日志文件路径
mysql安装路径(/usr/local/mysql)./var/主机名.err
我的错误日志路径 /usr/local/mysql/var/mail.drvial.com.err
3.1.6 测试 mysql
[root@mail mysql]# bin/mysqladmin ping
mysqld is alive
[root@mail mysql]# bin/mysqladmin version
bin/mysqladmin Ver 8.42 Distrib 5.1.36, for pc-linux-gnu on i686
Copyright 2000-2008 MySQL AB, 2008 Sun Microsystems, Inc.
This software comes with ABSOLUTELY NO WARRANTY. This is free software,
and you are welcome to modify and redistribute it under the GPL license
Server version 5.1.36-log

Protocol version 10
Connection Localhost via UNIX socket
UNIX socket /tmp/mysql.sock
Uptime: 5 min 56 sec
Threads: 1 Questions: 2 Slow queries: 0 Opens: 15 Flush tables: 1 Open tables: 8 Queries per
second
avg: 0.5
查看 3306 端口是否打开。要注意在防火墙中开放该端口
[root@mail mysql]# netstat -atln
Active Internet connections (servers and established)
Proto Recv-Q Send-Q Local Address Foreign Address State
tcp 0 0 0.0.0.0:3306 0.0.0.0:* LISTEN
3.1.7 设置 root 密码
默认安装密码为空,为了安全你需要修改密码。
[root@mail mysql]#/usr/local/mysql/bin/mysqladmin –u root password 密码
修改环境变量文件/etc/profile,添加 mysql 的 PATH 变量.
[root@mail mysql]#vi /etc/profile
在以下字段添加添加 pathmunge /usr/local/mysql/bin
# Path manipulation
if [ "$EUID" = "0" ]; then
pathmunge /sbin
pathmunge /usr/sbin
pathmunge /usr/local/sbin
pathmunge /usr/local/mysql/bin
也可以做符号连接如下:
[root@mail mysql]#cd bin
[root@mail mysql]#for i in *; do ln -s /usr/local/mysql/bin/$i /usr/bin/$i; done
这样既可以在任何目录路径下,都可以在 shell 提示符下直接执行/usr/local/mysql/bin 下的管理程序.
3.1.8 添加连接库
postfix安装时候会用到,否则报错.
[root@mail mysql]#echo “/usr/local/mysql/lib/mysql” >> /etc/ls.so.conf
[root@mail mysql]# ldconfig
Ok!Mysql安装完毕.
3.2 安装 apache
3.2.1 编译安装 apache
[root@mail src]# cd apache
[root@mail apache]# ls
httpd-2.2.11.tar.gz
[root@mail apache]# tar -zxvf httpd-2.2.11.tar.gz
[root@mail httpd-2.2.11]# ./configure --prefix=/usr/local/apache
--enable-so --enable-rewrite --with-zlib --enable-mods-shared=most
[root@mail httpd-2.2.11]#make
[root@mail httpd-2.2.11]#make install
3.2.2 设置开机自启动
[root@mail apache]# cd /usr/local/apache/bin/
[root@mail bin]# cp apachectl /etc/rc.d/init.d/httpd
[root@mail bin]# chmod 700 /etc/rc.d/init.d/httpd
剩余24页未读,继续阅读















安全验证
文档复制为VIP权益,开通VIP直接复制

评论0