iptables初學者指南,linux防火牆

Iptables是為Linux作業系統構建的一個非常靈活的防火牆實用程式。無論您是Linux新手還是系統管理員,iptables可能在某種程度上對您非常有用。請繼續閱讀,我們將向您展示如何配置最通用的Linux防火牆。...

iptables初學者指南,linux防火牆

Iptables是為Linux作業系統構建的一個非常靈活的防火牆實用程式。無論您是Linux新手還是系統管理員,iptables可能在某種程度上對您非常有用。請繼續閱讀,我們將向您展示如何配置最通用的Linux防火牆。

埃齊曼攝。

關於iptables

iptables是一個命令列防火牆實用程式,它使用策略鏈來允許或阻止流量。當連線試圖在您的系統上建立自身時,iptables會在其列表中查詢與之匹配的規則。如果找不到,它將使用預設操作。

iptables幾乎總是預裝在任何Linux發行版上。要更新/安裝它,只需檢索iptables包:

sudo apt-get install iptables

除了Firestarter這樣的iptables之外,還有一些GUI替代品,但是一旦您關閉了一些命令,iptables就不是那麼難了。在配置iptables規則時要特別小心,特別是當您使用SSH連線到伺服器時,因為一個錯誤的命令可能會將您永久鎖定,直到在物理機器上手動修復為止。

鏈條型別

iptables使用三個不同的鏈:輸入、轉發和輸出。

輸入–此鏈用於控制傳入連線的行為。例如,如果使用者嘗試SSH到您的PC/伺服器,iptables將嘗試將IP地址和埠與輸入鏈中的規則相匹配。

轉發–此鏈用於實際上未在本地傳遞的傳入連線。想想路由器——資料總是被髮送到路由器,但很少真正傳送到路由器本身;資料只是被轉發到它的目標。除非您在系統上執行某種路由、本地或其他需要轉發的操作,否則您甚至不會使用此鏈。

有一種可靠的方法可以檢查您的系統是否使用/需要前向鏈。

iptables -L -v

iptables初學者指南,linux防火牆

上面的螢幕截圖顯示的是一個已經運行了幾個星期的伺服器,對傳入或傳出連線沒有限制。如您所見,輸入鏈處理了11GB的資料包,輸出鏈處理了17GB的資料包。另一方面,前向鏈不需要處理單個數據包。這是因為伺服器沒有進行任何型別的轉發或用作直通裝置。

輸出–此鏈用於傳出連線。例如,如果您嘗試pingtl80.cn網站,iptables將檢查其輸出鏈,以檢視關於ping和tl80.cn網站在做出允許或拒絕連線嘗試的決定之前。

警告

即使ping外部主機似乎只需要遍歷輸出鏈,但請記住,要返回資料,也將使用輸入鏈。在使用iptables鎖定系統時,請記住許多協議都需要雙向通訊,因此輸入和輸出鏈都需要正確配置。SSH是一種常見的協議,人們在兩個鏈上都忘記了允許它。

策略鏈預設行為

在進入並配置特定規則之前,您需要確定三個鏈的預設行為是什麼。換句話說,如果連線與任何現有規則都不匹配,您希望iptables做什麼?

要檢視策略鏈當前配置為如何處理不匹配的流量,請執行iptables-L命令。

iptables初學者指南,linux防火牆

如您所見,我們還使用grep命令來提供更清晰的輸出。在那張截圖中,我們的連鎖店目前可以接受流量。

很多時候,您都希望系統預設接受連線。除非您以前更改過策略鏈規則,否則應該已經配置此設定。無論哪種方式,下面都是預設接受連線的命令:

iptables --policy INPUT ACCEPT iptables --policy OUTPUT ACCEPT iptables --policy FORWARD ACCEPT

透過預設接受規則,您可以使用iptables拒絕特定的IP地址或埠號,同時繼續接受所有其他連線。我們馬上就去處理那些命令。

如果希望拒絕所有連線並手動指定允許連線的連線,則應將鏈的預設策略更改為drop。這樣做可能只對包含敏感資訊並且只有相同IP地址的伺服器才有用。

iptables --policy INPUT DROP iptables --policy OUTPUT DROP iptables --policy FORWARD DROP

連線特定響應

配置了預設的鏈策略後,您可以開始向iptables新增規則,以便它知道在遇到來自或到特定IP地址或埠的連線時該怎麼做。在本指南中,我們將介紹三種最基本、最常用的“回答”。

接受–允許連線。

斷開-斷開連線,假裝從未發生過。如果您不希望原始碼意識到您的系統存在,這是最好的。

拒絕–不允許連線,但發回錯誤。如果您不希望某個特定的源連線到您的系統,但是您希望他們知道您的防火牆阻止了他們,那麼這是最好的。

顯示這三個規則之間差異的最好方法是顯示當一臺PC嘗試ping一臺為每種設定配置了iptables的Linux機器時的樣子。

允許連線:

iptables初學者指南,linux防火牆

正在斷開連線:

iptables初學者指南,linux防火牆

拒絕連線:

iptables初學者指南,linux防火牆

允許或阻止特定連線

配置策略鏈後,現在可以配置iptables以允許或阻止特定的地址、地址範圍和埠。在這些示例中,我們將連線設定為DROP,但您可以根據需要和策略鏈的配置將連線切換為ACCEPT或REJECT。

注意:在這些示例中,我們將使用iptables-A將規則附加到現有鏈中。iptables從列表的頂部開始,遍歷每個規則,直到找到一個匹配的規則。如果需要在另一條規則的上方**規則,可以使用iptables-I[chain][number]來指定它應該在列表中的編號。

來自單個IP地址的連線

此示例顯示如何阻止來自IP地址10.10.10.10的所有連線。

iptables -A INPUT -s 10.10.10.10 -j DROP

來自一系列IP地址的連線

此示例顯示如何阻止10.10.10.0/24網路範圍內的所有IP地址。您可以使用網路掩碼或標準斜槓符號來指定IP地址的範圍。

iptables -A INPUT -s 10.10.10.0/24 -j DROP

iptables -A INPUT -s 10.10.10.0/255.255.255.0 -j DROP

連線到特定埠

此示例演示如何阻止10.10.10.10中的SSH連線。

iptables -A INPUT -p tcp --dport ssh -s 10.10.10.10 -j DROP

您可以用任何協議或埠號替換“ssh”。程式碼的-p tcp部分告訴iptables協議使用哪種連線。如果要阻止使用UDP而不是TCP的協議,則需要使用-p UDP。

此示例演示如何阻止來自任何IP地址的SSH連線。

iptables -A INPUT -p tcp --dport ssh -j DROP

連線狀態

正如我們前面提到的,很多協議都需要雙向通訊。例如,如果您想允許SSH連線到您的系統,那麼輸入和輸出鏈需要新增一個規則。但是,如果您只希望允許SSH進入您的系統呢?向輸出鏈新增規則不也允許傳出SSH嘗試嗎?

這就是連線狀態的來源,它提供了允許雙向通訊但只允許建立單向連線的能力。看看這個示例,其中允許10.10.10.10的SSH連線,但不允許10.10.10.10的SSH連線。但是,只要會話已經建立,系統就可以透過SSH發回資訊,這使得這兩個主機之間的SSH通訊成為可能。

iptables -A INPUT -p tcp --dport ssh -s 10.10.10.10 -m state --state NEW,ESTABLISHED -j ACCEPT

iptables -A OUTPUT -p tcp --sport 22 -d 10.10.10.10 -m state --state ESTABLISHED -j ACCEPT

儲存更改

您對iptables規則所做的更改將在下次iptables服務重新啟動時取消,除非您執行儲存更改的命令。此命令可能因您的發行版而異:

烏班圖:

sudo /**in/iptables-save

紅帽/CentOS:

/**in/service iptables save

或者

/etc/init.d/iptables save

其他命令

列出當前配置的iptables規則:

iptables -L

新增-v選項將為您提供資料包和位元組資訊,新增-n將以數字形式列出所有內容。換句話說,主機名、協議和網路都列為數字。

要清除當前配置的所有規則,可以發出flush命令。

iptables -F

  • 發表於 2021-04-11 11:45
  • 閱讀 ( 31 )
  • 分類:網際網路

你可能感興趣的文章

2021年面向開發者、雲工程師和devops的5大linux課程

... 非常適合:初學者和對Linux基本或很少了解的人 ...

  • 發佈於 2021-03-11 10:29
  • 閲讀 ( 59 )

不,linux不需要防病毒或防火牆

...僅僅因為Linux有安全漏洞並不意味著你需要防病毒軟體或防火牆軟體。儘管您可能會決定安裝一個,但這並沒有什麼錯,這裡有一些原因說明它可能沒有您想象的那麼有用。 ...

  • 發佈於 2021-03-12 20:15
  • 閲讀 ( 52 )

linux上應該有5個安全工具

... 預設情況下,Linux附帶了一個名為iptables的防火牆工具。然而,由於它很難使用,人們大多使用它的前端,Gufw防火牆是一個流行的選擇。它實際上是簡單防火牆的前端,防火牆本身是基於iptables的。 ...

  • 發佈於 2021-03-15 01:11
  • 閲讀 ( 37 )

啟動linux的9個基本命令

... linux命令提示初學者 ...

  • 發佈於 2021-03-26 18:33
  • 閲讀 ( 59 )

使用pfsense防火牆的6個原因

... 防火牆一般不適合初學者。它們有許多複雜的設定、選項和功能,需要進行微調。否則,你的防禦系統可能會有一個大洞。 ...

  • 發佈於 2021-03-27 00:19
  • 閲讀 ( 106 )

初學者的nmap:獲得埠掃描的實踐經驗

如果您曾經執行過任何網路監視,您應該熟悉Nmap。它是一個強大的埠掃描器,允許管理員定位他們網路中的弱點。 ...

  • 發佈於 2021-03-28 11:48
  • 閲讀 ( 44 )

針對初學者系統管理員的10個linux強化提示

... 9配置iptables ...

  • 發佈於 2021-03-28 14:39
  • 閲讀 ( 50 )

如何設定和使用最好的android防火牆:afwall+

...、栓接和Tor的複選框來啟用額外的連線控制。除非您熟悉iptables,否則不建議更改iptables鏈設定。 ...

  • 發佈於 2021-03-29 05:56
  • 閲讀 ( 50 )

如何使用fail2ban保護您的linux伺服器

...n將為您管理監視、禁止和取消禁止。 fail2ban與Linux防火牆iptables整合。它透過在防火牆中新增規則來執行對可疑IP地址的禁令。為了保持這個解釋的清晰,我們使用iptables和一個空的規則集。 當然,如果您擔心安全性,那麼您可...

  • 發佈於 2021-04-02 03:13
  • 閲讀 ( 41 )

如何使用lynis稽核linux系統的安全性

...一個簡單的查詢就會發現他們可以嘗試利用的漏洞。 “iptables模組已載入,但沒有啟用的規則”:Linux防火牆已啟動並執行,但沒有為其設定規則。 清除警告 每個警告都有一個指向網頁的連結,該網頁描述了問題以及您可以採...

  • 發佈於 2021-04-02 03:25
  • 閲讀 ( 43 )
eS745A
eS745A

0 篇文章

作家榜

  1. admin 0 文章
  2. 孫小欽 0 文章
  3. JVhby0 0 文章
  4. fvpvzrr 0 文章
  5. 0sus8kksc 0 文章
  6. zsfn1903 0 文章
  7. w91395898 0 文章
  8. SuperQueen123 0 文章

相關推薦