您的位置:首页 > 其它

RHEL4上搭建基于postfix的全功能邮件服务器

2010-04-23 11:58 639 查看
RHEL4上搭建基于postfix的全功能
邮件服务器(全目前最新源码)

本文凝聚了作者不少的安装经验,写出来供各位同仁参考指正,也为自己留一个“备份”,以便以后安装时作为参照!安
装过程中借鉴了不少google出来的文章,是你们先行的足迹为作者今天的成功打下了基础,在此先行谢过!

转载请注明出处:http://marion.cublog.cn

系统逻辑结构:

前提:使用时请确保您已经配
置好指向此邮件服务器MX记录及其它DNS设置;本示例中的域名为benet.org,邮件服务器FQDN为mail.benet.org、www.benet.org
、postfix.benet.org,IP地址为
192.168.1.6;同时,如果您的服务器事先已经安装了sendmail,请卸载之;

所用软件包:

Postfix-2.4.5

Mysql-5.0.45

Sasl-2.1.22

DB-4.5.20

Openssl-0.98e

httpd-2.2.4

Php-5.2.3

courier-authlib-0.59.3

courier-imap-4.1.3

Extmail-1.0.2

Extman-0.2.2

maildrop-2.0.4

clamav-0.91.2

amavisd-new

SpamAssassin-3.2.3

一、安装mysql-5.0.45

#groupadd mysql

#useradd -g mysql -s
/bin/false -M mysql

#tar zxvf mysql-5.0.45.tar.gz

#cd
mysql-5.0.45

#./configure /

--prefix=/usr/local/mysql /

--enable-thread-safe-client
/

--enable-local-infile /

--with-charset=gbk /

--with-extra-charset=all
/

--with-low-memory

make

make install

cp
support-files/my-medium.cnf /etc/my.cnf

cd /usr/local/mysql

chown
-R mysql .

chgrp -R mysql .

bin/mysql_install_db --user=mysql

chown
-R root .

chown -R mysql var

bin/mysqld_safe --user=mysql &

cd /usr/local/src/mysql-5.0.45

cp support/mysql.server
/etc/rc.d/init.d/mysqld

chmod 700 /etc/rc.d/init.d/mysqld

加入自动启动
服务队列:

chkconfig --add mysqld

chkconfig --level 345 mysqld on

测试

/usr/local/mysql/bin/mysqladmin ping

/usr/local/mysql/bin/mysqladmin
version

/usr/local/mysql/bin/mysql

添加root密码

#/usr/local/mysql/bin/mysqladmin
-uroot -p 旧密码 password 新密码

说明:此时mysql的root用户的密码为空

配置库文件搜索路径

#
echo "/usr/local/mysql/lib/mysql" >> /etc/ld.so.conf

#
ldconfig -v

添加/usr/local/mysql/bin到环境变量PATH中

#export
PATH=$PATH:/usr/local/mysql/bin

二、安装openssl-0.9.8e

tar
zxvf openssl-0.9.8e.tar.gz

cd openssl-0.9.8e

./config shared zlib

make

make test

make install

mv /usr/bin/openssl
/usr/bin/openssl.old

mv /usr/include/openssl /usr/include/openssl.old

rm
/usr/lib/libssl.so

ln -s /usr/local/ssl/bin/openssl /usr/bin/openssl

ln
-s /usr/local/ssl/include/openssl /usr/include/openssl

ln -sv
/usr/local/ssl/lib/libssl.so.0.9.8 /usr/lib/libssl.so

配置库文件搜索路径

#
echo "/usr/local/ssl/lib" >> /etc/ld.so.conf

# ldconfig -v

检测安装结果

# openssl version

OpenSSL 0.9.8e 23 Feb 2007

三、
安装sasl-2.1.22

tar zxvf cyrus-sasl-2.1.22.tar.gz

cd
cyrus-sasl-2.1.22

./configure --prefix=/usr/local/sasl2 /

--disable-gssapi
/

--disable-anon /

--disable-sample /

--disable-digest /

--enable-plain
/

--enable-login /

--enable-sql /

--with-mysql=/usr/local/mysql
/

--with-mysql-includes=/usr/local/mysql/include/mysql
--with-mysql-libs=/usr/local/mysql/lib/mysql
--with-authdaemond=/usr/local/courier-authlib/var/spool/authdaemon/socket

make

make install

  如果出现下面的错误:

auth_getpwent.c:48:20: des.h:
No such file or directory

make[3]: *** [auth_getpwent.o] Error 1

