LINUX从零开始——SERVICES(系统&服务管理进阶)——Day4 [缓存DNS、Split分离解析、电子邮件通信、Web服务器项目实战]

一、环境准备
1.还原快照,开启虚拟机A与虚拟机B,以root用户登录

二 、环境设置
1.防火墙设置:
虚拟机A
[root@A ~]# firewall-cmd --set-default-zone=trusted
[root@A ~]# firewall-cmd --get-default-zone

虚拟机B
[root@B ~]# firewall-cmd --set-default-zone=trusted
[root@B ~]# firewall-cmd --get-default-zone

2.设置SELinux运行模式为宽松
虚拟机A:
[root@A ~]# getenforce
Enforcing
[root@A ~]# setenforce 0 #设置当前系统SELinux为宽松
[root@A ~]# getenforce #查看当前系统SELinux运行模式
Permissive
[root@A ~]# vim /etc/selinux/config
SELINUX=permissive

虚拟机B:操作同上

二、构建DNS服务器
虚拟机A:
1.安装软件包
[root@A~]# yum -y install bind-chroot bind
2.修改主配置文件
[root@A ~]# cp /etc/named.conf /etc/named.bak
[root@A ~]# vim /etc/named.conf
options {
directory “/var/named”; #指定地址库文件存放的路径
};
zone “tedu.cn” IN { #指定本机负责解析的域名
type master; #指定本机为权威主DNS服务器
file “tedu.cn.zone”; #指定地址库文件名称
};

3.建立地址库文件
[root@A ~]# cd /var/named/
[root@A named]# cp -p named.localhost tedu.cn.zone #-p保持权限不变进行复制
[root@A named]# ls -l tedu.cn.zone
[root@A /]# vim /var/nam ed/tedu.cn.zone
$TTL 1D
@ IN SOA @ rname.invalid. (
0 ; serial
1D ; refresh
1H ; retry
1W ; expire
3H ) ; minimum
tedu.cn. NS a #声明DNS服务器叫a
a A 192.168.4.7 #声明a的IP地址是192.168.4.7
www A 1.1.1.1
ftp A 2.2.2.2
[root@A named]# systemctl restart named
[root@A named]# systemctl status named

虚拟机B:
1.指定DNS服务器位置
[root@B ~]# echo nameserver 192.168.4.7 > /etc/resolv.conf
2.测试域名解析
[root@B ~]# rpm -ql bind-utils
[root@B ~]# nslookup www.tedu.cn
Server: 192.168.4.7
Address: 192.168.4.7#53

Name: www.tedu.cn
Address: 1.1.1.1

虚拟机A:测试
[root@A /]# rpm -ql bind-utils
[root@A /]# echo nameserver 192.168.4.7 > /etc/resolv.conf
[root@A /]# nslookup www.tedu.cn

##################################################
三、DNS子域授权

父域:tedu.cn
子域:bj.tedu.cn

虚拟机B:构建DNS服务器负责解析bj.tedu.cn

1.安装软件包
[root@B ~]# yum -y install bind bind-chroot
2.修改配置文件
[root@B ~]# cp /etc/named.conf /etc/named.bak
[root@B ~]# vim /etc/named.conf
options {
directory “/var/named”;
};

zone “bj.tedu.cn” IN {
type master;
file “bj.tedu.cn.zone”;
};

3.建立地址库文件
[root@B ~]# cd /var/named/
[root@B named]# cp -p named.localhost bj.tedu.cn.zone
[root@B named]# vim bj.tedu.cn.zone
$TTL 1D
@ IN SOA @ rname.invalid. (
0 ; serial
1D ; refresh
1H ; retry
1W ; expire
3H ) ; minimum
bj.tedu.cn. NS b
b A 192.168.4.207
www A 3.3.3.3

[root@B /]# systemctl restart named

虚拟机A:配置子域授权,让虚拟机A知道虚拟机B的存在,并且知晓虚拟机B负责的域名
1.修改地址库文件
[root@A /]# vim /var/named/tedu.cn.zone #NS记录必须在所有A记录的上边
tedu.cn. NS a
bj.tedu.cn. NS b
a A 192.168.4.7
b A 192.168.4.207
www A 1.1.1.1
ftp A 2.2.2.2
[root@A /]# systemctl restart named

虚拟机B测试:
[root@B /]# nslookup www.bj.tedu.cn 192.168.4.7
Server: 192.168.4.7
Address: 192.168.4.7#53

Non-authoritative answer: #非权威的解析
Name: www.bj.tedu.cn
Address: 3.3.3.3

递归解析:客户端将解析请求给首选DNS服务器,首选DNS服务器与其他DNS服务器交互,最终将解析结果带回来的过程

虚拟机A:关闭递归解析
[root@A /]# vim /etc/named.conf
options {
directory “/var/named”;
recursion no; #禁止递归解析
};
zone “tedu.cn” IN {
type master;
file “tedu.cn.zone”;
};
[root@A /]# systemctl restart named

迭代解析:客户端将解析请求给首选DNS服务器,首选DNS服务器告知下一个DNS服务器地址

总结:
客户端将解析请求给首选DNS服务器,首选DNS服务器开始递归解析,然后在与根域名服务器依次进行迭代查询,最终将解析结果带回来

##################################################################
四、DNS的主从架构

作用:提高可靠性,从服务器备份主服务器数据(主要备份的数据为地址库文件)

虚拟机A配置新的域名解析
虚拟机A:
1.安装软件包
[root@A~]# yum -y install bind-chroot bind
2.修改主配置文件
[root@A ~]# vim /etc/named.conf
options {
directory “/var/named”; #指定地址库文件存放的路径
};
zone “tedu.cn” IN { #指定本机负责解析的域名
type master; #指定本机为权威主DNS服务器
file “tedu.cn.zone”; #指定地址库文件名称
};
zone “360.com” IN { #指定本机负责解析的域名
type master; #指定本机为权威主DNS服务器
file “360.com.zone”; #指定地址库文件名称
};
3.建立地址库文件
[root@A ~]# cd /var/named/
[root@A named]# cp -p named.localhost 360.com.zone #-p保持权限不变进行复制
[root@A named]# ls -l 360.com.zone
[root@A /]# vim /var/named/360.com.zone
$TTL 1D
@ IN SOA @ rname.invalid. (
0 ; serial
1D ; refresh
1H ; retry
1W ; expire
3H ) ; minimum
360.com. NS a #声明DNS服务器叫a
a A 192.168.4.7 #声明a的IP地址是192.168.4.7
www A 4.4.4.4
[root@A named]# systemctl restart named
[root@A named]# systemctl status named

虚拟机B:
1.指定DNS服务器位置
[root@B ~]# echo nameserver 192.168.4.7 > /etc/resolv.conf
2.测试域名解析
[root@B ~]# rpm -ql bind-utils
[root@B ~]# nslookup www.360.com
Server: 192.168.4.7
Address: 192.168.4.7#53

Name: www.360.com
Address: 4.4.4

虚拟机A配置主从
1.授权从服务器的IP地址 参考:man named.conf
[root@A named]# vim /etc/named.conf
options {
directory “/var/named”;
allow-transfer { 192.168.4.207; }; #指定从服务器192.168.4.207可以传输数据
};
zone “tedu.cn” IN {
type master;
file “tedu.cn.zone”;
};
zone “360.com” IN {
type master;
file “360.com.zone”;
};

2.从DNS服务器的声明
[root@A /]# vim /var/named/360.com.zone
$TTL 1D
@ IN SOA @ rname.invalid. (
0 ; serial
1D ; refresh
1H ; retry
1W ; expire
3H ) ; minimum
360.com. NS a
360.com. NS b
a A 192.168.4.7
b A 192.168.4.207
www A 4.4.4.4
[root@A /]# systemctl restart named

虚拟机B配置从服务器
1.安装软件包
[root@B /]# yum -y install bind bind-chroot
2.修改主配置文件
[root@B /]# cp /etc/named.conf /etc/named.bak
[root@B /]# vim /etc/named.conf
options {
directory “/var/named”;
};
zone “360.com” IN {
type slave; #类型为从服务器
file “/var/named/slaves/360.com.slave”; #保证named用户拥有写入权限
masters { 192.168.4.7; }; #指定主DNS服务器IP地址
};
[root@B /]# ls /var/named/slaves/
[root@B /]# systemctl restart named
[root@B /]# ls /var/named/slaves/

