配置多层NAT和端口映射实现外网访问内网

配置多层NAT和端口映射实现外网访问内网 安全

  1. 背景和原理

经过配置NAT能够实现内网中不能直接访问外网的主机经过NAT代理访问内网,配置方法这里再也不赘述(前文有介绍)。本文以两层的NAT代理作模拟,经过端口映射实现从外网访问内网中某一台主机,并实现某一服务(如ftp功能)。端口映射就是将外网主机的IP地址的一个端口映射到内网中一台机器,提供相应的服务。当用户访问该IP的这个端口时,服务器自动将请求映射到对应局域网内部的机器上(目的端口必须开放)。 服务器

  1. 环境模拟

    在虚拟机中建立三台Linux系统(能够经过克隆建立),分别命名为Linux一、Linux2 ssh

和Linux3。其中Linux1和Linux2都具备两块网卡,Linux3具备1块网卡。 tcp

对应的网卡ip分配: 工具

Linux1: 测试

eth0(NAT模式)    192.168.214.210(此ip跟VMware的NAT模式同网段,即能直接访问外网) spa

eth1(仅主机模式)    192.168.1.254(此ip做为Linux2的网关) 3d

Linux2: 代理

eth0(仅主机模式)    192.168.1.100    网关192.168.1.254 blog

eth1(LAN区段)    192.168.2.254(此ip做为Linux3的网关)

Linux3:

eth0    (LAN区段)    192.168.2.100    网关192.168.2.254

配置相应的NAT代理,使得Linux3能够经过两级的NAT代理访问外网

执行命令ping www.baidu.com –c4检验

  1. 配置端口映射

3.1 对于Linux1映射Linux2,在Linux1上指定一个端口(范围是1024-65536,此处指定为4022),指定映射到Linux2的一个端口(端口范围相同,此处指定为3022)

在Linux1上执行命令:

iptables -t nat -A PREROUTING -d 192.168.214.210 -p tcp --dport 4022 -j DNAT --to 192.168.1.100:3022

3.2 对于Linux2映射Linux3,在 Linux2上使用端口映射的端口为同一端口即3022,指定映射到Linux3的一个端口(端口范围相同,此处为了方便,指定Linux3开放的ssh端口51323,便于经过ssh客户端测试端口映射的链接及分析)

在Linux2上执行命令:

iptables -t nat -A PREROUTING -d 192.168.1.100 -p tcp --dport 3022 -j DNAT --to 192.168.2.100:51323

  1. 检验端口映射及分析

4.1 经过ssh登陆Linux1映射到Linux2再映射到Linux3,最终ssh会经过两级的端口映射登陆到Linux3,

4.2 在Windows平台(此时至关于外网访问)使用netstat命令过滤出4022端口的tcp通讯,发现外网与Linux1经过4022端口创建起了tcp通讯

4.3 在登陆到的Linux3上使用netstat命令过滤出上面步骤获得的52640端口的tcp通讯,发现Linux3经过51323端口与外网创建起了tcp通讯

4.4 在Linux1上能够经过tcpdump抓包工具抓取端口4022的相关信息

在Linux2上经过tcpdump抓包工具抓取端口3022的相关信息

    在Linux3上经过tcpdump抓包工具抓取端口51323的相关信息

能够得出,外网主机192.168.214.1经过其52640端口与Linux3主机192.168.2.100经过51323端口创建了tcp链接,实现了从外网经过端口映射访问内网主机

  1. 实际应用举例:外网经过端口映射ftp登陆到内网的Linux3主机

5.1 在Linux3安装vsftpd服务端,启动服务并建立普通用户及密码

    yum install vsftpd -y

    /etc/init.d/vsftpd start

    useradd test

    echo 123456|passwd --stdin test

5.2 用ftp客户端登陆。因为只配置了Linux3的51323端口映射,该端口又是ssh使用的端口,ftp默认端口21并无配置端口映射,可使用sftp(SSH File Transfer Protocol)利用ssh端口登陆到Linux3

说明:sftp命令能够经过ssh来上传和下载文件,是经常使用的文件传输工具,它的使用方式与ftp相似,但它使用ssh做为底层传输协议,因此安全性比ftp要好得多

回车登陆成功,能够拖拽文件进行测试

到Linux3的ftp服务的test用户下查看

 

 

博主原创文章,转载请务必注明出处

相关文章
相关标签/搜索