make[3]: Leaving directory `/tmp/cyrus-sasl-2.1.21/saslauthd'

make[2]: *** [all] Error 2

make[2]: Leaving directory
`/tmp/cyrus-sasl-2.1.21/saslauthd'

make[1]: *** [all-recursive]
Error 1

make[1]: Leaving directory `/tmp/cyrus-sasl-2.1.21'

make: *** [all] Error 2

  修改/tmp/cyrus-sasl-2.1.21/saslauthd
/Makefiles内的变量CFLAGS添加-I/opt/openssl/include/openssl

或者直接

mail~#cp /tmp/cyrus-sasl-2.1.21/mac/libdes/public/des.h
/tmp/cyrus-sasl-2.1.21/

关闭原有的sasl:

# mv
/usr/lib/libsasl2.a /usr/lib/libsasl2.a.OFF

# mv
/usr/lib/libsasl2.la /usr/lib/libsasl2.la.OFF

# mv
/usr/lib/libsasl2.so.2.0.19 /usr/lib/libsasl2.so.2.0.19.OFF

# mv
/usr/lib/sasl2 /usr/lib/sasl2.OFF

# rm /usr/lib/libsasl2.so

# rm
/usr/lib/libsasl2.so.2

# ln -sv /usr/local/sasl2/lib/* /usr/lib

postfix
2.3以后的版本会分别在/usr/local/lib和/usr/local/include中搜索sasl库文件及头文件,故还须将其链接至此目录
中:

# ln -sv /usr/local/sasl2/lib/* /usr/local/lib

# ln -sv
/usr/local/sasl2/include/sasl/* /usr/local/include

创建运行时需要的目录并调试
启动

# mkdir -pv /var/state/saslauthd

#
/usr/local/sasl2/sbin/saslauthd -a shadow pam -d

启动并测试

#
/usr/local/sasl2/sbin/saslauthd -a shadow pam

#
/usr/local/sasl2/sbin/testsaslauthd -u root -p root用户密码

配置库文件搜索路径

#
echo "/usr/local/sasl2/lib" >> /etc/ld.so.conf

# echo
"/usr/local/sasl2/lib/sasl2" >> /etc/ld.so.conf

# ldconfig -v

开机自动启动

# echo "/usr/local/sasl2/sbin/saslauthd -a shadow
pam">>/etc/rc.local

四、安装BerkeleyDB

#tar zxvf
db-4.5.20.tar.gz

#cd db-4.5.20/build_unix

#../dist/configure
--prefix=/usr/local/BerkeleyDB

#make

#make install

修改相应的头文件
指向

# mv /usr/include/db4 /usr/inculde/db4.OFF

# rm
/usr/include/db_cxx.h

# rm /usr/include/db.h

# rm
/usr/include/db_185.h

# ln -sv /usr/local/BerkeleyDB/include
/usr/include/db4

# ln -sv /usr/local/BerkeleyDB/include/db.h
/usr/include/db.h

# ln -sv /usr/local/BerkeleyDB/include/db_cxx.h
/usr/include/db_cxx.h

配置库文件搜索路径

# echo
"/usr/local/BerkeleyDB/lib" >> /etc/ld.so.conf

# ldconfig -v

五、安装httpd-2.2.4

#tar jxvf httpd-2.2.4.tar.bz2

#cd
httpd-2.2.4

#./configure /

--prefix=/usr/local/apache /

--sysconfdir=/etc/httpd
/

--enable-so /

--enable-ssl /

--with-ssl=/usr/local/ssl /

--enable-track-vars
/

--enable-rewrite /

--with-zlib /

--enable-mods-shared=most /

--enable-suexec
/

--with-suexec-caller=daemon

#make

#make install

#echo
"/usr/local/apache/bin/apachectl start" >>
/etc/rc.local(系统启动时服务自动启动)

六、安装php-5.2.3

#jpeg目录

mkdir
/usr/local/jpeg6

mkdir /usr/local/jpeg6/bin

mkdir
/usr/local/jpeg6/lib

mkdir /usr/local/jpeg6/include

mkdir
/usr/local/jpeg6/man

mkdir /usr/local/jpeg6/man/man1

安装zlib

tar xzvf zlib-1.2.2.tar.gz

cd zlib-1.2.2

#不要用--prefix自定义安装目
录,影响gd的安装

./configure

make

make install

安装freetype

tar xzvf freetype-2.1.5.tar.gz

cd freetype-2.1.5

./configure
--prefix=/usr/local/freetype

make

make install

安装libpng

tar xzvf libpng-1.2.5.tar.gz

#不要用--prefix自定义安装目录,影响gd的安装

cd
libpng-1.2.5

cp scripts/makefile.std makefile

make test

make
install

安装jpeg

tar xzvf jpegsrc.v6b.tar.gz

./configure
--prefix=/usr/local/jpeg6 --enable-shared --enable-static

make

make
install

安装GD

tar xzvf gd-2.0.33.tar.gz

./configure
--prefix=/usr/local/gd --with-jpeg=/usr/local/jpeg6 --with-png
--with-zlib --with-freetype=/usr/local/freetype

make

make
install

安装PHP

tar -zvxf php-5.2.3.tar.gz

mkdir -p
/usr/local/php

cd php-5.2.3

./configure --prefix=/usr/local/php /

--with-apxs2=/usr/local/apache/bin/apxs
/

--with-mysql=/usr/local/mysql /

--with-mysqli=/usr/local/mysql/bin/mysql_config
/

--with-xml /

--with-png /

--with-jpeg-dir=/usr/local/jpeg6 /

--with-zlib
/

--with-freetype-dir=/usr/local/freetype /

--with-gd=/usr/local/gd
/

--enable-track-vars /

--enable-mbstring=all

make

make
install

cp php.ini-dist /usr/local/php/lib/php.ini

注:编辑
apache配置文件httpd.conf,以apache支持php

# vi /etc/httpd/httpd.conf

1、添加如
下二行

AddType application/x-httpd-php .php

AddType
application/x-httpd-php-source .phps

2、定位至DirectoryIndex
index.html

修改为:

DirectoryIndex index.php index.html

3、
按照使用习惯,这里将网站根目录指定到/var/www:

找到DocumentRoot “/usr/local/apache/htdocs”


改为:DocumentRoot “/var/www”(后文中我们还会注释掉此行,以启用虚拟主机)

找到<Directory
“/usr/local/apache/htdocs”>

修改为:<Directory “/var/www”>

七、
安装Postfix-2.4.5

1.安装

groupadd -g 2525 postfix

useradd -g
postfix -u 2525 -s /sbin/nologin -M postfix

groupadd -g 2526 postdrop

useradd
-g postdrop -u 2526 -s /bin/false -M postdrop

#tar zxvf
postfix-2.4.5.tar.gz

#cd postfix-2.4.5

#make makefiles
'CCARGS=-DHAS_MYSQL -I/usr/local/mysql/include/mysql -DUSE_SASL_AUTH
-DUSE_CYRUS_SASL -I/usr/local/sasl2/include/sasl
-I/usr/local/BerkeleyDB/include -DUSE_TLS
-I/usr/local/ssl/include/openssl ' 'AUXLIBS=-L/usr/local/mysql/lib/mysql
-lmysqlclient -lz -lm -L/usr/local/sasl2/lib -lsasl2
-L/usr/local/BerkeleyDB/lib -L/usr/local/ssl/lib -lssl -lcrypto'

#make

#make
install

按照以下的提示输入相关的路径([]号中的是缺省值,”]”后的是输入值)

  
install_root: [/] /

  tempdir: [/usr/local/src/ postfix-2.4.5] /tmp

 
 config_directory: [/etc/postfix] /etc/postfix

  daemon_directory:
[/usr/libexec/postfix] /usr/local/postfix/libexec

  
command_directory: [/usr/sbin] /usr/local/postfix/sbin

  
queue_directory: [/var/spool/postfix]

  sendmail_path:
[/usr/sbin/sendmail]

  newaliases_path: [/usr/bin/newaliases]

  
mailq_path: [/usr/bin/mailq]

  mail_owner: [postfix]

  
setgid_group: [postdrop]

html_directory: [no]
/var/www/postfix_html

manpages: [/usr/local/man]
/usr/local/postfix/man

readme_directory: [no]

说明:这里的
postfix将安装在独立的目录/usr/local/postfix中,目的是为了方便管理;您亦可以采用默认安装的方式,可能这样使用起来会更为方
便些;

生成别名二进制文件,这个步骤如果忽略,会造成postfix效率极低:

# newaliases

2.
进行一些基本配置,测试启动postfix并进行发信

#vi /etc/postfix/main.cf

修改以下几项为您需要的配置

myhostname
= mail.benet.org

myorigin = benet.org

mydomain = benet.org

mydestination
= $myhostname, localhost.$mydomain, localhost, $mydomain

mynetworks =
192.168.1.0/24, 127.0.0.0/8

说明:

myorigin参数用来指明发件人所在的域名;

mydestination
参数指定postfix接收邮件时收件人的域名,即您的postfix系统要接收到哪个域名的邮件;

myhostname
参数指定运行postfix邮件系统的主机的主机名,默认情况下,其值被设定为本地机器名;

mydomain参数指定您的域名,默认情况
下,postfix将myhostname的第一部分删除而作为mydomain的值;

mynetworks
参数指定你所在的网络的网络地址,postfix系统根据其值来区别用户是远程的还是本地的,如果是本地网络用户则允许其访问;

inet_interfaces
参数指定postfix系统监听的网络接口;

注意:

1、在postfix的配置文件中,参数行和注释行是不能处在同一行中的;

2、
任何一个参数的值都不需要加引号,否则,引号将会被当作参数值的一部分来使用;

3、每修改参数及其值后执行 postfix reload
即可令其生效;但若修改了inet_interfaces,则需重新启动postfix;

4、如果一个参数的值有多个,可以将它们放在不同的行
中,只需要在其后的每个行前多置一个空格即可;postfix会把第一个字符为空格或tab的文本行视为上一行的延续;

启动
postfix

/usr/local/postfix/sbin/postfix start

连接postfix,验正服务启动
状况:

# telnet localhost 25

Trying 127.0.0.1...

Connected to
localhost.localdomain (127.0.0.1).

Escape character is '^]'.

220
mail.benet.org ESMTP Postfix

ehlo mail.benet.org

250-mail.benet.org

250-PIPELINING

250-SIZE
10240000

250-VRFY

250-ETRN

250-ENHANCEDSTATUSCODES

250-8BITMIME

250
DSN

mail from:root@benet.org

250 2.1.0 Ok

rcpt
to:redhat@benet.org

250 2.1.5 Ok

data

354 End data with
<CR><LF>.<CR><LF>

subject:Mail test!

Mail
test!!!

.

250 2.0.0 Ok: queued as AB94A1A561

quit

221 2.0.0
Bye

Connection closed by foreign host.

切换到redhat用户进行收信:

#
su - redhat

$ mail

Mail version 8.1 6/6/93. Type ? for help.

"/var/spool/mail/redhat":
1 message 1 new

>N 1 root@benet.org

Wed Sep 5 10:59 15/488 "Mail test!"

&

八、为postfix开启基于
cyrus-sasl的认证功能

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

# /usr/local/postfix/sbin/postconf -a

cyrus

dovecot

#vi
/etc/postfix/main.cf

添加以下内容:

############################CYRUS-SASL############################

broken_sasl_auth_clients
= yes

smtpd_recipient_restrictions=permit_mynetworks,permit_sasl_authenticated,reject_invalid_hostname,reject_non_fqdn_hostname,reject_unknown_sender_domain,reject_non_fqdn_sender,reject_non_fqdn_recipient,reject_unknown_recipient_domain,reject_unauth_pipelining,reject_unauth_destination

smtpd_sasl_auth_enable
= yes

smtpd_sasl_local_domain = $myhostname

smtpd_sasl_security_options
= noanonymous

smtpd_sasl_application_name = smtpd

smtpd_banner =
Welcome to our $myhostname ESMTP,Warning: Version not Available!

#vi
/usr/local/lib/sasl2/smtpd.conf

添加如下内容:

pwcheck_method: saslauthd

mech_list:
PLAIN LOGIN

让postfix重新加载配置文件

#/usr/local/postfix/sbin/postfix
reload

# telnet localhost 25

Trying 127.0.0.1...

Connected
to localhost.localdomain (127.0.0.1).

Escape character is '^]'.

220
Welcome to our mail.benet.org ESMTP,Warning: Version not Available!

ehlo
mail.benet.org

250-mail.benet.org

250-PIPELINING

250-SIZE
10240000

250-VRFY

250-ETRN

250-AUTH PLAIN LOGIN

250-AUTH=PLAIN
LOGIN (请确保您的输出以类似两行)

250-ENHANCEDSTATUSCODES

250-8BITMIME

250
DSN

九、让postfix支持虚拟域和虚拟用户

1、编辑/etc/postfix/main.cf,添加如
下内容:

########################Virtual Mailbox
Settings########################

virtual_mailbox_base =
/var/spool/mail

virtual_mailbox_maps =
mysql:/etc/postfix/mysql_virtual_mailbox_maps.cf

virtual_mailbox_domains
= mysql:/etc/postfix/mysql_virtual_domains_maps.cf

virtual_alias_domains
=

virtual_alias_maps =
mysql:/etc/postfix/mysql_virtual_alias_maps.cf

virtual_uid_maps =
static:2525

virtual_gid_maps = static:2525

virtual_transport =
virtual

maildrop_destination_recipient_limit = 1

maildrop_destination_concurrency_limit
= 1

##########################QUOTA Settings########################

message_size_limit
= 14336000

virtual_mailbox_limit = 20971520

virtual_create_maildirsize
= yes

virtual_mailbox_extended = yes

virtual_mailbox_limit_maps =
mysql:/etc/postfix/mysql_virtual_mailbox_limit_maps.cf

virtual_mailbox_limit_override
= yes

virtual_maildir_limit_message = Sorry, the user's maildir has
overdrawn his diskspace quota, please Tidy your mailbox and try again
later.

virtual_overquota_bounce = yes

2、添加为支持虚拟域和虚拟用户所用到的配置文件

编辑/etc/postfix/mysql_virtual_alias_maps.cf ,添加如下内容:

user =
extmail

password = extmail

hosts = localhost

dbname = extmail

table
= alias

select_field = goto

where_field = address

编辑/etc
/postfix/mysql_virtual_domains_maps.cf ,添加如下内容:

user = extmail

password
= extmail

hosts = localhost

dbname = extmail

table = domain

select_field
= description

where_field = domain

编辑/etc/postfix
/mysql_virtual_mailbox_limit_maps.cf ,添加如下内容:

user = extmail

password
= extmail

hosts = localhost

dbname = extmail

table = mailbox

select_field
= quota

where_field = username

编辑/etc/postfix
/mysql_virtual_mailbox_maps.cf ,添加如下内容:

user = extmail

password =
extmail

hosts = localhost

dbname = extmail

table = mailbox

select_field
= maildir

where_field = username

说明:

1、这里用到的数据库及用户的建立可
以后文中的extmail说明部分来实现,您可以参照那一部分来理解这里指定的数据库及其用户名等;

2、以上新建文件亦可以从extman安装文
件中获得,您也可以由此不用手动输入;

3、虚拟用户邮箱目录我这里沿用了/var/spool/mail,你可以指定为别的目录,比如常见到的
/var/mailbox,或者/home/domains等;但如果这里做了修改,请在后文中用到时作了相应的修改;

十、安装
Courier authentication library

http://jaist.dl.sourceforge.net/sourceforge/courier/courier-authlib-0.59.3.tar.bz2

# tar jxvf courier-authlib-0.59.3.tar.bz2

# cd
courier-authlib-0.59.3

./configure /

--prefix=/usr/local/courier-authlib
/

--sysconfdir=/etc /

--without-authpam /

--without-authldap /

--without-authpwd
/

--without-authshadow /

--without-authvchkpw /

--without-authpgsql
/

--with-authmysql /

--with-mysql-libs=/usr/local/mysql/lib/mysql
/

--with-mysql-includes=/usr/local/mysql/include/mysql /

--with-redhat
/

--with-authmysqlrc=/etc/authmysqlrc /

--with-authdaemonrc=/etc/authdaemonrc
/

CFLAGS="-march=i686 -O2 -fexpensive-optimizations" /

CXXFLAGS="-march=i686
-O2 -fexpensive-optimizations"

# make

# make install

#
chmod 755 /usr/local/courier-authlib/var/spool/authdaemon

# cp
/etc/authdaemonrc.dist /etc/authdaemonrc

# cp /etc/authmysqlrc.dist
/etc/authmysqlrc

修改/etc/authdaemonrc 文件

authmodulelist="authmysql"

authmodulelistorig="authmysql"

daemons=10

编辑/etc/authmysqlrc 为以下内容,其中2525,2525 为postfix 用户的UID和GID。

MYSQL_SERVER
localhost

MYSQL_PORT 3306
(指定你的mysql监听的端口,这里使用默认的3306)

MYSQL_USERNAME extmail
(这时为后文要用的数据库的所有者的用户名)

MYSQL_PASSWORD extmail (密码)

MYSQL_SOCKET
/tmp/mysql.sock

MYSQL_DATABASE extmail

MYSQL_USER_TABLE mailbox

MYSQL_CRYPT_PWFIELD
password

MYSQL_UID_FIELD '2525'

MYSQL_GID_FIELD '2525'

MYSQL_LOGIN_FIELD
username

MYSQL_HOME_FIELD concat('/var/spool/mail/',maildir)

MYSQL_NAME_FIELD
name

MYSQL_MAILDIR_FIELD concat('/var/spool/mail/',maildir)

#
cp courier-authlib.sysvinit /etc/init.d/courier-authlib

# chmod 755
/etc/init.d/courier-authlib

# chkconfig --add courier-authlib

#
chkconfig --level 2345 courier-authlib on

#echo
"/usr/local/courier-authlib/lib/courier-authlib" >>
/etc/ld.so.conf

# ldconfig -v

# service courier-authlib start
(启动服务)

# netstat -antl|grep :25

tcp 0 0
0.0.0.0:25 0.0.0.0:* LISTEN

十一、
安装Courier-IMAP-4.1.3

http://nchc.dl.sourceforge.net/sourceforge/courier/courier-imap-4.1.3.tar.bz2

# tar jxvf courier-imap-4.1.3.tar.bz2

# cd courier-imap-4.1.3

#
./configure /

--prefix=/usr/local/courier-imap /

--with-redhat /

--enable-unicode
/

--disable-root-check /

--with-trashquota /

--without-ipv6 /

CPPFLAGS='-I/usr/local/ssl/include/openssl
-I/usr/local/courier-authlib/include' /

LDFLAGS='-L/usr/local/courier-authlib/lib/courier-authlib'
/

COURIERAUTHCONFIG='/usr/local/courier-authlib/bin/courierauthconfig'

#
make

##############出现错误start@@@@@@@@@@@@@@@@@@@

./.libs/libcouriertls.a(libcouriertls.o):
In function `init_session_cache':