主从DNS服务器同步数据

虚拟机A:
[root@A /]# vim /var/named/360.com.zone
$TTL 1D
@ IN SOA @ rname.invalid. (
0 ; serial
1D ; refresh
1H ; retry
1W ; expire
3H ) ; minimum
360.com. NS a
360.com. NS b
a A 192.168.4.7
b A 192.168.4.207
www A 5.5.5.5
[root@A /]# systemctl restart named

虚拟机B:测试
[root@B /]# nslookup www.360.com 192.168.4.7
Server: 192.168.4.7
Address: 192.168.4.7#53

Name: www.360.com
Address: 5.5.5.5

[root@B /]# nslookup www.360.com 192.168.4.207
Server: 192.168.4.207
Address: 192.168.4.207#53

Name: www.360.com
Address: 4.4.4.4

[root@B /]#

虚拟机A修改数据的版本号

                              2020031601   ; serial      #数据的版本号,由10个数字组成,越大版本,数据越新
                                    1D      ; refresh         #主从DNS服务器之间同步数据默认为1天
                                    1H      ; retry             #重试的时间间隔   1个小时
                                    1W      ; expire          #失效的时间   1周
                                    3H )    ; minimum     #失败的记录,记忆时间 3个小时

[root@A /]# vim /var/named/360.com.zone
$TTL 1D
@ IN SOA @ rname.invalid. (
2020031603 ; serial
1D ; refresh
1H ; retry
1W ; expire
3H ) ; minimum
360.com. NS a
360.com. NS b
a A 192.168.4.7
b A 192.168.4.207
www A 7.7.7.7

[root@A /]# systemctl restart named

虚拟机B:测试
[root@B /]# nslookup www.360.com 192.168.4.7
Server: 192.168.4.7
Address: 192.168.4.7#53

Name: www.360.com
Address: 7.7.7.7

[root@B /]# nslookup www.360.com 192.168.4.207
Server: 192.168.4.207
Address: 192.168.4.207#53

Name: www.360.com
Address: 7.7.7.7

[root@B /]#

##################################################################
五、缓存DNS服务器
作用:缓存解析记录,加速域名解析

在这里插入图片描述

虚拟机A:真正的DNS服务器
虚拟机B:缓存DNS服务器
虚拟机C:作为客户端验证

虚拟机B:配置缓存DNS服务器
[root@B /]# vim /etc/named.conf
options {
directory “/var/named”;
forwarders { 192.168.4.7; }; #转发给192.168.4.7
};
[root@B /]# systemctl restart named

虚拟机B:测试
[root@B /]# nslookup www.tedu.cn 192.168.4.207
Server: 192.168.4.207
Address: 192.168.4.207#53

Non-authoritative answer:
Name: www.tedu.cn
Address: 1.1.1.1

##################################################################
六、DNS服务器的分离解析

•当收到客户机的DNS查询请求的时候
–能够区分客户机的来源地址
–为不同类别的客户机提供不同的解析结果(IP地址)
–让客户端访问最近的服务器

牛老师(北京南站)—达外酒店-----》高德地图-----》北京南大街107号

王老师(北京西站)—达外酒店-----》高德地图-----》北京西大街38号

BIND的view视图
•根据源地址集合将客户机分类
–不同客户机获得不同结果(待遇有差别)
–由上到下依次进行匹配,匹配及停止
–分类要合理,每一个客户端都要找到自己的分类
–所有的zone都必须在view中
view “haha” { #分类的名称
match-clients { 192.168.4.100 }; #匹配客户端来源地址
zone “12306.cn” IN {
…… 地址库1;
};
};
view “xixi” { #分类的名称
match-clients { 192.168.4.200; }; #匹配客户端来源地址
zone “12306.cn” IN {
…… 地址库2;
};
};
view “hehe” { #分类的名称
match-clients { any; }; #匹配客户端来源地址
zone “12306.cn” IN {
…… 地址库3;
};
};

•环境及需求
–权威DNS:a.tedu.cn 192.168.4.7
–负责区域:tedu.cn
–A记录分离解析 —— 以 www.tedu.cn 为例

