linux第九周作业

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

DNS:Domain Name System 域名系统,应用层协议,是互联网的一项服务。它作为将域名和IP地址相互
映射的一个分布式数据库,能够使人更方便地访问互联网,基于C/S架构,服务器端:53/udp, 53/tcp;

dns工作原理:

 

 搭建主从DNS服务器:

需要4台主机

DNS客户端:192.168.6.130  /24
主DNS服务器:192.168.6.136/24 
从DNS服务器:192.168.6.137/24 
WEB服务器:192.168.6.131/24 

1>主服务器配置

yum install bind -y   #下载DNS服务器包

#修改配置文件
vim /etc/named.conf
#注释掉下面两行
// listen-on port 53 { 127.0.0.1; };
// allow-query   { localhost; };
#只允许从服务器进行区域传输
allow-transfer {192.168.6.137;};

vim /etc/named.rfc1912.zones  
#加上这段
zone "magedu.org" {
 type master;
 file  "magedu.org.zone";
};

cp -p /var/named/named.localhost /var/named/magedu.org.zone
#如果没有-p,-a,需要改权限。chgrp named magedu.org.zone

vim /var/named/magedu.org.zone
$TTL 1D
@ IN SOA master admin.magedu.org. (
     1 ; serial
     1D ; refresh
     1H ; retry
     1W ; expire
     3H ) ; minimum
   NS master
     NS slave
master   A   192.168.6.137
slave    A   192.168.6.137
www A 192.168.6.131 systemctl start named      #第一次启动服务 rndc reload           #不是第一次启动服务

2>从服务器配置

yum install bind -y

vim /etc/named.conf
// listen-on port 53 { 127.0.0.1; };
// allow-query   { localhost; };
#不允许其它主机进行区域传输
 allow-transfer { none;};

vim /etc/named.rfc1912.zones
zone "magedu.org" {
 type slave;
 masters { 192.168.6.136;};                              
 file "slaves/magedu.org.slave";
};

systemctl start named      #第一次启动服务
rndc reload           #不是第一次启动服务

 #查看区域数据库文件是否生成
[root@localhost ~]# ll /var/named/slaves/magedu.org.slave 
-rw-r--r-- 1 named named 317 Feb 20 15:18 /var/named/slaves/magedu.org.slave

3>web服务和客户端配置

web:

#安装http服务
yum install httpd            
#配置主页面
echo www.xinye.org > /var/www/html/index.html
#启动服务
systemctl start httpd    

 

 

 客户端配置:

vim /etc/sysconfig/network-scripts/ifcfg-eth0
DNS1=192.168.6.136
DNS2=192.168.6.137

#重启网卡
systemclt restart NetworkManager

[root@centos7-130 ~]#cat /etc/resolv.conf 
# Generated by NetworkManager
nameserver 192.168.6.136
nameserver 192.168.6.137

4>客户端测试

[root@centos7-130 ~]#dig www.magedu.org

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

;; OPT PSEUDOSECTION:
; EDNS: version: 0, flags:; udp: 4096
; COOKIE: 01cef15e2ace286fd6382471621462fa9ebd552f2152b63c (good)
;; QUESTION SECTION:
;www.magedu.org.			IN	A

;; ANSWER SECTION:
www.magedu.org.		86400	IN	A	192.168.6.131

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

;; ADDITIONAL SECTION:
master.magedu.org.	86400	IN	A	192.168.6.136
slave.magedu.org.	86400	IN	A	192.168.6.137

;; Query time: 0 msec
;; SERVER: 192.168.6.136#53(192.168.6.136)
;; WHEN: Tue Feb 22 12:13:47 CST 2022
;; MSG SIZE  rcvd: 160

[root@centos7-130 ~]#curl www.magedu.org
www.xinye.com

 

#在主服务器上停止DNS服务
systemctl stop named

[root@centos7-130 ~]#dig www.magedu.org

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

;; OPT PSEUDOSECTION:
; EDNS: version: 0, flags:; udp: 4096
; COOKIE: 7af74bc9369332320ff396526214630e58a350e4f94aecaa (good)
;; QUESTION SECTION:
;www.magedu.org.			IN	A

;; ANSWER SECTION:
www.magedu.org.		86400	IN	A	192.168.6.131

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

;; ADDITIONAL SECTION:
master.magedu.org.	86400	IN	A	192.168.6.136
slave.magedu.org.	86400	IN	A	192.168.6.137