/usr/local/courier-imap-4.1.3/tcpd/libcouriertls.c:590:
undefined reference to `SSL_CTX_sess_set_new_cb'

/usr/local/courier-imap-4.1.3/tcpd/libcouriertls.c:591:
undefined reference to `SSL_CTX_sess_set_get_cb'

/usr/local/courier-imap-4.1.3/tcpd/libcouriertls.c:592:
undefined reference to `SSL_CTX_sess_set_remove_cb'

collect2: ld
returned 1 exit status

make[3]: *** [couriertls] 错误 1

make[3]:
Leaving directory `/usr/local/courier-imap-4.1.3/tcpd'

make[2]: ***
[all] 错误 2

make[2]: Leaving directory
`/usr/local/courier-imap-4.1.3/tcpd'

make[1]: *** [all-recursive] 错误 1

make[1]:
Leaving directory `/usr/local/courier-imap-4.1.3'

make: *** [all] 错误
2

解决方法:更新了openssl到openssl-0.9.8f

ps:极有可能是我openssl-0.9.8e没有装好

tar
zxvf openssl-0.9.8f.tar.gz

cd openssl-0.9.8f

./config shared zlib

make

make test

make install

#不再备份是因为之前已经备份!

rm -rf
/usr/bin/openssl

rm -rf /usr/include/openssl

rm /usr/lib/libssl.so

ln
-s /usr/local/ssl/bin/openssl /usr/bin/openssl

ln -s
/usr/local/ssl/include/openssl /usr/include/openssl

ln -sv
/usr/local/ssl/lib/libssl.so.0.9.8 /usr/lib/libssl.so

终于可以通过make

##############
出现错误end@@@@@@@@@@@@@@@@@@@

# make install

# cp
/usr/local/courier-imap/etc/imapd.dist /usr/local/courier-imap/etc/imapd

#
cp /usr/local/courier-imap/etc/imapd-ssl.dist
/usr/local/courier-imap/etc/imapd-ssl

# cp
/usr/local/courier-imap/etc/pop3d.dist /usr/local/courier-imap/etc/pop3d

# cp /usr/local/courier-imap/etc/pop3d-ssl.dist
/usr/local/courier-imap/etc/pop3d-ssl

配置Courier-IMAP,为用户提供pop3服务:

vi
/usr/local/courier-imap/etc/pop3d

POP3DSTART=YES

注:如果你想为用户提供
IMAP服务,则需在"/usr/local/courier-imap/etc/imapd"文件中设置"IMAPDSTART=yes";其它类同;

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

#mkdir –pv /var/spool/mail

#chown
postfix -R /var/spool/mail

