iptables 使用

iptables是一種靜態的基於三層過濾的工具,主要實現IP 信息包過濾,可用於添加、編輯和除去規則,這些規則是在做信息包過濾決定時,防火牆所遵循和組成的規則。

    iptables包含4個表,5個鏈。其中表是按照對數據包的操作區分的,鏈是按照不同的Hook點來區分的,表和鏈實際上是netfilter的兩個維度。

          filter:一般的過濾功能

          nat:用於nat功能(端口映射,地址映射等)

          mangle:用於對特定數據包的修改

          raw:有限級最高,設置raw時一般是爲了不再讓iptables做數據包的鏈接跟蹤處理,提高性能

      5個鏈:PREROUTING,INPUT,FORWARD,OUTPUT,POSTROUTING。

           PREROUTING:數據包進入路由表之前

           INPUT:通過路由表後目的地爲本機

           FORWARDING:通過路由表後,目的地不爲本機

           OUTPUT:由本機產生,向外轉發

           POSTROUTIONG:發送到網卡接口之前。如下圖:

 

 

iptables 的使用規則

 

 

iptables 的規則應用:

1.       接收來自制定ip地址的所有流入的數據包

 

Iptables  -A  INPUT  -s  203.25.55.10 –j ACCEP

 

2.       只接受來自指點端口(服務)的數據包

 

Iptables  -A  INPUT  --dport 80 –j  ACCEPT

 

3.       允許轉發所有到本地smtp服務器的數據包

 

Iptables  -A FORWARD  -p tcp  -d  192.168.1.1  --dpot smtp  -i  eth0  -j  ACCEPT

 

4.       允許轉發所有到本地的udp數據包

 

Iptables –A FORWARD –p udp –d  192.136.31.1  -i    eth0  -j  ACCEPT

 

5.       拒絕發往www服務器的客戶端的請求數據包

 

Iptables  -A  -p tcp  -d  192.168.1.1  --dport  www  -I  eth0  -j  REJECT

 

6.       允許來源爲指定端口的tcp數據包進入

 

Iptables –A INPUT –p  tcp –m  multiport  --source-port  21538025110  ACCEPT

8.丟掉synack標誌位置位的數據包

 

Iptables –A  INPUT –p  tcp  --tcp-flags  ALL  synack  DROP

2)碎片的檢測和流量的控制

 

因爲在tcp/ip的網絡中,鏈路層有最大傳輸單元MTU這個特性,它限制了數據幀的最大長度,大於這個數的時候就會對數據包進行分片操作,分片後悔被防火牆所阻止,進而影響到接收端對這些碎片的還原,影響到信息的完整性和可用性問題,所以防火牆的允許碎片通過的規則:

 

#iptables -A FORWARD -p tcp -f -s 172.168.96.0/24 -d 172.168.97.18 -j ACCEPT

其中-f參數指定了第二個及以後的ip碎片將有防火牆處理通過,如不加,則可能造成對第二個及其以後的ip碎片進行攔截,

 

速率限制

提供了健全的速率控制機制,主要用來限制由外向內的單位時間內通過數據包個數,這樣做可以儘可能的抑制拒絕服務***或是分佈式拒絕***,進而保護網絡中數據包的個數。

 

Iptables  -A  INPUT  -m  limit  --limit  200/second

Iptables –A  INPUT –m limit   --limit   10000/minute

 

設定速率後,還可以設定將超過該限制所觸發的一些處理事件直接丟棄,比如如果速率超過200限制後,直接對後續數據包進行丟棄。

 

Iptables  -A  INPUT –m  limit  --limit-burst   200

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