天天看点

centos 安装extmail

本手册大部分摘自冯勇的连接  后来许多错误改正搜索了不少网络还有extmail官网手册

冯勇手册有不少没有指出的错误,我凭回忆指出当中的部分错误。有不对之处请指正qq110129307

[email protected]

http://www.yiyou.org/docs/centos_extmail_01/ 

centos/redhat 上安装邮件系统(extmail) V0.1

一、简介:

本文以最简单,最方便的方法在centos 5.2 上安装一个全功能的邮件系统,此文适合REDHAT所有系列,在文中,能用RPM 安装的,我们将采用rpm 安装,如果rpm没有的,我们将创建自己的rpm。部分软件简介:

1、AMP ---apache(web服务) 、mysql(数据库)、php(非必需) 的简称

2、postfix --mta 邮件系统核心

3、courier-authlib--一个为courier-imap,maildrop,sasl2 提供用户信息的后台进程序

4、courier-imap --提供pop3,pop3s,imap,imaps 服务的程序

5、amavisd-new --提供内容过滤

6、clamav -- 著名的杀毒软件

7、extmail --一个著名的webmail程序

8、extman --与extmail集成的后台管理程序

9、slockd --一个基于smtp阶段的反垃圾邮件程序

10、vhmgr --由本文作者编写,用于管理apache,ftp,mysql 的虚拟主机管理程序。

安装环境:

centos 5.2

域名机器名:mail.yiyou.org  360book.com.cn

域名:yiyou.org    360book.com.cn

二、安装系统

安装系统时,选择“customize software selection”(自定义安装),在package group selection 对话框里选择:

[*]base              我选择的是最小安装base 所以一些编译器什么的都没安装。
[*]devlopment libraries   用的是centos.ustc.edu.cn的源
[*]development tools
[*]editors
[*]text-base internet
      

其它不选择。

在setup agnet(或进入系统后运行setup) 里选择firewall configuration 将security level 与SELinux 改为disabled,目的是为了避免在安装调试时产生不必要的麻烦,在系统安装完成后,可以自己去调试安全部分,在这里将不作详细介绍。

配置yum,在本文中使用的是网通线路,所以选择了http://mirrors.ta139.com/ 作为安装镜像。

centos.ustc.edu.cn

[root@localhost ~]# cd /etc/yum.repos.d/
[root@localhost yum.repos.d]# wget http://mirrors.ta139.com/CentOS-Base.repo.ta139
[root@localhost yum.repos.d]# mv CentOS-Base.repo CentOS-Base.repo.bak
[root@localhost yum.repos.d]# mv CentOS-Base.repo.ta139 CentOS-Base.repo
      

三、安装软件

1、安装AMP

 yum install gcc ncurses-devel rpm-build libtool pam-devel gcc-c++ gdbm-devel redhat-rpm-config libidn-devel pcre-devel expect

[root@localhost ~]# yum -y install httpd httpd-devel mysql mysql-devel mysql-server php php-xml php-cli php-pdo php-mbstring php-mcrypt php-gd php-common php-devel php-mysql
      

修改启动配置并启动

[root@localhost ~]# chkconfig --level 345  mysqld on
[root@localhost ~]# chkconfig --level 345  httpd on 
[root@localhost ~]# service mysqld start
[root@localhost ~]# service httpd start
      

不用安装phpmyadmin

2、安装phpmyadmin

注意:可以选择自己需要的版本   我没有安装phpmyadmin

[root@localhost ~]# wget  http://nchc.dl.sourceforge.net/sourceforge/phpmyadmin/phpMyAdmin-2.11.9-all-languages-utf-8-only.tar.bz2
[root@localhost ~]# tar xjf phpMyAdmin-2.11.9-all-languages-utf-8-only.tar.bz2 
[root@localhost ~]# mv phpMyAdmin-2.11.9-all-languages-utf-8-only /var/www/html/phpmyadmin
[root@localhost phpmyadmin]# cp config.sample.inc.php config.inc.php 
      

编辑config.inc.php 改为下面,字符串是任意的。

$cfg['blowfish_secret'] = 'skssiwksksie'; /* YOU MUST FILL IN THIS FOR COOKIE AUTH! */
      

进入phpmyadmin 请马上修改mysql root 用户的密码。

3、导入extman 后台数据库

将extmail/extman/slockd 上传到服务器,可以使用ftp/winscp 上传

在这里我修改了init.sql 把里面的extmail.org改成360book.com.cn
或者修改extmail的密码
      
[root@localhost ~]# tar zxf extman-0.2.5b1.tar.gz 
[root@localhost ~]# cd extman-0.2.5b1/docs/
[root@localhost docs]# mysql -uroot -p <extmail.sql 
Enter password: 
[root@localhost docs]# mysql -uroot -p <init.sql
Enter password: 
      

