项目/实验目的
Postfix邮件系统安装<?xml:namespace prefix = o ns = "urn:schemas-microsoft-com:office:office" />

一:实验准备

二:安装postfixdovecot

任务一:实验准备
实验二终于正式使用openvz虚拟机了。

其实在实验一已经创建一个VE101了,为了方便一下实验 再创建一次。

#sudo vzctl create 101 –ostamplation ubuntu-8.04-amd64-minimal

#sudo vzctl set 101 –hostname mail-ve –ipadd 158.196.1.231 –onboot yes –save

#sudo vzctl start 101

#sudo vzctl enter 101

进入虚拟机了

#sudo vi /etc/resolv.conf

改为nameserver 158.196.1.230

现在还是上不了网  实验一 最后有一个补充 就是让OPENVZ上网,好了 现在弄一次

作一个iptables nat地址转换

创建一个文件iptables并输入一下指令

#!/bin/bash

modprobe ip_tables

modprobe ip_nat_ftp

modprobe ip_nat_irc

modprobe ip_conntrack

modprobe ip_conntrack_ftp

modprobe ip_conntrack_irc

iptables -F

iptables -X

iptables -Z

iptables -F -t nat

iptables -X -t nat

iptables -Z -t nat

iptables -P INPUT ACCEPT

iptables -P OUTPUT ACCEPT

iptables -P FORWARD ACCEPT

iptables -t nat -P PREROUTING ACCEPT

iptables -t nat -P POSTROUTING ACCEPT

"~/iptables_masquerade" 26 lines, 713 characters

OK 进入该目录 ./iptables 运行该脚本 

#sudo vzctl enter 101

ping google.com

通了   恭喜   

发现一个问题 就是  虚拟机居然比OS获得icmp包还快  为什么呢?

复制OS的源文件进来

然后 update upgrade dist-upgrade            别问我这是干什么

修改DNS服务器,在实验一 我们已经在OS上搭建过一个DNS,但是为了以后实现局域网双邮件服务器对发,要有两个域名来作两个邮件服务器。(也许一个域名大虾们也能实现)

/etc/bind/named.conf.local

zone "star.com" {

 

        type master;

 

        file "db.star";

 

};

zone "0.196.158.in-addr.arpa" {

 

        type master;

 

        file "reverse/db.star";

 

};

 

/var/cache/bind/db.star

@       IN      NS      localhost.

 

www     IN      A       158.196.0.230

 

mail    IN      A       158.196.0.230

post   IN      A        158.196.0.231

 @       IN      mx      10      mail.star.com.

       post.star.com  IN mx   12    post.star.com.

#/var/cache/bind/reverse/db.star

@       IN      NS      localhost.

 

230     IN      PTR     www.star.com.

 

230     IN      PTR     mail.star.com.

 

231     IN      PTR     post.shine.com.

 

Ok配置完毕
 
任务二:安装postfix邮件系统
数据库的使用,本打算使用OS的数据库作VE101邮件系统的数据库。

可是在网上查了N久文章,也没能真正实现其的应用。先方一边,方一边。。。。。

上边那个问题,我已经解决了,在my.cnf配置项内改bind-address=0.0.0.0 数据库就能接受其他机子的数据了。我现在知道好像只能使用127.0.0.10.0.0.0 不能指定单独的其他ip

这样已经可以实现了单数据库,但是有点卡,读取速度很慢。本实验不是研究mysql 现放下

OK 经过3天的日夜奋战,两台邮件服务器已经可以收发邮件了。

实验报告开始

配置ve

sudo apt-get install postfix-mysql mysql-server dovecot-pop3d dovecot-imapd amavisd-new libclass-dbi-mysql-perl telnet

我们配置的postfix是使用数据库实现虚拟域和帐户信息的使用。所以第一步配置虚拟域。

Mysql创建

首先创建一个数据库mail,给用户mailadmin权限去选择插入更新删除数据

创建3个表virtual_domains virtual_users virtual_aliases 2个视图view_users view_aliases

配置过程

>create databases mail;

>grant select,insert,updata,delete on mail.* to 'mailadmin'@'localhost' identified by 'libertine';

>create table virtual_domains (

>id int not null auto_increment primary key,

>name varchar(50) not null

>) type=myisam;

>insert into virtual_domains (name)

>values ('post.star.com');

>create table virtual_users (

>id int not null auto_increment primary key,

>domain_id int(11) not null,

>user varchar(40) not null,

>password varchar(32) not null,

>quato int(10) default '102400',

>constraint unique_email unique (domain_id,user),

>foreign key (domain_id) references virtual_domains(id) delete on cascade

>) type=myisam;

>insert into virtual_users (domain_id,user,password)

>values (1,'zhang3',MD5('libertine')),

>(1,'li4',MD5('libertine')),

>(1,'wang5',MD5('libertine'));

>create table virtual_aliases (

>id int not null auto_increment primary key,

>domain_id int not null,

>source varchar(40) not null,

>destination varchar(80) not null,

>foreign key (domain_id) references virtual_domains(id) delete on cascade

>) type=myisam;

>insert into virtual_aliases (domain_id,source,destination)

>values (1,'zhang3','zhang3@post.star.com'),

>(1,'zhang3','li4@post.star.com')

>(1,'','wang5@post.star.com');

>create view view_users as

>select concat(u.user,'@',virtual_domains.name) as email,u.password

>from virtual_users u

>left join virtual_domains on u.domain_id=virtual_domains.id;

>create view view_aliases as

>selet concat(virtual_aliases.source,'@',virtual_domains.name) as email,destination

>from virtual_aliases

>left join virtual_domains on virtual_aliases.domain_id=virtual_domains.id;

好了 数据库创建完毕了,这段代码凭借记忆我手动输入的,如果有问题希望指出。