iptables簡單了解

2022-08-27 22:18:18 字數 4056 閱讀 9456

iptables是unix/linux自帶的一款優秀且開源的基於包過濾的防火牆工具。

可以用來做主機防火牆。

可以做區域網共享上網。

可以做ip及埠對映。

iptables分為4表5鏈

表:filter:input,output,forward

nat:postrouting,prerouting,output

mangle:input,output,forward,postrouting,prerouting

raw:prerouting,output

鏈:input:進入主機的資料報。

output: 流出主機的資料報。

forward: 流經主機的資料報。

prerouting: 進入伺服器最先經過的鏈,用來做nat埠或ip對映

postrouting: 流出伺服器最後經過的鏈,nat共享上網。 區域網共享上網。

4個表:filter,nat,mangle,raw,預設表是filter(沒有指定表的時候就是filter表)。表的處理優先順序:raw>mangle>nat>filter。

filter:一般的過濾功能

nat:用於nat功能(埠對映,位址對映等)

mangle:用於對特定資料報的修改

raw:優限級最高,設定raw時一般是為了不再讓iptables做資料報的鏈結跟蹤處理,提高效能

raw 表只使用在prerouting鏈和output鏈上,因為優先順序最高,從而可以對收到的資料報在連線跟蹤前進行處理。一但使用者使用了raw表,在某個鏈 上,raw表處理完後,將跳過nat表和 ip_conntrack處理,即不再做位址轉換和資料報的鏈結跟蹤處理了.

raw表可以應用在那些不需要做nat的情況下,以提高效能。如大量訪問的web伺服器,可以讓80埠不再讓iptables做資料報的鏈結跟蹤處理,以提高使用者的訪問速度。

[root@linux ~]# iptables -a input -p tcp -m tcp --dport 21 -j accept  #新增filter表,開放21埠  

[root@linux ~]# iptables -t nat -a postrouting -s 192.168.10.0/24 -j masquerade #新增nat表,將源位址是 192.168.10.0/24

的資料報進行位址偽裝

[root@linux ~]# iptables -i input 3 -p tcp -m tcp --dport 20 -j accept #新增filter表,開放20埠,並且插入到指定位置

[root@linux ~]# iptables -l -n --line-number

chain input (policy drop)

num target prot opt source destination

1 accept all -- 0.0.0.0/0

0.0.0.0/0

2 drop icmp -- 0.0.0.0/0

0.0.0.0/0 icmp type 8

3 accept tcp -- 0.0.0.0/0

0.0.0.0/0 tcp dpt:20 #-i指定位置插的

4 accept tcp -- 0.0.0.0/0

0.0.0.0/0 tcp dpt:22

5 accept tcp -- 0.0.0.0/0

0.0.0.0/0 tcp dpt:80

6 accept all -- 0.0.0.0/0

0.0.0.0/0

state related,established

7 drop all -- 0.0.0.0/0

0.0.0.0/0

state invalid,new

8 accept tcp -- 0.0.0.0/0

0.0.0.0/0 tcp dpt:21 #-a預設插到最後

chain forward (policy accept)

num target prot opt source destination

chain output (policy accept)

num target prot opt source destination

[root@linux ~]# iptables -l -n --line-number |grep

21 #檢視filter表,--line-number可以顯示規則序號,在刪除的時候比較方便

[root@linux ~]# iptables -t nat -vnl postrouting --line-number #檢視nat表

chain postrouting (policy accept

38 packets, 2297

bytes)

num pkts bytes target prot opt

inout source destination 10

0 masquerade all -- * * 192.168.10.0/24

0.0.0.0/0

[root@linux ~]# iptables -r input 3 -j drop #將規則3改成drop

[root@linux ~]# iptables -d input 3

#刪除input的第3條規則

[root@linux ~]# iptables -t nat -d postrouting 1

#刪除nat表中postrouting的第一條規則

[root@linux ~]# iptables -f input #清空 filter表input所有規則

[root@linux ~]# iptables -f #清空所有規則

[root@linux ~]# iptables -t nat -f postrouting #清空nat表postrouting所有規則

[root@linux ~]# iptables -p input drop #設定filter表input預設規則是 drop

把所有通過eth0這個網絡卡發往位址122.

225.97.111的包都**到區域網的中192.168.1.130這台機器上.它也可以配全--string功能更強大

[root@linux ~]# iptables -t nat -a prerouting -i eth0 -p tcp\

--dst 122.225.97.111 --dport 80 -j dnat --to-destination 192.168.1.130:80

將匹配到img.51yip.com的請求轉到區域網的192.

168.1

.136這台機器上

[root@linux ~]# iptables -t nat -a prerouting -i eth0 -p tcp --dport 80

\-m string --string

"img.51yip.com

" --algo bm -j dnat --to-destination 192.168.1.136:80

snat可以讓本地ip位址偽裝成其他機器的ip位址,或者是公網ip,假如我有三颱機器,一台能上外網,另外二台卻不可以.不能上網的機器可以偽裝成可上網的那機器的ip

[root@linux ~]# iptables -t nat -i postrouting 1 -j snat -s 192.168.10.0/24 --to-destination 192.168.1.108

iptables簡單應用

可以修改 etc rc.d boot.local讓規則重啟後也能生效,如 sbin iptables f sbin iptables a input i eth0 p tcp sport 80 j accept sbin iptables a input i eth0 p tcp j drop sb...

iptables的簡單問題

編輯 etc sysconfig iptables 然後執行 sbin service iptables restart 防火牆規則只有在 iptables 服務執行的時候才能被啟用。要手工啟動服務,使用以下命令 sbin service iptables restart 要確保它在系統引導時啟動,...

iptables的簡單應用

當前主機ip 10.0.0.7 iptables a input d 10.0.0.7 p icmp icmp type 8 j reject當前主機ip 10.0.0.7 iptables a input d 10.0.0.7 p tcp dport 80 m state state new j ...