構建基於ipchains的Linux防火牆

2021-04-02 04:50:55 字數 2164 閱讀 4073

眾所周知,linux可以作為乙個優秀的防火牆軟體使用。無論是結合web或ftp**使用,還是作為內部lan的前端伺服器,linux都能夠為構造滿足使用者特殊需求的防火牆提供必需的工具。

ipchains內置於linux核心,它是乙個在系統之間拒絕、接受、路由資料報的基本防火牆工具。由於有了ipchains,再加上linux作業系統固有的低成本優勢,對於lan或者連線internet的企業網防火牆來說,linux無疑是一種價廉物美的選擇。

防火牆型別

linux核心定義了三種型別的防火牆通訊過濾,把不同的規則應用到各種通訊方式就形成了功能極其廣泛的防火牆。三種基本型別如下:

輸入防火牆(input firewall):所有傳入的資料在接收之前都經過輸入防火牆規則檢查。

輸出防火牆(output firewall):所有傳出的資料在傳送之前都經過輸出防火牆規則檢查。

**防火牆(forwarding firewall):所有**的資料在傳送之前都經過**防火牆規則檢查。

使用者可以自己定義規則(或稱為「鏈」,即chains),其作用相當於對三種基本防火牆規則的擴充套件。

防火牆策略

所有這三種規則型別以及使用者定義的附加規則都有預設的策略,預設策略控制系統如何處理到達防火牆的特殊資料報。使用者既可以對任何規則使用標準策略,也可以轉入另乙個使用者定義的規則進一步處理。這些標準的策略為:

accept(接受):允許資料報通過防火牆。

reject(駁回):丟棄資料報,並傳送乙個icmp錯誤訊息給該資料報的傳送者。這裡的icmp是指internet control message protocol,即internet控制訊息協議。

deny(拒絕):直接丟棄資料報,不向傳送者提供任何錯誤資訊。

masq(偽裝):偽裝(masquerade)資料報,使其看起來就像來自本地系統一樣。當linux用作路由器時這種策略尤其有用。

redirect**發):不管資料報的目的地是**,把它**到本地系統的指定埠。

return(返回):該策略只對使用者定義規則有效,它是指直接返**用鏈。如果在某種核心鏈上應用該策略,意味著脫離該鏈並用該鏈的預設策略取代。

構造規則鏈

ipchains構造規則鏈的方法相當簡單,而且非常靈活。對於任何乙個鏈,使用者可以指定一系列選項,包括:

協議型別(tcp,udp,icmp或者all)。

資料報目標位址(格式與源位址相同)。

目標埠號(格式為:port[:port]])。

icmp包型別(icmp訊息的種類有很多,可以將規則指定到某種特定的型別)。

規則所應用的介面(例如eth0)。

還有其他一些選項,通過它們可以指定不同型別tcp包的優先順序。例如,賦予ftp包比irc(internet relay chat)包更高的優先順序。又如,為某些鏈提供日誌記錄;設定更加詳細的選項,如包型別、大小等等。

鑑於ipchains豐富的功能和選項的繁多,構建防火牆可能很簡單,也可能異常複雜,這與具體的需求有關。簡單的防火牆可以只由4到5個命令組成;複雜的防火牆可以由數百個ipchanins命令組成,鎖定一切,只在使用者需要的時候開啟特定的服務和埠。

防火牆指令碼例項

下面是乙個簡單的防火牆指令碼。

ipchains -a input -i eth0 -s 192.168.0.0/16 -j reject

ipchains -a input -d 192.168.1.5 25 -j accept

ipchains -a input -d 192.168.1.5.110 -j accept

ipchains -a input -d 192.168.0.0/16 -syn -j reject

該指令碼把一些規則新增到輸入規則鏈。第乙個規則的意思是,任何到達外部介面的資料報,如果其源位址裝扮成來自內部網路(192.168),則丟棄它,這是因為有人試圖進行欺騙。接下來兩個規則的意思是,接收所有目標位址為192.168.1.5(這是乙個郵件伺服器,在埠25提供**tp服務,在埠110提供pop3服務)。最後乙個規則的意思是,拒絕所有其他設定了syn位的傳入tcp連線(設定syn位表示試圖初始化乙個連線)。

結束語

無論是為linux伺服器提供防火牆,還是為內部lan提供防火牆/路由器,ipchains都能夠提供強大的過濾能力。乙個配置完善的防火牆所帶來的安全和保護是無價的。linux具有任何希望構造防火牆的人所需要的靈活性和實力,而且它還獨具成本低廉的優點。

基於Drupal的CMS構建

1.在 var www 下建立資料夾 sync a html html zhxue 2.修改配置檔案,新增 的資料庫資訊 vi sites default settings.php databases array default array default array database openci...

基於redis構建訊息佇列

一般來說,訊息佇列有兩種場景 一種是發布者訂閱者模式 一種是生產者消費者模式。利用redis這兩種場景的訊息佇列都能夠實現。定義 1 redis作為訊息中介軟體 1 producer consumermode 該方式是借助redis的list結構實現的。producer呼叫redis的lpush往特...

Vue CLI 基於webpack構建優化

參考vue cli 基於webpack構建優化,資源打包與資源預壓縮 yarn add filemanager webpack plugin dev d 宣告外掛程式 const filemanagerplugin require filemanager webpack plugin 外掛程式配置。...