配置DNAT发布内网服务器

编程入门 行业动态 更新时间:2024-10-28 01:18:09

配置DNAT发布<a href=https://www.elefans.com/category/jswz/34/1768788.html style=内网服务器"/>

配置DNAT发布内网服务器

配置DNAT发布内网服务器

问题

本案例要求熟悉DNAT策略的典型应用场景,完成以下任务:
1)通过DNAT策略发布内网的Web服务器
2)通过DNAT策略发布内网的SSH服务器
3)通过DNAT策略发布内网的FTP服务器

方案

沿用练习二,采用三台RHEL6虚拟机svr5、gw1、pc120,如图-3所示。其中,虚拟机svr5作为局域网络的测试机,接入NAT网络(virbr0);虚拟机pc120作为Internet的测试机,接入隔离网络(virbr1);虚拟机gw1作为网关/路由器,配置eth0、eth1两块网卡,分别接入两个网络virbr0、virbr1。


内网测试机svr5还需要将默认网关指向Linux网关的内网接口

192.168.4.1:
[root@svr5 ~]# route -n | grep UG
0.0.0.0         192.168.4.1     0.0.0.0         UG    0      0        0 eth0

步骤

实现此案例需要按照如下步骤进行。
步骤一:通过DNAT策略发布内网的Web服务器
Web服务器的IP地址192.168.4.5为私有地址,从互联网无法直接访问;而企业站点的域名www.tedu.cn对外只能解析为公有地址(比如网关gw1外网接口的地址174.16.16.1)。
1)未启用DNAT策略时,外网无法访问私网Web服务器
启用svr5的httpd服务:

[root@svr5 ~]# service httpd restar
.. ..
[root@svr5 ~]# echo "Test Page 5." > /var/www/html/index.html  	//部署

测试网页
关闭gw1的httpd服务:

[root@gw1 ~]# service httpd stop
.. ..
从外网机pc120尝试访问http://174.16.16.1会失败:
[root@pc120 ~]# elinks --dump http://174.16.16.1
ELinks: 拒绝连接

2)在网关gw1上添加DNAT规则
添加的规则应该在nat表内,将从外网接口eth1进来、目标地址为174.16.16.1、目标端口为TCP 80的数据包,在路由选择之前将数据包的目标IP地址修改为内网实际Web服务器svr5的IP地址192.168.4.5:

[root@gw1 ~]# service iptables stop  				//排除其他规则干扰
iptables:将链设置为政策 ACCEPT:nat                      [确定]
iptables:清除防火墙规则:                                 [确定]
iptables:正在卸载模块:                                   [确定][root@gw1 ~]# iptables -t nat -A PREROUTING -i eth1 -d 174.16.16.1 -p tcp --dport 80 -j DNAT --to-destination 192.168.4.5[root@gw1 ~]# iptables -t nat -nL PREROUTING  		//查看结果
Chain PREROUTING (policy ACCEPT)
target     prot opt source               destination 
DNAT       tcp  --  0.0.0.0/0            174.16.16.1         tcp dpt:80 to:192.168.4.5
[root@gw1 ~]#

3)再次测试从外网访问内网
从外网机pc120尝试访问http://174.16.16.1,可以看到svr5的Web页面:

[root@pc120 ~]# elinks --dump http://174.16.16.1Test Page 5.

检查内网机svr5的Web访问日志,发现确实是外网机174.16.16.120在访问:

[root@svr5 ~]# tail -1 /var/log/httpd/access_log
174.16.16.120 - - [19/May/2015:14:59:23 +0800] "GET / HTTP/1.1" 200 13 "-" "ELinks/0.12pre5 (textmode; Linux; -)"

步骤二:通过DNAT策略发布内网的SSH服务器
1)未启用DNAT策略时,外网无法以SSH方式远程管理私网Web服务器
如果网关gw1开启默认的SSH服务、且允许进站访问,那么当从外网机pc120远程SSH连接174.16.16.1时,登入的是gw1的Shell环境:

[root@pc120 ~]# ssh root@174.16.16.1 "hostname"   	//SSH执行远程主机上的命令
root@174.16.16.1's password:   					//验证gw1的root口令
gw1.tedu.cn  									//连接的是gw1
[root@pc120 ~]#

2)在网关gw1上添加DNAT规则
准备映射端口2345,当从外网接口eth1进来、目标IP地址为174.16.16.1、目标端口为TCP 2345时,在路由选择之前将数据包的目标IP地址改为192.168.4.5、目标端口改为22:

[root@gw1 ~]# iptables -t nat -A PREROUTING -i eth1 -d 174.16.16.1 -p tcp --dport 2345 -j DNAT --to-destination 192.168.4.5:22[root@gw1 ~]# iptables -t nat -nL PREROUTING
Chain PREROUTING (policy ACCEPT)
target     prot opt source               destination         
DNAT       tcp  --  0.0.0.0/0            174.16.16.1         tcp dpt:80 to:192.168.4.5 
DNAT       tcp  --  0.0.0.0/0            174.16.16.1         tcp dpt:2345 to:192.168.4.5:22

3)测试针对SSH服务的DNAT转换
从外网机pc120以SSH连接174.16.16.1的2345端口,实际登入的是内网机svr5:

[root@pc120 ~]# ssh -p 2345 root@174.16.16.1 "hostname"
root@174.16.16.1's password:   					//实际需验证svr5的root口令
svr5.tedu.cn  									//实际访问的是svr5
[root@pc120 ~]#

步骤三:通过DNAT策略发布内网的FTP服务器
1)准备测试环境
在内网机svr5上开启vsftpd服务:

[root@svr5 ~]# yum -y install vsftpd
.. ..
[root@svr5 ~]# service vsftpd restart
.. ..
[root@svr5 ~]# echo "FTP Test 5." > /var/ftp/a.txt 		//部署FTP测试文件
关闭网关gw1上的vsftpd服务:
[root@gw1 ~]# service vsftpd stop
关闭 vsftpd:                                              [确定]

2)未启用DNAT策略时,外网无法访问私网FTP服务器
尝试访问gw1的FTP端口时,因服务不可用而拒绝:

[root@pc120 ~]# ftp 174.16.16.1   
ftp: connect: 拒绝连接
ftp> quit
[root@pc120 ~]#
尝试访问svr5的FTP端口时,因目标地址为私网地址而不可达:
[root@pc120 ~]# ftp 192.168.4.5
ftp: connect: 网络不可达
ftp> quit
[root@pc120 ~]#

3)在网关gw1上添加DNAT规则
添加的规则应该在nat表内,将从外网接口eth1进来、目标地址为174.16.16.1、目标端口为TCP 20或21的数据包,在路由选择之前将数据包的目标IP地址修改为内网实际FTP服务器svr5的IP地址192.168.4.5:

[root@gw1 ~]# iptables -t nat -A PREROUTING -i eth1 -d 174.16.16.1 -p tcp --dport 20:21 -j DNAT --to-destination 192.168.4.5   [root@gw1 ~]# iptables -t nat -nL PREROUTING
Chain PREROUTING (policy ACCEPT)
target     prot opt source               destination         
DNAT       tcp  --  0.0.0.0/0            174.16.16.1         tcp dpt:80 to:192.168.4.5 
DNAT       tcp  --  0.0.0.0/0            174.16.16.1         tcp dpt:2345 to:192.168.4.5:22 
DNAT       tcp  --  0.0.0.0/0            174.16.16.1         tcp dpts:20:21 to:192.168.4.5

4)测试从外网访问内网的FTP服务
从外网机pc120访问174.16.16.1的FTP端口,实际上连接到内网机svr5的vsftpd服务,经DNAT转换后,能够成功登录,但是无法下载数据:

[root@pc120 ~]# ftp 174.16.16.1
Connected to 174.16.16.1 (174.16.16.1).
220 (vsFTPd 2.2.2)
Name (174.16.16.1:root): ftp
331 Please specify the password.
Password:
230 Login successful.  									//成功登入
Remote system type is UNIX.
Using binary mode to transfer files.
ftp> ls  													//获取目录列表失败
227 Entering Passive Mode (192,168,4,5,204,144).
ftp: connect: 网络不可达
ftp> quit
221 Goodbye.
[root@pc120 ~]#

4)在网关gw1上加载FTP相关模块

[root@gw1 ~]# modprobe  nf_nat_ftp  nf_conntrack_ftp	//加载内核模块[root@gw1 ~]# lsmod | grep nat_ftp  					//确认结果
nf_nat_ftp              3507  0 
nf_conntrack_ftp       12913  1 nf_nat_ftp
nf_nat                 22759  2 nf_nat_ftp,iptable_nat
nf_conntrack           79758  7 nf_nat_ftp,nf_conntrack_ftp,iptable_nat,nf_nat,nf_conntrack_ipv4,nf_conntrack_ipv6,xt_state

5)再次测试从外网访问内网的FTP服务
从外网机pc120访问174.16.16.1的FTP端口,实际上连接到内网机svr5的vsftpd服务,可以成功登录,也可以下载数据:

[root@pc120 ~]# ftp 174.16.16.1
Connected to 174.16.16.1 (174.16.16.1).
220 (vsFTPd 2.2.2)
Name (174.16.16.1:root): ftp
331 Please specify the password.
Password:
230 Login successful.  									//成功登入
Remote system type is UNIX.
Using binary mode to transfer files.
ftp> ls  													//获取目录列表成功
227 Entering Passive Mode (174,16,16,1,237,199).
150 Here comes the directory listing.
drwxr-xr-x    3 14       0            4096 Apr 11 06:53 pub
drwxr-xr-x    2 0        0            4096 Apr 27 02:13 rhel6
.. ..
226 Directory send OK.
ftp> quit
221 Goodbye.
[root@pc120 ~]#

更多推荐

配置DNAT发布内网服务器

本文发布于:2023-07-28 16:33:30,感谢您对本站的认可!
本文链接:https://www.elefans.com/category/jswz/34/1251012.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
本文标签:内网   服务器   DNAT

发布评论

评论列表 (有 0 条评论)
草根站长

>www.elefans.com

编程频道|电子爱好者 - 技术资讯及电子产品介绍!