如何使用了phpmyadmin改了root 密码,记得输入密码,如果密码为空,请按回车。

4、RPM 简介

下面我们将采用rpm 的方式安装软件

/usr/src/redhat/SPEC spec 文件夹,通常是rpm文件夹

/usr/src/redhat/RPMS 是生成rpm 的文件,下面还有i368,i486 等子文件夹,一般我们用i386 架构

/usr/src/redhat/SOURCE 源文件文件夹

为了安装时切换目录的方便,我们将目录存放到一个shell变量里。

[root@localhost ~]# export RPMS=/usr/src/redhat/RPMS
[root@localhost ~]# export SOURCE=/usr/src/redhat/SOURCES
[root@localhost ~]# export SPEC=/usr/src/redhat/SPECS
      

在下面安装过程中,大家要记住cd $RPMS 与cd /usr/src/redhat/RPMS 的目的是一样的,只是shell变量的替换。

5、安装authlib 升级至0.63.0

A、安装依懒的包

[root@localhost ~]# yum -y install postgresql-devel expect libtool-ltdl-devel
[root@localhost ~]# wget http://prdownloads.sourceforge.net/courier/courier-authlib-0.61.0.tar.bz2
[root@localhost ~]# tar xjf courier-authlib-0.61.0.tar.bz2 
[root@localhost ~]# cd courier-authlib-0.61.0
[root@localhost courier-authlib-0.61.0]# cp courier-authlib.spec $SPEC
[root@localhost courier-authlib-0.61.0]# cd ..
[root@localhost ~]# cp courier-authlib-0.61.0.tar.bz2 $SOURCE
[root@localhost ~]# cd $SPEC
[root@localhost SPECS]# rpmbuild -bb courier-authlib.spec (创建rpm文件)
      

B、安装生成的rpm

[root@localhost SPECS]# cd $RPMS/i386
[root@localhost i386]# rpm -ivh courier-authlib-0.61.0-1.i386.rpm 
[root@localhost i386]# rpm -ivh courier-authlib-devel-0.61.0-1.i386.rpm 
[root@localhost i386]# rpm -ivh courier-authlib-mysql-0.61.0-1.i386.rpm 
      

C、配置authlibdaemon

[root@localhost i386]# cd /etc/authlib/
[root@localhost authlib]# mv authdaemonrc authdaemonrc.bak
[root@localhost authlib]# vim authdaemonrc
      
输入下面的内容:
authmodulelist="authmysql"
authmodulelistorig="authmysql"
daemons=10
authdaemonvar=/var/spool/authdaemon
DEBUG_LOGIN=2
DEFAULTOPTIONS="wbnodsn=1"
LOGGEROPTS=""
      
D、配置authmysqlrc
[root@localhost authlib]# mv authmysqlrc authmysqlrc.bak
[root@localhost authlib]# vim authmysqlrc
      
MYSQL_SERVER    localhost
MYSQL_USERNAME  extmail
MYSQL_PASSWORD  extmail
MYSQL_PORT      0
MYSQL_SOCKET    /var/lib/mysql/mysql.sock
MYSQL_OPT       0
MYSQL_DATABASE  extmail

MYSQL_SELECT_CLAUSE     SELECT username,password,"",uidnumber,gidnumber,\
                        CONCAT('/home/domains/',homedir),               \
                        CONCAT('/home/domains/',maildir),               \
                        quota,                                          \
                        name                                            \
                        FROM mailbox                                    \
                        WHERE username = '$(local_part)@$(domain)' 


      

E、启动authlib

[root@localhost ~]# service courier-authlib start
Starting Courier authentication services: authdaemond
[root@localhost ~]# chmod 777 /var/spool/authdaemon/
      

6、安装courier-imap 升级至4.7.0

由于courier-imap 不能用root身份生成rpm那么我们新建一个普通用户,并创建一个rpm环境

[root@localhost ~]# useradd crastyl 在这里添加自己的用户

      

软件包依懒需要安装openldap-server,rpm创建完成后可以删除

[root@localhost ~]# yum -y install openldap-servers
[root@localhost ~]# su - yiyou   [yiyou@localhost ~]$ mkdir -p rpm/{BUILD,RPMS,SOURCES,SPECS,SRPMS}
[yiyou@localhost ~]$ vim  ~/.rpmmacros
      

输入内容:

%_topdir /home/yiyou/rpm
      
[yiyou@localhost ~]$ wget http://prdownloads.sourceforge.net/courier/courier-imap-4.7.0.tar.bz2
[yiyou@localhost ~]$ cp courier-imap-4.4.1.tar.bz2 rpm/SOURCES/
[yiyou@localhost ~]$ tar xjf courier-imap-4.4.1.tar.bz2 
[yiyou@localhost ~]$ cd courier-imap-4.4.1
[yiyou@localhost courier-imap-4.4.1]$ cp courier-imap.spec ../rpm/SPECS/
[yiyou@localhost courier-imap-4.4.1]$ cd ../rpm/SPECS/
      

编辑courier-imap.spec 将下面的内容:

%if %suse_version
BuildPreReq: rpm >= 3.0.5 /usr/bin/sed openldap2 openldap2-devel %([ %{suse_version} -gt 819 ] && echo /usr/include/fam.h)
%else
BuildPreReq: rpm >= 4.0.2 sed /usr/include/fam.h openldap-devel openldap-servers
%endif
      

改为:将此处fam.h 去掉 此处好像没有openldap相关选项 2010-1-12

%if %suse_version   在这里好像提示没有安装openldap-server yum install openldap* 还真没装 BuildPreReq: rpm >= 3.0.5 /usr/bin/sed openldap2 openldap2-devel 
%else
BuildPreReq: rpm >= 4.0.2 sed openldap-devel openldap-servers
%endif
      

创建rpm

[yiyou@localhost SPECS]$ rpmbuild -bb courier-imap.spec 
      

完成rpm后,输入exit退出当前用户。

[root@localhost ~]# rpm -ivh /home/yiyou/rpm/RPMS/i386/courier-imap-4.4.1-1.i386.rpm 
[root@localhost ~]# service courier-imap start
      

7、安装cyrus-sasl

A、安装SRPM

[root@localhost ~]# wget ftp://194.199.20.114/linux/fedora/updates/8/SRPMS/cyrus-sasl-2.1.22-8.fc8.src.rpm
[root@localhost ~]# rpm -ivh cyrus-sasl-2.1.22-8.fc8.src.rpm 
[root@localhost ~]# cd $SPEC
      

编辑cyrus-sasl.spec 将下面:

# Bundling copy of Berkeley DB, for sasldb support.
topdir=`pwd`
pushd db-%{db_version}/build_unix
../dist/configure \
        --with-mutex=UNIX/fcntl --disable-shared --enable-static --with-pic \
        --with-uniquename=_cyrus_sasl_sasldb_rh \
        --prefix=${topdir}/db-instroot \
        --includedir=${topdir}/db-instroot/include \
        --libdir=${topdir}/db-instroot/lib
      

改为:

# Bundling copy of Berkeley DB, for sasldb support.
topdir=`pwd`
pushd db-%{db_version}/build_unix
../dist/configure \
        --with-mutex=UNIX/fcntl --disable-shared --enable-static --with-pic \
        --with-uniquename=_cyrus_sasl_sasldb_rh \
        --prefix=${topdir}/db-instroot \
        --includedir=${topdir}/db-instroot/include \
        --libdir=${topdir}/db-instroot/lib \         --with-authdaemond=/var/spool/authdaemon      
提示下面的故障的请看上面--with-authdaemond=/var/spool/authdaemon: No such file or directory 少了各斜杠所以看不到这个选项      
Cannot enable LDAPDB plugin: Could not locate OpenLDAP      
因为没有安装oepnldap 客户端什么的。装上就行了
      

B、生成rpm

[root@localhost SPECS]# rpmbuild -bb cyrus-sasl.spec 
[root@localhost RPMS]# cd $RPMS/i386
[root@localhost i386]# rpm -e --nodeps cyrus-sasl-devel cyrus-sasl-plain cyrus-sasl cyrus-sasl-lib (如果这些包存在)
[root@localhost i386]# rpm -ihv cyrus-sasl-lib-2.1.22-8.i386.rpm 
[root@localhost i386]# rpm -ihv cyrus-sasl-2.1.22-8.i386.rpm 
[root@localhost i386]# rpm -ihv cyrus-sasl-plain-2.1.22-8.i386.rpm 
      

C、配置sasl2

创建/usr/lib/sasl2/smtpd.conf 文件,输入下面的内容:

pwcheck_method:authdaemond
log_level:3
mech_list:PLAIN LOGIN
authdaemond_path:/var/spool/authdaemon/socket
      

8、安装postfix 升级至2.6.5

A、下载软件包

[root@localhost i386]# cd
[root@localhost ~]# wget http://ftp.wl0.org/official/2.5/SRPMS/postfix-2.5.4-2.src.rpm
[root@localhost ~]# rpm -ivh postfix-2.5.4-2.src.rpm 
[root@localhost ~]# cd $SPEC
      

编辑postfix.spec 修改下面的选项

%define distribution rhel-5.0
%define with_mysql_redhat 1
%define with_sasl         2
%define with_vda          1
%define with_pcre         1
      

B、创建rpm

[root@localhost SPECS]# rpmbuild -bb postfix.spec 
[root@localhost RPMS]# cd $RPMS/i386
[root@localhost i386]# rpm -ivh postfix-2.5.4-2.rhel4.i386.rpm 
      

C、切换mta

[root@localhost i386]# alternatives --config mta (选择2,postfix)
[root@localhost i386]# rpm -e sendmail
[root@localhost i386]# cd /usr/sbin/
[root@localhost sbin]# mv sendmail sendmail.bak
[root@localhost sbin]# newaliases
[root@localhost sbin]# ln -s sendmail.postfix sendmail
      

D、配置postfix

[root@localhost ~]# cd /etc/postfix/
[root@localhost postfix]# mv main.cf main.cf.bak
[root@localhost postfix]# vim main.cf
      
queue_directory = /var/spool/postfix
command_directory = /usr/sbin
daemon_directory = /usr/libexec/postfix
data_directory = /var/lib/postfix
mail_owner = postfix
unknown_local_recipient_reject_code = 550
debug_peer_level = 2
debugger_command =
         PATH=/bin:/usr/bin:/usr/local/bin:/usr/X11R6/bin
         ddd $daemon_directory/$process_name $process_id & sleep 5

sendmail_path = /usr/sbin/sendmail.postfix
newaliases_path = /usr/bin/newaliases.postfix
mailq_path = /usr/bin/mailq.postfix
setgid_group = postdrop
html_directory = /usr/share/doc/postfix-2.5.2-documentation/html
#这些都换掉吧
 manpage_directory = /usr/share/man
sample_directory = /etc/postfix
readme_directory = /usr/share/doc/postfix-2.5.2-documentation/readme
alias_database = hash:/etc/postfix/aliases
alias_maps = hash:/etc/postfix/aliases
myhostname = mail.360book.com.cn
mydomain = 360book.com.cn
mydestination = $myhostname  如果主机名和邮件域不相同,可把此项设置为空 2010.3.15 更改
smtpd_banner = 360book.com.cn ESMTP Mail System
message_size_limit = 14680064
virtual_alias_maps = mysql:/etc/postfix/mysql_virtual_alias_maps.cf
virtual_mailbox_base = /home/data/domains
virtual_mailbox_domains = mysql:/etc/postfix/mysql_virtual_domains_maps.cf
virtual_mailbox_maps = mysql:/etc/postfix/mysql_virtual_mailbox_maps.cf
virtual_mailbox_limit_maps = mysql:/etc/postfix/mysql_virtual_limit_maps.cf
virtual_transport = maildrop
maildrop_destination_recipient_limit = 1

#sasl
smtpd_sasl_auth_enable = yes
smtpd_sasl2_auth_enable = yes
smtpd_sasl_security_options = noanonymous
broken_sasl_auth_clients = yes

smtpd_recipient_restrictions =
 permit_mynetworks,
 permit_sasl_authenticated,
 reject_unauth_destination,
 reject_unauth_pipelining,
 reject_invalid_hostname
#更改的一些配置
smtpd_client_restrictions =
    permit_mynetworks,
    permit_sasl_authenticated,
    reject_invalid_hostname,
    reject_non_fqdn_hostname
smtpd_recipient_restrictions =
 permit_mynetworks,
 permit_sasl_authenticated,
 reject_unauth_destination,
 reject_unauth_pipelining,
 reject_invalid_hostname,
 reject_unknown_sender_domain,
 reject_non_fqdn_sender,
 reject_multi_recipient_bounce,
 reject_non_fqdn_recipient,
 reject_unknown_recipient_domain,
 reject_rbl_client  anti-spam.org.cn,
 permit
#
dspam_destination_recipient_limit = 1
      

复制extman/docs 目录的cf 文件到/etc/postfix

[root@localhost postfix]# cp /root/extman-1.1.1/docs/mysql_virtual_* .
      

因为配置文件的用户、密码与数据库时一样,所以不用修改。

[root@localhost postfix]# service postfix start
      

9、安装maildrop 升级至2.30

A、下载生成RPM

[root@localhost postfix]# cd
[root@localhost ~]# wget http://prdownloads.sourceforge.net/courier/maildrop-2.3.0.tar.bz2
[root@localhost ~]# cp maildrop-2.0.4.tar.bz2 $SOURCE
[root@localhost ~]# tar xjf maildrop-2.0.4.tar.bz2 
[root@localhost ~]# cd maildrop-2.0.4
[root@localhost maildrop-2.0.4]# cp maildrop.spec $SPEC
[root@localhost maildrop-2.0.4]# cd $SPEC
      

