第九周作业

一、简述DNS服务器原理,并搭建主-辅服务器

1、DNS服务工作原理

(1)主机访问 www.baidu.com 这个域名时,首先向自己本地的域名服务器发起查询请求,如果本地域名服务器中有对应域名的缓存信息,那么会返回该域名对应的IP地址给该主机;当本地的域名服务器没有该域名与IP地址的对应关系,那么它会向根域名服务器发起查询请求
(2)根域名服务器收到该域名请求解析时,会告诉本地服务器该域名的下级域名.com域名服务器的IP地址,于是本地服务器向.com域名服务器发起查询请求
(3).com服务器收到该查询请求后,会告诉本地服务器它的下级域名.baidu.com域名服务器的IP地址,于是本地服务器又再一次向该服务器发起查询请求
(4)baidu.com域名服务器知道 www.baidu.com 这个主机对应的IP地址,然后将该IP地址返回给本地服务器
(5)本地服务器收到后,将 www.baidu.com 域名对应的IP地址返回给主机
上述过程中,本地域名服务器查询到最终结果的过程称之为迭代查询;主机向本地服务器发起查询,服务器返回最终结果给主机称为递归查询。

2、主从服务器的搭建

环境准备:
Rocky8-mini 主DNS服务端:192.168.119.128
Rocky8-mini3 备DNS服务器:192.168.119.129
Centos7 客户端:192.168.119.131
Ubuntu20 HTTP服务:192.168.119.130

2.1 安装DNS服务

+++ 在主备服务器上都安装DNS的SERVER端功能 +++
[root@Rocky8-mini ~]# dnf -y install bind 
[root@Rocky8-mini ~]# systemctl enable --now named
[root@Rocky8-mini3 ~]# yum -y install bind
[root@Rocky8-mini3 ~]# systemctl enable --now named.service

2.2 修改主服务器配置文件

[root@Rocky8-mini ~]# vim /etc/named.conf
// 将下面两行注释
//      listen-on port 53 { 127.0.0.1; };
//      allow-query     { localhost; };
// 关于安全的关闭
dnssec-enable no;
dnssec-validation no;
[root@Rocky8-mini ~]# vim /etc/named.rfc1912.zones
zone "wuhao.org" {
  type master;
  file "wuhao.org.zone";
};

2.3 创建并编辑域名数据库解析文件

[root@Rocky8-mini named]# cp -a named.localhost wuhao.org.zone
[root@Rocky8-mini named]# ll wuhao.org.zone named.localhost 
-rw-r----- 1 root named 152 Aug 24  2021 named.localhost
-rw-r----- 1 root named 152 Aug 24  2021 wuhao.org.zone
[root@Rocky8-mini ~]# vim /var/named/wuhao.org.zone 

$TTL 1D
@ IN SOA master admin.wuhao.org. (
          0 ; serial
          1D  ; refresh
          1H  ; retry
          1W  ; expire
          3H )  ; minimum
  NS  master
  NS  slave1            //增加从服务器资源记录
master  A 192.168.119.128
slave1  A 192.168.119.129             // 从服务器的IP地址
www A 192.168.119.130 
cdn A 192.168.119.111
blog  A 192.168.119.170
*   A 192.168.119.130
@   A 192.168.119.130
[root@Rocky8-mini ~]# rndc reload
server reload successful

2.4 编辑从服务器配置文件