在这里插入图片描述

虚拟机A:
1.修改主配置文件
[root@A /]# vim /etc/named.conf
options {
directory “/var/named”;
};
view “haha” {
match-clients { 192.168.4.207; 192.168.7.0/24; };
zone “tedu.cn” IN {
type master;
file “tedu.cn.zone”;
};
};
view “xixi” {
match-clients { any; };
zone “tedu.cn” IN {
type master;
file “tedu.cn.other”;
};
};

2.建立相应的地址文件
[root@A /]# cd /var/named/
[root@A named]# vim tedu.cn.zone
$TTL 1D
@ IN SOA @ rname.invalid. (
0 ; serial
1D ; refresh
1H ; retry
1W ; expire
3H ) ; minimum
tedu.cn. NS a
a A 192.168.4.7
www A 192.168.4.100
[root@A named]# cp -p tedu.cn.zone tedu.cn.other
[root@A named]# vim tedu.cn.other
$TTL 1D
@ IN SOA @ rname.invalid. (
0 ; serial
1D ; refresh
1H ; retry
1W ; expire
3H ) ; minimum
tedu.cn. NS a
a A 192.168.4.7
www A 1.2.3.4

3.重启服务
[root@A /]# systemctl restart named

虚拟机A:测试
[root@A /]# nslookup www.tedu.cn 192.168.4.7
Server: 192.168.4.7
Address: 192.168.4.7#53

Name: www.tedu.cn
Address: 1.2.3.4

虚拟机B:测试
[root@B /]# nslookup www.tedu.cn 192.168.4.7
Server: 192.168.4.7
Address: 192.168.4.7#53

Name: www.tedu.cn
Address: 192.168.4.100

•多域名的分离解析
–权威DNS: 192.168.4.7
–负责区域:tedu.cn 360.com
–A记录分离解析 —— 以 www.tedu.cn与www.360.com为例

客户端为192.168.4.207或192.168.7.0/24解析www.tedu.cn----->192.168.4.100
客户端为其他地址 解析www.tedu.cn----->1.2.3.4

客户端为192.168.4.207或192.168.7.0/24解析www.360.com----->192.168.4.200
客户端为其他地址 解析www.360.com----->10.20.30.40

注意事项:
1.每一个view中,zone个数要一致
2.每一个view中,zone负责的域名要一致

虚拟机A:
1.修改主配置文件
[root@A /]# vim /etc/named.conf
options {
directory “/var/named”;
};
view “haha” {
match-clients { 192.168.4.207; 192.168.7.0/24; };
zone “tedu.cn” IN {
type master;
file “tedu.cn.zone”;
};
zone “360.com” IN {
type master;
file “360.com.zone”;
};
};
view “xixi” {
match-clients { any; };
zone “tedu.cn” IN {
type master;
file “tedu.cn.other”;
};
zone “360.com” IN {
type master;
file “360.com.other”;
};
};

2.建立地址库文件
[root@A /]# cd /var/named/
[root@A named]# vim 360.com.zone
$TTL 1D
@ IN SOA @ rname.invalid. (
2020031603 ; serial
1D ; refresh
1H ; retry
1W ; expire
3H ) ; minimum
360.com. NS a
a A 192.168.4.7
www A 192.168.4.200
[root@A named]# cp -p 360.com.zone 360.com.other
[root@A named]# vim 360.com.other
$TTL 1D
@ IN SOA @ rname.invalid. (
2020031603 ; serial
1D ; refresh
1H ; retry
1W ; expire
3H ) ; minimum
360.com. NS a
a A 192.168.4.7
www A 10.20.30.40
[root@A named]# systemctl restart named

虚拟机A:测试
[root@A named]# nslookup www.360.com 192.168.4.7
Server: 192.168.4.7
Address: 192.168.4.7#53

Name: www.360.com
Address: 10.20.30.40

虚拟机B:测试
[root@B /]# nslookup www.360.com 192.168.4.7
Server: 192.168.4.7
Address: 192.168.4.7#53

Name: www.360.com
Address: 192.168.4.200

acl地址列表(了解内容)
•为大批量的客户机地址建立列表

