Apache-2.4

來自 ip 的 ufw 拒絕似乎不起作用

  • October 17, 2021

今天工作時,我一直在跟踪我的伺服器的訪問日誌,並註意到我的一個客戶的 wordpress 網站因來自國外 IP 的登錄嘗試而受到重創。

我想拒絕來自該 IP 地址的訪問,並嘗試了以下 ufw 命令:

sudo ufw deny from xx.xx.xx.xx to any

我看到已添加規則並且防火牆處於活動狀態,但我仍然看到大量來自該 IP 地址的登錄頁面的文章。

我也嘗試過使用 iptables,雖然我對該工具不是很熟悉:

sudo iptables -A INPUT -s xx.xx.xx.xx -j DROP

我做錯了嗎?我認為在拒絕訪問該 ip 地址後,它不會顯示在我的 apache 訪問日誌中,並顯示 200 ok 狀態以發佈到登錄頁面。

編輯:正如我所提到的,ufw 處於活動狀態並且規則已經到位,這是 ufw 狀態的輸出(ip 被屏蔽):

root@mel:~# ufw status
Status: active

To                         Action      From
--                         ------      ----
22                         ALLOW       Anywhere
80                         ALLOW       Anywhere
1723                       ALLOW       Anywhere
8080                       ALLOW       Anywhere
6273                       ALLOW       Anywhere
36728                      DENY        Anywhere
Anywhere                   DENY        xx.xx.xx.xx
22                         ALLOW       Anywhere (v6)
80                         ALLOW       Anywhere (v6)
1723                       ALLOW       Anywhere (v6)
8080                       ALLOW       Anywhere (v6)
6273                       ALLOW       Anywhere (v6)
36728                      DENY        Anywhere (v6)

防火牆規則的順序很重要。由於您一開始就允許所有埠 80,因此該規則將匹配所有請求,而後面的拒絕規則將永遠不會匹配。

因此,如果您需要特別阻止某些內容,請將其放在開頭,然後全部允許

要查看帶有參考編號的規則,請使用以下命令:

sudo ufw status numbered

然後首先刪除您添加的拒絕規則:

sudo ufw delete rule_number_here

然後在頂部再次添加:

sudo ufw insert 1 deny from xx.xx.xx.xx to any

如需進一步參考:https ://help.ubuntu.com/community/UFW#Deny_Access

另請注意,ufw 並不是緩解此類攻擊的最佳工具。嘗試使用fail2ban,它可以動態地做到這一點。

引用自:https://serverfault.com/questions/748516