第 1 部分:將封鎖的 IP 新增到 ipset 中

第 1 部分:將封鎖的 IP 新增到 ipset 中

我目前正在使用 psad 自動封鎖可能有害的 IP。當它偵測到攻擊時,會將 IP 加到 PSAD_BLOCKED_INPUT 或 PSAD_BLOCK_OUTPUT,然後丟棄來自該來源的所有進一步流量。

到目前為止一切順利,但我想要的是將流量從這些被封鎖的 IP 重新導向到在虛擬機器上運行的蜜罐。有什麼想法/建議嗎?

答案1

首先,您必須將 /etc/host.deny 載入到 ipset 中。然後定義一個規則來轉送它。 iptables -A PREROUTING -m set -i eth0 -j DNAT --to-destination 192.168.1.1 --match-set Banned_nets src

192.168.1.1 將是您放置虛擬機器 IP 的位置。

現在它可能會變得棘手,因為 psad 可能會清除所有 iptables 規則,然後您必須在 psad 初始化後添加它。

答案2

我決定嘗試@cybernard 的答案,猜猜看,我確實成功了!太感謝了 :)

所以我是這樣做的:

第 1 部分:將封鎖的 IP 新增到 ipset 中

psad 會自動將每個被封鎖的 IP 寫入位於 /var/log/psad 中名為 auto_blocked_ips 的文字檔案中。所以我們首先需要將其添加到一個我稱之為banned_nets的ipset中。

我編寫了這個簡單的腳本來動態執行此操作:

#!/bin/bash
#ipset banned_nets must already exist

AUTO_BLOCKED_IPTABLES_PATH=/var/log/psad/auto_blocked_iptables

update_set(){
    ipset flush banned_nets

    grep -E -o '^([0-9]{1,3}[\.]){3}[0-9]{1,3}' $AUTO_BLOCKED_IPTABLES_PATH |  while read -r line ; do
         echo "Processing $line"
        ipset add banned_nets $line
    done
 }

while true #run indefinitely 
do
    inotifywait -e modify $AUTO_BLOCKED_IPTABLES_PATH | update_set
done

第 2 部分:定義轉送規則

現在我們需要規則將流量從伺服器轉送到蜜罐。細節是,實際上我們需要兩個規則,因此伺服器充當透明代理。

這是我的做法(再次感謝@cybernard):

###### forwarding ######
ipset create banned_nets hash:ip hashsize 4096

iptables -t nat -A PREROUTING -p tcp -m set --dport 8181 -j DNAT --to-destination $HONEYPOT_ADDR:443 --match-set banned_nets src
iptables -t nat -A POSTROUTING -p tcp -s $HONEYPOT_ADDR --dport 443 -j SNAT --to-source $SERVER_ADDR:8181

iptables -t nat -A PREROUTING -p tcp -m set -j DNAT --to-destination $HONEYPOT_ADDR --match-set banned_nets src
iptables -t nat -A PREROUTING -p udp -m set -j DNAT --to-destination $HONEYPOT_ADDR --match-set banned_nets src

iptables -t nat -A POSTROUTING -p tcp -m set -j SNAT --to-source $SERVER_ADDR --match-set banned_nets src
iptables -t nat -A POSTROUTING -p udp -m set -j SNAT --to-source $SERVER_ADDR --match-set banned_nets src

echo "[+] Activating IP forwarding"
echo 1 > /proc/sys/net/ipv4/ip_forward

這些規則構成了我的 iptables.sh 腳本的一部分。

第 3 部分:檢查結果

因此,我們有一個攻擊者試圖掃描 192.168.56.101 和 192.168.56.100 中的蜜罐。

在IP被封之前掃描伺服器

攔截後,攻擊者實際上掃描了蜜罐

IP被封鎖(並轉送)後掃描伺服器

相關內容