在Linux平台上安装基于Postfix、Courier-imap、Extmail的邮件系统 V 0.2.6

本文详细介绍在Linux平台上安装基于Postfix、Courier-imap、Extmail的邮件系统的过程。涵盖操作系统配置、核心组件安装与配置,包括Postfix邮件服务器、MySQL数据库、Apache Web服务器、PHP解析器等。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

 

 
Linux平台上安装基于PostfixCourier-imapExtmail的邮件系统 V 0.2.6
 
  很久之前就计划写一个 Postfix Linux 平台上面的安装文档,把自己安装 Postfix 的过程总结一下,但由于工作的关系直到现在才动手。和个人的习惯有关,在安装过程中我使用了很多源代码,这对一个新手可能有些难度,但是我认为在 Linux 下面如何从源代码安装软件应当是每个系统管理都必须掌握的知识。我准备使用 CHOST="i686-pc-linux-gnu" CFLAGS="-march=pentium4 -O2 -pipe -fomit-frame-pointer" CXXFLAGS="-march=pentium4 -O2 -pipe -fomit-frame-pointer" 作为 gcc 3.4.4 i686 CPU 上面的优化参数,你可以根据自己的实际情况进行修改。这个版本修正了上个版本中出现的一些错误,在此对 hzqbbc 对我的帮助致以最诚挚的谢意。
 
          *************************************************************************************
 
1 、安装操作系统
  首先请准备好 CentOS 4.2 安装光盘的第一张和第二张,在 “Installation Type" 中选择 “Custom” 。在 “Disk Partitioning Setup” 时选择 “Manually partition with Disk Druid” ,因为我们要将邮件保存在 “/home/mail” 目录中,所以请为其保留足够的硬盘空间。在 “Firewall Configuration” 中选择 “No firewall” ,这样便于调试,你可以在邮件系统工作正常之后根据实际情况设置 Firewall 策略。在 “Package Group Selection” 中选择 “Text-based Internet” “Development Tools” 两项。关于语言的选项你可以选择默认值,这样总的安装文件大小为 1GB 左右。安装完成后可以设置 Crontab ,让邮件服务器每天 1 点和网络中的时间服务器自动对时:
crontab -e
0 1 * * * /usr/bin/rdate -s time-b.timefreq.bldrdoc.gov
 
更新系统内核、 openssl zlib
  从下面的 URL 下载系统内核的最新版本,并安装适合你所用 CPU 的版本: http://mirror.centos.org/centos/4/updates/i386/RPMS/ ,你可以使用 “rpm -aq |grep kernel” 命令查找已经安装的内核 rpm 包。
  从下面的 URL 下载 zlib 1.2.3 的源代码: http://www.zlib.net
  安装 zlib zlib 将被安装在 “/usr/local” 目录下:
tar jvxf zlib-1.2.3.tar.bz2
cd zlib-1.2.3
CHOST="i686-pc-linux-gnu" CFLAGS="-march=pentium4 -O2 -pipe -fomit-frame-pointer" CXXFLAGS="-march=pentium4 -O2 -pipe -fomit-frame-pointer" /
./configure --prefix=/usr --shared
make
make test
make install
ln -s /usr/lib/libz.so.1 /usr/lib/libz.so.0
 
  从下面的 URL 下载 openssl 0.9.7i 的源代码: http://www.openssl.org
  卸载系统自带的 openssl 0.9.7a
rpm -e --nodeps openssl-devel
rpm -e --nodeps openssl
  安装 openssl openssl 将被安装在 “/usr” 目录下:
tar zvxf openssl-0.9.7i.tar.gz
cd openssl-0.9.7i
./config --prefix=/usr --openssldir=/usr/share/ssl -fPIC threads shared
make
make test
make install
  为了使系统自带的 openssh nslookup 等依赖于 openssl 的程序能够正常工作,建立 libcrypto.so.0.9.7 libssl.so.0.9.7 /lib 目录的链接:
ln -s /usr/lib/libcrypto.so.0.9.7 /lib/libcrypto.so.4
ln -s /usr/lib/libssl.so.0.9.7 /lib/libssl.so.4
 
2 、安装 MySQL 服务器
  你可以根据服务器的 CPU 类型,下载适合你所用 CPU 和操作系统的 MySQL 发行包。
  从下面的 URL 下载 MySQL 4.1.16 tar.gz 形式发布的二进制发行包: http://www.mysql.com
  增加 MySQL 运行所需要的用户和组:
groupadd mysql
useradd mysql -g mysql -c "MySQL user" -d /nonexistent -s /sbin/nologin
  安装 MySQL 软件, MySQL 将被安装到 “/usr/local/mysql” 目录下:
tar zvxf mysql-max-4.1.16-pc-linux-gnu-i686-glibc23.tar.gz
mv mysql-max-4.1.16-pc-linux-gnu-i686-glibc23 /usr/local/mysql
cd /usr/local/mysql
scripts/mysql_install_db --user=mysql
chown -R root .
chown -R mysql data
chgrp -R mysql .
cp support-files/my-medium.cnf /etc/my.cnf
  修改 “/etc/my.cnf” 文件,取消 “skip-networking” 前面的注释,这样的话 MySQL 将不监听 TCP/IP 端口,可以避免一些安全问题。修改 client mysqld 部分的 “socket = /tmp/mysql.sock” “socket = /var/lib/mysql/mysql.sock”
  注:以 tar.gz 形式发布的 MySQL 默认的 socket 位置在 “/tmp/mysql.sock” ,而以 rpm 形式发布的 MySQL 默认的 socket 位置在 “/var/lib/mysql/mysql.sock” ,你可以通过 my.cnf 文件设置 MySQL 服务器的 socket 位置。
  配置 MySQL 服务开机自动运行:
cp support-files/mysql.server /etc/rc.d/init.d/mysql
chmod +x /etc/rc.d/init.d/mysql
chkconfig --add mysql
  设置 MySQL 的默认字符集为 GB2312 ,修改 /etc/rc.d/init.d/mysql 文件,将第 199
  “$bindir/mysqld_safe --datadir=$datadir --pid-file=$pid_file >/dev/null 2>&1 &”
  修改为 “$bindir/mysqld_safe --datadir=$datadir --default-character-set=gb2312 --pid-file=$pid_file >/dev/null 2>&1 &”
  修改 “/etc/profile” 文件,将 “/usr/local/mysql/bin” 加到 PATH 变量中,退出重新登陆系统。
  注: 为了安全请立即修改 MySQL 管理员的密码。
      tar.gz 形式发布的 MySQL 默认的 socket 位置在 “/tmp/mysql.sock” ,而以 rpm 形式发布的 MySQL 默认的 socket 位置在 “/var/lib/mysql/mysql.sock” ,你可以通过 my.cnf 文件设置 MySQL 服务器的 socket 位置。
  使用 rpm 方式安装 mysql 的头文件和共享库:
rpm -ivh --nodeps MySQL-shared-standard-4.1.16-0.rhel4.i386.rpm
rpm -ivh MySQL-devel-standard-4.1.16-0.rhel4.i386.rpm
 
3 、安装 Web 服务器
  从下面的 URL 下载 Apache 2.0.55 的源代码: http://www.apache.org/dist/httpd/
  增加 Apache 运行所需的用户和组 :
groupadd httpd
useradd httpd -g httpd -c "Apache user" -d /nonexistent -s /sbin/nologin
  安装 Apache 软件, Apache 将被安装在 “/usr/local/httpd” 目录下:
tar jvxf httpd-2.0.55.tar.bz2
cd httpd-2.0.55
./configure --prefix=/usr/local/httpd --enable-so --enable-ssl --with-mpm=worker --enable-rewrite --enable-suexec --with-suexec-caller=httpd /
CHOST="i686-pc-linux-gnu" CFLAGS="-march=pentium4 -O2 -pipe -fomit-frame-pointer" CXXFLAGS="-march=pentium4 -O2 -pipe -fomit-frame-pointer"
make
make install
  修改 apache 的配置文件( /usr/local/httpd/conf/httpd.conf ),配置 apache 的默认语言、运行用户等参数:
DefaultLanguage zh_CN
User httpd
Group httpd
<IfModule worker.c>
StartServers        10
MaxClients          1024
MinSpareThreads     100
MaxSpareThreads     800
ThreadsPerChild     64
MaxRequestsPerChild 0
</IfModule>
  “/etc/rc.local” 文件中增加 “/usr/local/httpd/bin/apachectl start” ,设置 Apache 开机自动运行。
 
4 、安装 PHP
  从下面的 URL 下载 PHP 4.4.1 的源代码: http://www.php.net/downloads.php
  安装 PHP PHP 将被安装在 “/usr/local/php” 目录下, PHP 的配置文件( php.ini )放在 “/usr/local/php/etc” 目录中:
tar jvxf php-4.4.1.tar.bz2
cd php-4.4.1
CHOST="i686-pc-linux-gnu" CFLAGS="-march=pentium4 -O2 -pipe -fomit-frame-pointer" CXXFLAGS="-march=pentium4 -O2 -pipe -fomit-frame-pointer" /
./configure --prefix=/usr/local/php --with-apxs2=/usr/local/httpd/bin/apxs --enable-track-vars --with-config-file-path=/usr/local/php/etc /
--with-mysql=/usr --enable-force-cgi-redirect --enable-ftp --with-openssl --with-gettext --with-zlib
make
make install
cp php.ini-dist /usr/local/php/etc/php.ini
  修改 Apache 的配置,增加对 PHP 的支持:
  增加 “AddType application/x-httpd-php .php .phtml”
  修改 “DirectoryIndex index.html index.html.var” “DirectoryIndex index.html index.htm index.php index.cgi”
  验证 PHP 是否安装成功:
echo '<? phpinfo(); ?>' >/usr/local/httpd/htdocs/info.php
  重新启动 Apache ,在浏览器的地址栏中输入 “http://hostname/info.php” ,你应当可以看到关于 PHP 的详细信息,确认在 MySQL 章节中的 “Client API version” 版本是 4.1.16
  注:如果你准备在这个服务器上面跑 PHP 的网站、论坛、 blog 等负载比较大的程序,你可以安装 ZendOptimize eaccelerator PHP 加速程序。
 
5 、安装 Postfix
  从下面的 URL 下载 Postfix 2.2.5 的源代码: http://www.postfix.org
  从下面的 URL 下载 Postfix 2.2.5 VDA 补丁程序: http://web.onda.com.br/nadal/
chkconfig --level 2345 sendmail off
  增加 Postfix 运行所需要的用户和组,并建立 “/home/mail” 目录作为存储邮件的地方:
groupadd postfix
groupadd postdrop
useradd postfix -g postfix -c "Postfix user" -d /nonexistent -s /sbin/nologin
mkdir /home/mail
chown postfix:postfix /home/mail
  安装 Postfix
gzip -d postfix-2.2.5-vda.patch.gz
tar zvxf postfix-2.2.5.tar.gz
cd postfix-2.2.5
patch -p1 < ../postfix-2.2.5-vda.patch
make -f Makefile.init makefiles / OPT='-march=pentium4 -O2 -pipe -fomit-frame-pointer' /
'CCARGS=-DHAS_MYSQL -I/usr/include/mysql -DUSE_SASL_AUTH -I/usr/include/sasl -DUSE_TLS' /
'AUXLIBS=-L/usr/lib -lmysqlclient -lz -lm -L/usr/local/lib -lsasl2 -lssl -lcrypto'
make
make install
  注: “make install” 命令后的所有问题都直接敲回车键即可。
mv /etc/aliases /etc/aliases.old
ln -s /etc/postfix/aliases /etc/aliases
echo 'root: admin@example.com'>>/etc/postfix/aliases
/usr/bin/newaliases
  注:因为 Postfix 不允许直接发邮件给 root 用户,所以你需要为 root 用户建立一个别名。
  建立 smtpd 用户认证的配置文件:
vi /usr/lib/sasl2/smtpd.conf
pwcheck_method: authdaemond
log_level: 3
mech_list: plain login
authdaemond_path:/var/spool/authdaemon/socket
  使用 postconf -n 简化 main.cf ,这样的好处是 main.cf 比较短小,不容易造成同一个配置出现两次的问题 :
cd /etc/postfix
postconf -n > main2.cf
mv main.cf main.cf.old
mv main2.cf main.cf
  修改 Postfix 的配置文件, # 号之后是说明文字:
vi /etc/postfix/main.cf
myhostname = mail.example.com            # mail.example.com 是安装 Postfix 软件的主机名
mydomain = example.com                   # example.com 是安装 Postfix 软件的主机名中的域名部分
myorigin = $mydomain
mydestination =
alias_maps = hash:/etc/aliases
home_mailbox = Maildir/                  # 使用 Maildir 作为邮件的存储格式
mailbox_transport = /usr/bin/procmail
fallback_transport = /usr/bin/procmail
 
# Add following line in file's finality
virtual_alias_maps = mysql:/etc/postfix/mysql_virtual_alias_maps.cf
virtual_mailbox_base = /home/mail
virtual_mailbox_domains = mysql:/etc/postfix/mysql_virtual_domains_maps.cf
virtual_mailbox_limit = 102400000
virtual_mailbox_maps = mysql:/etc/postfix/mysql_virtual_mailbox_maps.cf
virtual_minimum_uid = 502
virtual_uid_maps = static:502
virtual_gid_maps = static:502
virtual_transport = virtual
 
# Additional for quota support
virtual_create_maildirsize = yes
virtual_mailbox_extended = yes
virtual_mailbox_limit_maps = mysql:/etc/postfix/mysql_virtual_limit_maps.cf
virtual_mailbox_limit_override = yes
virtual_maildir_limit_message = Sorry, the user's maildir has overdrawn his diskspace quota, please try again later.
virtual_overquota_bounce = yes
virtual_trash_count=yes
virtual_trash_name=.Trash
 
broken_sasl_auth_clients = yes
smtpd_recipient_restrictions =
 permit_mynetworks,
 permit_sasl_authenticated,
 reject_non_fqdn_hostname,
 reject_non_fqdn_sender,
 reject_non_fqdn_recipient,
 reject_unauth_destination,
 reject_unauth_pipelining,
 reject_invalid_hostname,
 reject_rbl_client opm.blitzed.org,
 reject_rbl_client list.dsbl.org,
 reject_rbl_client bl.spamcop.net,
 reject_rbl_client sbl-xbl.spamhaus.org
smtpd_sasl_auth_enable = yes
smtpd_sasl_local_domain = $myhostname
smtpd_sasl_security_options = noanonymous
  注: ①“virtual_gid_maps” “virtual_uid_maps” postfix 用户的 gid uid “virtual_minimum_uid” 应当 ≤“virtual_uid_maps” “virtual_mailbox_limit” 是每个邮箱的大小。
      ②opm.blitzed.org list.dsbl.org bl.spamcop.net sbl-xbl.spamhaus.org 是经常使用的几个反垃圾邮件列表,如果你使用上面的设置可能无法收到 sina sohu 163 等几个国内主要 ISP 的邮件。你也可以使用中国反垃圾邮件联盟的反垃圾邮件列表,这样你就能收到国你几个主要 ISP 的邮件,同时一些垃圾邮件也可能光临你的邮件服务器 ^_^
      ③Postfix 使用 MySQL 存储用户信息的配置文件已经包含在 extman 的发行包中,等安装 extman 的时候 copy /etc/postfix 目录下即可。
  设置 Postfix 开机自动运行,在 /etc/rc.local 中增加 “/usr/sbin/postfix start&”
  注: 系统已经打开了 Postfix TLS 支持,如果你需要这项功能可以参考 Postfix 发行包中的 TLS_README 文档进行配置。
      ② 你可以使用一个叫 pflogsumm.pl perl 脚本对 postfix 的日志进行分析,详细的情况见: http://jimsun.linxnet.com/postfix_contrib.html
 
6 、安装 Courier authentication library
  从下面的 URL 下载 Courier authlib 0.58 的源代码: http://www.courier-mta.org/?download.php
  安装 Courier authentication library Courier authentication library 将被安装在 “/usr/local/courier-authlib” 目录:
tar jvxf courier-authlib-0.58.tar.bz2
cd courier-authlib-0.58
./configure --prefix=/usr/local/courier-authlib --without-authpam --without-authldap /
--without-authpwd --without-authshadow --without-authvchkpw --without-authpgsql --with-authdaemonvar=/var/spool/authdaemon /
--with-authmysql --with-mysql-libs=/usr/lib --with-mysql-includes=/usr/include/mysql --with-redhat /
--with-authmysqlrc=/usr/local/courier-authlib/etc/authmysqlrc --with-authdaemonrc=/usr/local/courier-authlib/etc/authdaemonrc /
CHOST="i686-pc-linux-gnu" CFLAGS="-march=pentium4 -O2 -pipe -fomit-frame-pointer" CXXFLAGS="-march=pentium4 -O2 -pipe -fomit-frame-pointer"
make
make install
chmod 755 /var/spool/authdaemon
  配置 Courier authentication library
cp /usr/local/courier-authlib/etc/authdaemonrc.dist /usr/local/courier-authlib/etc/authdaemonrc
vi /usr/local/courier-authlib/etc/authdaemonrc
authmodulelist="authmysql"
authmodulelistorig="authmysql"
daemons=10
vi /usr/local/courier-authlib/etc/authmysqlrc
MYSQL_SERVER            localhost
MYSQL_USERNAME          extmail
MYSQL_PASSWORD          extmail
MYSQL_SOCKET            /var/lib/mysql/mysql.sock
MYSQL_DATABASE          extmail
MYSQL_USER_TABLE        mailbox
MYSQL_CRYPT_PWFIELD     password
MYSQL_UID_FIELD         '502'
MYSQL_GID_FIELD         '502'
MYSQL_LOGIN_FIELD       username
MYSQL_HOME_FIELD        concat('/home/mail/',homedir)
MYSQL_MAILDIR_FIELD     concat('/home/mail/',maildir)
MYSQL_NAME_FIELD        name
  注: 配置文件中的 “MYSQL_USERNAME” “MYSQL_PASSWORD” Courier authentication library 访问 MySQL 的用户名和密码,你可以使用与 Postfix 访问 MySQL 相同的用户。
      ②“MYSQL_UID_FIELD” “MYSQL_GID_FIELD” postfix 用户的 gid uid
  设置 Courier authentication library 开机自动运行,在 /etc/rc.local 中增加 “/usr/local/courier-authlib/sbin/authdaemond start”
  增加 “/usr/local/courier-authlib/lib/courier-authlib” 到你的 “/etc/ld.so.conf” ,并执行 ldconfig 命令。