#cp courier-imap.sysvinit
/etc/rc.d/init.d/courier-imapd

#chmod 755
/etc/rc.d/init.d/courier-imapd

#chkconfig --add courier-imapd

#chkconfig
--level 2345 courier-imapd on

#service courier-imapd start

#netstat
-antl|grep :110

tcp 0 0 0.0.0.0:110
0.0.0.0:* LISTEN

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

pwcheck_method:
authdaemond

log_level: 3

mech_list:PLAIN LOGIN

authdaemond_path:/usr/local/courier-authlib/var/spool/authdaemon/socket

十二、安装Extmail-1.0.2

http://www.extmail.org/cgi-bin/download.cgi

1、安装

# tar zxvf extmail-1.0.2.tar.gz

# mkdir -pv
/var/www/extsuite

# mv extmail-1.0.2 /var/www/extsuite/extmail

#
cp /var/www/extsuite/extmail/webmail.cf.default
/var/www/extsuite/extmail/webmail.cf

2、修改主配置文件

#vi
/var/www/extsuite/extmail/webmail.cf

部分修改选项的说明:

SYS_MESSAGE_SIZE_LIMIT
= 5242880

用户可以发送的最大邮件

SYS_USER_LANG = en_US

语言选项,可改作:

SYS_USER_LANG
= zh_CN

