1부: IPset에 차단된 IP 추가

1부: IPset에 차단된 IP 추가

현재 잠재적으로 유해한 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 --대상 192.168.1.1 --match-setbanned_nets src

192.168.1.1은 VM IP를 입력하는 위치입니다.

이제는 psad가 모든 iptables 규칙을 지울 수 있으므로 psad가 초기화된 후에 이를 추가해야 하므로 까다로울 수 있습니다.

답변2

나는 @cybernard 답변을 시도하기로 결정했고, 내가 일을 한 것 같아요! 매우 감사합니다 :)

그래서 제가 한 방법은 다음과 같습니다.

1부: IPset에 차단된 IP 추가

psad는 차단된 모든 IP를 /var/log/psad에 있는 auto_blocked_ips라는 텍스트 파일에 자동으로 기록합니다. 따라서 먼저 bann_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 차단(및 전달) 후 서버 검사

관련 정보