
현재 잠재적으로 유해한 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의 허니팟을 스캔하려는 공격자가 있습니다.
차단 후 공격자는 실제로 허니팟을 스캔합니다.