站長新書 站長開講 首頁 最新文章 站長著作及審校 FreeBSD 筆記 Linux 筆記 Windows 筆記 虛擬化筆記 網管人雜誌 遊山玩水 關於本站
站長新書 VMware vSphere ICM 團購開跑了!!

邁向 RHCE 之路 (Day22) - IPTables 防火牆

前言

在玩 IPTables 以前我們必須先了解一下,您所下的 iptables 防火牆規則對封包進行過濾、封包處理、封包狀態變更、NAT、封包 Qos...等,這些工作其實是核心 (kernel) 層級 Netfilter 在處理的,而 iptables 只是一個使用者端的工具讓您方便對 [Netfilter] 操作而以,以下是對於玩 iptables 時必須先了解的名詞及相關常用指令,以及 iptables 對於封包的處理流程詳細資訊可以參考原廠文件 [RedHat - Security Guide 2.6. IPTables]

Netfilter 五種封包處理規則

必須注意的是 INPUT 及 Forward 處理封包的路徑是不同的,也就是說 Forward 處理的封包會略過 INPUT 及 OUTPUT 規則。

Netfilter 三種過瀘規則鏈(chain)

Netfilter 四種封包狀態(NEW、INVALID、RELATED、ESTABLISHED)

IPTables 封包處理政策 (Policy) 及 目標 (Target)

IPTables 指令參數

處理 iptables 規則時常用到如下參數

處理 iptables 規則鏈(chain)時常用到如下參數

查看目前 iptables 規則時常用到如下參數

iptables 主要設定檔位於 /etc/sysconfig/iptables 當系統重開機且設定開機自動啟動時,系統便會讀取此檔案並套用設定的防火牆規則,你可以把預設的防火牆規則拿來該改即可,你可以手動下 iptables 規則然後在 save 我個人的習慣是直接把規則寫在 /etc/sysconfig/iptables 內,規則語法如下:

 [-io 網路介面] [-p 協定] [-m 模組] [-s 來源] [-d 目的地] [-j 政策]

預設情況下安裝好 CentOS 便會啟動 IPTtable 防火牆功能,並且只允許 SSH 服務 (Port 22) 可以通過,所以我們可以將此檔案備份後直接進行修改來開啟需要允許的 Port 號及協定 Protocol,或者在圖形介面中也可以透過 「system-config-firewall」 叫出圖形介面進行設定也可。

 #cat /etc/sysconfig/iptables
  *filter
  :INPUT ACCEPT [0:0]
  :FORWARD ACCEPT [0:0]
  :OUTPUT ACCEPT [0:0]
  -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
  -A INPUT -p icmp -j ACCEPT
  -A INPUT -i lo -j ACCEPT
  -A INPUT -m state --state NEW -m tcp -p tcp --dport 22 -j ACCEPT
  -A INPUT -j REJECT --reject-with icmp-host-prohibited
  -A FORWARD -j REJECT --reject-with icmp-host-prohibited
  COMMIT

IPTtable 防火牆管理介面

確定 iptables 服務是否開機會自動啟動 (ntsysv or setup)

 #chkconfig iptables --list
  iptables        0:off   1:off   2:on    3:on    4:on    5:on    6:off
Go To Oddmuse OrgGo To FreeBSD OrgCreative Commons 2.5 Taiwansitestates.com