SYS_MAILDIR_BASE = /home/domains

此处即为您在前文所设置的用户邮件的存放目
录,可改作(要根据签名postfix的位置一致):

SYS_MAILDIR_BASE = /var/spool/mail

SYS_MYSQL_USER
= db_user

SYS_MYSQL_PASS = db_pass

以上两句句用来设置连接数据库服务器所使用用户名、密码和邮件服
务器用到的数据库,这里修改为:

SYS_MYSQL_USER = postfix

SYS_MYSQL_PASS = 123456

SYS_MYSQL_HOST = localhost

指明数据库服务器主机名,这里默认即可

SYS_MYSQL_SOCKET
= /var/lib/mysql/mysql.sock

连接数据库的sock文件位置,这里修改为:

SYS_MYSQL_SOCKET
= /tmp/mysql.sock

SYS_MYSQL_TABLE = mailbox

SYS_MYSQL_ATTR_USERNAME
= username

SYS_MYSQL_ATTR_DOMAIN = domain

SYS_MYSQL_ATTR_PASSWD =
password

以上用来指定验正用户登录里所用到的表,以及用户名、域名和用户密码分别对应的表中列的名称;这里默认即可

SYS_AUTHLIB_SOCKET
= /var/spool/authdaemon/socket

此句用来指明authdaemo socket文件的位置,这里修改为:

SYS_AUTHLIB_SOCKET
= /usr/local/courier-authlib/var/spool/authdaemon/socket

3、
apache相关配置

由于extmail要进行本地邮件的投递操作,故必须将运行apache服务器用户的身份修改为您的邮件投递代理的
用户;本例中打开了apache服务器的suexec功能,故使用以下方法来实现虚拟主机运行身份的指定。此例中的MDA为postfix自带,因此将指
定为postfix用户:

<VirtualHost *:80>

ServerName mail.benet.org

DocumentRoot
/var/www/extsuite/extmail/html/

ScriptAlias /extmail/cgi
/var/www/extsuite/extmail/cgi

Alias /extmail
/var/www/extsuite/extmail/html

SuexecUserGroup postfix postfix

</VirtualHost>

修改 cgi执行文件属主为apache运行身份用户:

# chown -R postfix.postfix
/var/www/extsuite/extmail/cgi/

如果您没有打开apache服务器的suexec功能,也可以使用以下方
法解决:

# vi /etc/httpd/httpd.conf

User postfix

Group postfix

<VirtualHost
*:80>

ServerName mail.benet.org

DocumentRoot
/var/www/extsuite/extmail/html/

ScriptAlias /extmail/cgi
/var/www/extsuite/extmail/cgi

Alias /extmail
/var/www/extsuite/extmail/html

</VirtualHost>

4、依赖关系的解决

extmail将会用到perl的DBD::Mysql和Unix::syslogd功能,您可以去http://search.cpan.org
搜索下载原码包进行安装。

http://cpan.modperl.cn/authors/id/M/MH/MHARNISCH/Unix-Syslog-1.0.tar.gz

#
tar zxvf Unix-Syslog-0.100.tar.gz

# cd Unix-Syslog-0.100

# perl
Makefile.PL

# make

# make install

DBD-Mysql目前最新的版本为DBD-
mysql-4.005,但它和系统中的perl结合使用时会造成extmail无法正常使用,因此我们采用3的版本:

PATH=/usr/local/mysql/bin:$PATH;
export PATH

rpm -qa perl-DBI #没有就安装

rpm -ivh
perl-DBI-1.53-2.fc7.i386.rpm

# tar zxvf DBD-mysql-3.0002_4.tar.gz

#
cd cd DBD-mysql-3.0002_4

