分享
 
 
 

Solaris 9 构建基于Postfix的反垃圾反病毒邮件服务器

王朝other·作者佚名  2006-11-24
窄屏简体版  字體: |||超大  

一.设置环境变量

# 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

[1] [2] [3] [4] [5] 下一页

 
 
 
免责声明:本文为网络用户发布,其观点仅代表作者个人观点,与本站无关,本站仅提供信息存储服务。文中陈述内容未经本站证实,其真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
2023年上半年GDP全球前十五强
 百态   2023-10-24
美众议院议长启动对拜登的弹劾调查
 百态   2023-09-13
上海、济南、武汉等多地出现不明坠落物
 探索   2023-09-06
印度或要将国名改为“巴拉特”
 百态   2023-09-06
男子为女友送行,买票不登机被捕
 百态   2023-08-20
手机地震预警功能怎么开?
 干货   2023-08-06
女子4年卖2套房花700多万做美容:不但没变美脸,面部还出现变形
 百态   2023-08-04
住户一楼被水淹 还冲来8头猪
 百态   2023-07-31
女子体内爬出大量瓜子状活虫
 百态   2023-07-25
地球连续35年收到神秘规律性信号,网友:不要回答!
 探索   2023-07-21
全球镓价格本周大涨27%
 探索   2023-07-09
钱都流向了那些不缺钱的人,苦都留给了能吃苦的人
 探索   2023-07-02
倩女手游刀客魅者强控制(强混乱强眩晕强睡眠)和对应控制抗性的关系
 百态   2020-08-20
美国5月9日最新疫情:美国确诊人数突破131万
 百态   2020-05-09
荷兰政府宣布将集体辞职
 干货   2020-04-30
倩女幽魂手游师徒任务情义春秋猜成语答案逍遥观:鹏程万里
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案神机营:射石饮羽
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案昆仑山:拔刀相助
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案天工阁:鬼斧神工
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案丝路古道:单枪匹马
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:与虎谋皮
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:李代桃僵
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:指鹿为马
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案金陵:小鸟依人
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案金陵:千金买邻
 干货   2019-11-12
 
推荐阅读
 
 
 
>>返回首頁<<
 
靜靜地坐在廢墟上,四周的荒凉一望無際,忽然覺得,淒涼也很美
© 2005- 王朝網路 版權所有