配置多層NAT和端口映射實現外網訪問內網


配置多層NAT和端口映射實現外網訪問內網

  1. 背景和原理

通過配置NAT可以實現內網中不能直接訪問外網的主機通過NAT代理訪問內網,配置方法這里不再贅述(前文有介紹)。本文以兩層的NAT代理做模擬,通過端口映射實現從外網訪問內網中某一台主機,並實現某一服務(如ftp功能)。端口映射就是將外網主機的IP地址的一個端口映射到內網中一台機器,提供相應的服務。當用戶訪問該IP的這個端口時,服務器自動將請求映射到對應局域網內部的機器上(目的端口必須開放)。

  1. 環境模擬

    在虛擬機中創建三台Linux系統(可以通過克隆創建),分別命名為Linux1、Linux2

和Linux3。其中Linux1和Linux2都具有兩塊網卡,Linux3具有1塊網卡。

對應的網卡ip分配:

Linux1:

eth0(NAT模式)    192.168.214.210(此ip跟VMware的NAT模式同網段,即能直接訪問外網)

eth1(僅主機模式)    192.168.1.254(此ip作為Linux2的網關)

Linux2:

eth0(僅主機模式)    192.168.1.100    網關192.168.1.254

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用戶下查看

 

 

博主原創文章,轉載請務必注明出處


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM