掃描我的伺服器的機器人可以更改其來源 IP 嗎?為什麼我封IP後還是會受到攻擊?

掃描我的伺服器的機器人可以更改其來源 IP 嗎?為什麼我封IP後還是會受到攻擊?

我有一個 PBX(VOIP 伺服器),電話可以透過它連接來撥打電話。我正在使用的 pbx 是星號。該伺服器未被使用,其唯一目的是分析攻擊。

如果我有不同的服務(例如 mongodb),那麼 PBX 服務並不重要,我確信網路上的機器人會搜尋漏洞來攻擊該資料庫。

無論如何,我正在分析在 UDP 連接埠 5060(這是 asterisk 偵聽的位置)上到達我的伺服器的所有資料包,到達的資料包如下所示:

IP (tos 0x0, ttl 113, id 654, offset 0, flags [none], proto UDP (17), length 521)
    43.249.129.89.58255 > 171.21.78.225.5060: SIP, length: 493
        REGISTER sip:54.84.215.2:5060 SIP/2.0
        To: <sip:[email protected]>
        From: <sip:[email protected]>;tag=824e5f4a7221279e4f7a
        Via: SIP/2.0/UDP 10.4.1.117:58255;branch=z9hG4bK183d5a24-59ec-4f05-8325-747389112824;rport
        Call-ID: e5f4a722128024e4f7a824
        CSeq: 1 REGISTER
        Contact: <sip:[email protected]:58255>
        Expires: 3600
        Max-Forwards: 70
        Allow: INVITE, ACK, CANCEL, OPTIONS, BYE, REFER, NOTIFY, MESSAGE, SUBSCRIBE, INFO
        User-Agent: PolycomSoundPointIP SPIP_550 UA 3.3.2.0413
        Content-Length: 0

該資料包來自機器人,因為我沒有向我的伺服器發送任何資料包。

請注意,該伺服器的唯一目的是了解機器人如何運作並了解它們如何攻擊我的伺服器。我沒有使用那支 PBX;因此,到達該伺服器的任何請求都必須來自惡意機器人。每次我收到發送到連接埠 5060 的 UDP 封包時,我都會封鎖該 IP 位址。

現在我的問題是:

我已經運行該伺服器一個月了,大約每分鐘我仍然會受到攻擊。我已經屏蔽了超過 15,000 個 IP!網路上有多少機器人?他們是否更改了來源 IP 位址,這就是他們不斷訪問我的伺服器的原因?如果他們能夠更改來源 IP 是因為我使用的是 UDP 協定嗎?我應該使用 TCP 而不是 UDP 來解決此問題嗎?

有趣的是,來自不同 ip 的攻擊如此相似。例如,他們使用與電話相同的用戶代理,並且攻擊來自不同的 ip。就好像所有機器人都有相同的程式碼。

一旦我解決了這個問題並了解了機器人的工作原理,我想在我的真實伺服器上實現該解決方案。我沒有為此使用真正的伺服器,因為從壞資料包中過濾出好資料包將很困難。一個解決方案是在我的防火牆上使用ip 白名單,但我不希望我的用戶必須執行一些額外形式的身份驗證,特別是如果他們透過手機使用該服務,而手機的ip 位址可能會發生很大變化。

答案1

我現在明白為什麼人們試圖關閉盡可能多的連接埠。就我而言,我希望打開連接埠並阻止攻擊者。我發現這是一場無休無止的戰鬥。

為了解決這個問題,我所做的就是了解 iptables 是如何運作的。我的規則如下:

~# iptables -L -n
Chain INPUT (policy ACCEPT)
target     prot opt source        destination
DROP       all  --  0.0.0.0/0     0.0.0.0/0       match-set MyBlackList src
ACCEPT     all  --  0.0.0.0/0     0.0.0.0/0       match-set MyWhiteList src
ACCEPT     tcp  --  0.0.0.0/0     0.0.0.0/0       tcp dpt:5060
DROP       udp  --  0.0.0.0/0     0.0.0.0/0       multiport dports 1:65535
DROP       tcp  --  0.0.0.0/0     0.0.0.0/0       multiport dports 1:65535

Chain FORWARD (policy ACCEPT)
target     prot opt source        destination

Chain OUTPUT (policy ACCEPT)
target     prot opt source        destination

根據此規則,我最初只允許透過 TCP 連接到連接埠 5060。

如果電話嘗試錯誤地連接到該端口,則該 IP 將被添加到 MyBlackList。如果是這種情況,攻擊者將無法提出進一步的請求。

如果手機連接正確,它將被添加到 MyWhiteList。如果是這種情況,它將能夠訪問其他連接埠並撥打電話。如果將來它發出許多無效請求,它仍然可以添加到 MyBlackList。

使用這種方法後,我很少受到攻擊。現在我只屏蔽了 10 個 ip,而不是數千個。

相關內容