# perl Makefile.PL (此步骤中如果出现类同Can't exec
"mysql_config": No such file or directory at Makefile.PL line
76.的错误是因为您的mysql的bin目录没有输出至$PATH环境变量)

# make

# make install


了,到此为止,您的Webmail已经可以使用了,可以在浏览器中输入指定的虚拟主机的名称进行访问,如下:

http://mail.benet.org

十三、安装
Extman-0.2.2

http://www.extmail.org/cgi-bin/download.cgi

#tar zxvf extman-0.2.2.tar.gz

# mv extman-0.2.2
/var/www/extsuite/extman

修改配置文件以符合本例的需要:

# vi
/var/www/extsuite/extman/webman.cf

SYS_MAILDIR_BASE =
/home/domains

此处即为您在前文所设置的用户邮件的存放目录,可改作:

SYS_MAILDIR_BASE =
/var/spool/mail

SYS_MYSQL_SOCKET = /var/lib/mysql/mysql.sock


处修改为:

SYS_MYSQL_SOCKET = /tmp/mysql.sock

使用extman源码目录下docs目录中的
extmail.sql和init.sql建立数据库:

# mysql -u root -p <extmail.sql

#
mysql -u root -p <init.sql

修改cgi目录的属主:

# chown -R
postfix.postfix /var/www/extsuite/extman/cgi/

如果extman访问数据库权限不足的
话,可采用以下命令将新生成的数据库赋予webman用户具有所有权限:

mysql> GRANT all privileges on
extmail.* TO webman@localhost

IDENTIFIED BY 'webman';

mysql> GRANT all privileges on extmail.*
TO webman@127.0.0.1
IDENTIFIED BY
'webman';

在apache的主配置文件中Extmail的虚拟主机部分,添加如下两行:

ScriptAlias
/extman/cgi /var/www/extsuite/extman/cgi

Alias /extman
/var/www/extsuite/extman/html

重新启动apache服务器,即可使用Extman了。默认管理帐号为:root@extmail.org
密码为:extmail*123*

有验证码问题,需要安装perl-gd库,我安了一下报错,干脆屏蔽这个功能

修改/var/www/extsuite/extman
/webman.cf

SYS_CAPTCHA_ON = 0

取消验证就改成0

perl-gd下载安装就行了

[url=>http://www.extmail.org/forum/thread-1747-1-1.html


装ExtMan手记(extman-0.15-20060518)

1,下载相关软件:

[Copy to clipboard] [
- ]CODE:

extman-0.15-20060518.tar.gz

File-Tail-
0.99.3.tar.gz(extman需要)

libart_lgpl-2.3.17.tar.gz(rrdtool需要)

rrdtool-1.2.13.tar.gz

Time-
HiRes-1.87.tar.gz(extman需要)

2,安装libart_lgpl

[Copy to
clipboard] [ - ]CODE:

./configure --prefix=/usr &&

make
&&

make install

3,安装rrdtool-1.2.13

[Copy to
clipboard] [ - ]CODE:

./configure &&

make &&

make
install

ln -s rrdtool-1.2.13 rrdtool (建立连接,部分脚本文件调用命令的时候使用rrdtool路径)

cd
/usr/local/rrdtool-1.2.13/lib/perl/5.8.7

cp -pR *
/usr/lib/perl5/5.8.7/
(将RRD的perl模块复制到系统的perl目录,在安装RRDTOOL的时候可以指定perl模块的安装目录)

注意:安装rrdtool的时
候可能需要其它的依赖软件你没有安装,请安装相应的软件。

4,安装perl_File-Tail

[Copy to
clipboard] [ - ]CODE:

cd File-Tail-0.99.3 &&

perl
Makefile.PL &&

make &&

make install

5,安装
perl_Time-HiRes

[Copy to clipboard] [ - ]CODE:

cd
Time-HiRes-1.87 &&

perl Makefile.PL &&

make
&&

make install

配置Mailgraph_ext

XiaoHui 补充:
此模块主要是为提供图形化显示日志的能力。可以不必安装。

自ExtMan 0.14-pre2
开始,系统集成了Mailgraph_ext插件,该插件使extman具备图形化显示邮件日志的能力。mailgraph_ext融合了
mailgraph和queuegraph两个软件包,除增加了更多的日志分析及图形显示能力外,还重写了web模块,集成到ExtMan后台里,这样邮
件日志将只能给经过授权的用户查看,提高了安全性。

mailgraph_ext及Extman都需要安装rrdtool工具


需的软件包

- Perl 5.6+ (建议5.8以上)

- rrdtool 及rrdtool的perl包,地址:
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: