iptables [-t 表] -命令 匹配 操作
說明
(1) -t 表
表選項用于指定命令應用于哪個iptables內置表。
(2)命令
命令選項用于指定iptables的執(zhí)行方式,包括插入規(guī)則,刪除規(guī)則和添加規(guī)則,如下表所示
命令 說明
-P
–policy 鏈名> 定義默認策略
-L
–list 鏈名>
查看iptables規(guī)則列表
-A
–append 鏈名> 在規(guī)則列表的最后增加1條規(guī)則
-I
–insert 鏈名>
在指定的位置插入1條規(guī)則
-D
–delete 鏈名>
從規(guī)則列表中刪除1條規(guī)則
-R
–replace 鏈名>
替換規(guī)則列表中的某條規(guī)則
-F
–flush 鏈名>
刪除表中所有規(guī)則
-Z –zero 鏈名>
將表中數(shù)據(jù)包計數(shù)器和流量計數(shù)器歸零
-X –delete-chain 鏈名>
刪除自定義鏈
-v
–verbose 鏈名> 與-L它命令一起使用顯示更多更詳細的信息
(3) 匹配規(guī)則
匹配選項指定數(shù)據(jù)包與規(guī)則匹配所具有的特征,包括源地址,目的地址,傳輸協(xié)議和端口號,如下表所示
匹配 說明
-i –in-interface 網(wǎng)絡接口名> 指定數(shù)據(jù)包從哪個網(wǎng)絡接口進入,
-o –out-interface 網(wǎng)絡接口名> 指定數(shù)據(jù)包從哪個網(wǎng)絡接口輸出
-p —proto協(xié)議類型 指定數(shù)據(jù)包匹配的協(xié)議,如TCP、UDP和ICMP等
-s –source 源地址或子網(wǎng)> 指定數(shù)據(jù)包匹配的源地址
–sport 源端口號> 指定數(shù)據(jù)包匹配的源端口號
–dport 目的端口號> 指定數(shù)據(jù)包匹配的目的端口號
-m –match 匹配的模塊 指定數(shù)據(jù)包
規(guī)則所使用的過濾模塊
linux netfilter/Iptables包過濾防火墻
帶狀態(tài)檢查的包過濾防火墻:狀態(tài):new,established,invalid,related
new:syn=1 新發(fā)起的請求
established : syn<>1 ack=1 fyn<>1 已建立的連接
output:一般都是ESTABLISHED
related:關聯(lián)到的狀態(tài). ftp 的連接
默認規(guī)則:
*filter
# 使用 iptables -P INTPUT|OUTPUT|FORWARD DROP
:INPUT DROP [41:5302]
:FORWARD DROP [0:0]
:OUTPUT DROP [0:0]
iptables -A INPUT -s 172.16.0.0/16 -d 172.16.100.7/32 -p tcp -m tcp –dport 22 -j ACCEPT
# 在input鏈上 -s指定源地址:172.16.0.0/16 -d 指定目標地址 172.16.100.7 (本機) -p 指定協(xié)議(tcp) -m 擴展選項(tcp) 允許172.16.0.0/16這個網(wǎng)段用戶能夠訪問本地的sshd服務進行訪問
iptables -A INPUT -d 172.16.100.7/32 -p tcp -m tcp –dport 80 -j ACCEPT
# 在input鏈上 -d 指定目標地址 172.16.100.7 -s 忽略表示所有的,允許所有用戶對本地的web服務進行訪問
iptables -A INPUT -i lo -j ACCEPT
# 允許本機對自己本地回環(huán)地址進行訪問
iptables -A OUTPUT -s 172.16.100.7/32 -d 172.16.0.0/16 -p tcp -m tcp –sport 22 -j ACCEPT
# 在output鏈上 -s指定源地址:172.16.100.7(本機) -d 制動目標地址 172.16.0.0/16 -p 指定協(xié)議(tcp) -m 擴展選項(tcp) 允許172.16.0.0/16這個網(wǎng)段用戶能夠訪問本地的sshd服務進行訪問
iptables -A OUTPUT -s 172.16.100.7/32 -p tcp -m tcp –sport 80 -j ACCEPT
# 在output鏈上 -s指定:172.16.100.7(本機) -p 指定協(xié)議(tcp) -m 擴展選項 允許所有用戶對本地的web服務進行訪問 -j :指定允許 或拒絕(ACCEPT DROP)
-A OUTPUT -o lo -j ACCEPT
# 允許本機對自己本地回環(huán)地址進行訪問
# iptables -P INPUT DROP # 將默認INPUT鏈策略改為拒絕,起初是ACCEPT
# iptables -P OUTPUT DROP # 將默認OUTPUT鏈策略改為拒絕,起初是ACCEPT
# iptables -L -v -n
Chain INPUT (policy DROP 5 packets, 843 bytes)
pkts bytes target prot opt in out source destination
247 17320 ACCEPT tcp — * * 0.0.0.0/0 172.16.251.132 tcp dpt:22 state NEW,ESTABLISHED
Chain FORWARD (policy ACCEPT 0 packets, 0 bytes)
pkts bytes target prot opt in out source destination
Chain OUTPUT (policy DROP 0 packets, 0 bytes)
pkts bytes target prot opt in out source destination
146 14752 ACCEPT tcp — * * 172.16.251.132 0.0.0.0/0 tcp spt:22 state ESTABLISHED
# iptables -A INPUT -d 172.16.251.132 -p udp –dport 53 -m state –state NEW,ESTABLISHED -j ACCEPT
# iptables -A OUTPUT -s 172.16.251.132 -p udp –dport 53 -m state –state ESTABLISHED -j ACCEPT
# 開放所有用戶對本機DNS服務器的請求
# iptables -A INPUT -d 172.16.251.132 -p tcp –dport 53 -m state –state NEW,ESTABLISHED -j ACCEPT
# iptables -A OUTPUT -s 172.16.251.132 -p tcp –dport 53 -m state –state ESTABLISHED -j ACCEPT
# 因為DNS主從復制的時候使用的就是TCP的53號端口,所以也要開放
規(guī)則優(yōu)化:
# iptables -A INPUT -d 172.16.100.7/32 -m state –state ESTABLISHED -j ACCEPT
# 所有用戶所有的數(shù)據(jù)包只要是,只要是已連接的請求統(tǒng)統(tǒng)ACCEPT統(tǒng)統(tǒng)放行
# iptables -A INPUT 2 -d 172.16.251.132 -p tcp -m state –state NEW,ESTABLISHED -m multiport –destination-ports 22,53,80 -j ACCEPT
# 使用-m multiport –destination-ports 22,53,80 指定多個目標端口
# iptables -A OUTPUT -s 172.16.100.7/32 -m state –state ESTABLISHED -j ACCEPT
# 所有只要使用本機流出的數(shù)據(jù)包并且狀態(tài)為established 統(tǒng)統(tǒng)放行
下一篇:樹莓派玩機筆記