CentOS-iptables設定方式
CentOS 內置了一個非常強勁的防火牆,統稱為 iptables,但更正確的名稱是 iptables/netfilter。iptables 是一個用戶空間的模塊。作為用戶,你在指令行就是透過它將防火牆規則放進預設的表裡。netfilter 是一個核心模塊,它內置於內核中,進行實際的過濾。iptables 有很多前端圖像介面可以讓用戶新增或定義規則,但它們很多時不及使用指令行般有彈性,而且限制用戶瞭解實際發生的事情。我們將會學習 iptables 的指令行介面。 在我們正式應付 iptables 前,我們必須對它的運作有一個基本的理解。iptables 利用到 IP 位址、協定(tcp、udp、icmp)及連接埠這些概念。我們不需要成為這些方面的專家(因為我們可以找到所需的資訊),但對它們有一般的理解會有幫助。 iptables 將規則放進預設的規則鏈(INPUT、OUTPUT 及 FORWARD),而所有流量(IP 封包)都會被相關的規則鏈檢查,根據當中的規則判斷如何處理每個封包,例如:接納或丟棄它。這些動作稱為目標,而最常見的兩個預設目標就是 DROP 來丟棄封包;或 ACCEPT 來接納封包。 規則鏈 我們可以在過濾表的 3 條預設規則鏈內加入規則,來處理通過這些規則鏈的封包。它們分別是: • INPUT - 所有以主機為目的地的封包。 • OUTPUT - 所有源自主機的封包。 • FORWARD - 這些封包的目的地或來源地都不是主機,但路經主機(由它選路)。假若你的主機是一個路由器,這條規則鏈將會被應用。 我們將會花費最多時間處理 INPUT 規則鏈,藉以過濾進入我們的機器的封包 —— 亦即是將壞蛋拒諸門外。 規 則是以列表的方式被加進每條規則鏈。每個封包會被頭一條規則開始檢查,才至最後一條。假若封包與其中一條規則吻合,相應的動作便會被執行,例如接納 (ACCEPT)或丟棄(DROP)封包。一旦有吻合的規則,這個封包便會按照規則來處理,而不再被規則鏈內的其它規則所檢查。假如封包通過所有檢查而不 符合任何規則鏈內的任何一條規則,那應這條規則鏈的預設動作將會被執行。這就是所謂的預設政策,可以設定為接納(ACCEPT)或丟棄(DROP)封包。 規則鏈擁有預設政策這個概念帶來兩個基本的可能性,而我們必須考慮它們才能決定如何組織我們的防火牆。 1