利用防火墙实现向外网提供内网web和dns服务 推荐
2014-03-28 21:33
447 查看
一、实验方案
![](http://s3.51cto.com/wyfs02/M00/23/49/wKiom1M1eMCCBAUCAAJ9RFqKWNU000.jpg)
二、内网DNS服务的搭建
1. 登录172.16.20.22为内网主机dns.magelinux.com安装bind
4. 讲网关指向172.16.20.11在内外网测试
三、内网Web服务搭建
1. 登录172.16.20.33安装httpd
四、外网用户的设置
1. 添加一台虚拟机,网卡使用VMnet2,连接到防火墙同样类型的VMnet2类型网卡
![](http://s3.51cto.com/wyfs02/M01/23/49/wKiom1M1eZjjGmrRAAIudxM4-mk931.jpg)
2. 配置外网的ip 为202.102.224.22,并将其网关和dns服务器设置为防火墙连接外网的ip(202.102.224.11).
![](http://s3.51cto.com/wyfs02/M02/23/49/wKiom1M1eb6y2PZWAAEvPDXKU2U403.jpg)
3. 此时ping网关是可以痛的。应为它跟防火墙外网工作在同一个网络。另外,如果你试了ping防火墙的内网网卡(172.16.20.11)其实也是可以ping通的,因为linux 的ip是在内核层的(注意,此时我的防火墙还没开通转发功能的)。
![](http://s3.51cto.com/wyfs02/M02/23/49/wKiom1M1ec-wAYs4AAHOcKKZXZQ029.jpg)
五、中间防火墙的配置
1. OK,终于等到了这个时刻,一切准备就绪,我们来配置防火墙吧。
2. 开启防火墙转发功能。
![](http://s3.51cto.com/wyfs02/M01/23/4A/wKioL1M1edfiMQd7AAEamFdLGkk237.jpg)
4. 指定FORWARD链上的默认策略为DROP,及使用通的机制,只放行允许的web服务和DNS服务的iptables规则
#elinks 172.16.20.33
![](http://s3.51cto.com/wyfs02/M00/23/49/wKiom1M1eivxaCceAACvS79ibKE548.jpg)
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)
![](http://s3.51cto.com/wyfs02/M00/23/49/wKiom1M1eMCCBAUCAAJ9RFqKWNU000.jpg)
二、内网DNS服务的搭建
1. 登录172.16.20.22为内网主机dns.magelinux.com安装bind
[root@dns ~]# yum -y install bind2. 编辑配置文件,添加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 httpd2. 配置主页
[root@web ~]# vim /var/www/html/index.html3. 启动web服务
[root@web ~]# service httpd start Starting httpd:4. OK,设置网关指向内网网关(172.16.20.11)现在我们的网站可以在内网(172.16.20.0/16)访问了。
四、外网用户的设置
1. 添加一台虚拟机,网卡使用VMnet2,连接到防火墙同样类型的VMnet2类型网卡
![](http://s3.51cto.com/wyfs02/M01/23/49/wKiom1M1eZjjGmrRAAIudxM4-mk931.jpg)
2. 配置外网的ip 为202.102.224.22,并将其网关和dns服务器设置为防火墙连接外网的ip(202.102.224.11).
![](http://s3.51cto.com/wyfs02/M02/23/49/wKiom1M1eb6y2PZWAAEvPDXKU2U403.jpg)
3. 此时ping网关是可以痛的。应为它跟防火墙外网工作在同一个网络。另外,如果你试了ping防火墙的内网网卡(172.16.20.11)其实也是可以ping通的,因为linux 的ip是在内核层的(注意,此时我的防火墙还没开通转发功能的)。
![](http://s3.51cto.com/wyfs02/M02/23/49/wKiom1M1ec-wAYs4AAHOcKKZXZQ029.jpg)
五、中间防火墙的配置
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服务器就可以给外网提供服务了。不过这种方式可不安全,我们还得继续添加安全防火规则呢。
![](http://s3.51cto.com/wyfs02/M01/23/4A/wKioL1M1edfiMQd7AAEamFdLGkk237.jpg)
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 ACCEPT5. 用elinks在外网测试内部web是否可以访问
#elinks 172.16.20.33
![](http://s3.51cto.com/wyfs02/M00/23/49/wKiom1M1eivxaCceAACvS79ibKE548.jpg)
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.228. 将来自外网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.339. Ok,转发设置成功,成功实现外网访问内部DNS和web。
相关文章推荐
- ngrok内网穿透,ngrok服务器搭建,实现外网访问内网服务;树莓派外网访问内网的web服务及ssh外网登录
- 定制微型linux实现启用虚拟终端基于帐号密码登录、提供ssh服务,提供Web服务(下)附有命令移植脚本 推荐
- 用DNAT实现外网访问内网web服务
- 配置ASA实现内网、Dmz和外网的访问 推荐
- 编译内核+BusyBox定制一个Linux提供ssh和web服务 推荐
- JAVA与.NET的相互调用——通过Web服务实现相互调用 推荐
- 利用微软WebService技术实现远程数据库存取 利用web服务在不同站点间共享同一数据库
- ngrok 服务可以分配给你一个域名让你本地的web项目提供给外网访问__个人微信开发笔记
- ISA FAQ之一:如何利用ISA Server进行内部web服务器的发布(外网对内网进行访问)
- 使用新花生壳搭建外网和手机访问内网web应用服务
- nginx提供web服务和实现负载均衡
- 利用Registrator和Consul实现mesos task的服务发现 推荐
- 利用tomcat发布WEB项目到内网和外网的方法
- Xamarin.Android 入门实例(2)之实现WCF 寄宿于IIS 的Web服务提供
- 利用微软WebService技术实现远程数据库存取 利用web服务在不同站点间共享同一数据库
- 利用微软WebService技术实现远程数据库存取 利用web服务在不同站点间共享同一数据库
- 利用微软WebService技术实现远程数据库存取 利用web服务在不同站点间共享同一数据库
- 内网服务应用—无需端口映射实现从外网访问控制内网电脑
- 利用entrez提供的web服务快速下载大批量序列信息
- 利用ssh反向代理以及autossh实现从外网连接内网服务器