linux-iptables

 linux_iptables小結
1、 使用iptables可以定義一組規則,對出入系統的數據包做檢查。iptables是類似於防火牆的一組組件。可以通過定義安全規則,來實現防火牆的功能。


2、 iptables的三個表
filter  :過濾,允許|不允許
nat   :實現地址轉換。
mangle :修改報文元數據


3、 五個hook functions(鉤子函數或者叫做鏈)
PREROUTING   :路由前
INPUT      :流入接口
FORWARD    :轉發關口
OUTPUT     :流出接口
POSTROUTING   :路由後
可以這樣畫一個圖
 

 

它們可以這麼對應
filter
  INPUT   FORWARD  OUTPUT
nat
  PREROUTING  OUTPUT POSTROUTING
mangle
 PREROUTING  INPUT  FORWARD  OUTPUT POSTROUTING


4、 iptables用法可以歸納如下,還有很多,沒有一一列出。

5、 iptables定義的規則都是自上而下執行的。
定義的規則都是立即生效,重啓全部失效。如果想要重啓不失效,可以把配置保存在一個文件中讓文件重啓自動執行。默認情況使用以下兩種方式保存。
service iptables save   默認保存在/etc/sysconfig/iptables
iptables-save > /etc/sysconfig/iptables
如果你不想保存在這個目錄中,可以自定義目錄,比如
iptables-save > /etc/sysconfig/backup  //定義保存位置
iptables-restore < /etc/sysconfig/backup //定義啓動


6、 部分例子介紹
如:我有一臺服務器172.16.100.1,上面安裝了web。允許172.16.0.0/16拒絕172.16.0.1訪問
iptables -A INPUT -s 172.16.0.1 -d 172.16.100.1 -j DROP
iptables -A INPUT -s 172.16.0.0/16 -d 172.16.100.1 -p tcp --dport 80 -m state --state NEW,ESTABLISHED -j ACCEPT
後面跟的是狀態檢測的定義.


7、 地址轉換nat
如果是一個正常的網絡地址,經過路由器訪問外網是不會改變ip地址的。由於現在ipv4地址早已耗盡,所以沒有足夠的ip讓你使用,但是還必須要上網,所以此時就使用路由器來設置一個nat協議,把從內網發來的數據包的ip首部信息中源地址轉換爲路由的公網地址,等數據包返回的時候再把目標地址轉換成你的地址來實現上網。這叫做源地址轉換SNAT。同樣還存在目標地址轉換DNAT,還有就是MASQUERADE源地址僞裝(如果你不確定你的源地址,因爲源地址可以通過DHCP自動獲取,有時候不是固定的,這時就需要源地址僞裝)。
如:源地址轉換
iptables -t nat -A POSTROUTING -s 192.168.0.2/24 -j SNAT --to-source 123.123.123.123把來自192.168.0.0/24的源地址都轉換爲123.123.123.123
目標地址轉換把來自外網的訪問內網web服務的目標地址進行轉換,web的80端口
iptables -t nat -A PREROUTING -d 192.168.100.2 -p tcp --dport 80 -j DNAT --to-destination 172.16.100.2
源地址僞裝
iptables -t nat -A POSTROUTING -s 192.168.0.0/24 -j MASQUERADE
地址僞裝比直接指定轉換爲哪個ip要耗費更多的資源
……


8、 配置雙網卡,實現路由轉發功能
echo “1” > /proc/sys/net/ipv4/ip_forward讓其具有轉發功能
給主機添加路由功能
route add -net 172.16.100.0 netmask 255.255.0.0 dev eth0
…...

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