7 、安装 Courier-IMAP
  从下面的 URL 下载 Courier-IMAP 4.0.6 的源代码: http://www.courier-mta.org/?download.php
  增加 Courier-IMAP 运行所需的用户和组:
groupadd vmail
useradd vmail -g vmail -c "Courier imap user" -d /nonexistent -s /sbin/nologin
  安装 Courier-IMAP Courier-IMAP 将被安装在 “/usr/local/courier-imap” 目录:
tar jvxf courier-imap-4.0.6.20051004.tar.bz2
cd courier-imap-4.0.6.20051004
./configure --prefix=/usr/local/courier-imap --with-trashquota --without-ipv6 --with-redhat /
--enable-unicode=utf-8,iso-8859-1,gb2312,big5 --disable-root-check /
CPPFLAGS='-I/usr/include/openssl -I/usr/local/courier-authlib/include' /
LDFLAGS='-L/usr/local/courier-authlib/lib/courier-authlib -L/usr/lib' /
COURIERAUTHCONFIG='/usr/local/courier-authlib/bin/courierauthconfig' /
CHOST="i686-pc-linux-gnu" CFLAGS="-march=pentium4 -O2 -pipe -fomit-frame-pointer" CXXFLAGS="-march=pentium4 -O2 -pipe -fomit-frame-pointer"
make
make install
make install-configure
  配置 Courier-IMAP ,为用户提供 pop3 服务:
vi /usr/local/courier-imap/etc/pop3d
POP3DSTART=yes
  设置 Courier-IMAP 开机自动运行:
cp courier-imap.sysvinit /etc/rc.d/init.d/imap
chmod +x /etc/rc.d/init.d/imap
chkconfig --add imap
  注:如果你想为用户提供 IMAP 服务,可以在 “/usr/local/courier-imap/etc/imapd” 文件中设置 “IMAPDSTART=yes”
 
9 、安装 Clam AntiVirus
  从下面的 URL 下载 clamav-0.87.1 的源代码: http://www.clamav.net/stable.php
  增加 Clam AntiVirus 运行所需的用户和组:
groupadd clamav
useradd clamav -g clamav -c "Clam AntiVirus" -d /dev/null
  安装 Clam AntiVirus
tar zvxf clamav-0.87.1.tar.gz
cd clamav-0.87.1
./configure --prefix=/usr/local/clamav --with-dbdir=/usr/local/clamav/share /
CHOST="i686-pc-linux-gnu" CFLAGS="-march=pentium4 -O2 -pipe -fomit-frame-pointer" CXXFLAGS="-march=pentium4 -O2 -pipe -fomit-frame-pointer"
make
make check
make install
  配置 Clam AntiVirus
vi /usr/local/clamav/etc/clamd.conf
# Example
LogFile /var/log/clamd.log
DatabaseDirectory /usr/local/clamav/share
LocalSocket /var/run/clamav/clamd
 
vi /usr/local/clamav/etc/freshclam.conf
# Example
DatabaseDirectory /usr/local/clamav/share
UpdateLogFile /var/log/freshclam.log
  注:你需要注释 clamd.conf freshclam.conf 文件开头部分的 “Example”
  建立 clamd freshclam log 文件,并让它们属于 clamav 用户:
touch /var/log/clamd.log /var/log/freshclam.log
chown clamav:clamav /var/log/clamd.log
chown clamav:clamav /var/log/freshclam.log
mkdir -p /var/run/clamav
  配置 crontab ,让 Clam AntiVirus 每小时检测一次新的病毒库:
crontab -e
13 * * * * /usr/local/clamav/bin/freshclam
  修改 “/etc/profile” 文件,将 “/usr/local/clamav/bin” 加到 PATH 变量中。
  增加 “/usr/local/clamav/lib” 到你的 “/etc/ld.so.conf” ,并执行 ldconfig 命令。
  设置 Clam AntiVirus 开机自动运行,在 /etc/rc.local 中增加 “/usr/local/clamav/sbin/clamd&”
  注: 你可以使用 clamav 发行包中 contrib 目录下面的 clamdwatch.pl 脚本监测 clamd 进程是否正常运行,详细情况参考 clamdwatch README 文档。
      ② 你也可以使用 chkconf 命令管理 clamd 的启动和停止,详细情况见 clamav 发行包中 contrib/init/RedHat 目录下面脚本文件。
 
