用linux設置iptables做網關

周海漢 /文

2010-3-25

http://blog.csdn.net/ablo_zhou

 

爲了安全起見,web服務器,數據庫,計費等有重要內容的機器,可能是藏在防火牆後面的,甚至沒有外網地址。在此,我們假定需要給一臺只有內網地址的web服務器設置linux網關,讓外網可以訪問web,但又屏蔽其他端口的訪問。

 

iptables是linux 2.4以上內核自帶的防火牆,可以用於阻擋非法的端口和IP訪問,也可以用於做網關設備,配置NAT/防火牆,做port forward.

 

iptables 的邏輯,由表tables,鏈chains,規則rules組成。根據報文頭進行相應的處理。系統接受到包時,底層路由根據目的地分發。如果目的地是本機,則進入INPUT鏈。本機處理完,再進入OUTPUT鏈,發送出去。如果目的地不是本機,則進入FORWARD鏈,符合規則,則轉發出去。

 

設備設置:

web site ip port: 192.168.12.50 80 (windows IIS server  or linux apache)

gateway public ip(eth0): 210.211.22.20, private ip(eth1): 192.168.12.10 (centos 5.2)

 

現在我們希望訪問http://210.211.22.20 即可訪問http://192.168.12.50:80.

 

1.gateway上設置允許IP轉送:

 

vi /etc/sysctl.conf

設置:

 

net.ipv4.ip_forward = 1

 

執行

sysctl -p

應該看到

net.ipv4.ip_forward = 1

 

2.gateway上設置iptables

 

 

設置完畢,執行service iptables save

此時,從外網訪問http://210.211.22.20已經可以看到內網的網頁。

 

3.舉一反三,根據需要,可以將端口設置爲數據庫的1433或ftp的20,21,smtp和pop的25,110等,協議和轉發需要稍有改動和調試。

例如,設置mssql數據庫的代理。

 

 

4.設置好iptables,將不允許的訪問全部禁止。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章