播放记录

防火墙基础知识之DNAT详解

博客术业专攻Linux基础防火墙防火墙基础知识之DNAT详解 2019年08月29日 11:26:23

一般情况下,企业当中的服务器都是局域网中的,那么一个外网IP的客户端来访问服务器,是怎么做到的呢?

如下图解析:

当外网客户端访问内网主机,当然只能访问到网关服务器的IP(目标地址),此时经过网关服务器里边防火墙规则的设定,会将客户端请求的目的地址转换成内网服务器的IP,请求到达内网服务器,处理完之后,再返回给网关服务器,网关服务器再发给外网客户端。

现在让我们来通过实验来验证:

主机A:模拟内网服务器 eth0  192.168.66.10
主机B:模拟网关服务器  eth0  192.168.66.20 eth1   200.200.200.10
主机C:模拟外网主机 eth0   200.200.200.20

条件

1, 内网服务器(也就是主机A)

a)安装httpd,并写入测试网页。

yum -y install httpd
echo “11111” >  /var/www/html/index.html
service httpd start

b) 内网服务器指定默认网关为网关服务器的内网IP(如果不指定,则数据包回不去)

route add default gw 192.168.66.20

2, 网关服务器(也就是主机B)支持IP路由转发,并编写DNAT转换规则。

a) vim /etc/sysctl.conf

其中的net.ipv4.ip_forward = 1	#开启转发
sysctl -p  #加载一下

b) 添加防火墙规则。

iptables -t nat -A PREROUTING -i eth1 -d 200.200.200.10 -p tcp --dport  80  -j DNAT --to-destination 192.168.66.10

解释这条规则如下:

在防火墙的nat表当中的PRETROUTING链上添加(-A)一条规则,规则是一个请求进来时(-i INPUT),请求我eth1(即目标地址是200.200.200.10)的,而且访问请求的端口是80的,那么我做的动作(-j)是将他的目标地址修改(DNAT)为192.168.66.10

查看一下刚刚添加的防火墙规则:

测试

插曲: ——-端口映射

在刚才设置防火墙规则时,看到有别人访问的端口,这个时候也可以加上转到内网服务器的哪个端口,以“IP:Port”的形式指定。

iptables -t nat -A PREROUTING -i eth1 -d 200.200.200.10 -p tcp --dport  80  -j DNAT --to-destination 192.168.66.10:8000

这个时候就实现了,如果客户访问的是正常的apache服务,那么到达我内网服务器时实际访问的是一个叫8000的端口的东东。

事实上在企业当中,常规情况来说,很少有使用一个服务器的这种系统性的防火墙了,而都是采用实体的防火墙放在前边,然后把服务器都藏在后边,而诸如上边的那些防火墙规则,以及端口映射之类的操作,一般也都通过web端进行操作了。不过,尽管如此,我们详细的理解这些操作背后的原理对以后排查故障之类的,都是非常有帮助的。


转载:http://www.eryajf.net/1095.html

© 2018 www.qingketang.net 鄂ICP备18027844号-1

武汉快勤科技有限公司 13554402156 武汉市东湖新技术开发区关山二路特一号国际企业中心6幢4层7号

微信登录

扫码关注,全站教程免费播放

发表评论 X

登录成功
开通VIP

订单金额:

支付金额:

支付方式: