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


一、实验方案

 

 

 

二、内网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


免责声明!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系本站邮箱yoyou2525@163.com删除。



 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM