
現在、潜在的に有害な IP を自動的にブロックするために psad を使用しています。攻撃を検出すると、その IP を PSAD_BLOCKED_INPUT または PSAD_BLOCK_OUTPUT に追加し、このソースからの以降のトラフィックをすべてドロップします。
ここまでは順調ですが、私が望んでいるのは、これらのブロックされた IP からのトラフィックを VM 上で実行されているハニーポットにリダイレクトすることです。何かアイデアや提案はありますか?
答え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 は VM の 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: 転送ルールを定義する
ここで、サーバーからハニーポットにトラフィックを転送するためのルールが必要です。詳しくは、実際には 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 のハニーポットをスキャンしようとしていることになります。
ブロック後、攻撃者は実際にハニーポットをスキャンします