10 、安装 Mail-SpamAssassin amavisd-new 所需要的基本类库和 perl 模块 :
  从下面的 URL 下载 compat-libstdc++-33-3.2.3-47.3.i386.rpm http://mirror.centos.org/centos/4/os/i386/CentOS/RPMS/
rpm -ivh compat-libstdc++-33-3.2.3-47.3.i386.rpm
  安装 RAR for linux
wget http://www.rarsoft.com/rar/rarlinux-3.5.1.tar.gz
tar zvxf rarlinux-3.5.1.tar.gz
cd rar
make install
  使用 wget 命令下载下列 perl 模块并按照顺序安装他们,具体的安装方法看发行包中的 README 文档:
wget http://search.cpan.org/CPAN/authors/id/G/GA/GAAS/Digest-SHA1-2.10.tar.gz
wget http://search.cpan.org/CPAN/authors/id/G/GA/GAAS/HTML-Parser-3.48.tar.gz
wget http://search.cpan.org/CPAN/authors/id/G/GA/GAAS/Digest-HMAC-1.01.tar.gz
wget http://search.cpan.org/CPAN/authors/id/M/MA/MANU/Net-IP-1.24.tar.gz
wget http://search.cpan.org/CPAN/authors/id/O/OL/OLAF/Net-DNS-0.54.tar.gz
wget http://search.cpan.org/CPAN/authors/id/D/DO/DOUGW/Net-CIDR-Lite-0.18.tar.gz
wget http://search.cpan.org/CPAN/authors/id/S/SC/SCOTT/Sys-Hostname-Long-1.4.tar.gz
wget http://search.cpan.org/CPAN/authors/id/F/FR/FREESIDE/Mail-SPF-Query-1.997.tar.gz
wget http://search.cpan.org/CPAN/authors/id/N/NW/NWETTERS/IP-Country-2.20.tar.gz
wget http://search.cpan.org/CPAN/authors/id/J/JH/JHI/Time-HiRes-1.83.tar.gz
wget http://voxel.dl.sourceforge.net/sourceforge/razor/razor-agents-2.77.tar.bz2
wget http://search.cpan.org/CPAN/authors/id/J/JP/JPC/Net-Ident-1.20.tar.gz
wget http://search.cpan.org/CPAN/authors/id/T/TI/TIMB/DBI-1.49.tar.gz
wget http://search.cpan.org/CPAN/authors/id/G/GA/GAAS/URI-1.35.tar.gz
wget http://search.cpan.org/CPAN/authors/id/P/PM/PMQS/Compress-Zlib-1.41.tar.gz
wget http://search.cpan.org/CPAN/authors/id/G/GA/GAAS/libwww-perl-5.805.tar.gz
wget http://search.cpan.org/CPAN/authors/id/T/TO/TOMHUGHES/IO-Zlib-1.04.tar.gz
wget http://search.cpan.org/CPAN/authors/id/K/KA/KANE/Archive-Tar-1.26.tar.gz
 
wget http://search.cpan.org/CPAN/authors/id/S/SM/SMPETERS/Archive-Zip-1.16.tar.gz
wget http://search.cpan.org/CPAN/authors/id/D/DS/DSKOLL/IO-stringy-2.110.tar.gz
wget http://search.cpan.org/CPAN/authors/id/M/MA/MARKOV/MailTools-1.67.tar.gz
wget http://search.cpan.org/CPAN/authors/id/G/GA/GAAS/MIME-Base64-3.07.tar.gz
wget http://search.cpan.org/CPAN/authors/id/D/DS/DSKOLL/MIME-tools-5.418.tar.gz
wget http://search.cpan.org/CPAN/authors/id/D/DO/DOUGW/Convert-TNEF-0.17.tar.gz
wget http://search.cpan.org/CPAN/authors/id/M/ML/MLEHMANN/Convert-UUlib-1.06.tar.gz
wget http://search.cpan.org/CPAN/authors/id/R/RH/RHANDOM/Net-Server-0.90.tar.gz
wget http://search.cpan.org/CPAN/authors/id/G/GB/GBARR/libnet-1.19.tar.gz
wget http://search.cpan.org/CPAN/authors/id/G/GA/GAAS/Digest-MD5-2.36.tar.gz
wget http://search.cpan.org/CPAN/authors/id/P/PM/PMQS/BerkeleyDB-0.27.tar.gz
wget http://search.cpan.org/CPAN/authors/id/C/CA/CAPTTOFU/DBD-mysql-3.0002.tar.gz
wget http://search.cpan.org/CPAN/authors/id/M/MH/MHARNISCH/Syslog-0.97.tar.gz
10 、安装 Mail-SpamAssassin
  从下面的 URL 下载 Mail-SpamAssassin 3.1.0 的源代码: http://spamassassin.apache.org
  安装 Mail-SpamAssassin Mail-SpamAssassin 的配置文件在 “/etc” 目录下:
tar jvxf Mail-SpamAssassin-3.1.0.tar.bz2
cd Mail-SpamAssassin-3.1.0
perl Makefile.PL
make
make test
make install
  注: ①perl Makefile.PL 命令时,系统会报 IO::Socket::INET6 IO::Socket::SSL 找不到,因为我们不使用这个两个功能,所以不需要安装。
      ② 关于 spam 的配置我也没有很多经验,如果大家有什么好的经验不妨分享一下 ^_^ 。你可以使用 CCERT 的中文垃圾邮件过滤规则集,详情见: http://www.ccert.edu.cn/spam/sa/Chinese_rules.htm
 
10 、安装 amavisd-new
  从下面的 URL 下载 amavisd-new-2.3.3 的源代码: http://www.ijs.si/software/amavisd/
  增加 amavisd-new 运行所需要的用户:
groupadd amavis
useradd amavis -g amavis -c "Amavisd-new" -d /var/amavis
  安装 amavisd-new
tar zvxf amavisd-new-2.3.3.tar.gz
cd amavisd-new-2.3.3
mkdir /var/amavis/tmp /var/amavis/var /var/amavis/db /var/amavis/home
chown -R amavis:amavis /var/amavis
chmod -R 750 /var/amavis
cp amavisd /usr/local/sbin/
chown root /usr/local/sbin/amavisd
chmod 755 /usr/local/sbin/amavisd
cp amavisd.conf /etc/
chown root /etc/amavisd.conf
chmod 644 /etc/amavisd.conf
mkdir /var/virusmails
chown amavis:amavis /var/virusmails
chmod 750 /var/virusmails
  配置 amavisd-new ,使用 Clam AntiVirus 作为病毒过滤程序,你需要去掉第 288 289 290 291 前面的注释, # 号之后是注释文本:
vi /etc/amavisd.conf
# @lookup_sql_dsn =('DBI:mysql:database=postfix;host=localhost', 'postfix', 'PosSDt$iTYx');
# @local_domains_maps = (sql:'SELECT description FROM domain');
$LOGFILE = "$MYHOME/amavis.log";
$mydomain = 'example.com';
$final_virus_destiny      = D_BOUNCE;
$final_banned_destiny     = D_BOUNCE;
$final_spam_destiny       = D_BOUNCE;
$final_bad_header_destiny = D_BOUNCE;
$QUARANTINEDIR = '/var/virusmails';
$undecipherable_subject_tag = '***UNCHECKED*** ';
$sa_tag2_level_deflt = 5;
$sa_kill_level_deflt = 5;
$max_servers = 10 ;
$daemon_user = 'amavis' ;
$daemon_group = 'amavis';
['Clam Antivirus-clamd',        #288
 /&ask_daemon, ["CONTSCAN {}/n", "/var/run/clamav/clamd"],
 qr//bOK$/, qr//bFOUND$/,
 qr/^.*?: (?!Infected Archive)(.*) FOUND$/ ],
 
  修改 Postfix 的配置,让它使用 amavisd-new 作内容过滤:
  master.cf 的最后增加下面的内容:
vi /etc/postfix/master.cf
smtp-amavis unix -      -       n     -       2 smtp
    -o smtp_data_done_timeout=1200
    -o smtp_send_xforward_command=yes
    -o disable_dns_lookups=yes
    -o max_use=20
 
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_delay_reject=no
    -o smtpd_client_restrictions=permit_mynetworks,reject
    -o smtpd_helo_restrictions=
    -o smtpd_sender_restrictions=
    -o smtpd_recipient_restrictions=permit_mynetworks,reject
    -o mynetworks_style=host
    -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 smtpd_client_connection_count_limit=0
    -o smtpd_client_connection_rate_limit=0
    -o receive_override_options=no_header_body_checks,no_unknown_recipient_checks
  main.cf 文件的最后增加下面的内容:
vi /etc/postfix/main.cf
content_filter=smtp-amavis:[127.0.0.1]:10024
  设置 amavisd-new 开机自动运行,在 /etc/rc.local 中增加 “/usr/local/sbin/amavisd -u amavis&”
  注: 你也可以使用 chkconf 命令管理 amavis 的启动和停止,详细情况见 amavis 发行包中的 amavisd_init.sh 文件。
      ② 你可以自定义 amavisd 通知邮件的模板,具体参考 amavis 发行包中的 amavisd.conf-sample 文件。
 
11 、安装 Extmail
  从下面的 URL 下载 extmail-0.22 的安装文件: http://www.extmail.org/cgi-bin/download.cgi
  安装 Extmail 所需要的 perl 模块,安装的方法同上面的一样:
wget http://search.cpan.org/CPAN/authors/id/K/KA/KASPER/HTML-KTemplate-1.33.tar.gz
  安装 Extmail
tar zxvf extmail-0.22.tar.gz
mv extmail-0.22 /usr/local/httpd/htdocs/extmail
cd /usr/local/httpd/htdocs/extmail
chown -R postfix.postfix cgi
  配置 Extmail ,因为 Extmail Config.pm 模块还不是很完善,在参数的后边一定不要有多余的空格:
cp webmail.cf.default webmail.cf
vi webmail.cf
SYS_CONFIG = /usr/local/httpd/htdocs/extmail/
SYS_LANGDIR = /usr/local/httpd/htdocs/extmail/lang
SYS_TEMPLDIR = /usr/local/httpd/htdocs/extmail/html
SYS_USER_LANG = zh_CN
SYS_USER_CHARSET = gb2312
SYS_MAILDIR_BASE = /home/mail
SYS_CRYPT_TYPE = crypt
SYS_MYSQL_USER = extmail
SYS_MYSQL_PASS = extmail
SYS_MYSQL_DB = extmail
 
  配置 Apache
AddHandler cgi-script .cgi
NameVirtualHost *:80
 
<VirtualHost *:80>
 ServerAdmin webmaster@example.com
 DocumentRoot /usr/local/httpd/htdocs/extmail/html
 Alias /extmail/cgi/ /usr/local/httpd/htdocs/extmail/cgi/
 Alias /extmail/ /usr/local/httpd/htdocs/extmail/html/
 Alias /extman/cgi/ /usr/local/httpd/htdocs/extman/cgi/
 Alias /extman/ /usr/local/httpd/htdocs/extman/html/
 ScriptAlias /extmail/cgi/ /usr/local/httpd/cgi-bin/extmail/cgi/
 SuexecUserGroup postfix postfix
 ServerName mail.example.com
 ErrorLog logs/mail.example.com-error_log
 CustomLog logs/mail.example.com-access_log common
</VirtualHost>
 
<Directory /usr/local/httpd/htdocs/extmail/cgi>
Options +ExecCGI
</Directory>
 
12 、安装 Extman
  从下面的 URL 下载 extman 0.12 http://www.extmail.org/cgi-bin/download.cgi
  安装 extman
tar zvxf extman-0.12.tar.gz
mv extman-0.12 /usr/local/httpd/htdocs/extman
cd /usr/local/httpd/htdocs/extman/libs/Ext
./buildlink.sh build /usr/local/httpd/htdocs/extmail/libs/Ext/
chown -R postfix.postfix /usr/local/httpd/htdocs/extman/cgi
mkdir /tmp/extman
chown postfix:postfix /tmp/extman
使用 extman 源码目录下 docs 目录中的 extmail.sql init.sql 建立数据库:
cd /usr/local/httpd/htdocs/extman/docs
mysql -u root -p <extmail.sql
mysql -u root -p <init.sql
cp mysql_virtual_* /etc/postfix/
  注:将有四个文件被 copy /etc/postfix 目录下面。
  配置 extman
SYS_CONFIG = /usr/local/httpd/htdocs/extman/
SYS_LANGDIR = /usr/local/httpd/htdocs/extman/lang
SYS_TEMPLDIR = /usr/local/httpd/htdocs/extman/html
SYS_MAILDIR_BASE = /home/mail
SYS_QUOTA_TYPE = vda
 
  配置 apache ,有两句关于 extman 的配置已经在配置 extmail 的时候增加了,不知道你看到没有?
<Directory /usr/local/httpd/htdocs/extman/cgi>
Options +ExecCGI
</Directory>
 
注: ①extman 默认的管理员: root@extmail.org ,密码: extmail
    ②“mail.example.com” 是你的域名。
    ③ 你可以从 http://www.extmail.org 上面看到 Extmail extman 的演示。
 
  重新启动服务器,检查是不是所有的服务都正常启动!如果有什么问题请首先查看系统的日志,因为 90% 以上的问题都可以从日志中找到错误原因。
 
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值