三張表:filter nat mongle表
五條鏈:PREROUTE INPUT FORWARD OUTPUT POSTROUTE
表與規則之間的關係:
一個表中放的是一條條規則
規則與鏈之間的關係:
一條規則只能作用在某個鏈上
鏈:
數據從進入到流出的五個環節,相當於源端到目的端的五道門
規則:
一個規則相當於把守一個門的守衛!
一個門可以有多個守衛!
表與鏈之間的關係:
filter表擁有INPUT FORWORD OUTPUT鏈上的規則
mangle表擁有Prerouting、FORWARD 和 postrouting鏈上的規則
nat 表擁有 Prerouting 和 postrouting 兩個規則鏈,
表的功能:
filter表用來進行封包過濾的理動作
nat表用來設置地址轉換
mangle,出進行NAT外,還有其他工作,一般不用!
基本語法:
iptables
[-t filter]
[-AI INPUT,OUTPUT,FORWARD]
[-io interface]
[-p tcp,udp.icmp,all]
[-s ip/nerwork]
[--sport ports]
[-d ip/netword]
[--dport ports]
[-j ACCEPT DROP]
以上是 iptables 的基本語法
A 是添加的意思
I 是播入的意思
io 指的是數據要進入或出去所要經過的端口 如 eth1 eth0 pppoe 等
p 你所要指定的協議
-s 指源地址 可是單個 IP 如 192.168.2.6 也可以是一個網絡,192.168.2.0/24 還可以 是一個域名
--sport 來源端口 -d 同-s 相似 只不過他指的是目標地址 也可以是 IP 域名 和網絡
--dport 目標端口
-j 執行參數 ACCEPT DROP
注意:如果以有參數存在 則說明全部接受
1 如我要來自己 l0 接口的數據全部接受,我們可以寫成這樣:
iptables -A INPUT -i lo -j ACCEPT
2 如果我們想接受 192.168.2.6 這個 IP 地址傳來的數據我們可以這樣寫
iptablse -A INPUT -i eth1 -p tcp -s 192.168.2.6 -j ACCEPT
3 如果我們要拒絕來自己 192.168.2.0/24 這個網的 telnet 連接
iptablse -A INPUT -i eth1 -p udp -s 192.168.2.0/24 --sport 23 -j