Linux中iptables的用法

1 iptables

iptables命令用於建立數據過濾與NAT規則,在iptables命令中設置數據過濾或處理數據包的策略叫作規則,將多個規則合成一個鏈。ssh

1.1 iptables的控制類型

ACCEPT:容許經過tcp

LOG:記錄日誌信息,而後傳給下一條規則繼續匹配。ide

REJECT:拒絕經過,必要時給出提示。spa

DROP:直接丟棄,不給出任何迴應。日誌

1.2 規則鏈

規則鏈依據處理數據包的位置不一樣而進行分類orm

PREROUTING:在進行路由選擇前處理數據包。ip

INPUT:處理入站的數據包。路由

OUTPUT:處理出站的數據包。it

FORWARD:處理轉發的數據包。table

POSTROUTING:在進行路由選擇後處理數據包。

規則鏈的前後順序:

入站順序:PREROUTINGàINPUT

出站順序:OUTPUTàPOSTROUTING

轉發順序:PREROUTINGàFORWARDàPOSTROUTING

1.3 規則表

iptables中的規則表是用於容納規則鏈,規則表默認是容許狀態的,那麼規則鏈就是設置被禁止的規則,而反之若是規則表是禁止狀態的,那麼規則鏈就是設置被容許的規則             

raw表:肯定是否對該數據包進行狀態跟蹤。

mangle表:爲數據包設置標記。

nat表:修改數據包中的源、目的IP地址或端口。

filter表:此表是默認規則表,肯定是否放行該數據包。

規則表的前後順序:rawàmangleànatàfilter

1.4 注意事項

1.       沒有指定規則表則默認指filter表。

2.       不指定規則鏈則指表內全部的規則鏈。

3.       在規則鏈中匹配規則時會依次檢查,匹配即中止(LOG規則除外),若沒有匹配項則按鏈的默認狀態處理。

1.5 iptables命令用法

1.5.1 添加規則

iptables [-t 表名] 選項 [鏈名] [條件] [-j 控制類型]

1.5.1.1 INPUT規則

# iptables -L -t filter  #查看filter表,「-t filter」可省略,由於默認就是filter

# iptables -L -t nat   #查看nat

#INPUT鏈的默認策略設置爲丟棄。(此時ssh鏈接也被拒絕了) -P:policy

# iptables -P INPUT DROP    

#容許全部的ping操做,-I:insert在規則鏈頭部加入新規則 -p:protocol -j: jump指令

# iptables -I INPUT -p icmp -j ACCEPT

INPUT鏈追加一條規則,容許全部未被其餘規則匹配上的數據包經過,「-t filter」可省略,由於默認就是filter

# iptables -t filter -A INPUT -j ACCEPT

僅容許來自於10.0.0.0/24網段的用戶鏈接本機的ssh服務

# iptables -I INPUT -s 10.0.0.0/24 -p tcp --dport 22 -j ACCEPT

# iptables -A INPUT -p tcp --dport 22 -j REJECT

不容許任何主機訪問本機的12345端口

# iptables -I INPUT -p tcp --dport 12345 -j REJECT

# iptables -I INPUT -p udp --dport 12345 -j REJECT 

拒絕全部主機經過eth0網卡訪問本機的http服務

# iptables -I INPUT -i eth0 -p tcp --dport 80 -j REJECT

1.5.1.2 FORWARD規則

FORWARD規則至關於路由功能

禁止用戶訪問www.wangning.com

iptables -I FORWARD -d www.wangning.com -j REJECT

禁止IP10.0.0.66的用戶上網

# iptables -I FORWARD -s 10.0.0.66 -j REJECT

 

1.5.2 刪除規則

#刪除filter表中INPUT規則的第一條

# iptables -D INPUT 1    

1.6 保存iptables配置

# /etc/init.d/iptables save

相關文章
相關標籤/搜索