;; Query time: 2 msec
;; SERVER: 192.168.6.137#53(192.168.6.137)
;; WHEN: Tue Feb 22 12:14:07 CST 2022
;; MSG SIZE  rcvd: 160

[root@centos7-130 ~]#curl www.magedu.org
www.xinye.com

 

2、搭建并实现智能DNS。

需要五台主机
DNS主服务器和web服务器1:192.168.6.133,172.16.0.8/16
web服务器2:192.168.6.134 /24
web服务器3:172.16.0.7 /16
DNS客户端1:192.168.6.136 /24
DNS客户端2:172.16.0.6/16

#配置DNS主服务器两个IP地址
#eth0:192.168.6.133/24
#eth1: 172.16.0.8/16

#主DNS服务端配置文件实现 view
vim /etc/named.conf
#在文件最前面加下面行
acl beijingnet {
  192.168.6.0/24;
};
acl shanghainet {
  172.16.0.0/16;
};
acl othernet {
 any;
};
#注释掉下面两行
// listen-on port 53 { 127.0.0.1; };
// allow-query   { localhost; };
#其它略
# 创建view
view beijingview {
 match-clients { beijingnet;};
 include "/etc/named.rfc1912.zones.bj";
};
view shanghaiview {
 match-clients { shanghainet;};
 include "/etc/named.rfc1912.zones.sh";
};
view otherview {
 match-clients { othernet;};
 include "/etc/named.rfc1912.zones.other";
};

#实现区域配置文件
vim /etc/named.rfc1912.zones.bj
zone "." IN {
 type hint;
 file "named.ca";
};
zone "magedu.org" {
 type master;
 file "magedu.org.zone.bj";
};
vim /etc/named.rfc1912.zones.sh
zone "." IN {
 type hint;
 file "named.ca";
};
zone "magedu.org" {
 type master;
 file "magedu.org.zone.sh";
};
vim /etc/named.rfc1912.zones.other
zone "." IN {
 type hint;
 file "named.ca";
};
zone "magedu.org" {
 type master;
 file "magedu.org.zone.other";
};
#设置区域文件权限
[root@localhost ~]#chgrp named /etc/named.rfc1912.zones.bj
[root@localhost ~]#chgrp named /etc/named.rfc1912.zones.sh
[root@localhost ~]#chgrp named /etc/named.rfc1912.zones.other

#创建区域数据库文件
vim /var/named/magedu.org.zone.bj
$TTL 1D
@  IN SOA master admin.magedu.org. (
          2019042214 ; serial
         1D ; refresh
         1H ; retry
         1W ; expire
         3H )  ; minimum
     NS  master
master   A   192.168.6.133
websrv   A   192.168.6.134             
www    CNAME websrv

vim /var/named/magedu.org.zone.sh
$TTL 1D
@  IN SOA master admin.magedu.org. (
          2019042214 ; serial
         1D ; refresh
         1H ; retry
         1W ; expire
         3H )  ; minimum
     NS  master
master   A   172.16.0.8
websrv   A   172.16.0.7             
www    CNAME websrv

vim /var/named/magedu.org.zone.other
$TTL 1D
@  IN SOA master admin.magedu.org. (
          2019042214 ; serial
         1D ; refresh
         1H ; retry
         1W ; expire
         3H )  ; minimum
     NS  master
master   A   192.168.6.133
websrv   A   127.0.0.1             
www    CNAME websrv
[root@localhost ~]#chgrp named /var/named/magedu.org.zone.bj
[root@localhost ~]#chgrp named /var/named/magedu.org.zone.sh
[root@localhost ~]#chgrp named /var/named/magedu.org.zone.other

#实现位于不同区域的三个WEB服务器
#分别在三台主机上安装http服务
#在web服务器1:192.168.6.133实现
yum install httpd            
echo www.magedu.org in Other > /var/www/html/index.html
systemctl start httpd 
#在web服务器2:192.168.6.134
echo www.magedu.org in Beijing > /var/www/html/index.html
systemctl start httpd 
#在web服务器3:172.16.0.7
yum install httpd            
echo www.magedu.org in Shanghai > /var/www/html/index.html
systemctl start httpd

#在客户端测试
#分别在三台主机上访问
#DNS客户端1:192.168.6.136 实现,确保DNS指向192.168.6.133
curl www.magedu.org
www.magedu.org in Beijing
#DNS客户端2:172.16.0.6 实现,确保DNS指向172.16.0.8
curl www.magedu.org
www.magedu.org in Shanghai
#DNS客户端3:192.168.6.133 实现,,确保DNS指向127.0.0.1
curl www.magedu.org
www.magedu.org in Other

  

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

#放行ssh,telnet, ftp, web服务80端口
[root@localhost ~]#iptables -IINPUT -p tcp -m multiport --dport 21,22,23,80 -j ACCEPT 
#拒绝其他全部端口
[root@localhost ~]#iptables -A INPUT -j DROP

[root@localhost ~]#iptables -vnL
Chain INPUT (policy DROP 0 packets, 0 bytes)
 pkts bytes target     prot opt in     out     source               destination         
  376 26904 ACCEPT     tcp  --  *      *       0.0.0.0/0            0.0.0.0/0            multiport dports 21,22,23,80
    0     0 DROP       all  --  *      *       0.0.0.0/0            0.0.0.0/0           

 

4、NAT原理总结

 NAT的作用:

IP地址分为公网IP与私网IP。一般情况下,在互联网中,公网IP可直接访问,私网IP无法直接访问。而NAT则是将私网IP地址转换为公网IP地址(将IP报文头部的私网IP地址改为可以提供访问的公网IP地址),从而实现用户上网功能或服务器在互联网上提供服务。NAT还可以使得一个公网IP代表多个不同的内网IP,这样便节省了IP地址资源。

NAT的类型与分类:

  1. 静态转换:私有地址与公有地址进行一对一的映射。这种一对一映射无法缓解可用公有地址短缺的问题。
  2. 动态转换:私有地址与公有地址进行一对多的映射。首先建立公有地址地址池,私有地址向外通信时,会从公有地址地址池中选择非在用的公有地址进行映射,当通信结束时,释放映射关系,公有地址重新恢复到地址池中待用。弊端:若私有地址向外通信,而公有地址地址池中无可用公有地址时,会等待公有地址释放后在进行通信。
  3. 端口转换:在大多数网络中,一般都使用的是IP上的某个端口(如80、443、3389等),所以不需要进行全地址映射,只需要私有地址端口映射到公有地址端口上,直接访问公有地址加端口号的形式便可以。这样可以使得一个公有地址可以对应多个私有地址,从而大大缓解了公有地址紧缺的问题。
  4. Easy IP:为小型网络,一般为家庭、小型网吧、办公室等内部主机不多的地方。通过拨号方式获取一个临时公网IP地址进行外网的访问

SNAT与DNAT区别:

  1. SNAT是私网访问外网时,报文中源IP地址(私网IP地址)转换为公网IP地址过程。此转换可以使用静态、动态等转换方式,且内部的多台主机共用同一公网IP地址进行外网访问。
  2. DNAT是外网访问私网时,报文中目的IP地址(公网IP地址)转换为私网IP地址过程。此转换过程可以使用静态、动态、端口等转换方式。

 

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

SNAT:

防火墙设备:192.168.6.133/24;192.168.160.129/24

lan-server:192.168.6.136 /24

internet:192.168.160.128 /24

 

#firewall IP配置
[root@localhost ~]#ip a
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000
    link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
    inet 127.0.0.1/8 scope host lo
       valid_lft forever preferred_lft forever
    inet6 ::1/128 scope host 
       valid_lft forever preferred_lft forever
2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP group default qlen 1000
    link/ether 00:0c:29:7b:d4:26 brd ff:ff:ff:ff:ff:ff
    inet 192.168.6.133/24 brd 192.168.6.255 scope global noprefixroute eth0
       valid_lft forever preferred_lft forever
    inet6 fe80::1c6e:6381:e70f:a29b/64 scope link noprefixroute 
       valid_lft forever preferred_lft forever
3: eth1: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP group default qlen 1000
    link/ether 00:0c:29:7b:d4:30 brd ff:ff:ff:ff:ff:ff
    inet 192.168.160.129/24 brd 192.168.160.255 scope global noprefixroute dynamic eth1
       valid_lft 999sec preferred_lft 999sec
    inet6 fe80::39c4:3c14:ddd7:6f70/64 scope link noprefixroute 
       valid_lft forever preferred_lft forever
#LAN-server配置
[root@centos7-136 ~]# ip a
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000
    link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
    inet 127.0.0.1/8 scope host lo
       valid_lft forever preferred_lft forever
    inet6 ::1/128 scope host 
       valid_lft forever preferred_lft forever
2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP group default qlen 1000
    link/ether 00:0c:29:16:cf:d7 brd ff:ff:ff:ff:ff:ff
    inet 192.168.6.136/24 brd 192.168.6.255 scope global noprefixroute eth0
       valid_lft forever preferred_lft forever
    inet6 fe80::9498:d2c7:5a01:e5fd/64 scope link noprefixroute 
       valid_lft forever preferred_lft forever
[root@centos7-136 ~]# ip route 
default via 192.168.6.133 dev eth0 proto static metric 100 
192.168.6.0/24 dev eth0 proto kernel scope link src 192.168.6.136 metric 100 
#外网设备配置
[root@centos7-135 ~]# ip a
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000
    link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
    inet 127.0.0.1/8 scope host lo
       valid_lft forever preferred_lft forever
    inet6 ::1/128 scope host 
       valid_lft forever preferred_lft forever
2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP group default qlen 1000
    link/ether 00:0c:29:d5:e4:c7 brd ff:ff:ff:ff:ff:ff
    inet 192.168.160.128/24 brd 192.168.160.255 scope global noprefixroute eth0
       valid_lft forever preferred_lft forever
    inet6 fe80::ede9:a8fc:d618:52bb/64 scope link noprefixroute 
       valid_lft forever preferred_lft forever
3: eth1: <NO-CARRIER,BROADCAST,MULTICAST,UP> mtu 1500 qdisc pfifo_fast state DOWN group default qlen 1000
    link/ether 00:0c:29:d5:e4:d1 brd ff:ff:ff:ff:ff:ff
[root@centos7-135 ~]# ip route
192.168.160.0/24 dev eth0 proto kernel scope link src 192.168.160.128 metric 100 
#lan-server上测试
[root@lan-server ~]# ping 192.168.160.128
PING 192.168.160.128 (192.168.160.128) 56(84) bytes of data.
64 bytes from 192.168.160.128: icmp_seq=1 ttl=63 time=0.804 ms
64 bytes from 192.168.160.128: icmp_seq=2 ttl=63 time=1.52 ms
64 bytes from 192.168.160.128: icmp_seq=3 ttl=63 time=1.68 ms
^C
--- 192.168.160.128 ping statistics ---
3 packets transmitted, 3 received, 0% packet loss, time 2009ms
rtt min/avg/max/mdev = 0.804/1.338/1.688/0.384 ms
[root@lan-server ~]# curl 192.168.160.128
www.magedu.org

 DNAT:

防火墙设备:192.168.6.133/24;192.168.160.129/24

lan-server:192.168.6.136 /24

internet:192.168.160.128 /24

#启用路由转发
[root@firewall ~]#vim /etc/sysctl.conf
net.ipv4.ip_forward=1
[root@firewall ~]#sysctl -p
[root@firewall ~]#iptables -t nat -A PREROUTING -d 192.168.0.8 -p tcp --dport 80
-j DNAT --to-destination 10.0.0.7:80
[root@centos7-135 ~]# curl 192.168.160.129
lan-server 

保存规则:

[root@localhost ~]#iptables-save > /etc/sysconfig/iptables
[root@localhost ~]#cat /etc/sysconfig/iptables
# Generated by iptables-save v1.4.21 on Sat Feb 19 13:49:42 2022
*filter
:INPUT ACCEPT [189:13636]
:FORWARD ACCEPT [0:0]
:OUTPUT ACCEPT [115:24108]
COMMIT
# Completed on Sat Feb 19 13:49:42 2022
# Generated by iptables-save v1.4.21 on Sat Feb 19 13:49:42 2022
*nat
:PREROUTING ACCEPT [0:0]
:INPUT ACCEPT [0:0]
:OUTPUT ACCEPT [1:76]
:POSTROUTING ACCEPT [0:0]
-A PREROUTING -d 192.168.160.129/32 -p tcp -m tcp --dport 80 -j DNAT --to-destination 192.168.6.136:80
-A POSTROUTING -s 192.168.6.0/24 -j MASQUERADE
COMMIT
# Completed on Sat Feb 19 13:49:42 2022

  

 

 

 

 

posted @ 2022-02-23 12:11  辛杨  阅读(46)  评论(1)    收藏  举报