iptables redirecionam IPs bloqueados de uma cadeia para um honeypot

0

Atualmente, estou usando o psad para bloquear automaticamente IPs potencialmente nocivos. Quando detecta um ataque, ele adiciona o ip a PSAD_BLOCKED_INPUT ou PSAD_BLOCK_OUTPUT e, em seguida, descarta todo o tráfego adicional dessa fonte.

Até aqui tudo bem, mas o que eu quero é redirecionar o tráfego desses IPs bloqueados para um honeypot em execução em uma VM. Alguma idéia / sugestão?

    
por Marcos Valle 14.07.2015 / 18:54

2 respostas

0

Eu decidi dar uma olhada na resposta @cybernard e, adivinhe, eu trabalhei! Muito obrigado :)

Então aqui está como eu fiz:

Parte 1: Adicionar IPs bloqueados em um ipset

O psad grava automaticamente todos os IP bloqueados em um arquivo de texto chamado auto_blocked_ips localizado em / var / log / psad. Então, primeiro precisamos adicioná-lo a um ipset que eu chamei de banned_nets.

Eu escrevi este script simples para fazer isso dinamicamente:

#!/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

Parte 2: definir regras de encaminhamento

Agora precisamos de regras para encaminhar o tráfego do servidor para o honeypot. O detalhe é que, na verdade, precisamos de duas regras, então o servidor age como um proxy transparente.

Aqui está como eu fiz isso (mais uma vez, graças a @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

Essas regras fazem parte do meu script iptables.sh.

Parte 3: verificando os resultados

Portanto, temos um invasor tentando analisar 192.168.56.101 e um honeypot em 192.168.56.100.

A verificação do servidor antes de o IP ser bloqueado

Após o bloqueio, o atacante realmente verifica o honeypot

A varredura do servidor após o IP ser bloqueado (e encaminhado)

    
por 10.10.2015 / 16:53
0

Primeiro você teria que carregar /etc/host.deny em um ipset. Em seguida, defina uma regra para encaminhá-lo. iptables -A PREROUTING -m set -i eth0 -j DNAT - para destino 192.168.1.1 --match-set banned_nets src

192.168.1.1 seria onde você colocaria seu ip da VM.

Agora, pode ser complicado, já que o psad pode limpar todas as regras do iptables e você deve adicioná-lo depois que o psad for inicializado.

    
por 16.07.2015 / 06:29