Featured image of post Ubuntu Server - iptables filter表設定

Ubuntu Server - iptables filter表設定

Ubuntu Server防火牆設定

iptables是個相當強大的防火牆,可以用來過濾、轉發甚至是竄改封包。iptables總共有5個節點可以處理封包,分別為PREROUTING、POSTROUTING、INPUT、OUTPUT與FORWARD;而依用途不同又可分filter、mangle與nat表。以下先示範如何設本機的iptables,JR自己在設本機時,屬於開放派先都ACCEPT之後再說。不過網路滿多都是先DROP掉再來開PORT,使用這種方式最好加入iptables外掛模組的指令,否則用起來可能會卡卡的。以下對本機防護做個範例並說明參數。

範例

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
#清除規則
iptables -F	#清除所有規則
iptables -X	#清除使用者自訂的chain
iptables -Z	#將所有chain計數與流量統計歸零

#設定預設policy
iptables -P INPUT DROP	#如果你是封閉派的就設成DROP,後面再來開Port;如果是開放派的就設成ACCEPT,後面再來擋PORT
iptables -P OUTPUT ACCEPT
iptables -P FORWARD ACCEPT

#外掛模組
iptables -A INPUT -m state --state RELATED,ESTABLISHED -j ACCEPT
iptables -A INPUT -m state --state INVALID -j DROP

#開放允許網段
iptables -A INPUT -s 10.0.100.0/24 -j ACCEPT

#內部lo通常設成ACCEPT
iptables -A INPUT -i lo -j ACCEPT

#要開放的Port放的Port
iptables -A INPUT -i eth0 -p tcp --dport 22 -j ACCEPT

參數說明

-P 定義政策( Policy )

  • ACCEPT :該封包可接受
  • DROP :該封包直接丟棄。

-AI 鏈名

  • -A :新增規則在原本規則的最後面(常用)。
  • -I :插入一條規則。如果沒有指定此規則的順序,預設是插入變成第一條規則。 鏈 :有 INPUT, OUTPUT, FORWARD 等,鏈名稱又與-io有關。

-io 網路介面(如果沒有設此參數代表套用所有介面)

  • -i :封包所進入的網路介面,需與 INPUT 鏈配合。
  • -o :封包所傳出的網路介面,需與 OUTPUT 鏈配合。

--sport 埠口範圍:限制來源的埠口號碼,埠口號碼可以是連續的(如 1024:65535)。

--dport 埠口範圍:限制目標的埠口號碼。

-p 協定

  • 主要格式有:tcp, udp, icmp 及 all。

-s 來源IP/網域(可指定單一IP或整個網域)

  • IP :10.0.100.1

  • 網域:10.0.100.0/24或1010.0.100.0/255.255.255.0。

    *若此IP或網域不許通過時可在IP或網域前加上!。(如:-s ! 10.0.100.0/24)

  • -d:目標IP/網域用法同 -s。

  • -j:後面接動作,主要選項有接受(ACCEPT)、丟棄(DROP)、拒絕(REJECT)及記錄(LOG)。

-m iptables的外掛模組

  • state :狀態模組。
  • mac :網卡卡號。

--state 一些封包的狀態

  • INVALID :無效的封包(如資料破損的封包)。
  • ESTABLISHED:已連線成功的連線狀態。
  • NEW :想要新建立連線的封包狀態。
  • RELATED :表示這個封包是與我們主機發送出去的封包。

--mac-source:來源主機的MAC。

Built with Hugo
Theme Stack designed by Jimmy