一.设置环境变量
# vi /etc/profile
PATH=/bin:/sbin:/usr/bin:/usr/sbin:/usr/local/bin:/usr/local/sbin:/usr/local/mysql/bin:/usr/local/apache/bin: \
/usr/sfw/bin:/usr/ccs/bin:/usr/dt/bin:/usr/ucb:/usr/openwin/bin
停止掉home的autofs,不然有可能会有权限问题
# vi /etc/auto_master //修改如下:
#/home auto_home -nobrowse
二.安装系统必要的软件包
Download url: http://www.sunfreeware.com
1.autoconf-2.57-sol9-sparc-local.gz
2.libgcc-3.3-sol9-sparc-local.gz
3.automake-1.7.2-sol9-sparc-local.gz
4.libiconv-1.8-sol9-sparc-local.gz
5.bison-1.75-sol9-sparc-local.gz
6.m4-1.4-sol9-sparc-local.gz
7.make-3.80-sol9-sparc-local.gz
8.flex-2.5.4a-sol9-sparc-local.gz
9.ncurses-5.3-sol9-sparc-local.gz
10.gcc-2.95.3-sol8-sparc-local.gz //一定要是用这个版本,否则编译mysql出错
11.nessus-2.0.9-sol9-sparc-local.gz
12.glib-2.2.3-sol9-sparc-local.gz
13.tar-1.13.19-sol9-sparc-local.gz
14.grep-2.5-sol9-sparc-local.gz
15.wget-1.9.1-sol9-sparc-local.gz
16.less-381-sol9-sparc-local.gz
17.zlib-1.2.1-sol9-sparc-local.gz
18.sed-4.0-sol9-sparc-local.gz
19.gzip-1.3.5-sol9-sparc-local
20.gdb-6.0-sol9-sparc-local.gz
21.libtool-1.5-sol9-sparc-local.gz
22.top-3.5beta12.5-sol9-sparc-local.gz
23.db-1.85-sol9-sparc-local.gz
安装方法:
# gunzip autoconf-2.57-sol9-sparc-local.gz
# pkgadd -d autoconf-2.57-sol9-sparc-local
........
三.安装Webmin
下载webmin-1.100.tar.gz
# gtar webin-1.100.tar.gz
# mv webmin-1.100 /usr/local/webmin
# cd /usr/local/webmin
# ./setup.sh
四.安装配置Mysql数据库
1.安装Mysql
从www.sunfreeware.com下载Mysql-3.23.53.tar.gz;一定要是用这个版本,不然和gcc不兼容,会出错.
# groupadd mysql //添加mysql组
# useradd -d /home/mysql -g mysql -m mysql //添加mysql用户
# passwd mysql //设置mysql用户密码
# cp /usr/local/lib/libncurses* /usr/lib/
设置环境变量:
使用crle命令可以查看系统的链接库
使用下面命令可以将这个路径增加到系统的链接库中:
crle -u -l /usr/local/lib(推荐该方式)
或者修改系统变量配置文件:
# vi /etc/profile
LD_LIBRARY_PATH=/usr/lib:/usr/local/lib:/usr/local/mysql/lib/mysql
export LD_LIBRARY_PATH
# init 6 //重新启动系统
# gtar zxvf Mysql-3.23.53.tar.gz
# CC=gcc CFLAGS="-O6" CXX=gcc CXXFLAGS="-O6 -felide-constructors -fno-exceptions -fno-rtti"
# ./configure --prefix=/usr/local/mysql \
--with-mysqld-user=mysql \
--with-charset=gbk \
--with-extra-charsets=all
# make
# make install
2.设置mysql
# ./scripts/mysql_install_db
# cp ./support-files/my-medium.cnf /etc/my.cnf
# chown -R root /usr/local/mysql
# chown -R mysql /usr/local/mysql/var
# chgrp -R mysql /usr/local/mysql
# cp /usr/local/mysql/lib/mysql/* /usr/lib
# cp /usr/local/mysql/include/mysql/* /usr/include/
设置启动文件:
# cp ./support-files/mysql.server /etc/init.d/mysqld
# ln -s /etc/init.d/mysqld /etc/rc3.d/S90mysql
# ln -s /etc/init.d/mysqld /etc/rc0.d/K90mysql
# /usr/local/mysql/bin/safe_mysqld --user=mysql & //启动mysql服务
# /usr/local/mysql/bin/mysqladmin -u root password 'password' //设置mysql数据库root用户的密码
# /usr/local/mysql/bin/mysql -u root -p password //如果出现一下提示,说明安装成功
Welcome to the MySQL monitor. Commands end with ; or \g.
Your MySQL connection id is 5 to server version: 3.23.53-log
Type 'help;' or '\h' for help. Type '\c' to clear the buffer.
mysql>
3.建立数据库
建立如下SQL脚本mail.sql
# cd /usr/local/mysql/
# vi mail.sql
CREATE DATABASE mail;
GRANT ALL ON mail.* TO mail@localhost
IDENTIFIED BY "password";
FLUSH PRIVILEGES;
USE mail;
CREATE TABLE USER (
ID int(10) unsigned NOT NULL auto_increment,
USERNAME varchar(128) NOT NULL default '',
PASSWORD varchar(40) NOT NULL default '$1$jyNMy$Lade0kOMQz4ZVhV93To.w/',
CLEAR_PASSWORD varchar(40) NOT NULL default '',
FORWARD varchar(128) NOT NULL default '',
DOMAIN varchar(64) NOT NULL default '',
HOMEDIR varchar(128) NOT NULL default '',
MAILDIR varchar(128) NOT NULL default '',
MAIL varchar(64) NOT NULL default '',
GID int(11) NOT NULL default 450,
UID int(11) NOT NULL default 450,
FILTER varchar(64) NOT NULL default 'DUNNO',
QUOTA int(11) NOT NULL default '104857600',
STATUS tinyint(4) NOT NULL default '1',
PRIMARY KEY (ID),
UNIQUE KEY USERNAME (USERNAME),
UNIQUE KEY MAIL (MAIL)
) TYPE=MyISAM;
INSERT INTO USER (USERNAME,PASSWORD,CLEAR_PASSWORD,FORWARD,DOMAIN,HOMEDIR,MAILDIR,MAIL)
VALUES ('admin','$1$jyNMy$Lade0kOMQz4ZVhV93To.w/','123','admin','mydomain','/mail/domains/mydomain.com/admin',
'/mail/domains/mydomain.com/admin/Maildir','admin@mydomain.com'),
('test@mydomain2.com','$1$jyNMy$Lade0kOMQz4ZVhV93To.w/','123','test@mydomain2.com','mydomain2.com',
'/mail/domains/mydomain2.com/test','/mail/domains/mydomain2.com/test/Maildir','test@mydomain2.com');
说明:
A.在MySQL中创建邮件用户数据库,并添加两个测试邮箱:
非虚拟域邮箱"admin",密码是"123"
虚拟域邮箱:"test@mydomain2.com",密码"123"
B.上面mail数据库的USER表用来保存用户信息:
a.USERNAME是用户名.USERNAME不但作为认证的手段,而且是本地邮箱查找条件(详见postfix的virtual.mysql),这里采用加密密码 是为了更好的安全性.对于:
非虚拟域邮箱:USERNAME字段是邮件的本地部分("@"前面的部分)
虚拟域邮箱:USERNAME字段是邮件地址的全称
b.PASSWORD字段是邮箱的MD5-Crypt密码,CLEAR_PASSWORD是明文密码.邮箱的密码是"testpw",加密后的(MD5- CRYPT)密文是 "$1$pi.WVgBx$a3dUCzBnbY76jnZlqWQCQ/"(可以通过系统的passwd命令来添加一个用户,生成密码,然后从 /etc/shadow中复制).
保存两个密码是由于Cyrus-SASL的mysql认证方式不支持加密的密码,而Courier-IMAP的mysql认证却使用加密的密码.
c.FORWARD字段默认情况下与USERNAME一样,在此情况下,邮件递交到本地邮箱(由于Postfix区分邮箱的大小写,所以通过这样的一个转发,正好可以消除大小写的区别);如果FORWARD字段是另外一个用户名或者邮件地址,则该邮件被转发到别的用户或其它邮件地址.
d.DOMAIN字段用来快速找出某个域下存在的邮箱,仅为管理方便使用.
e.MAILDIR字段用来给MailDrop指出邮件投递那里,HOMEDIR字段是邮件用户的主目录,通常指向一个任意存在的公共位置,不过可以使每个用户都拥有自己的主目录,在其中可以放入maildrop的过滤规则来实现用户级别的过滤.
f.MAIL字段是邮件地址全称.对于非虚拟域邮箱,它包含了本地部分外的域部分;对于虚拟域邮箱,它和USERNAME字段一样.一方面是为了管理方便使用,同时该字段还用来做maildrop递交和全局过滤控制FILTER的查找条件(见FILTER字段及下面Postfix的 filter.mysql).
g.GID字段和UID字段是系统使用的投递用户ID,即MailDrop的运行身份(在Postfix的master.cf指定).
h.FILTER字段用于控制该邮箱是否接受服务器的全局邮件过滤,该值设置为“OK”或为空表示对该邮箱不进行过滤;设置为"DUNNO"表示对该邮箱进行Postfix中定于的全局过滤.该值可以是任何合法的Postfix的access过滤规则
i.QUOTA字段指定邮箱的磁盘限额.
j.STATUS字段用来指示该用户是否有效,可以通过修改该值为0来临时禁止某个用户.
将该脚本添加到数据库
# ./bin/mysql -u root -p password < mail.sql
五.安装Cyrus-SASL
1.安装Cyrus-SASL
下载 ftp://202.96.64.158/pub/cyrus-sasl-2.1.15.tar.gz,最新的cyrus-sasl-2.1.18.tar.gz版本和系统不兼容,编译不过去 .
# gtar zxvf cyrus-sasl-2.1.15.tar.gz
# CC=gcc CFLAGS="-O6" CXX=gcc CXXFLAGS="-O6 -felide-constructors -fno-exceptions -fno-rtti"
# CPPFLAGS="-I/usr/local/mysql/include/mysql";export CPPFLAGS
# ./configure \
--enable-anon \
--enable-plain \
--enable-login \
--disable-krb4 \
--disable-otp \
--disable-cram
--disable-digest \
--with-mysql=/usr/local/mysql/lib/mysql \
--without-pam \
--without-saslauthd \
--without-pwcheck \
--with-plugindir=/usr/local/lib/sasl2
# make
# make install
2.设置Cyrus-SASL
设置Postfix使用SASL的mysql扩展认证来支持smtp auth认证:
# vi /usr/local/lib/sasl2/smtpd.conf //内容如下:
pwcheck_method: auxprop
mech_list: plain login
mysql_user: mail
mysql_passwd: password
mysql_hostname: localhost
mysql_database: mail
mysql_statement: select CLEAR_PASSWORD from USER where (USERNAME = '%u' or MAIL = '%u@%r') limit 1
整个系统只有Postfix的smtp auth使用了SASL认证.Courier-IMAP的认证使用了它自己的mysql扩展.
六.安装Maildrop
1.安装Maildrop
# wget ftp://ftp.sunfreeware.com/pub/freeware/sp...-sparc-local.gz
# wget [url=http://www.pccode.net]anet.dl.sourceforge.net/sourcefor...p-1.6.3.tar.bz2"http://heanet.dl.sourceforge.net/sourcefor...p-1.6.3.tar.bz2
# gunzip bzip2-1.0.2-sol9-sparc-local.gz
# pkgadd -d bzip2-1.0.2-sol9-sparc-local
# groupadd -g 450 maildrop
# useradd -g 450 -u 450 -c maildrop -d/home/mail maildrop
# bunzip2 maildrop-1.6.3.tar.bz2
# gtar xvf maildrop-1.6.3.tar
# cd maildrop-1.6.3
# CC=gcc CFLAGS="-O6" CXX=gcc CXXFLAGS="-O6 -felide-constructors -fno-exceptions -fno-rtti"
# CPPFLAGS="-I/usr/local/mysql/include";export CPPFLAGS
# LDFLAGS="-L/usr/local/mysql/lib";export LDFLAGS
# ./configure --without-db \
--enable-sendmail=/usr/sbin/sendmail \
--enable-trusted-users='root maildrop' \
--enable-maildropmysql \
--with-mysqlconfig=/etc/maildrop.mysql \
--enable-maildirquota \
--with-trashquota \
--with-dirsync
# make
# make install-strip
# make install-man
# cp maildropmysql.config /etc/maildrop.mysql
2.设置Maildrop
编辑配置文件/etc/maildrop.mysql
# vi /etc/maildrop.mysql
hostname localhost
port 3306
socket /tmp/mysql.sock
database mail
dbuser mail
dbpw password
dbtable USER
default_uidnumber 450
default_gidnumner 450
uid_field MAIL
uidnumber_field UID
gidnumber_field GID
maildir_field MAILDIR
homedirectory_field HOMEDIR
quota_field QUOTA
mailst