系统和软件
Centos 5.5
httpd-2.2.17.tar.gz
mysql-5.1.53.tar.gz
php-5.3.3.tar.gz
cyrus-courier-authlib-0.63.0.tar.bz2
courier-imap-4.6.0.tar.bz2
sasl-2.1.23.tar.gz
maildrop-2.5.2.tar.bz2
postfix-2.7.2.tar.gz
clamav-0.96.5.tar.gz
amavisd-new-2.6.4.tar.gz
Mail-SpamAssassin-3.3.1.tar.gz
pcre-8.01.tar.bz2
extmail-1.2.tar.gz
extman-1.1.tar.gz
1.系统安装
定制选择开发包和开发工具,其它可不安装
禁用Firewall和SELinux
2.创建src目录,然后上传源码包到此目录下
mkdir src
cd src
3.时间同步
yum install ntp -y
与国家授时中心同步时间
ntpdate 210.72.145.44
写入BIOS
hwclock -w
4安装 mysql
groupadd mysql
useradd -g mysql mysql
tar zxvf mysql-5.1.53.tar.gz
cd mysql-5.1.53
可以通过查看INSTALL-SOURCE内容来了解如何安装
配置参数
./configure --prefix=/usr/local/mysql --enable-thread-safe-client --enable-local-infile --with-charset=gbk --with-extra-
charsets=all --with-low-memory
make
make install
创建mysql配置文件
cp support-files/my-medium.cnf /etc/my.cnf
设置mysql自启动
cp support-files/mysql.server /etc/rc.d/init.d/mysqld
chmod 755 /etc/rc.d/init.d/mysqld
chkconfig --add mysqld
chkconfig mysqld on
初始化数据库
cd /usr/local/mysql
chown -R mysql:mysql .
bin/mysql_install_db --user=mysql
chown -R root .
chown -R mysql var
后台启动
bin/mysqld_safe --user=mysql &
查看是否启动
netstat -ant
tcp 0 0 0.0.0.0:3306 0.0.0.0:* LISTEN
配置库文件搜索路径
echo "/usr/local/mysql/lib/mysql" >> /etc/ld.so.conf
ldconfig
查看
ldconfig -v
添加环境变量
PATH=$PATH:/usr/local/mysql/bin
export PATH
5安装apache
cd /root/src/
tar zxvf httpd-2.2.17.tar.gz
cd httpd-2.2.17
配置参数
./configure --prefix=/usr/local/httpd --with-mysql=/usr/local/mysql --enable-so --enable-track-vars --enable-rewrite --with-
zlib --enable-mods-shared=all --enable-suexec --with-suexec-caller=daemon --with-suexec-docroot=/var/www
make
make install
编辑httpd.conf
vi /usr/local/httpd/conf/httpd.conf
将网站根目录指定到/var/www
#DocumentRoot "/usr/local/httpd/htdocs"
DocumentRoot "/var/www"
<Directory />
Options FollowSymLinks
AllowOverride None
Order deny,allow
# Deny from all
allow from all
</Directory>
#<Directory "/usr/local/httpd/htdocs">
<Directory "/var/www">
创建目录
mkdir /var/www
设置httpd自启动
echo "/usr/local/httpd/bin/apachectl start " >> /etc/rc.local
启动
/usr/local/httpd/bin/apachectl start
测试httpd是否正常
netstat -ant
tcp 0 0 :::80 :::* LISTEN
6安装PHP
cd /root/src/
tar zxvf php-5.3.3.tar.gz
cd php-5.3.3
配置参数
./configure --prefix=/usr/local/php --with-apxs2=/usr/local/httpd/bin/apxs --with-mysql=/usr/local/mysql --with-
mysqli=/usr/local/mysql/bin/mysql_config --with-xml --with-png --with-jpeg --with-zlib --with-freetype --with-gd --enable-
track-vars --enable-mbstring=all
enable-track-vars 为启动cookie的get/post等追踪功能
报错
configure: error: libpng.(a|so) not found.
安装
yum install libpng-devel
Notice: Following unknown configure options were used:
--with-xml
--with-png
--with-jpeg
--with-freetype
--enable-track-vars
--with-libxml-dir=
--with-png-dir=
--with-jpeg-dir
--with-freetype-dir
make
make install
configure: error: libpng.(a|so) not found.
yum install libpng-devel
yum install freetype-devel
./configure --prefix=/usr/local/php --with-apxs2=/usr/local/httpd/bin/apxs --with-mysql=/usr/local/mysql --with-
mysqli=/usr/local/mysql/bin/mysql_config --with-libxml-dir --with-png-dir --with-jpeg-dir --with-zlib --with-freetype-dir --
with-gd --enable-mbstring=all
make
make install
创建PHP配置文件
cp php.ini-production /usr/local/php/lib/php.ini
编辑httpd.conf 支持php
vi /usr/local/httpd/conf/httpd.conf
添加如下两行
AddType application/x-httpd-php .php
AddType application/x-httpd-php-source .phps
echo "AddType application/x-httpd-php .php" >> /usr/local/httpd/conf/httpd.conf
echo "AddType application/x-httpd-php-source .phps" >> /usr/local/httpd/conf/httpd.conf
设置请求目录时寻找的资源列表
DirectoryIndex index.html
DirectoryIndex index.html index.php
测试php
echo "<?php phpinfo() ?>" > /var/www/info.php
/usr/local/httpd/bin/apachectl restart
打开浏览器查看
7安装courier-authlib
cd /root/src/
添加vusr用户和vgroup组
groupadd -g 1000 vgroup
useradd -g 1000 -u 1000 -M -s /bin/false vuser
yum install expect
tar jxvf courier-authlib-0.63.0.tar.bz2
cd courier-authlib-0.63.0
./configure --prefix=/usr/local/courier-authlib --without-stdheaderdir --sysconfdir=/etc --without-authuserdb --without-
authpam --without-authldap --without-authpwd --without-authshadow --without-authvchkpw --without-authpgsql --without-
authcustom --with-authmysql --with-mysql-libs=/usr/local/mysql/lib/mysql --with-mysql-includes=/usr/local/mysql/include/mysql
--with-redhat --with-mailuser=vuser --with-mailgroup=vgroup
make
make install
make install-migrate
make install-configure
更新lib库文件搜索路径
echo "/usr/local/courier-authlib/lib/courier-authlib" >> /etc/ld.so.conf
ldconfig
ldconfig -v
cd /etc/authlib/
修改authdaemonrc文件
vi authdaemonrc
authmodulelist="authmysql authpipe"
authmodulelist="authmysql"
authmodulelistorig="authmysql authpipe"
authmodulelistorig="authmysql"
daemons=5
daemons=10
DEBUG_LOGIN=0
DEBUG_LOGIN=2
编辑authmysqlrc文件
vi authmysqlrc
MYSQL_SERVER localhost
MYSQL_USERNAME extmail
MYSQL_PASSWORD extmail
MYSQL_SOCKET /tmp/mysql.sock
MYSQL_PORT 3306
MYSQL_OPT 0
MYSQL_DATABASE extmail
MYSQL_USER_TABLE mailbox
MYSQL_CRYPT_PWFIELD password
MYSQL_UID_FIELD '1000'
MYSQL_GID_FIELD '1000'
MYSQL_LOGIN_FIELD username
MYSQL_HOME_FIELD concat("/var/mailbox/",homedir)
MYSQL_NAME_FIELD name
MYSQL_MAILDIR_FIELD concat("/var/mailbox/",maildir)
设置courier-authlib开机自启动
cp /root/src/courier-authlib-0.63.0/courier-authlib.sysvinit /etc/rc.d/init.d/courier-authlib
chmod 755 /etc/rc.d/init.d/courier-authlib
chkconfig --add courier-authlib
chkconfig courier-authlib on
service courier-authlib start
8安装courier-imap
cd /root/src/
tar jxvf courier-imap-4.6.0.tar.bz2
cd courier-imap-4.6.0
配置参数
./configure --prefix=/usr/local/courier-imap --with-redhat --enable-unicode --disable-root-check --with-trashquota --without
-ipv6 COURIERAUTHCONFIG='/usr/local/courier-authlib/bin/courierauthconfig'
make
make install
make install-configure
提供POP3服务
vi /usr/local/courier-imap/etc/pop3d
POP3DSTART=NO
POP3DSTART=YES
设置courier-imap开机自启动
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 courier-imapd on
service courier-imapd start
查看
netstat -ant
tcp 0 0 0.0.0.0:110 0.0.0.0:* LISTEN
9安装cyrus-sasl
cd /root/src/
删除系统自带的cyrus-sasl
rpm -qa | grep cyrus-sasl | xargs rpm -e --nodeps
rm -rf /usr/lib/sasl
rm -rf /usr/lib/sasl2
tar zxvf cyrus-sasl-2.1.23.tar.gz
cd cyrus-sasl-2.1.23
配置参数
./configure --enable-plain --enable-cram --enable-digest --enable-login --enable-sql --disable-anon --disable-ntlm --disable-
gssapi --disable-krb4 --disable-otp --disable-srp --disable-srp-setpass --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 --prefix=/usr/local/cyrus-sasl
make
make install
配置库文件搜索路径
ln -s /usr/local/cyrus-sasl/lib/sasl2 /usr/lib/sasl2
echo "/usr/local/cyrus-sasl/lib" >> /etc/ld.so.conf
ldconfig
ldconfig -v
创建smtpd.conf文件
vi /usr/local/cyrus-sasl/lib/sasl2/smtpd.conf
pwcheck_method: authdaemond
log_level: 3
mech_list: PLAIN LOGIN
authdaemond_path:/usr/local/courier-authlib/var/spool/authdaemon/socket
Postfix:Sql_select option missing问题解决
vi /usr/local/cyrus-sasl/lib/sasl2/smtpd.conf
添加
allow_plaintext: true
auxprop_plugin: mysql
sql_hostnames: localhost
sql_user: extmail
sql_passwd: extmail
sql_database: extmail
sql_select: select password from mailbox where username='%u'
~
10安装postfix
cd /root/src/
卸载sendmail
/etc/init.d/sendmail stop
rpm -qa | grep sendmail | xargs rpm -e --nodeps
tar zxvf postfix-2.7.2.tar.gz
cd postfix-2.7.2
========================================================
make makefiles 'CCARGS=-DHAS_MYSQL -I/usr/local/mysql/include/mysql -DUSE_CYRUS_SASL -DUSE_SASL_AUTH -
I/usr/local/include/sasl''AUXLIBS=-L/usr/local/mysql/lib/mysql -lmysqlclient -lm -lz -L/usr/local/lib -lsasl2'
make
===========================================================
groupadd -g 105 postfix
useradd -g postfix -u 105 -s /sbin/nologin -M postfix
grooupadd -g 106 postdrop
useradd -g postdrop -u 106 -s /sbin/nologin -M postdrop
make makefiles 'CCARGS=-DHAS_MYSQL -I/usr/local/mysql/include/mysql -DUSE_SASL_AUTH -DUSE_CYRUS_SASL -I/usr/local/cyrus-
sasl/include/sasl' 'AUXLIBS=-L/usr/local/mysql/lib/mysql -lmysqlclient -lz -lm -L/usr/local/cyrus-sasl/lib -lsasl2'
make
make install
tempdir: [/root/src/postfix-2.7.2] /tmp
11安装pcre
cd /root/src/
tar jxvf pcre-8.01.tar.bz2
cd pcre-8.01
./configure
make
make install
12安装maildrop
cd /root/src/
tar jxvf maildrop-2.5.2.tar.bz2
cd maildrop-2.5.2
ln -s /usr/local/courier-authlib/bin/courierauthconfig /usr/bin/courierauthconfig
配置参数
./configure --enable-sendmail=/usr/sbin/sendmail --enable-trusted-users='root vuser' --enable-syslog=1 --enable-maildirquota
--enable-maildrop-uid=1000 --enable-maildrop-gid=1000 --with-trashquota --with-dirsync --prefix=/usr/local/maildrop
make
make install
cp /usr/local/maildrop/bin/maildrop /usr/bin/
检测
maildrop -v
maildrop 2.5.2 Copyright 1998-2005 Double Precision, Inc.
GDBM/DB extensions enabled.
Courier Authentication Library extension enabled.****这一行
Maildir quota extension are now always enabled.
This program is distributed under the terms of the GNU General Public
License. See COPYING for additional information.
创建maildroprc
vi /etc/maildroprc
-----------------------------------
logfile "/var/log/maildrop.log"
to "$HOME/Maildir"
--------------------------------
logfile "/var/mailbox/maildrop.log"
to "$HOME/Maildir"
touch /var/log/maildrop.log
chown vuser.vgroup /var/log/maildrop.log
检测
maildrop -V 9 -d wellpan@96090.com
生成别名二进制文件
newaliases
修改main.cf 文件
修改master.cf 文件
设置postfix开机自启
postfix start
echo "postfix start" >> /etc/rc.local
检测postfix启动是否正常
netstat -ant
tcp 0 0 0.0.0.0:25 0.0.0.0:* LISTEN
13extmail依赖关系
perl -MCPAN -e shell
Are you ready for manual configuration? [yes] no
vi /usr/lib/perl5/5.8.8/CPAN/Config.pm
'urllist' => [],
'urllist' => [q[http://mirrors.163.com/cpan/ ]] ,
http://www.cpan.org/ 查找镜像
如要重新配置CPAN,可先进入CPAN,然后在CPAN命令行(即CPAN>)键入以下指令:
CPAN>o conf init
安装DBD::Mysql 数据库驱动
cpan DBD:mysql
安装Unix-Syslog
cpan Unix::Syslog
14安装extmail
cd /root/src
tar zxvf extmail-1.2.tar.gz
mkdir /var/www/extsuite
mv extmail-1.2 /var/www/extsuite/extmail
cd /var/www/extsuite/extmail/
创建webmail.cf文件
cp webmail.cf.default webmail.cf
vi webmail.cf
--------------------------------
SYS_MAILDIR_BASE = /home/domains
SYS_MAILDIR_BASE = /var/mailbox
--------------------------------
SYS_MYSQL_USER = db_user
SYS_MYSQL_PASS = db_pass
SYS_MYSQL_DB = extmail
SYS_MYSQL_HOST = localhost
SYS_MYSQL_SOCKET = /var/lib/mysql/mysql.sock
SYS_MYSQL_USER = extmail
SYS_MYSQL_PASS = extmail
SYS_MYSQL_DB = extmail
SYS_MYSQL_HOST = localhost
SYS_MYSQL_SOCKET = /tmp/mysql.sock
---------------------------------------
SYS_AUTHLIB_SOCKET = /var/spool/authdaemon/socket
SYS_AUTHLIB_SOCKET = /usr/local/courier-authlib/var/spool/authdaemon/socket
配置虚拟主机
vi /usr/local/httpd/conf/httpd.conf
Include conf/extra/httpd-vhosts.conf 去掉注释
vi /usr/local/httpd/conf/extra/httpd-vhosts.conf
NameVirtualHost 192.168.15.124:80
<VirtualHost 192.168.15.124:80>
DocumentRoot "/var/www/extsuite/extmail/html/"
ServerName mail.96090.com
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/
SuexecUserGroup vuser vgroup
<Directory "/var/www/extsuite/">
Options FollowSymLinks
Allowoverride none
Order allow,deny
Allow from all
</Directory>
</VirtualHost>
/usr/local/httpd/bin/apachectl restart
chown -R vuser:vgroup /var/www/extsuite/extmail/cgi/
15extman 安装
extman 依赖关系
安装gd-2.0.35.tar.bz2
cd /root/src/
tar jxvf gd-2.0.35.tar.bz2
cd gd-2.0.35
./configure --with-png --with-freetype --with-jpeg --with-zlib --with-fontconfig
make
make install
cpan GD
cpan Time::HiRes
cpan File::Tail
yum install pango-devel
安装rrdtool
cd /root/src/
tar zxvf rrdtool-1.4.4.tar.gz
cd rrdtool-1.4.4
./configure --prefix=/usr/local/rrdtool --enable-perl-site-install=/usr/lib/perl5
make
make install
cd /root/src/
tar zxvf extman-1.1.tar.gz
mv extman-1.1 /var/www/extsuite/extman
cd /var/www/extsuite/extman
cp webman.cf.default webman.cf
vi webman.cf
-----------------------------------------
YS_MAILDIR_BASE = /home/domains
SYS_MAILDIR_BASE = /var/mailbox
--------------------------------------------
SYS_MYSQL_SOCKET = /var/lib/mysql/mysql.sock
SYS_MYSQL_SOCKET = /tmp/mysql.sock
建立extmail数据库
cd docs/
vi init.sql
:%s/extmail.org/96090.com/g
/usr/local/mysql/bin/mysql -u root -p < extmail.sql
/usr/local/mysql/bin/mysql -u root -p < init.sql
chown -R vuser:vgroup /var/www/extsuite/extman/cgi/
创建运行时需要的临时目录
mkdir /tmp/extman
mkdir /var/mailbox
chown -R vuser:vgroup /tmp/extman
chown -R vuser:vgroup /var/mailbox
配置postfix虚拟域
cp mysql_virtual_* /etc/postfix/
配置extman图形日志
cd /var/www/extsuite/extman/addon/
cp -r mailgraph_ext /usr/local/
配置extman图形监控
cpan Time::HiRes
cpan File::Tail
/usr/local/mailgraph_ext/mailgraph-init start
echo "/usr/local/mailgraph_ext/mailgraph-init start" >> /etc/rc.local
启动cmdserver(在后台显示系统信息)
/var/www/extsuite/extman/daemon/cmdserver --daemon
添加开机起动
echo "/var/www/extsuite/extman/daemon/cmdserver -v -d" >> /etc/rc.d/rc.local
系统控制 服务状态 都是叉
extman/daemon/cmd_plugin/linux-cmd里相关路径
my $web_init = '/etc/init.d/httpd';
my $mta_init = '/etc/init.d/postfix';
my $fcgi_init = '/var/www/extsuite/extmail/dispatch-init';
my $slockd_init = '/usr/local/slockd/slockd-init';
my $dspam_init = '/etc/init.d/dspamd';
my $mysql_init = '/etc/init.d/mysqld';
my $ldap_init = '/etc/init.d/ldap';
修改成对应的路径
安装SpamAssassin
cd /root/src/
tar zxvf Mail-SpamAssassin-3.3.1.tar.gz
cd Mail-SpamAssassin-3.3.1
perl Makefile.PL
REQUIRED module missing: Digest::SHA
REQUIRED module missing: HTML::Parser
REQUIRED module missing: Net::DNS
REQUIRED module missing: NetAddr::IP
REQUIRED module missing: Archive::Tar
REQUIRED module missing: IO::Zlib
optional module missing: Digest::SHA
optional module missing: Mail::SPF
optional module missing: IP::Country
optional module missing: Razor2
optional module missing: Net::Ident
optional module missing: IO::Socket::INET6
optional module missing: IO::Socket::SSL
optional module missing: Compress::Zlib
optional module missing: Mail::DKIM
optional module missing: LWP::UserAgent
optional module missing: HTTP::Date
optional module missing: Encode::Detect
cpan Digest::SHA
|
|
cpan Encode::Detect
关于cpan Mail::SPF
Prereq 'v0.002.1' for 'Net::DNS::Resolver::Programmable' is not supported by Module::Build::Compat
cpan Net::DNS::Resolver::Programmable
cpan Error
perl -MCPAN -e "get(Mail::SPF)"
cd /root/.cpan/build/Mail-SPF-v2.007/
perl Build.PL
./Build
./Build test
./Build installdeps before
./Build install
关于Razor2
cpan Razor2::Client::Agent
perl Makefile.PL
make
make install
wget -N -P /usr/share/spamassassin www.ccert.edu.cn/spam/sa/Chinese_rules.cf
vi /etc/mail/spamassassin/local.cf
required_hits 10.0
#rewrite_subject 1
required_score 5.0
rewrite_header Subject *****SPAM*****
report_safe 1
use_bayes 1
bayes_auto_learn 1
skip_rbl_checks 1
use_razor2 0
use_pyzor 0
ok_locales all
测试spamassassin
spamassassin -t < sample-nonspam.txt > nonspam.out
spamassassin -t < sample-spam.txt > spam.out
查看测试结果:
less nonspam.out
less spam.out
检查配置文件
spamassassin -d --lint
Apr 2 03:37:01.120 [3272] warn: config: failed to parse line, skipping, in "/etc/mail/spamassassin/local.cf": rewrite_subject 1
Apr 2 03:37:01.296 [3272] warn: lint: 1 issues detected, please rerun with debug enabled for more information
正常没有输出
查看
ps -aux | grep spamd
安装clamav
groupadd clamav
useradd -g clamav -s /sbin/nologin -M clamav
groupadd amavis
useradd -g amavis -s /sbin/nologin -M amavis
cd /root/src
tar zxvf clamav-0.96.5.tar.gz
cd clamav-0.96.5
./configure --prefix=/usr/local/clamav --with-dbdir=/usr/local/share/clamav --sysconfdir=/usr/local/clamav/etc --disable-zlib
-vcheck
make
make install
建立日志所在的目录、进程与socket所在的目录,并让它属于clamav用户
#!/bin/bash
# create directory for clamav
mkdir /var/log/clamav
chmod -R 744 /var/log/clamav
chown -R amavis:amavis /var/log/clamav
chown -R amavis.amavis /usr/local/share/clamav
mkdir /var/run/clamav
chmod 700 /var/run/clamav
chown amavis.amavis /var/run/clamav
cd /usr/local/clamav/etc
vi clamd.conf
LogFile /var/log/clamav/clamd.log
LogSyslog yes
LogFacility LOG_MAIL
LogVerbose yes
PidFile /var/run/clamav/clamd.pid
DatabaseDirectory /usr/local/share/clamav
LocalSocket /var/run/clamav/clamd.socket
StreamMaxLength 20M
User amavis
ScanELF yes
ScanPDF yes
ScanMail yes
PhishingSignatures yes
vi freshclam.conf
DatabaseDirectory /usr/local/share/clamav
UpdateLogFile /var/log/clamav/freshclam.log
LogVerbose yes
LogSyslog yes
LogFacility LOG_MAIL
PidFile /var/run/freshclam.pid
DatabaseOwner amavis
DatabaseMirror db.CN.clamav.net
DatabaseMirror database.clamav.net
DatabaseMirror database.clamav.net
/usr/local/clamav/bin/freshclam 手动更新
crontab -e 定时更新
00 23 * * * /usr/local/clamav/bin/freshclam
配置库文件搜索路径
echo "/usr/local/clamav/lib" >> /etc/ld.so.conf
ldconfig
ldconfig -v
启动
/usr/local/clamav/sbin/clamd start
配置clamav开机启动
echo "/usr/local/clamav/sbin/clamd start" >> /etc/rc.local
安装amavisd-new
创建运行时需要的目录
cd /root/src/
tar zxvf amavisd-new-2.6.4.tar.gz
cd amavisd-new-2.6.4
#!/bin/bash
cd /root/postfix/amavisd-new-2.6.4
mkdir -p /var/amavis /var/amavis/tmp /var/amavis/var /var/amavis/db
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
vi /etc/amavisd.conf
$daemon_user = 'amavis';
$daemon_group = 'amavis';
$mydomain = 'ctt.cnn';
$virus_admin = "postmaster/@$mydomain";
$mailfrom_notify_admin = "postmaster/@$mydomain";
$mailfrom_notify_recip = "postmaster/@$mydomain";
$mailfrom_notify_spamadmin = "postmaster/@$mydomain";
$mailfrom_to_quarantine = '';
virus_admin_maps => ["postmaster/@$mydomain"], //指定报告病毒和垃圾邮件时发送系统邮件的用户身份
spam_admin_maps => ["postmaster/@$mydomain"],
? DetectPUA yes //去掉前面的注释 此版本没有
启用ClamAV,(大概在第363行)修改如下5行:
['ClamAV-clamd',
/&ask_daemon, ["CONTSCAN {}/n", "/var/run/clamav/clamd.socket"],
qr//bOK$/, qr//bFOUND$/,
qr/^.*?: (?!Infected Archive)(.*) FOUND$/ ],
['Mail::ClamAV', /&ask_clamav, "*", [0], [1], qr/^INFECTED: (.+)/],
测试启动amavisd
/usr/local/sbin/amavisd debug
IO::Stringy
MIME::Words
MIME::Head
MIME::Body
MIME::Entity
MIME::Parser
MIME::Decoder
MIME::Decoder::Base64
MIME::Decoder::Binary
MIME::Decoder::QuotedPrint
MIME::Decoder::NBit
MIME::Decoder::UU
MIME::Decoder::Gzip64
Net::Server
Net::Server::PreFork
cpan IO::Stringy
cpan MIME::Words
cpan Net::Server
安装 Convert::BinHex
tar zxvf Convert-BinHex-1.119.tar.gz
cd Convert-BinHex-1.119
perl Makefile.PL
make
make install
cpan BerkeleyDB
cpan Convert::TNEF
cpan Convert::UUlib
cpan Archive::Zip
/usr/local/sbin/amavisd debug
开机启动
cp amavisd_init.sh /etc/rc.d/init.d/amavisd
chmod +x /etc/rc.d/init.d/amavisd
vi /etc/rc.d/init.d/amavisd
#prog="/usr/sbin/amavisd"
prog="/usr/local/sbin/amavisd"
chkconfig --add amavisd
chkconfig --levels 345 amavisd on
service amavisd start
修改master.cf
vi /etc/postfix/master.cf
smtp-amavis unix - - n - 3 smtp
-o smtp_data_done_timeout=1200
-o smtp_send_xforward_command=yes
-o disable_dns_lookups=yes
-o max_use=10
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_client_restrictions=
-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
修改main.cf
vi /etc/postfix/main.cf
# Content-Filter
content_filter = smtp-amavis:[127.0.0.1]:10024
receive_override_options = no_address_mappings
定制webmail页面
SYS_SHOW_SIGNUP =
# 首页“注册免费邮箱”的按钮显示开关;1为显示,0为关闭;
关闭 注册免费邮箱
vi /var/www/extsuite/extmail/webmail.cf
SYS_SHOW_SIGNUP =0
<!-- -->注释
main.cf文件内容
command_directory = /usr/sbin
config_directory = /etc/postfix
daemon_directory = /usr/libexec/postfix
data_directory = /var/lib/postfix
debug_peer_level = 2
html_directory = no
mail_owner = postfix
mailq_path = /usr/bin/mailq
manpage_directory = /usr/local/man
newaliases_path = /usr/bin/newaliases
queue_directory = /var/spool/postfix
readme_directory = no
sample_directory = /etc/postfix
sendmail_path = /usr/sbin/sendmail
setgid_group = postdrop
unknown_local_recipient_reject_code = 550
##############################BASE################################
myhostname = mail.96090.com
mydomain = 96090.com
mydestination = $myhostname, localhost.$mydomain, localhost
local_recipient_maps =
inet_interfaces = all
myorigin = $mydomain
mynetworks = 192.168.15.0/24 127.0.0.1
############################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,permit
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!
#######################################Virtual Mailbox Settings#######################################
virtual_mailbox_base = /var/mailbox
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:1000
virtual_gid_maps = static:1000
virtual_transport = maildrop
maildrop_destination_recipient_limit = 1
maildrop_destination_concurrency_limit = 1
# Content-Filter
content_filter = smtp-amavis:[127.0.0.1]:10024
receive_override_options = no_address_mappings
master.cf文件内容
[root@mail ~]# more /etc/postfix/master.cf | sed -n '/^#/!p'
smtp inet n - n - - smtpd
pickup fifo n - n 60 1 pickup
cleanup unix n - n - 0 cleanup
qmgr fifo n - n 300 1 qmgr
tlsmgr unix - - n 1000? 1 tlsmgr
rewrite unix - - n - - trivial-rewrite
bounce unix - - n - 0 bounce
defer unix - - n - 0 bounce
trace unix - - n - 0 bounce
verify unix - - n - 1 verify
flush unix n - n 1000? 0 flush
proxymap unix - - n - - proxymap
proxywrite unix - - n - - proxymap
smtp unix - - n - - smtp
relay unix - - n - - smtp
-o smtp_fallback_relay=
showq unix n - n - - showq
error unix - - n - - error
retry unix - - n - - error
discard unix - - n - - discard
local unix - n n - - local
virtual unix - n n - - virtual
lmtp unix - - n - - lmtp
anvil unix - - n - 1 anvil
scache unix - - n - 1 scache
maildrop unix - n n - - pipe
flags=DRhu user=vuser argv=/usr/bin/maildrop -d ${recipient}
smtp-amavis unix - - n - 3 smtp
-o smtp_data_done_timeout=1200
-o smtp_send_xforward_command=yes
-o disable_dns_lookups=yes
-o max_use=10
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_client_restrictions=
-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
设置本机防火墙
#!/bin/bash
INIF="eth0"
iptables -F
iptables -X
iptables -Z
iptables -P INPUT DROP
iptables -P OUTPUT ACCEPT
iptables -P FORWARD ACCEPT
iptables -A INPUT -i lo -j ACCEPT
iptables -A INPUT -m state --state RELATED,ESTABLISHED -j ACCEPT
#allow some types of ICMP
AICMP="0 3 3/4 4 11 12 14 16 18"
for tyicmp in $AICMP
do
iptables -A INPUT -i $INIF -p icmp --icmp-type $tyicmp -j ACCEPT
done
#allow some servers in
iptables -A INPUT -p TCP -i $INIF --dport 25 --sport 1024:65534 -j ACCEPT # SMTP
iptables -A INPUT -p TCP -i $INIF --dport 110 --sport 1024:65534 -j ACCEPT # POP3
iptables -A INPUT -p TCP -i $INIF --dport 80 --sport 1024:65534 -j ACCEPT # WWW
iptables -A INPUT -p TCP -i $INIF --dport 22 --sport 1024:65534 -j ACCEPT # ssh
#iptables.all
#iptables -A INPUT -i $INIF -s 140.116.44.253 -j ACCEPT
#iptables.deny
#iptables -A INPUT -i $INIF -s 140.116.44.125 -j DROP
开机执行
echo "/usr/local/src/iptables.sh " >> /etc/rc.local
备份数据库和邮件
创建备份目录
mkdir –p /var/data_bk/mysqlbk
mkdir –p /var/data_bk/mailbk
备份脚本
#!/bin/bash
BackupPath=/var/data_bk
Mysql_bk_dir=$BackupPath/mysqlbk
Mail_bk_dir=$BackupPath/mailbk
LogFile=$BackupPath/backuplog
MailBoxDir=/var/mailbox
####################################################################
# define mysql variables #
####################################################################
NewFile="$Mysql_bk_dir"/extmail$(date +%Y%m%d).tgz
DumpFile="$Mysql_bk_dir"/extmail$(date +%Y%m%d).sql
OldFile="$Mysql_bk_dir"/extmail$(date +%Y%m%d --date='5 days ago').tgz
DbUser=root
DbPasswd=*******
DbName=extmail
####################################################################
# mysql backup proccess #
####################################################################
echo "-------------------------------------------" >> $LogFile
echo $(date +"%y-%m-%d %H:%M:%S") >> $LogFile
echo "--------------------------" >> $LogFile
#Delete Old File
if [ -f $OldFile ]
then
rm -f $OldFile >> $LogFile 2>&1
echo "[$OldFile]Delete Old File Success!" >> $LogFile
else
echo "[$OldFile]No Old Backup File!" >> $LogFile
fi
if [ -f $NewFile ]
then
echo "[$NewFile]The Backup File is exists,Can't Backup!" >> $LogFile
else
cd $Mysql_bk_dir
/usr/local/mysql/bin/mysqldump -u $DbUser -p$DbPasswd --opt $DbName > $DumpFile
tar czf $NewFile extmail$(date +%Y%m%d).sql >> $LogFile 2>&1
echo "[$NewFile]Backup Success!" >> $LogFile
rm -rf $DumpFile
fi
######################################################################
# backup mail's user directories and files #
######################################################################
MailFileBk=$Mail_bk_dir/mail$(date +%Y%m%d).tgz
OldMailFileBk=$Mail_bk_dir/mail$(date +%Y%m%d --date='14 days ago').tgz
if [ -f $OldMailFileBk ]
then
rm -rf $OldMailFileBk
fi
if [ -f $MailFileBk ]
then
echo "[$MailFileBk]The Backup File is exists,Can't Backup!" >> $LogFile
else
cd $Mail_bk_dir
tar czf $MailFileBk mailbox >> $LogFile 2>&1
fi
echo "-------------------------------------------" >> $LogFile
添加执行计划
crontab –e
00 01 * * * /usr/local/src/data_backup.sh
问题
web可以接收发送邮件
smtp 不可以发送邮件
pop3 可以接收邮件
warning: SASL authentication failure: cannot connect to Courier authdaemond: Permission denied
执行
chmod +x /usr/local/courier-authlib/var/spool/authdaemon
参考
http://wenku.baidu.com/view/a2543c170b4e767f5acfce1f.html
http://124.232.150.96/post/16/
http://sery.blog.51cto.com/10037/45500
http://www.postfixvirtual.net/mysqlinstall.html
http://wiki.extmail.org/extmail_solution_for_linux_centos-5