[root@Rocky8-mini3 ~]# vim /etc/named.conf
options {
//      listen-on port 53 { 127.0.0.1; };
//      allow-query     { localhost; };
dnssec-enable no;
dnssec-validation no;
[root@Rocky8-mini3 ~]# cat /etc/named.rfc1912.zones      // 添加如下几行
zone "wuhao.org" {
  type slave;                          // 指明自己为从节点
  masters {192.168.119.128;};                        // 主节点信息
  file "slaves/wuhao.org.slave";                  // 存放从节点域数据库文件
};
[root@Rocky8-mini3 ~]# rndc reload
server reload successful

2.5 测试结果

-- 客户端的DNS地址已经设置了主备DNS地址 --
[root@centos7 ~]# vim /etc/sysconfig/network-scripts/ifcfg-ens33
DNS2=192.168.119.129
[root@centos7 ~]# dig www.baidu.com                   // 第一次测试走主服务器

;; Query time: 0 msec
;; SERVER: 192.168.119.128#53(192.168.119.128)
;; WHEN: Sat Apr 30 19:59:19 CST 2022
;; MSG SIZE  rcvd: 327

[root@Rocky8-mini named]# rndc stop                       // 停止主服务器

[root@centos7 ~]# dig www.baidu.com                    //第二次测试走从服务器

;; Query time: 0 msec
;; SERVER: 192.168.119.129#53(192.168.119.129)
;; WHEN: Sat Apr 30 20:00:02 CST 2022
;; MSG SIZE  rcvd: 327

二、搭建并实现智能DNS

环境准备:
Centos7 为客户端
Rocky8-mini 为服务端
(服务器基础配置见一)

-- 192网段用于模拟北京的地址,172网段用于模拟上海的地址 --
[root@centos7 ~]# ip a show ens33
2: ens33: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP group default qlen 1000
    link/ether 00:0c:29:b6:2b:42 brd ff:ff:ff:ff:ff:ff
    inet 192.168.119.131/24 brd 192.168.119.255 scope global noprefixroute ens33
       valid_lft forever preferred_lft forever
    inet 172.16.1.2/24 scope global ens33
       valid_lft forever preferred_lft forever
[root@Rocky8-mini ~]# ip a show ens33
2: ens33: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc fq_codel state UP group default qlen 1000
    link/ether 00:0c:29:4d:a8:89 brd ff:ff:ff:ff:ff:ff
    inet 192.168.119.128/24 brd 192.168.119.255 scope global noprefixroute ens33
       valid_lft forever preferred_lft forever
    inet 172.16.1.1/24 scope global ens33
       valid_lft forever preferred_lft forever
    inet6 fe80::20c:29ff:fe4d:a889/64 scope link noprefixroute

2.1 添加ACL,将指定的网段添加进入指定的列表中

[root@Rocky8-mini ~]# vim /etc/named.conf
acl BeiJingNet {
  192.168.119.0/24;
};
acl ShangHaiNet {
  172.16.1.0/24;
};

2.2 定义北京和上海域名数据库所对应的信息

[root@Rocky8-mini ~]# cd /var/named/
[root@Rocky8-mini named]# cp -a wuhao.org.zone wuhao.org.zone.bj
[root@Rocky8-mini named]# cp -a wuhao.org.zone wuhao.org.zone.sh
[root@Rocky8-mini named]# vim -O wuhao.org.zone.bj wuhao.org.zone.sh

image
2.3 创建北京和上海的域数据库配置文件

[root@Rocky8-mini named]# cp  -a /etc/named.rfc1912.zones /etc/named.rfc1912.zones.bj
[root@Rocky8-mini named]# cp  -a /etc/named.rfc1912.zones /etc/named.rfc1912.zones.sh

[root@Rocky8-mini named]# vim /etc/named.rfc1912.zones.sh
image
[root@Rocky8-mini named]# vim /etc/named.rfc1912.zones.bj
image
2.4 将北京与上海的区域数据库配置文件与对应的ACL绑定

[root@Rocky8-mini ~]# vim /etc/named.conf
view BeiJingView {
  match-clients { BeiJingNet; };
  include "/etc/named.rfc1912.zones.bj";
};

view ShangHaiView {
  match-clients { ShangHaiNet; };
  include "/etc/named.rfc1912.zones.sh";
};

2.5 重新加载服务端配置文件并在客户端做测试

[root@Rocky8-mini etc]# rndc reload
server reload successful
[root@centos7 ~]# dig www.wuhao.org @192.168.119.128

; <<>> DiG 9.11.4-P2-RedHat-9.11.4-26.P2.el7 <<>> www.wuhao.org @192.168.119.128
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 62410
;; flags: qr aa rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 1, ADDITIONAL: 2

;; OPT PSEUDOSECTION:
; EDNS: version: 0, flags:; udp: 1232
;; QUESTION SECTION:
;www.wuhao.org.			IN	A

;; ANSWER SECTION:
www.wuhao.org.		86400	IN	A	192.168.119.130        // 返回的是北京的服务器地址

;; AUTHORITY SECTION:
wuhao.org.		86400	IN	NS	master.wuhao.org.

;; ADDITIONAL SECTION:
master.wuhao.org.	86400	IN	A	192.168.119.128

;; Query time: 0 msec
;; SERVER: 192.168.119.128#53(192.168.119.128)
;; WHEN: Fri May 20 22:11:56 CST 2022
;; MSG SIZE  rcvd: 95

------------------------------------------------------------------------------------------------

[root@centos7 ~]# !dig
dig www.wuhao.org @172.16.1.1

; <<>> DiG 9.11.4-P2-RedHat-9.11.4-26.P2.el7 <<>> www.wuhao.org @172.16.1.1
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 28986
;; flags: qr aa rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 1, ADDITIONAL: 2

;; OPT PSEUDOSECTION:
; EDNS: version: 0, flags:; udp: 1232
;; QUESTION SECTION:
;www.wuhao.org.			IN	A

;; ANSWER SECTION:
www.wuhao.org.		86400	IN	A	172.16.1.130  // 返回的上海服务器的地址

;; AUTHORITY SECTION:
wuhao.org.		86400	IN	NS	master.wuhao.org.

;; ADDITIONAL SECTION:
master.wuhao.org.	86400	IN	A	192.168.119.128

;; Query time: 0 msec
;; SERVER: 172.16.1.1#53(172.16.1.1)
;; WHEN: Fri May 20 22:17:24 CST 2022
;; MSG SIZE  rcvd: 95

三、使用IPTABLE实现: 放行SSH,TELNET, FTP, WEB服务端口,其他端口服务全部拒绝

环境说明:
Rocky8-mini2 作为SSH、telnet、ftp、web服务端 192.168.119.138
Centos7 为客户端做测验 192.168.119.141

-- 服务端各项服务均已安装并处于监听状态 --
[root@Rocky8-mini2 ~]# ss -ntl
State             Recv-Q            Send-Q                       Local Address:Port                        Peer Address:Port            Process            
LISTEN            0                 128                                0.0.0.0:22                               0.0.0.0:* 
LISTEN            0                 70                                       *:33060                                  *:* 
LISTEN            0                 128                                      *:3306                                   *:*
LISTEN            0                 128                                      *:80                                     *:* 
LISTEN            0                 32                                       *:21                                     *:*  
LISTEN            0                 128                                   [::]:22                                  [::]:*      
LISTEN            0                 128                                      *:23                                     *:*
各服务监听的端口如下:
	ssh:22
	telnet:23
	ftp:20/21
	mysql:3306
	http:80
	
-- 在服务端配置防火墙策略,实现题目需求 --
[root@Rocky8-mini2 ~]# iptables -A INPUT -d 192.168.119.138 -p tcp -m multiport ! --dports 20:23,80 -j REJECT

-- 测试 -- 
[root@centos7 ~]# curl 192.168.119.138 -I   // 网页端口能够正常访问
HTTP/1.1 403 Forbidden
Date: Sat, 21 May 2022 06:50:02 GMT
Server: Apache/2.4.37 (centos)
Last-Modified: Sun, 27 Jun 2021 23:47:13 GMT
ETag: "30c0b-5c5c7fdeec240"
Accept-Ranges: bytes
Content-Length: 199691
Content-Type: text/html; charset=UTF-8
[root@centos7 ~]# telnet 192.168.119.138 3306   // 数据库端口已被禁止
Trying 192.168.119.138...
telnet: connect to address 192.168.119.138: Connection refused

四、NAT原理总结

(1)在局域网的网络边界处,利用NAT技术将私网IP地址转换成公网地址,从而实现互联网的通信
(2)一个私网IP地址可以对应一个公网地址;也可以使用一个私网地址+端口号转换成一个公网地址+端口号,只要转换的公网的端口号不同,可以实现多个私网地址对应同一个公网地址

五、IPTABLES实现SNAT和DNAT,并对规则持久保存

5.1 实验环境准备

Rocky8-mini 和 Rocky8-mini2 为局域网服务器
Rocky8-mini      IP:192.168.119.128        GW:192.168.119.129
Rocky8-mini2    IP:192.168.119.138        GW:192.168.119.129
Centos7 为公网服务器
Centos7    IP:192.168.225.133
Rocky8-mini3 作为防火墙
Rocky8-mini3    IP:192.168.119.129         192.168.225.132
-- 开启Linux路由转发功能 --
[root@Rocky8-mini3 ~]# vi /etc/sysctl.conf
net.ipv4.ip_forward=1 
[root@Rocky8-mini3 ~]# sysctl -p
-- 内网网页文件 --
[root@Rocky8-mini ~]# cat /var/www/html/index.html 
web1.lan.com
[root@Rocky8-mini2 ~]# cat /var/www/html/index.html 
web2.lan.com

5.2 在Rocky8-mini3上配置SNAT,使128和138能够访问133

[root@Rocky8-mini3 ~]# iptables -t nat -A POSTROUTING -s 192.168.119.0/24 ! -d 192.168.119.0/24 -j MASQUERADE
(1) 配置完成后,内网能够和外网通信**

[root@Rocky8-mini2 ~]# curl 192.168.225.133
web3.Internet.com

(2) 外网不能和内网通信**
image

5.3 在Rocky8-mini3上配置DNAT,使Centos7只能访问Rocky8-mini上的http服务

(1) 配置命令

[root@Rocky8-mini3 ~]# iptables -t nat -A PREROUTING -d 192.168.225.132 -p tcp --dport 80 -j DNAT --to-destination 192.168.119.128:80

(2) 结果验证
image

5.4 设置防火墙规则的永久保存,使在下次启动时规则不会丢失

(1)安装防火墙服务端功能,并设置开机自启动

[root@Rocky8-mini3 ~]# yum -y install iptables-services.x86_64 
[root@Rocky8-mini3 ~]# systemctl enable --now iptables.service 
Created symlink /etc/systemd/system/multi-user.target.wants/iptables.service → /usr/lib/systemd/system/iptables.service.

(2)清除iptables-server自带的防火墙规则,将我们的规则设置永久保存

[root@Rocky8-mini3 ~]# iptables -F
[root@Rocky8-mini3 ~]# iptables-save > /etc/sysconfig/iptables

(3)验证结果

[root@Rocky8-mini3 ~]# systemctl restart iptables.service
[root@Rocky8-mini3 ~]# iptables -t nat -nvL
Chain PREROUTING (policy ACCEPT 0 packets, 0 bytes)
 pkts bytes target     prot opt in     out     source               destination         
    0     0 DNAT       tcp  --  *      *       0.0.0.0/0            192.168.225.132      tcp dpt:80 to:192.168.119.128:80

Chain INPUT (policy ACCEPT 0 packets, 0 bytes)
 pkts bytes target     prot opt in     out     source               destination         

Chain POSTROUTING (policy ACCEPT 0 packets, 0 bytes)
 pkts bytes target     prot opt in     out     source               destination         
    0     0 MASQUERADE  all  --  *      *       192.168.119.0/24    !192.168.119.0/24    

Chain OUTPUT (policy ACCEPT 0 packets, 0 bytes)
 pkts bytes target     prot opt in     out     source               destination
posted @   wuhaolam  阅读(49)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 全程不用写代码,我用AI程序员写了一个飞机大战
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· 记一次.NET内存居高不下排查解决与启示
· 白话解读 Dapr 1.15:你的「微服务管家」又秀新绝活了
· DeepSeek 开源周回顾「GitHub 热点速览」
点击右上角即可分享
微信分享提示