Iptables 防禦連接埠掃描器且沒有 DoS 漏洞

Iptables 防禦連接埠掃描器且沒有 DoS 漏洞

Archwiki 發表了一篇文章,其中包含以下建議:有狀態 iptables 防火牆。他們推薦一些欺騙連接埠掃描器的規則,但建議他們打開 DoS 攻擊的漏洞。特別是,透過拒絕對不斷嘗試訪問關閉連接埠的 IP 的訪問,潛在的攻擊者可以使用欺騙性 IP 發送這些封包,以便我的防火牆將鎖定合法用戶。

建議的 TCP 規則如下:

# iptables -I TCP -p tcp -m recent --update --rsource --seconds 60 --name TCP-PORTSCAN -j REJECT --reject-with tcp-reset
# iptables -A INPUT -p tcp -m recent --set --rsource --name TCP-PORTSCAN -j REJECT --reject-with tcp-reset

我的問題是,如果我將資料包的 TTL 添加到規則中,是否可以限制所述 DoS 攻擊的有效性?根據iptables 的手冊頁:

--rttl:[…] 這會將符合範圍縮小到僅當位址位於清單中且目前資料包的 TTL 與命中 --set 規則的資料包的 TTL 相符時才發生。如果您遇到有人偽造來源位址以便透過此模組透過向您發送虛假資料包禁止其他人造訪您的網站來對您進行 DoS 攻擊的問題,這可能會很有用。

它會起作用還是我錯過了什麼?

答案1

為此目的使用 TTL 選項存在幾個問題。您實質上是建議在識別地址時使用 TTL 作為識別的附加元件。

然而,正如攻擊者可以欺騙 IP 來鎖定合法客戶端一樣,他們也可以欺騙資料包的 TTL 值;任何人都可以產生具有任意 TTL 值的資料包,它們不限於以假定的初始值開始。

此外,隨著網路基礎架構的變化,您和攻擊者之間的跳數自然會隨著時間的推移而變化,從而限制了 TTL 作為唯一識別碼的實際用途。

這種技術的最後一個問題是,攻擊者完全有可能在他們和您之間擁有與許多合法主機和您之間相同的跳數。因此,即使沒有任何 TTL 欺騙,他們也可能實現某種程度的 DoS 攻擊。

答案2

這並不能真正回答你的問題,因為它是 iptables 之外的東西,但如果你想防止連接埠掃描,PSAD 是一個更好的選擇。您可以將其配置為阻止連接埠掃描您系統的任何 IP。 http://cipherdyne.org/psad/

這使用了 iptables,但它不一定只是一個 iptables 規則

相關內容