第九周作业

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

一、DNS服务器原理:
(1)DNS服务原理图:
在这里插入图片描述
(2)DNS服务器原理:简单说就是域名解析成对应的ip和ip解析成对应的域名。

补充说明:

域名:分为根域、顶级域、二级域等等,最多可到127级域名。
每个DNS服务器都知道根域名服务器在哪里。

(3)自述DNS服务器原理:

如上图:以想知道www.magedu.com的ip地址为例。
第一:客户端访问www.magedu.com时,首先到DNS服务器中访问;DNS服务器发现自己没有;自主的到根域名服务器中去寻找,根服务器没有直接对应的域名,但是它有.com的域名服务器,它那里可能有;DNS服务器就到.com域名服务器中去寻找,但是.com域名服务器并没有直接对应的域名,但是它有magedu.com的服务器,它那里可能有;于是就到magedu.com的服务器中寻找,结果找到了。
第二:找到以后就解析成对应的ip返回给DNS服务器,DNS服务器并返回给客户端。客户端就拿到了对应的ip。

二、搭建主-辅服务器:
(1)主-辅服务器的搭建必然涉及到同步问题,尤其是时间同步。

同步策略:
第一:(推)当主服务器的数据发生变化时,主服务器主动把数据发生变化的部分给辅助服务器
第二:(拉)当主服务器的时间发生变化时(时间间隔),辅助服务器主动拉。

(2)搭建:
主服务器的搭建:10.0.8.8