[root@A named]# vim /etc/named.conf
acl “test” { 192.168.4.207; 192.168.7.0/24; 192.168.8.0/24; 192.168.9.0/24; 192.168.10.0/24; };

view “haha” {
match-clients { test; };

##################################################################
七、邮件服务器

•电子邮件服务器的基本功能
–为用户提供电子邮箱存储空间(用户名@邮件域名)
–处理用户发出的邮件 —— 传递给收件服务器
–处理用户收到的邮件 —— 投递到邮箱

在这里插入图片描述

虚拟机A:构建DNS服务器,添加邮件解析记录
1.修改主配置文件
[root@A /]# vim /etc/named.conf
options {
directory “/var/named”;
};
zone “sina.com” IN {
type master;
file “sina.com.zone”;
};
2.建立地址库文件
[root@A /]# cd /var/named/
[root@A named]# cp -p named.localhost sina.com.zone
[root@A named]# vim sina.com.zone
$TTL 1D
@ IN SOA @ rname.invalid. (
0 ; serial
1D ; refresh
1H ; retry
1W ; expire
3H ) ; minimum
sina.com. NS a
sina.com. MX 10 mail #声明邮件交换记录,sina.com区域邮件服务器为mail.sina.com,优先级为10
a A 192.168.4.7
mail A 192.168.4.7
[root@A named]# systemctl restart named

虚拟机A:测试
[root@A /]# echo nameserver 192.168.4.7 > /etc/resolv.conf
[root@A /]# cat /etc/resolv.conf
nameserver 192.168.4.7
[root@A /]# host -t MX sina.com #测试邮件交换记录,sina.com区域邮件服务器是谁
sina.com mail is handled by 10 mail.sina.com.
[root@A /]# nslookup mail.sina.com
Server: 192.168.4.7
Address: 192.168.4.7#53
Name: mail.sina.com
Address: 192.168.4.7

虚拟机A:构建邮件服务器
1.安装软件包
[root@A /]# rpm -q postfix
postfix-2.10.1-6.el7.x86_64
2.修改主配置文件
[root@A /]# vim /etc/postfix/main.cf
末行模式开启行号功能 :set nu

99 myorigin = sina.com #默认补全域名后缀,例子: 发件人书写lisi 默认补全[email protected]
116 inet_interfaces = all #监听本机的所有网卡
164 mydestination = sina.com #判断是否为本域邮件依据 ,如果收件人 [email protected]
3.重启服务
[root@A /]# systemctl restart postfix

4.邮件的收发测试:
[root@localhost ~]# yum -y install mailx #安装mail命令
•mail 发信操作
–mail -s ‘邮件标题’ -r 发件人 收件人
[root@A /]# useradd yg
[root@A /]# useradd xln
[root@A /]# mail -s ‘hahaxixi’ -r yg xln
葵花宝典,已练成~
. #输入一个 . 结束提交
EOT
[root@A /]# echo ‘九阴真经,已练成~’ | mail -s ‘hehelele’ -r yg xln #非交互式发邮件
•mail 收信操作
–mail [-u 用户名]
[root@A /]# mail -u xln #以root身份查看用户xln的邮件
Heirloom Mail version 12.5 7/5/10. Type ? for help.
“/var/mail/xln”: 1 message 1 new

N 1 [email protected] Tue Mar 17 01:41 18/520 “hahaxixi”
& 1 #输入邮件的编号,回车
& exit

##################################################################

八、综合项目
在这里插入图片描述

要求:
1.在Web1机器上构建Web服务,实现基于域名的虚拟Web主机,提供www.163.com与www.qq.com两个网站
2.在Web2机器上构建Web服务,实现基于域名的虚拟Web主机,提供www.163.com与www.qq.com两个网站
3.客户端192.168.4.207访问www.163.com与www.qq.com两个网站,有Web1服务器提供
4.客户端192.168.4.208访问www.163.com与www.qq.com两个网站,有Web2服务器提供
5.在192.168.4.7上实现DNS分离解析

晚上实验练习(去除子域授权实验)

发布了0 篇原创文章 · 获赞 0 · 访问量 106

猜你喜欢

转载自blog.csdn.net/hufei_/article/details/105026929
今日推荐