- 使用 iptables-save 觀察防火牆的規則與順序:
# Generated by iptables-save v1.4.21 on Sat Oct 1 20:29:56 2016
*filter
:INPUT ACCEPT [0:0]
:FORWARD ACCEPT [0:0]
:OUTPUT ACCEPT [57:9348]
-A INPUT -m state --state RELATED,ESTABLISHED -j ACCEPT
-A INPUT -p icmp -j ACCEPT
-A INPUT -i lo -j ACCEPT
-A INPUT -p tcp -m state --state NEW -m tcp --dport 22 -j ACCEPT
-A INPUT -j REJECT --reject-with icmp-host-prohibited
-A FORWARD -j REJECT --reject-with icmp-host-prohibited
COMMIT
# Completed on Sat Oct 1 20:29:56 2016
- 出現 *filter 代表使用的是 filter 這個表格
- 出現 :INPUT 代表 INPUT 的 chain ,而 ACCEPT 代表預設政策為接受,後續的 :OUTPUT, :FORWARD 都是類似的意思
- 出現 -A INPUT 為 INPUT 的依順序的各個規則!因為 -A INPUT 共有 5 個,因此就是說,共有 5 個針對 INPUT chain 的規則之意。
- -A FOWARD 僅有一條規則
- 沒有出現 -A OUTPUT 代表沒有 OUTPUT 定義規則,亦即 OUTPUT 完全使用預設政策的意思。
- 使用 iptables -[F|X|Z] 分別清除規則、清除自訂鏈、清除統計資訊
- 使用 iptables -P [INPUT|OUTPUT|FORWARD] [ACCEPT|DROP] 定義預設政策 (政策僅能有 ACCEPT 與 DROP 喔!)
- 可以使用底下的方式來處理一般 layer3, layer4 的防火牆規則:
iptables [-A INPUT] [-i lo|eth0] [-s IP/Netmask] [-d IP/Netmask]
[-p tcp|udp [--sport ports] [--dport ports]] [-j ACCEPT|REJECT|DROP]
- 如果需要使用到 layer2 的管制網路卡,則可以使用底下的方式來處理:
iptables [-A INPUT] [[-m mac] [--mac-source aa:bb:cc:dd:ee:ff]] [-j ACCEPT|REJECT|DROP]
- 如果有需要用到回應封包的管制,則使用如下的狀態來處理:
iptables [-A INPUT] [-m state] [--state RELATED,ESTABLISHED] [-j ACCEPT|DROP|REJECT]
- ESTABLISHED:已經連線成功的連線狀態;
- RELATED:這個最常用!表示這個封包是與我們主機發送出去的封包有關