代码改变世界

利用防火墙实现向外网提供内网web和dns服务

2021-03-04 10:23  Tanwheey  阅读(1577)  评论(0编辑  收藏  举报

一、实验方案

 

 

 

二、内网DNS服务的搭建

       1. 登录172.16.20.22为内网主机dns.magelinux.com安装bind

[root@dns ~]# yum -y install bind

       2. 编辑配置文件,添加magelinux.com区域。实现将来自202.102.224.0/24网段的用户解析到202.102.224.11.将来自172.16.20.0/24网段的用户解析为172.16.20.33

[root@dns ~]# vim /etc/named.rfc1912.zones
 view "in" {
    match-clients { 172.16.20.0/16; };
       zone "magelinux.com." IN {
          type master;
          file "magelinux.com.zone";
         };
  };
view "out" {
    match-clients { 202.102.224.0/24; };
       zone "magelinux.com." IN {
         type master;
         file "magelinux.com.zoneout";
         };
 };

       3. 编辑区域文件

[root@dns ~]# vim /var/named/magelinux.com.zone
  1 $TTL 86400
  2 @              IN  SOA         dns.magelinux.com   xuqimin.magelinux.com (
  3                                 2014032801
  4                                 1D
  5                                 5M
  6                                 7D
  7                                 2M)
  8                IN   NS      dns 
  9 dns            IN   A      172.16.20.22
 10 www            IN   A      172.16.20.33
[root@dns ~]# vim /var/named/magelinux.com.zoneout
  1 $TTL 86400
  2 @              IN  SOA         dns.magelinux.com   xuqimin.magelinux.com (
  3                                 2014032801
  4                                 1D
  5                                 5M
  6                                 7D
  7                                 2M)
  8                IN   NS      dns
  9 dns            IN   A      202.102.224.11
 10 www            IN   A      202.102.224.11

 

       4. 讲网关指向172.16.20.11在内外网测试

[root@stu20 ~]# dig -t A www.magelinux.com @172.16.20.2

           测试通过,能成功解析

三、内网Web服务搭建

       1. 登录172.16.20.33安装httpd

[root@web ~]# yum install httpd

       2. 配置主页

[root@web ~]# vim /var/www/html/index.html

       3. 启动web服务

[root@web ~]# service httpd start
Starting httpd:

       4. OK,设置网关指向内网网关(172.16.20.11)现在我们的网站可以在内网(172.16.20.0/16)访问了。

 

四、外网用户的设置

       1. 添加一台虚拟机,网卡使用VMnet2,连接到防火墙同样类型的VMnet2类型网卡

 

 

 

       2. 配置外网的ip 为202.102.224.22,并将其网关和dns服务器设置为防火墙连接外网的ip(202.102.224.11).

 

       3. 此时ping网关是可以痛的。应为它跟防火墙外网工作在同一个网络。另外,如果你试了ping防火墙的内网网卡(172.16.20.11)其实也是可以ping通的,因为linux 的ip是在内核层的(注意,此时我的防火墙还没开通转发功能的)。

五、中间防火墙的配置

       1. OK,终于等到了这个时刻,一切准备就绪,我们来配置防火墙吧。

       2. 开启防火墙转发功能。

[root@fire ~]# vim /etc/sysctl.conf
net.ipv4.ip_forward = 1
...
[root@fire ~]# sysctl -p
net.ipv4.ip_forward = 1
net.ipv4.conf.default.rp_filter = 1
net.ipv4.conf.default.accept_source_route = 0
kernel.sysrq = 0
......

       3. 立杆见影,防火墙转发功能开启之后,外网立刻可以ping通我们的内外web服务器了。当然了,此时web服务器就可以给外网提供服务了。不过这种方式可不安全,我们还得继续添加安全防火规则呢。

 

 

       4. 指定FORWARD链上的默认策略为DROP,及使用通的机制,只放行允许的web服务和DNS服务的iptables规则

[root@fire ~]# iptables -P FORWARD DROP
[root@fire ~]# iptables  -A  FORWARD  -m multiport -p tcp --ports 53,80 -j ACCEPT
[root@fire ~]# iptables -A FORWARD -p udp --dport 53 -j ACCEPT
[root@fire ~]# iptables -A FORWARD -p udp --sport 53 -j ACCEPT

       5. 用elinks在外网测试内部web是否可以访问

    #elinks 172.16.20.33

 

 

       6. 通过ip地址可以访问我们的内网web服务器了,接下来配置防火墙的NAT功能,使其能够使用我们的内网DNS服务器解析,www.magelinux.com。

       7. DNAT功能需要实现的是,让来自外网202.102.224.0/24的ip在通过网关202.102.224.11访问内网dns服务器的时候,将目标地址从202.102.224.11解析为172.16.20.22(DNS服务器)(记得设置外网dns指向防火墙外网网关(202.102.224.11)

[root@fire ~]# iptables -t nat -A PREROUTING -d 202.102.224.11 -p tcp --dport 53 -j DNAT --to-destination 172.16.20.22

       8. 将来自外网202.102.224.0/24的主机访问202.102.224.11:80端口时候,将目标地址从202.102.224.11:80解析为172.16.20.33(WEB服务器).

[root@fire ~]# iptables -t nat -A PREROUTING -d 202.102.224.11 -p tcp --dport 80 -j DNAT --to-destination 172.16.20.33

       9. Ok,转发设置成功,成功实现外网访问内部DNS和web。

 

https://blog.51cto.com/xuqimin/1386266