1、環境linux
服務器IP地址:192.168.1.2服務器
Linux操做系統IP地址:192.168.1.3(eth0);192.168.10.20(eth1)網絡
客戶端IP地址:192.168.10.30ide
拓撲圖以下:spa
2、配置操作系統
一、 開啓防火牆數據轉發功能orm
配置文件:/proc/sys/net/ipv4/ip_forwardblog
該配置文件中默認值爲0,將值改成1接口
注:0表示此功能能關閉;1表示此功能開啓。ip
2、linux操做系統中的IPTABLES
用到的命令:
(1)查看目前本機的防火牆規則:iptables –L –n
參數:
-L:列出目前的table固然規則
-n:不進行IP和HOSTNAME的反查,顯示信息的速度會快不少。
(2)清空原有防火牆規則:iptables [-FXZ]
參數:
-F:清除全部的已定製的規則
-X:除掉全部用戶「自定義」的chain
-Z:將全部的chain的計數與流量統計都歸零
(3)經過命令配置防火牆轉發功能
A.首先,當客戶端發起到服務器的鏈接請求:數據包先從客戶端(192.168.10.30)發出,到達linux主機(192.168.10.20),通過防火牆將數據包封裝新的數據包頭(192.168.1.3)。簡單來講就是數據包通過linux主機防火牆時,通過數據包頭轉換,將舊的源地址(客戶端地址:192.168.10.30)改成新的源地址(linux)
命令:
iptables -t nat –A POSTROUTING –s192.168.10.30 –o eth0 -j SNAT --to-source 192.168.1.3
參數:
-t:後面接table,例如nat或者filter,省略此項時默認使用filter
-A 鏈名:新增一條規則,該規則增長在原規則的最後面。例如原來有兩條規則,使用-A後就是加上第三條規則。
-io 網路接口:設置數據包進出的接口規範
-o:數據包所進入的那個網絡接口。與POSTROUTING(修改來源IP)結合。
-i:數據包所傳出的那個網絡接口。與PREROTING(修改目的IP)結合。
-s 來源IP/網絡:設置此規則的數據包的來源地;-d:目標IP/網絡:同-s,只不過這裏指的是目標的的ip/網絡
-j:後面接操做;SNAT:修改數據包報頭的來源項目 DNAT:修改數據包報頭的目的項目
B.當數據包從客戶端發出到eth1後再次進行轉換:
命令:
iptables-t nat –A PREROUTING -d 192.168.10.20 -i eth0 –j DNAT --to-destination192.168.1.2
一樣的,當服務器收到客戶端請求返回數據包:
iptables –t nat –A POSTROUTING -s 192.168.1.2-o eth1 -j SNAT --to-source 192.168.10.20
iptables -t nat -A PREROUTING -d 192.168.1.3-i eth1 -j DNAT --to-distination 192.168.10.30
至此防火牆配置完成。
以上有不足或者錯誤的地方敬請指正!