1.
#安装对应的服务
yum install -y bind
2.
# 查找相关配置文件
rpm -ql bind
3.
[root@centos8 ~]#vim /etc/named.conf
#注释掉下面两行
options  {
//  listen-on port 53 { 127.0.0.1; };
...
directory  "/var/named";     #指定文件路径
//  allow-query     { localhost; };
...
4.
[14:27:14 root@CS8-VM8-10 ~][#cat /etc/named.rfc1912.zones 
#添加以下内容
zone "ncgxy.org" IN {
	type master;
	file "ncgxy.org.zone";
};
.....
5.
[15:00:27 root@CS8-VM8-10 named][#cd
[15:05:27 root@CS8-VM8-10 ~][#cd /var/named/
#区域配置文件一定要注意文件的权限、格式等问题,参考named.localhost文件
[15:07:46 root@CS8-VM8-10 named][#cp -a named.localhost ncgxy.org.zone 
[15:08:35 root@CS8-VM8-10 named][#cat ncgxy.org.zone 
$TTL 1D
@	 SOA	master  admin.ncgxy.org (
					0	; serial
					1D	; refresh
					1H	; retry
					1W	; expire
					3H )	; minimum
	NS	master 
	NS	slave
master	A	10.0.8.8		#主服务器
slave	A	10.0.8.18		#辅助服务器
www		A	10.0.8.7
*		A	10.0.8.7
@		A	10.0.8.7

6.
#启动服务
systemctl start named

辅服务器的搭建:10.0.8.18

1.
#安装对应的服务
yum install -y bind

2.
[root@centos8 ~]#vim /etc/named.conf
#注释掉下面两行
options  {
//  listen-on port 53 { 127.0.0.1; };
...
directory  "/var/named";     #指定文件路径
//  allow-query     { localhost; };
...
3.
[14:50:08 root@CS8-VM8-10 slaves][#cat /etc/named.rfc1912.zones 
#添加以下内容
zone "ncgxy.org" {
	type slave;     #指定该服务器为辅助服务器
	masters { 10.0.8.8;};   #指定主服务器的地址
	file "slaves/ncgxy.org.slave";   #配置文件放置处(/var/named/slaves)(slaves/....     文件的相对路径,后面的.....取的名字)
};
4.
#启动服务
systemctl  start   named
5.
#查看端口号 :ss    -ntul 
...
udp      UNCONN    0         0                10.0.8.18:53                 0.0.0.0:*    #端口开启               
udp      UNCONN    0         0                127.0.0.1:53   
...
6.
#查看是否生成同步文件
[14:50:42 root@CS8-VM8-10 slaves][#ll
total 4
-rw-r--r--. 1 named named 396 May 12 14:33 ncgxy.org.slave  #成功

网页服务器:10.0.8.7

#安装http服务
yum install httpd                        

[14:38:56 root@CS7-VM8-10 ~]#echo www.ncgxy.org >  /var/www/html/index.html
[14:39:20 root@CS7-VM8-10 ~]#
[14:39:21 root@CS7-VM8-10 ~]#cat /var/www/html/index.html
www.ncgxy.org

#启动服务
systemctl start httpd 

测试客户端:10.0.8.17

1.
DNS要指向两台服务器。10.0.8.8    10.0.8.18
vim /etc/sysconfig/network-scripts/ifcfg-eth0
....
DNS1=10.0.8.8
DNS2=10.0.8.18
....
然后再依次执行以下命令:
nmcli  con
nmcli  con reload
nmcli  con  up  eth0(网卡名)
2.
#默认走主服务器
[14:57:17 root@CS7-VM8-10 ~]#dig www.ncgxy.org

; <<>> DiG 9.11.4-P2-RedHat-9.11.4-26.P2.el7_9.9 <<>> www.ncgxy.org
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 20204
;; flags: qr aa rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 2, ADDITIONAL: 3

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

;; ANSWER SECTION:
www.ncgxy.org.          86400   IN      A       10.0.8.7    #成功

;; AUTHORITY SECTION:
ncgxy.org.              86400   IN      NS      master.ncgxy.org.
ncgxy.org.              86400   IN      NS      slave.ncgxy.org.

;; ADDITIONAL SECTION:
master.ncgxy.org.       86400   IN      A       10.0.8.8
slave.ncgxy.org.        86400   IN      A       10.0.8.18

;; Query time: 1 msec
;; SERVER: 10.0.8.8#53(10.0.8.8)       #默认走主服务器
;; WHEN: Thu May 12 14:57:26 CST 2022
;; MSG SIZE  rcvd: 131

3.
#当关闭主服务器时
主服务器:systemctl stop named
测试机:
[15:27:07 root@CS7-VM8-10 ~]#dig www.ncgxy.org     #有明显卡顿

; <<>> DiG 9.11.4-P2-RedHat-9.11.4-26.P2.el7_9.9 <<>> www.ncgxy.org
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 45665
;; flags: qr aa rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 2, ADDITIONAL: 3

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

;; ANSWER SECTION:
www.ncgxy.org.          86400   IN      A       10.0.8.7

;; AUTHORITY SECTION:
ncgxy.org.              86400   IN      NS      slave.ncgxy.org.
ncgxy.org.              86400   IN      NS      master.ncgxy.org.

;; ADDITIONAL SECTION:
master.ncgxy.org.       86400   IN      A       10.0.8.8
slave.ncgxy.org.        86400   IN      A       10.0.8.18

;; Query time: 2 msec
;; SERVER: 10.0.8.18#53(10.0.8.18)       #走辅助服务器
;; WHEN: Thu May 12 15:27:09 CST 2022
;; MSG SIZE  rcvd: 131


补充实验:
正向解析和反向解析
(1)正向解析的搭建:

服务器的搭建:10.0.8.8

执行以下命令:
    1  2022-05-12 16:39:58 history 
    2  2022-05-12 16:40:18 yum install -y bind       #安装软件
    3  2022-05-12 16:42:49 vim /etc/named.conf   
    4  2022-05-12 16:43:17 vim /etc/named.rfc1912.zones 
    5  2022-05-12 16:45:37 cd /var/named
    6  2022-05-12 16:45:38 ll   
    7  2022-05-12 16:46:31 cp -a named.localhost nagxy.org.zone    #此处文件名不符合(应该是ncgxy.org.zone)
    8  2022-05-12 16:46:33 ll
    9  2022-05-12 16:47:01 mv nagxy.org.zone ncgxy.org.zone #修改文件名
   10  2022-05-12 16:47:02 ll
   11  2022-05-12 16:47:07 vim ncgxy.org.zone 
   12  2022-05-12 16:49:15 systemctl start named
   13  2022-05-12 16:49:19 ss -ntlu


步骤具体实现:
3. vim /etc/named.conf           #“//”表示注释,注释这两行,或者直接删除这两行
options {
//	listen-on port 53 { 127.0.0.1; };
...
//	allow-query     { localhost; };
.....

4. vim /etc/named.rfc1912.zones 
#增加以下几行。
zone "ncgxy.org" IN {
	type master;
	file "ncgxy.org.zone";     #创建正向解析文件时的文件名为:ncgxy.org.zone
};

5.  [17:03:50 root@CS8-VM8-10 ~][#cd /var/named
6.  [17:05:03 root@CS8-VM8-10 named][#ll
total 20
drwxrwx---. 2 named named   23 May 12 16:49 data
drwxrwx---. 2 named named   60 May 12 16:49 dynamic
-rw-r-----. 1 root  named 2253 Aug 25  2021 named.ca
-rw-r-----. 1 root  named  152 Aug 25  2021 named.empty
-rw-r-----. 1 root  named  152 Aug 25  2021 named.localhost       #正向解析时参考该文件
-rw-r-----. 1 root  named  168 Aug 25  2021 named.loopback      #反向解析时参考该文件
-rw-r-----. 1 root  named  207 May 12 16:49 ncgxy.org.zone
drwxrwx---. 2 named named    6 Aug 25  2021 slaves      #配置辅助服务器

7.   vim ncgxy.org.zone 
#修改为如下格式:
$TTL 1D
@	IN SOA	master admin.ncgxy.org.zone (
					0	; serial
					1D	; refresh
					1H	; retry
					1W	; expire
					3H )	; minimum
	NS	master
master	A	10.0.8.8
www		A	10.0.8.7				#网页对应的服务器地址
*		A	10.0.8.7
@		A	10.0.8.7

12.  systemctl start named    #重启服务
13.  ss -ntlu     #查看端口号是否开启
udp     UNCONN   0        0                 10.0.8.8:53               0.0.0.0:*      #代表端口已开启           
udp     UNCONN   0        0                127.0.0.1:53               0.0.0.0:*    
tcp     LISTEN   0        10                10.0.8.8:53               0.0.0.0:*                
tcp     LISTEN   0        10               127.0.0.1:53               0.0.0.0:*       #代表端口已开启


网页服务器的搭建:10.0.8.7

执行以下命令:
   21  2022-05-12 16:49:52 yum install -y httpd
   22  2022-05-12 16:50:15 echo www.ncgxy.org > /var/www/html/index.html
   23  2022-05-12 16:50:29 cat /var/www/html/index.html
   24  2022-05-12 16:50:40 systemctl start httpd

测试客户端:10.0.8.18

执行以下命令:
    1  2022-05-12 16:39:52 history 
    2  2022-05-12 16:40:34 yum install -y bind     #安装服务
    3  2022-05-12 16:51:12 cat /etc/resolv.conf    #查看客户端的DNS是否指向服务器的ip地址
    4  2022-05-12 16:51:26 vim /etc/sysconfig/network-scripts/ifcfg-eth0    #修改配置文件,让该客户端的DNS执行服务器(10.0.8.8)
    5  2022-05-12 16:51:47 nmcli con
    6  2022-05-12 16:51:49 nmcli con reload 
    7  2022-05-12 16:51:58 nmcli con up eth0    #这三部重启网卡服务
    8  2022-05-12 16:52:03 cat /etc/resolv.conf   #校正是否修改成功(执行的DNS为10.0.8.8)
    9  2022-05-12 16:53:37 dig www.ncgxy.org    
   10  2022-05-12 16:53:57 curl www.ncgxy.org
   11  2022-05-12 17:20:10 history 

4.    vim /etc/sysconfig/network-scripts/ifcfg-eth0   #修改的步骤参照上面测试客户端的修改
8 .    [17:20:10 root@CS8-VM8-10 ~][#cat /etc/resolv.conf 
# Generated by NetworkManager
search 0.8.8
nameserver 10.0.8.8      #表明修改成功
9.[16:52:03 root@CS8-VM8-10 ~][#dig www.ncgxy.org

; <<>> DiG 9.11.26-RedHat-9.11.26-6.el8 <<>> www.ncgxy.org
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 5931
;; flags: qr aa rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 1, ADDITIONAL: 2

;; OPT PSEUDOSECTION:
; EDNS: version: 0, flags:; udp: 1232
; COOKIE: 93a7f86b7cae6454f66a7c50627ccb11e85e2e0e034cfd1a (good)
;; QUESTION SECTION:
;www.ncgxy.org.			IN	A

;; ANSWER SECTION:
www.ncgxy.org.		86400	IN	A	10.0.8.7       #网页服务器ip 

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

;; ADDITIONAL SECTION:
master.ncgxy.org.	86400	IN	A	10.0.8.8

;; Query time: 1 msec
;; SERVER: 10.0.8.8#53(10.0.8.8)
;; WHEN: Thu May 12 16:53:37 CST 2022
;; MSG SIZE  rcvd: 123


10.  [16:53:37 root@CS8-VM8-10 ~][#curl www.ncgxy.org
www.ncgxy.org

(2)反向解析的搭建:10.0.8.8(有些步骤与正向解析类似,不做具体演示)

[20:33:00 root@CS8-VM8-10 ~][#vim  /etc/named.rfc1912.zones
#添加以下内容
zone "8.0.10.in-addr.arpa" IN {
	type master;
	file "10.0.8.zone";

};   #反向解析

[17:54:29 root@CS8-VM8-10 named][#cat 10.0.8.zone 
$TTL 1D
@	IN SOA	ns1  admin.ncgxy.org (
					0	; serial
					1D	; refresh
					1H	; retry
					1W	; expire
					3H )	; minimum
	NS	ns1.ncgxy.org.
7	PTR		www.ncgxy.org.
18	PTR		www.csh.org.


客户端测试:

[18:01:12 root@CS7-VM8-10 ~]#dig -t ptr 7.8.0.10.in-addr.arpa

; <<>> DiG 9.11.4-P2-RedHat-9.11.4-26.P2.el7_9.9 <<>> -t ptr 7.8.0.10.in-addr.arpa
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 47384
;; flags: qr aa rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 1, ADDITIONAL: 2

;; OPT PSEUDOSECTION:
; EDNS: version: 0, flags:; udp: 1232
;; QUESTION SECTION:
;7.8.0.10.in-addr.arpa.         IN      PTR

;; ANSWER SECTION:
7.8.0.10.in-addr.arpa.  86400   IN      PTR     www.ncgxy.org.

;; AUTHORITY SECTION:
8.0.10.in-addr.arpa.    86400   IN      NS      ns1.ncgxy.org.

;; ADDITIONAL SECTION:
ns1.ncgxy.org.          86400   IN      A       10.0.8.7

;; Query time: 0 msec
;; SERVER: 10.0.8.8#53(10.0.8.8)
;; WHEN: Thu May 12 18:01:53 CST 2022
;; MSG SIZE  rcvd: 111

[18:01:53 root@CS7-VM8-10 ~]#
[18:01:53 root@CS7-VM8-10 ~]#dig -t ptr 18.8.0.10.in-addr.arpa

; <<>> DiG 9.11.4-P2-RedHat-9.11.4-26.P2.el7_9.9 <<>> -t ptr 18.8.0.10.in-addr.arpa
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 49742
;; flags: qr aa rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 1, ADDITIONAL: 2

;; OPT PSEUDOSECTION:
; EDNS: version: 0, flags:; udp: 1232
;; QUESTION SECTION:
;18.8.0.10.in-addr.arpa.                IN      PTR

;; ANSWER SECTION:
18.8.0.10.in-addr.arpa. 86400   IN      PTR     www.csh.org.

;; AUTHORITY SECTION:
8.0.10.in-addr.arpa.    86400   IN      NS      ns1.ncgxy.org.

;; ADDITIONAL SECTION:
ns1.ncgxy.org.          86400   IN      A       10.0.8.7

;; Query time: 0 msec
;; SERVER: 10.0.8.8#53(10.0.8.8)
;; WHEN: Thu May 12 18:02:00 CST 2022
;; MSG SIZE  rcvd: 116

2、搭建并实现智能DNS。

3、使用iptable实现: 放行ssh,telnet, ftp, web服务80端口,其他端口服务全部拒绝

ssh服务对应的端口号:22
telnet服务对应的端口号:23
ftp服务对应的端口号:21
web服务80端口

实现的结构图如下:
在这里插入图片描述
各个配置如下:

8CentOS8:192.168.126.8

设置好ip和网关并且设为仅主机模式:
[14:34:34 root@CS8-VM1-192 ~][#cat /etc/sysconfig/network-scripts/ifcfg-eth0
DEVICE=eth0
NAME=eth0
BOOTTPROTO=static
IPADDR=192.168.126.8
PREFIX=24
GATEWAY=192.168.126.18
ONBOOT=yes

8CentOS8:192.168.126.8测试:

[14:31:02 root@CS8-VM1-192 ~][#curl 10.0.8.7
www.csdn.com
[14:53:10 root@CS8-VM1-192 ~][#curl 10.0.8.17
www.10.0.8.17
[14:54:17 root@CS8-VM1-192 ~][#ssh 10.0.8.7
The authenticity of host '10.0.8.7 (10.0.8.7)' can't be established.
ECDSA key fingerprint is SHA256:kAJver0ydktOXbqVjZIZAEDNlz/be2NrrVWv5n2nkp8.
Are you sure you want to continue connecting (yes/no/[fingerprint])? ^C
[15:17:15 root@CS8-VM1-192 ~][#telnet 10.0.8.17
bash: telnet: command not found...
Install package 'telnet' to provide command 'telnet'? [N/y] ^C
[15:17:31 root@CS8-VM1-192 ~][#

firewalld:18CentOS8

在虚拟机内添加一张网卡并设置相应的ip地址:
[14:36:54 root@CS8-VM8-10 ~][#cat /etc/sysconfig/network-scripts/ifcfg-eth0  #网卡一的配置(eth0)
DEVICE=eth0
NAME=eth0
BOOTTPROTO=static
IPADDR=10.0.8.18
PREFIX=24
ONBOOT=yes

[14:37:14 root@CS8-VM8-10 ~][#cat /etc/sysconfig/network-scripts/ifcfg-eth1  #网卡二的配置(eth1)
DEVICE=eth1
NAME=eth1
BOOTTPROTO=static
IPADDR=192.168.126.18
PREFIX=24
ONBOOT=yes


vim   /etc/sysctl.conf
#增加改行
net.ipv4.ip_forward=1      #开启ping功能

sysctl  -p 


#-m multiport --dports模块,可连接多个端口(连续和不连续都可以,但连接上限为:15个)
[20:58:48 root@CS8-VM8-10 ~][#iptables -I INPUT  ! -s  10.0.8.0/24 -p tcp -m multiport --dports 80,21:23  -j ACCEPT 
[20:59:53 root@CS8-VM8-10 ~][#
[20:59:54 root@CS8-VM8-10 ~][#iptables -nvL
Chain INPUT (policy ACCEPT 0 packets, 0 bytes)
 pkts bytes target     prot opt in     out     source               destination         
    0     0 ACCEPT     tcp  --  *      *      !10.0.8.0/24          0.0.0.0/0            multiport dports 80,21:23
    0     0 REJECT     all  --  *      *      !10.0.8.0/24          0.0.0.0/0            reject-with icmp-port-unreachable

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

Chain OUTPUT (policy ACCEPT 0 packets, 0 bytes)
 pkts bytes target     prot opt in     out     source               destination         
[21:00:02 root@CS8-VM8-10 ~][#


web1:7CentOS7:10.0.8.7

yum install -y httpd;systemctl enable --now httpd
echo www.csdn.com > /var/www/http/index.html

web2:17CentOS7:10.0.8.17

yum install -y httpd;systemctl enable --now httpd
echo www.10.0.8.17 > /var/www/http/index.html

4、NAT原理总结

NAT: network address translation(网络地址转换),支持PREROUTING,INPUT,OUTPUT,POSTROUTING四个链
网络地址转换(NAT):通常是ip地址个端口号一起参与。其中端口号的那个被称为PAT。

NAT通常有请求报文和响应报文。
请求报文:修改源/目标IP,由定义如何修改
响应报文:修改源/目标IP,根据跟踪机制自动实现

在这里插入图片描述

5、iptables实现SNAT和DNAT,并对规则持久保存。

项目图,参考上图(NAT原理总结)。

实现SNAT(局域网访问外网)

在iptables 服务器中添加该规则:
(1)iptables  -t  nat  -A   POSTROUTING  -s  10.0.8.0/24  ! -d  10.0.8.0/24  -j  SNAT  --to-source    192.168.126.0/24
(2)iptables  -t  nat  -A   POSTROUTING  -s  10.0.8.0/24  !  -d   10.0.8.0/24  -j    MASQUERADE

说明:
#(1)(2)等价,写一个。
#访问外网时,对外的接口应该是iptables服务器中对应eth1这个网卡。

实现DNAT(外网访问局域网)

iptables -t nat -A PREROUTING -d 192.168.126.18 -p tcp --dport 80  -j DNAT --to-destination 10.0.0.7:8080

保存规则:

CentOS6

#将规则覆盖保存至/etc/sysconfig/iptables文件中
service iptables save 

CentOS7,8保存规则的方法:

#安装软件并设置开启自启
yum  install -y   iptables-services ;systemctl   enable  --now   iptables
#添加规则
例如:
*filter
:INPUT ACCEPT [0:0]
:FORWARD ACCEPT [0:0]
:OUTPUT ACCEPT [0:0]
-A INPUT -m state --state RELATED,ESTABLISHED -j ACCEPT
-A INPUT -p icmp -j ACCEPT
-A INPUT -i lo -j ACCEPT
-A INPUT -p tcp -m state --state NEW -m tcp --dport 22 -j ACCEPT
-A INPUT -j REJECT --reject-with icmp-host-prohibited
-A FORWARD -j REJECT --reject-with icmp-host-prohibited

#查看添加这些规则的保存文件:
cat   /etc/sysconfig/iptables


#保存规则至/etc/sysconfig/iptables
iptables-save   >  /etc/sysconfig/iptables

#重启后,规则自动启用。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值