- 论坛徽章:
- 0
|
吼,我的一个哥们发给我的,顺便贴出来
1.安装mysql
cd /usr/ports/database/mysql40-server
make WITH_XCHARSET=all DB_DIR=/home/mysqldb BUILD_OPTIMIZED=yes install clean
修改mysql的绑定地址及最大连接数
修改/usr/local/etc/rc.d/mysql-server.sh中
/usr/local/bin/mysqld_safe --user=mysql --datadir=${DB_DIR} --pid-file=${PIDFILE} > /dev/null &
为
/usr/local/bin/mysqld_safe --user=mysql --datadir=${DB_DIR} --pid-file=${PIDFILE} --bind-address=127.0.0.1 -O max_connections=512 > /dev/null &
修改mysql的密码
use mysql;
set password for 'root'@'localhost' = password ('1198205255');
--------------------------------------
2.安装qmail
cd /usr/ports/mail/qmail
make patch
cd work/qmail-1.03
tar xjvf spamcontrol.tar.bz2
./spamcontrol.sh
cd ../..
make install clean
cd /var/qmail/configure
./config-fast nxl.3322.org
cp /var/qmail/boot/maildir /var/qmail/rc (后面还会修改)
mv /usr/sbin/sendmail /usr/sbin/sendmail.old
ln -s /var/qmail/bin/sendmail /usr/sbin
-------------------------------------
3.安装vpopmail
make WITH_MYSQL=yes WITH_MYSQL_SERVER=localhost WITH_MYSQL_USER=root WITH_MYSQL_PASSWD=computer WITH_MYSQL_DB=vpopmail WITH_MYSQL_LIMITS=yes install clean
chmod 6755 /usr/local/vpopmail/bin/vchkpw
修改/usr/local/vpopmail/etc/tcp.smtp为
127.0.0.1:allow,RELAYCLIENT="",REQUIREAUTH=""
如果不加127.0.0.1会不能收其他域的邮件
但是这样,对本域的验证就失效了
生成tcp.smtp.cdb
cd /usr/local/vpopmail/etc
tcprules tcp.smtp.cdb tcp.smtp.tmp
---------------------------------------
4.安装daemontools
cd /usr/ports/sysutils/daemontools
make install clean
daemontools目录结构如下:
建立daemontools目录结构
mkdir -p /var/log/qmail/smtpd
mkdir -p /var/log/qmail/pop3d
mkdir -p /var/log/qmail/send
mkdir /var/service
mkdir -p /var/qmail/supervise/smtpd/log
mkdir -p /var/qmail/supervise/pop3d/log
mkdir -p /var/qmail/supervise/send/log
ln -s /var/qmail/supervise/* /var/service
改变权限
chmod -R 755 /var/log/qmail
chown -R qmaill /var/log/qmail
chmod 755 /var/service
chmod 755 /var/qmail/supervise
chmod +t /var/qmail/supervise/smtpd
chmod +t /var/qmail/supervise/pop3d
chmod +t /var/qmail/supervise/send
修改/var/qmail/rc
#!/bin/sh
#
#
exec env - PATH="/var/qmail/bin:$PATH" \
qmail-start ./Maildir/
建立supervise脚本
touch /var/qmail/supervise/send/run
#!/bin/sh
exec /var/qmail/rc
touch /var/qmail/supervise/send/log/run
#!/bin/sh
exec /usr/local/bin/setuidgid qmaill /usr/local/bin/multilog t /var/log/qmail/send
touch /var/qmail/supervise/pop3d/run
#!/bin/sh
exec /usr/local/bin/softlimit -m 2000000 \
/usr/local/bin/tcpserver -v -R -H -l nxlmail.3322.org -c 512 0 pop3 \
/var/qmail/bin/qmail-popup nxlmail.3322.org /usr/local/vpopmail/bin/vchkpw \
/var/qmail/bin/qmail-pop3d Maildir 2>&1
touch /var/qmail/supervise/pop3d/log/run
#!/bin/sh
exec /usr/local/bin/setuidgid qmaill /usr/local/bin/multilog t /var/log/qmail/pop3d
touch /var/qmail/supervise/smtpd/run
#!/bin/sh
exec /usr/local/bin/softlimit -m 2000000 \
/usr/local/bin/tcpserver -v -R -l nxlmail.3322.org -x /usr/local/vpopmail/etc/tcp.smtp.cdb \
-c 512 -u `id -u qmaild` -g `id -g qmaild` 0 smtp /var/qmail/bin/qmail-smtpd \
/usr/local/vpopmail/bin/vchkpw /usr/bin/true 2>&1
touch /var/qmail/supervise/smtpd/log/run
#!/bin/sh
exec /usr/local/bin/setuidgid qmaill /usr/local/bin/multilog t /var/log/qmail/smtpd
修改run的属性
cd /var/qmail/supervise
chmod 755 `find ./ -name "run"`
生成qmailctl文件
#!/bin/sh
PATH=/var/qmail/bin:/bin:/usr/bin:/usr/local/bin:/usr/local/sbin
export PATH
QMAILDUID=`id -u qmaild`
NOFILESGID=`id -g qmaild`
case "$1" in
start)
echo "Starting qmail"
if svok /var/service/send ; then
svc -u /var/service/send /var/service/send/log
else
echo "qmail-send supervise not running"
fi
if svok /var/service/pop3d ; then
svc -u /var/service/pop3d /var/service/pop3d/log
else
echo "qmail-pop3d supervise not running"
fi
if svok /var/service/smtpd ; then
svc -u /var/service/smtpd /var/service/smtpd/log
else
echo "qmail-smtpd supervise not running"
fi
if [ -d /var/lock/subsys ]; then
touch /var/lock/subsys/qmail
fi
;;
stop)
echo "Stopping qmail..."
echo " qmail-pop3d"
svc -d /var/service/pop3d /var/service/pop3d/log
echo " qmail-smtpd"
svc -d /var/service/smtpd /var/service/smtpd/log
echo " qmail-send"
svc -d /var/service/send /var/service/send/log
if [ -f /var/lock/subsys/qmail ]; then
rm /var/lock/subsys/qmail
fi
;;
stat)
svstat /var/service/send
svstat /var/service/send/log
svstat /var/service/pop3d
svstat /var/service/pop3d/log
svstat /var/service/smtpd
svstat /var/service/smtpd/log
qmail-qstat
;;
doqueue|alrm|flush)
echo "Flushing timeout table and sending ALRM signal to qmail-send."
/var/qmail/bin/qmail-tcpok
svc -a /var/service/send
;;
queue)
qmail-qstat
qmail-qread
;;
reload|hup)
echo "Sending HUP signal to qmail-send."
svc -h /var/service/send
;;
pause)
echo "Pausing qmail-send"
svc -p /var/service/send
echo "Pausing qmail-smtpd"
svc -p /var/service/smtpd
;;
cont)
echo "Continuing qmail-send"
svc -c /var/service/send
echo "Continuing qmail-smtpd"
svc -c /var/service/smtpd
;;
restart)
echo "Restarting qmail:"
echo "* Stopping qmail-smtpd."
svc -d /var/service/smtpd /var/service/smtpd/log
echo "* Sending qmail-send SIGTERM and restarting."
svc -t /var/service/send /var/service/send/log
echo "* Restarting qmail-smtpd."
svc -u /var/service/smtpd /var/service/smtpd/log
;;
cdb)
tcprules /usr/local/vpopmail/etc/tcp.smtp.cdb /usr/local/vpopmail/etc/tcp.smtp.tmp
chmod 644 /usr/local/vpopmail/etc/tcp.smtp.cdb
echo "Reloaded /usr/local/vpopmail/etc/tcp.smtp."
;;
help)
cat
stop -- stops mail service (smtp connections refused, nothing goes out)
start -- starts mail service (smtp connection accepted, mail can go out)
pause -- temporarily stops mail service (connections accepted, nothing leaves)
cont -- continues paused mail service
stat -- displays status of mail service
cdb -- rebuild the tcpserver cdb file for smtp
restart -- stops and restarts smtp, sends qmail-send a TERM & restarts it
doqueue -- schedules queued messages for immediate delivery
reload -- sends qmail-send HUP, rereading locals and virtualdomains
queue -- shows status of queue
alrm -- same as doqueue
flush -- same as doqueue
hup -- same as reload
HELP
;;
*)
echo "Usage: $0 {start|stop|restart|doqueue|flush|reload|stat|pause|cont|cdb|queue|help}"
exit 1
;;
esac
exit 0
记得做以下步骤,不然svscan是起不来的
unlink /usr/local/etc/rc.d/qmail.sh
echo 'svscan_enable="YES"' >> /etc/rc.conf
5.安装杀毒模块qmail-scaner和反垃圾邮件模块
(1)安装clamav
cd /usr/ports/security/clamav
make install clean
echo 'clamav_freshclam_enable=”YES”' >> /etc/rc.conf
编辑 /usr/local/etc/freshclam.conf
改
Checks 12
为
Checks 2
(2)安装spamassassin
cd /usr/ports/mail/p5-Mail-SpamAssassin
make install clean
echo 'spamd_enable=”YES”'>>/etc/rc.conf
编辑/etc/crontab,添加下面一行
* * */7 * * root fetch -o /usr/local/share/spamassassin/00_chinese.cf http://www.ccert.edu.cn/spam/sa/Chinese_rules.cf
目的是定期更新适合中国的规则文件
(3)安装qmail-scaner(需要安装bash,用ports安装)
chmod 4711 /usr/bin/suidperl
make QMAILSCAN_ADMIN=ifconfig@tjyh2003.com QMAILSCAN_LOCALDOMAINS=mail.yhbbs.edu QMAILSCAN_SCANNERS=clamscan,fast_spamassassin install clean
Building Qmail-Scanner 1.24...
This script will search your system for the virus scanners it knows
about, and will ensure that all external programs
qmail-scanner-queue.pl uses are explicitly pathed for performance
reasons.
It will then generate qmail-scanner-queue.pl - it is up to you to install it
correctly.
Something like spamc for SpamAssassin detected - but not correctly installed
(didn't include a "X-Spam-Status" line in output).
Please read Q-S FAQ if you want it - especially check that spamd daemon
is running. Ignoring...
**************************
Cannot find evidence of QMAILQUEUE patch in /var/qmail/bin/qmail-smtpd!
This package REQUIRES that Qmail patch in order to operate.
Please read the README.html file again and download and install the patch
before continuing...
**************************
test -f /usr/ports/mail/qmail-scanner/work/qmail-scanner-1.24/qmail-scanner-queue.pl
*** Error code 1
Stop in /usr/ports/mail/qmail-scanner.
================================================
(安装过程非常缓慢)
(必须要手工指定QMAILSCAN_SCANNERS否则运行test_installation.sh会出现4.3.0的错误)
echo 'export QMAILQUEUE=”/usr/local/bin/qmail-scanner-queue.pl”'>>/var/qmail/supervise/smtpd/run
再把smtpd的启动脚本中,softlimit -m的值改大些,比如30000000
编辑/usr/local/bin/qmail-scanner-queue.pl
查找到my $spamc_options=' -f';
添加-c参数,记得-c前要有个空格
查找到my $spamc_subject='';
这个是在垃圾邮件的标题中要添加的文字,可以自己随便写
make extract之后contrib中的test_installation.sh -doit,他会发4封邮件,一封正常,两封带毒,一个垃圾邮件,收一下postmaster的邮箱,看看有没有这4封邮件,有就证明没问题了。
如果之中遇到问题,编辑/usr/local/bin/qmail-scaner-queue.pl
找到my $DEBUG='0';
把0改成1
这样就可以生成/usr/local/qmailscan/qmail-queue.log,方便排错了。
6.安装imp
imp是horde的一个模块,支持pop3及imap,之所以选择horde,是因为horde是模块化的东西,如果用户需要,还可以安装其他模块,如地址簿,收藏夹,日历等,非常方便。
cd /usr/ports/mail/imp3
make WITHOUT_LDAP=yes WITHOUT_SSL=yes WITHOUT_IMAPSERVER=yes install clean
会安装很多ports,耐心等待
启动apache
访问http://ur_server/horde/test.php,会发现没有安装HTML_Select
cd /usr/ports/devel/pear-HTML_Select
make install clean
生成horde数据库
vi /usr/local/www/horde/scripts/db/mysql_create.sql
修改第23行,这里是horde数据库的密码,自己改吧
mysql -u root -p
vi /usr/local/www/horde/config/horde.php
修改第171行,这里是mysql中horde数据库的用户名和密码
用户名是horde,密码就是你自己刚才设置的那个
vi /usr/local/www/horde/config/lang.php
第13行和17行
修改
$nls['default']['language']='en_US';
改为zh_CN
修改
$nls['default']['charset']='ISO-8859-1';
改为GB2312
vi /usr/local/www/horde/imp/config/prefs.php
第426行
将value的值改为0,locked的值改为true
第773行
将value值改为localsql
vi /usr/local/www/horde/imp/config/servers.php
先将所有跟pop3无关的服务器注释掉,再编辑跟pop3有关的项目
查看server,protocol,port,maildomain这几项,一般情况都是正确的
注:我在这里遇到一个问题,因为我的这个服务器经过了NAT转换,开始我把server的地址设置成了外网地址,无论如何,也不能登陆,后来把server地址改成内网地址就好了。有关NAT的问题,去cisco查查就明白了。
vi /usr/local/www/horde/turba/config/sources/php
第146行
修改username和password
创建turba的表
mysql -D horde -u root -p
本文来自ChinaUnix博客,如果查看原文请点:http://blog.chinaunix.net/u/186/showart_137853.html |
|