编辑maildrop.spec 把下面:

BuildRequires: /usr/include/fam.h gdbm-devel pcre-devel
      
BuildRequires:  gdbm-devel pcre-devel
      

把下面:

%configure --with-devel --enable-userdb --enable-maildirquota  \
--enable-syslog=1 --enable-trusted-users='root mail daemon postmaster qmaild mmdf' \
--enable-restrict-trusted=0 \
--enable-sendmail=/usr/sbin/sendmail
      
%configure --with-devel --enable-userdb --enable-maildirquota \
--enable-syslog=1 --enable-trusted-users='root mail daemon postmaster qmaild mmdf' \
--enable-restrict-trusted=0 --enable-sendmail=/usr/sbin/sendmail \
--enable-authlib
      

B、创建安装maildrop rpm

[root@localhost SPECS]# yum -y install pcre-devel
[root@localhost SPECS]# rpmbuild -bb maildrop.spec 
[root@localhost SPECS]# cd $RPMS/i386
[root@localhost i386]# rpm -ivh maildrop-2.0.4-1.i386.rpm 
      

C、添加虚似用户及创建目录

[root@localhost i386]# cd  在这里提示已经添加了用户 应该是安装postfix的时候创建的用户
[root@localhost ~]# groupadd -g 1000 vgroup
[root@localhost ~]# useradd -g 1000 -u 1000 -s /sbin/nologin -d /dev/null vuser
      

编辑/etc/postfix/master.cf ,加入下面的内容:

maildrop unix -     n     n     -     -     pipe
 flags=DRhu user=vuser argv=/usr/bin/maildrop -d ${user}@${nexthop} ${recipient} ${user} ${extension} ${nexthop}
      

D、创建邮件存储目录

[root@localhost ~]# mkdir -p /home/domains/extmail.org/postmaster
[root@localhost ~]# maildirmake /home/domains/extmail.org/postmaster/Maildir
[root@localhost ~]# chown -R vuser:vgroup /home/domains/    
      

E、测试maildrop

[root@localhost ~]# echo "test" | maildrop -V 10 -d [email protected]
maildrop: authlib: groupid=1000
maildrop: authlib: userid=1000   这里改成自己相应的
maildrop: authlib:[email protected],      
home=/home/domains/extmail.org/postmaster, mail=/home/data/domains/extmail.org/postmaster/Maildir/
maildrop: Changing to /home/data/domains/extmail.org/postmaster
Message start at 0 bytes, envelope [email protected]
maildrop: Attempting .mailfilter
maildrop: Delivery complete.
      

出现上以信息说明authlib,maildrop 工作正常

F、测试pop3

[root@localhost ~]# telnet localhost 110
Trying 127.0.0.1...
Connected to localhost.localdomain (127.0.0.1).
Escape character is '^]'.
+OK Hello there.
user [email protected]
+OK Password required.
pass extmail
+OK logged in.
list
+OK POP3 clients that break here, they violate STD53.
1 6
.
retr 1
+OK 6 octets follow.
test
.
quit
+OK Bye-bye.
Connection closed by foreign host.
      

G、测试postfix

[root@localhost ~]# perl -MMIME::Base64 -e 'print encode_base64("postmaster\@extmail.org");'
cG9zdG1hc3RlckBleHRtYWlsLm9yZw==
[root@localhost ~]# perl -MMIME::Base64 -e 'print encode_base64("extmail");'                
ZXh0bWFpbA==
[root@localhost ~]# service postfix restart (重启一下)
[root@localhost ~]# telnet localhost 25
Trying 127.0.0.1...
Connected to localhost.localdomain (127.0.0.1).
Escape character is '^]'.
220 yiyou.org ESMTP Mail System
ehlo test.com
250-mail.yiyou.org
250-PIPELINING
250-SIZE 14680064
250-VRFY
250-ETRN
250-AUTH LOGIN PLAIN
250-AUTH=LOGIN PLAIN
250-ENHANCEDSTATUSCODES
250-8BITMIME
250 DSN
auth login
334 VXNlcm5hbWU6
cG9zdG1hc3RlckBleHRtYWlsLm9yZw==
334 UGFzc3dvcmQ6
ZXh0bWFpbA==
235 2.7.0 Authentication successful
quit
221 2.0.0 Bye
Connection closed by foreign host
      

10、安装amavisd-new 此安装去除用dspam clamd代替

编辑/etc/yum.repos.d/CentOS-Base.repo 加入下面的内容:

[dag]
name=Dag RPM Repostory for Red Hat Enterprise Linux
baseurl=http://apt.sw.be/redhat/el$releasever/en/$basearch/dag
gpgcheck=1
enabled=1
gpgkey=http://dag.wieers.com/packages/RPM-GPG-KEY.dag.txt
      
[root@localhost ~]# yum -y install clamav clamav-db clamd clamav-devel amavisd-new
      

编辑/etc/amavisd.conf,修改下面的内容 这个源超级慢啊。以前很快的 ,不知道为何现在很慢呢

$mydomain = 'yiyou.org';   # a convenient default for other settings
      

把下面内容去掉注释,并修改为下面

['ClamAV-clamd',
   \&ask_daemon, ["CONTSCAN {}\n", "/tmp/clamd.socket"],
   qr/\bOK$/, qr/\bFOUND$/,
   qr/^.*?: (?!Infected Archive)(.*) FOUND$/ ],
$final_virus_destiny      = D_DISCARD;
$final_banned_destiny     = D_BOUNCE;
$final_spam_destiny       = D_PASS;/这里原来是bounce直接拒绝,我说我从163发信直接收不到,,分提高到7.多都不行改成pass
$final_bad_header_destiny = D_PASS;
      
[root@localhost ~]# usermod -G amavis clamav
[root@localhost ~]# service clamd start
      

在/etc/postfix/master.cf 增加下面的内容:

smtp-amavis  unix    -    -    n    -    4    smtp  
        -o smtp_data_done_timeout=1200 
        -o smtp_send_xforward_command=yes
        -o disable_dns_lookups=yes

127.0.0.1:10025 inet    n    -    n    -    -    smtpd
        -o content_filter=
        -o local_recipient_maps=
        -o relay_recipient_maps=
        -o smtpd_restriction_classes=
        -o smtpd_helo_restrictions=
        -o smtpd_sender_restrictions=
        -o smtpd_recipient_restrictions=permit_mynetworks,reject
        -o mynetworks=127.0.0.0/8
        -o strict_rfc821_envelopes=yes
        -o smtpd_error_sleep_time=0
        -o smtpd_soft_error_limit=1001
        -o smtpd_hard_error_limit=1000
        -o receive_override_options=no_header_body_checks
      

在/etc/postfix/main.cf 加入下面的内容

content_filter = smtp-amavis:[localhost]:10024 
//(我添加这行之后,无法收取邮件,报错提示:      
  1. Mar  7 16:40:24 mail postfix/smtp[15107]: connect to localhost[127.0.0.1]:10024: Connection refused 
  2. Mar  7 16:40:24 mail postfix/smtpd[15098]: disconnect from localhost.localdomain[127.0.0.1] 
  3. Mar  7 16:40:24 mail postfix/smtp[15107]: D922E257059: to=<[email protected]>, relay=none, delay=0.07, delays=0.06/0.01/0/0, dsn=4.4.1, status=deferred (connect to localhost[127.0.0.1]:10024: Connection refused) 
[root@localhost ~]# service postfix reload

添加emos 1.5的源 
EMOS-Base
#
# Created by ExtMail Dev Team: http://www.extmail.org/
#
# $Id$

[EMOS-base]
name=EMOS-Base
baseurl=http://mirror.extmail.org/yum/emos/1.5/os/$basearch/
gpgcheck=0
priority=0
protect=0

[EMOS-update]
name=EMOS-Updates
baseurl=http://mirror.extmail.org/yum/emos/1.5/updates/$basearch/
gpgcheck=0
priority=0
protect=0

      

11、安装extman/extmail

A、配置apache

修改/etc/httpd/conf/httpd.conf,将下面的选项改为:

User vuser
Group vgroup
      
[root@localhost ~]# cd /etc/httpd/conf.d/
[root@localhost conf.d]# vim extmail.conf
      

配置一 输入下面的内容:

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


<Location "/extman/cgi">
SetHandler cgi-script
Options +ExecCGI
</Location>

# config for ExtMail
Alias /extmail/cgi/ /var/www/extsuite/extmail/cgi/
Alias /extmail /var/www/extsuite/extmail/html/

<Location "/extmail/cgi">
SetHandler cgi-script
Options +ExecCGI
</Location>

配置二
<VirtualHost *:80>
ServerAdmin  [email protected]
ServerName   mail.jluzh.com
DocumentRoot /var/www/extsuite/extmail/html/
ScriptAlias /extmail/cgi /var/www/extsuite/extmail/cgi
Alias /extmail /var/www/extsuite/extmail/html/
ScriptAlias /extman/cgi /var/www/extsuite/extman/cgi
Alias /extman /var/www/extsuite/extman/html
<Location "/extman/cgi">
SetHandler cgi-script
Options +ExecCGI
</Location>

# config for ExtMail
#Alias /extmail/cgi/ /var/www/extsuite/extmail/cgi/
#Alias /extmail /var/www/extsuite/extmail/html/
#
<Location "/extmail/cgi">
SetHandler cgi-script
Options +ExecCGI
</Location>

</VirtualHost>
这样访问可直接进入界面
      
[root@localhost ~]# mkdir /var/www/extsuite
[root@localhost ~]# tar zxf extmail-1.0.5b1.tar.gz 
[root@localhost ~]# cp -r extmail-1.0.5b1 /var/www/extsuite/extmail
[root@localhost ~]# cp -r extman-0.2.5b1 /var/www/extsuite/extman 
      

B、配置extmail参数

[root@localhost ~]# cd /var/www/extsuite/extmail/
[root@localhost extmail]# cp webmail.cf.default webmail.cf
      

修改webmail.cf 下面的选项

SYS_SESS_DIR = /tmp/extmail
SYS_MAILDIR_BASE = /home/data/domains
SYS_MYSQL_USER = extmail
SYS_MYSQL_PASS = extmail
      

C、配置extman参数

[root@localhost extmail]# cd /var/www/extsuite/extman/
      

修改webman.cf 下面的选项:

SYS_MAILDIR_BASE = /home/domains
      

D、创建session 目录

[root@localhost extman]# mkdir /tmp/{extman,extmail}
[root@localhost extman]# chown vuser:vgroup /tmp/ext*
      

E、配置后台日志分析工具

[root@localhost addon]# cd /var/www/extsuite/extman/addon/
[root@localhost addon]# cp -r mailgraph_ext /usr/local/
      

将下面的内容加入/etc/rc.local

/usr/local/mailgraph_ext/mailgraph-init start
/usr/local/mailgraph_ext/qmonitor-init start
      

安装所依懒的软件包

[root@localhost mailgraph_ext]# yum -y install rrdtool perl-rrdtool perl-GD perl-File-Tail
      

F、启动后台进程

[root@localhost mailgraph_ext]# /usr/local/mailgraph_ext/qmonitor-init start
Starting queue statistics grapher: qmonitor
[root@localhost mailgraph_ext]# /usr/local/mailgraph_ext/mailgraph-init start
Starting mail statistics grapher: mailgraph_ext
      

G、访问extmail/extman

打开浏览器,输入http://your_ip_address/extmail 注意:your_ip_address 为你实际的ip

第一个测试用户为:postmaster 密码:extmail 域:extmail

打开浏览器,输入http://your_ip_address/extman

extman root 用户为:[email protected] 密码为:extmail*123*

注意:进入系统后要修改密码及找回密码的提示问题、答案。

12安装dspam clamd

yum install clamd dspam*

进入mysql

create databases dspam;

grant all on dspam.* to dspam@localhost identified by 'dspam';

mysql -u dsapm -p< mysql_objects-4.1.sql   virtual_users.sql 编辑这两文件,在两个文件前添加 use dspam;

cd /usr/share/dspam/sql/mysql

mysql -u dspam -pdspam  dspam < mysql_objects-4.1.sql 

crontab -e

0 0 * * * /usr/bin/mysql -u dspam -p'dspam' dspam < /usr/share/dspam/sql/mysql/purge-4.1.sql

0 0 * * * /usr/bin/dspam_logrotate -a 30 -d /var/spool/dspam/data

修改dspam.conf

MySQLServer             /var/lib/mysql/mysql.sock

MySQLUser               dspam

MySQLPass               dspam

MySQLDb                 dspam

MySQLCompress           true

MySQLUIDInSignature        on

ClamAVPort                3310   //开启clamd

ClamAVHost                127.0.0.1

ClamAVResponse        spam

ServerPID              /var/dspam/run/dspam.pid

ServerMode auto

ServerParameters        "--user dspam --deliver=innocent,spam"

ServerDomainSocketPath  "/tmp/dspam.sock"

DeliveryHost        127.0.0.1

DeliveryPort        10026

DeliveryIdent       localhost

DeliveryProto       SMTP

ParseToHeaders on

ChangeModeOnParse on

ChangeUserOnParse full

vi master.cf

<smtp      inet         n       -       n       -       -        smtpd

To:这个地方应该为多余>

smtp      inet         n       -       n       -       -        smtpd

        -o content_filter=lmtp:unix:/tmp/dspam.sock

lmtp      unix  -       -       n       -       -       lmtp

127.0.0.1:10026 inet    n    -    n    -    -    smtpd

        -o content_filter=

        -o local_recipient_maps=

        -o relay_recipient_maps=

        -o smtpd_restriction_classes=

        -o smtpd_helo_restrictions=

        -o smtpd_sender_restrictions=

        -o smtpd_recipient_restrictions=permit_mynetworks,reject

        -o mynetworks=127.0.0.0/8

        -o strict_rfc821_envelopes=yes

        -o smtpd_error_sleep_time=0

        -o smtpd_soft_error_limit=1001

        -o smtpd_hard_error_limit=1000

        -o receive_override_options=no_unknown_recipient_checks,no_header_body_checks

配置dspam web 在/usr/share/dspam/webui/cgi-bin

vi admins

添加admin

htpasswd -c .htpasswd admin

xx

(添加步骤)

配置dspam  web登录

cd /var/www/extsuite/extmail/html/

mkdir dspam

cd /usr/share/dspam/webui/

cp -r cgi-bin/* /var/www/extsuite/extmail/html/dspam/

cp -r htdocs/* /var/www/extsuite/extmail/html/dspam/

chown -R dspam.dspam /var/www/extsuite/extmail/html/dspam/

/etc/init.d/dspam-webd start

/etc/init.d/dspamd restart

http://test.mail.com/dspam  <admin(admin)  登录

在搜索中直接输入dspam 训练用户则进入设置了

12、安装slockd 没有安装

slockd 是一个基于策略的垃圾邮件软件,很多用户反映使用后,反垃圾效果非常明显,但是有部分用户由于对该软件的使用,特性不了解,而产生了很多麻烦。

所在在此建议,如果你对该软件不了解,或者系统里的垃圾邮件少,可以暂时不安装。

[root@localhost ~]# tar zxf slockd-0.2beta1.tar.gz 
[root@localhost ~]# cp -r slockd-0.2beta1 /usr/local/slockd
[root@localhost ~]# cd /usr/local/slockd
      
/usr/local/slockd/slockd-init start
      

[root@localhost slockd]# vim config/main.cf (编辑slockd/config/main.cf)修改下面的内容

setsid          1  (去掉注释,让程序成为后台进程)
      

修改/etc/postfix/main.cf 将原先的内容:

smtpd_recipient_restrictions =
 permit_mynetworks,
 permit_sasl_authenticated,
 reject_unauth_destination,
 reject_unauth_pipelining,
 reject_invalid_hostname
      
smtpd_recipient_restrictions =
 permit_mynetworks,
 permit_sasl_authenticated,
 reject_unauth_destination,
 reject_unauth_pipelining,
 reject_invalid_hostname,
 check_policy_service inet:127.0.0.1:10030
      

重载postfix 配置文件

[root@localhost slockd]# service postfix relo      

fatal: no SASL authentication mechanisms

这个是因为sasl的pain 模块没有安装      
http://www.extmail.org/forum/thread-2743-1-1.html      
tatus=deferred (connect to localhost[127.0.0.1]:10024: Connection refused      
这个是因为amavis 没有启动首先查看有没有10024端口,如果没有则是因为这个原因      
Permission denied: exec of '/usr/sbin/suexec      
这个是在配置虚拟主机的时候添加了suexecgroup 因为apache的运行都改成vuser 了所以没必要添加      
虚拟主机配置文件      
NameVirtualHost 192.168.1.100:80
<VirtualHost 192.168.1.100:80>
ServerAdmin [email protected]
ServerName mail.gamebao.net
DocumentRoot /var/www/extsuite/extmail/html/
ScriptAlias /extmail/cgi /var/www/extsuite/extmail/cgi
Alias /extmail /var/www/extsuite/extmail/html
ScriptAlias /extman/cgi /var/www/extsuite/extman/cgi
Alias /extman /var/www/extsuite/extman/html
<Location "/extmail/cgi">
SetHandler cgi-script
Options +ExecCGI
</Location>      
</VirtualHost>
<VirtualHost 192.168.1.100:80>
        DocumentRoot  /var/www/html/
        ServerAdmin  [email protected]
        ServerName    www.gamebao.net
        ServerAlias   gamebao.net
</VirtualHost>      
关于imap服务编译postfix包时,编译的有问题。所以从网上下载了一个支持sasl mysql 的postfix.rpm      
它 的默认uid 是501 gid 1000       
配置imap时提示maildrop: Unable to change to home directory.      
主要是因为没有权限。先前创建的一个用户因为是uid1000的所以导致整个问题删除,重新建立。修改webman.cf 里的uid 为501 新建用户ok
      
总得来说部分新软件好久没弄有点手生

http://blog.chinaunix.net/uid-12546091-id-2929864.html?bsh_bid=200155378      
上一篇: ldap_extmail

继续阅读