项目/实验目的
Postfix邮件系统安装<?xml:namespace prefix = o ns = "urn:schemas-microsoft-com:office:office" />
一:实验准备
二:安装postfix与dovecot
任务一:实验准备
实验二终于正式使用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.1和0.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)
>(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;
好了 数据库创建完毕了,这段代码凭借记忆我手动输入的,如果有问题希望指出。
转载于:https://blog.51cto.com/starshine/222067