動手實驗iptables的NAT功能實現流量穿透


1.NAT和iptables理論見:

http://lustlost.blog.51cto.com/2600869/943110

 

2.引子

近期,有同事抱怨說數據入庫時,由於數據庫所在的服務器只有內網網段,現在只能通過nginx做一個http的代理

來解決外網的數據入庫問題,勉強可用但是只局限於http協議(別的用不了,比如tcp或udp等)。

NAT可以方便的完成這種流量穿通功能,即把外網數據通過NAT(中轉設備)來穿透進內網,內網數據通過NAT(中轉設備)穿透出外網。

 

3.搭建實驗環境

192.168.25.190設備(當做一個web server使用) 

192.168.10.5(中轉設備,做NAT)

192.168.10.7(內網設備)

在192.168.25.190設備上使用命令"python -m SimpleHTTPServer 18088"在18088端口開啟一個web服務。

在192.168.10.5設備上使用命令"iptables -t nat -A POSTROUTING -s 192.168.10.7/32  -j SNAT --to-source 192.168.10.5"開啟SNAT功能.

在192.168.10.7設備上修改gateway網關為192.168.10.5(根據需要,可以自行配置路由,如route add -net 10.0.0.0/24 gw 172.16.93.129)

 

4.實驗

實驗1

登陸10.7設備使用命令“wget http://192.168.25.190:18088/install.log”(install.log存在),發起一個GET請求成功后對比2端(10.7與25.190)md5值發現一致

觀察25.190上web server日志可以發現到192.168.10.5的請求日志(NAT把10.7的請求轉換為10.5)

實驗2

登陸10.5設備使用命令"tcpdump -i eth0 "icmp" -n"

在10.7設備上使用"ping www.baidu.com"

結果如下:

www.baidu.com對應的ip是61.135.169.125.

可見第1和第3個是原始包,第2和第4個是經過NAT加工的包。


免責聲明!

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



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