配置多層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用戶下查看

 

 

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

相關文章
相關標籤/搜索