iptables命令
功能:iptables 是用來設置、維護和檢查Linux內核的IP包過濾規則
命令格式:
#iptables [-t 表名] 選項 [鏈名] [條件] [-j 目標操作]
注意:
1)選項、鏈名、目標操作一般用大寫字母,其餘小寫;
2)設置規則後需要執行service iptables save保存規則,否則重啓iptables服務會把前面設置的規則清除;
3)可以不指定表,默認爲filter表
4)可以不指定鏈,默認爲對應表的所有鏈
5)除非設置默認策略,否則必須指定匹配條件
(1)常用選項
1)添加規則
-A --append 在鏈的末尾追加一條規則
-I --insert 在鏈的開頭或指定序號插入一條規則。原本該位置上的規則將會往後移動一個順位,序號是在鏈名後面加上數字,
2)查看規則
-L --list 列出某規則煉中的所有規則
-n 以數字形式顯示地址、端口等信息
--line-numbers 查看規則時,顯示規則的序號
-S --list-rules 打印在一個鏈中或所有鏈的規則
3)刪除規則
-F --flush 清空指定鏈的所有規則或所有鏈的所有規則
# iptables –F
-D --delete 刪除鏈內指定序號(或內容)的一條規則
# iptables -D INPUT 7
-R --replace 規則序號替換現有規則,規則被取代後並不會改變順序
4)默認策略
-P --policy 爲指定的鏈設置默認規則
# iptables -P INPUT DROP
5)鏈的操作
-N --new 增加一條用戶自定義鏈
-X --delete-chain 刪除一條用戶自定義鏈
-E --rename-chain 改變鏈的名字
(2)條件,即包過濾基本匹配條件
1)協議匹配
-p --proto 協議
協議:tcp、udp、icmp
2)地址匹配
-s --source 源地址
-d --destination 目的地址
地址:具體ip、網段à192.168.10.1、192.168.10.0/24
3)接口匹配
-i --in-interface 收數據網卡
-o --out-interface 發數據網卡
網卡:eth0 、eth1 、eth2.....
4)端口匹配
--sport 源端口號
--dport 目的端口號
5)ICMP類型匹配
--icmp-type ICMP類型
ICMP類型有:
any
echo-reply (pong)
destination-unreachable
network-unreachable
host-unreachable
protocol-unreachable
port-unreachable
fragmentation-needed
source-route-failed
network-unknown
host-unknown
network-prohibited
host-prohibited
TOS-network-unreachable
TOS-host-unreachable
communication-prohibited
host-precedence-violation
precedence-cutoff
source-quench
redirect
network-redirect
host-redirect
TOS-network-redirect
TOS-host-redirect
echo-request (ping)
router-advertisement
router-solicitation
time-exceeded (ttl-exceeded)
ttl-zero-during-transit
ttl-zero-during-reassembly
parameter-problem
ip-header-bad
required-option-missing
timestamp-request
timestamp-reply
address-mask-request
address-mask-reply
6)TCP標誌位匹配
--tcp-flags SYN,RST,ACKSYN 多個標記以逗號隔開
tcp標記有:SYN ACK FINRST URG PSH ALL NONE
-m state --state 狀態值 #多個狀態以逗號隔開
狀態值:INVALID,ESTABLISHED,NEW,RELATED
(3)最基本目標操作/目標規則
——設置默認規則時不加–j 添加規則時必須加-j
ACCEPT :允許通過/放行
DROP :直接丟棄
REJECT :拒絕通過
LOG :記錄日誌,然後傳給下一跳規則
NOTRACK :免狀態跟蹤