Я решил попытаться ответить @cybernard и, думаю, я работал! Огромное спасибо :)
Вот как я это сделал:
Часть 1. Добавление заблокированных IP-адресов в ipset
PSAD автоматически записывает каждый заблокированный IP-адрес в текстовый файл с именем auto_blocked_ips, расположенный в /var /log /psad. Поэтому сначала нам нужно добавить его в ipset, который я назвал banned_nets.
Я написал этот простой скрипт, чтобы сделать это динамически:
#!/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. Определение правил пересылки
Теперь нам нужны правила для пересылки трафика с сервера на honeypot. Суть в том, что на самом деле нам нужны два правила, поэтому сервер действует как прозрачный прокси.
Вот как я это сделал (еще раз, благодаря @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 заблокирован (и переадресован)