Mirror Port via iptables

12

Eu tenho um servidor raiz Linux dedicado (Debian 7.5), com vários convidados configurados. Os convidados são instâncias do KVM e obtêm acesso à rede via bridge-utils (NAT, IPs internos, usam o host como um gateway).

Por exemplo um KVM é meu convidado do WebServer e fica acessível por meio do IP do host dessa maneira:

    iptables -t nat -I PREROUTING -p tcp -d 148.251.Y.Z 
--dport 80 -j DNAT --to-destination  192.168.100.X:80 

Eu faço o mesmo com outros serviços, mantendo-os autônomos, com NAT e isolados.

Mas um convidado deve ser um monitor de rede e deve realizar uma inspeção de tráfego de rede (como um IDS). Normalmente, em uma configuração não virtual, eu usaria VACLs ou portas SPAN para espelhar o tráfego. É claro que, dentro desse host, não posso fazer isso ( facilmente , porque não quero usar abordagens complexas de comutação virtual).

  1. Posso obter um espelho de porta usando o iptables e redirecionar todo o tráfego de entrada e saída para um guest KVM? Todos os convidados têm uma interface dedicada, como vnet1 .
  2. É possível encaminhar seletivamente o tráfego, com base no protocolo (como uma regra de encaminhamento de VACL, que captura somente HTTP)?
  3. os convidados precisam de uma configuração de interface específica, quando preciso manter vnet1 como uma interface de gerenciamento (com um IP)?

Eu ficaria feliz por um ponto na direção certa:

iptables         1.4.14-3.1
linux            3.2.55
bridge-utils     1.5-6

Muito obrigado:)

    
por wishi 14.05.2014 / 13:00

1 resposta

15

o que dizer sobre a inclusão do módulo de pré-roteamento do servidor raiz? Mangle as regras da tabela por algo como:

iptables -I PREROUTING -t mangle -j ROUTE --gw 192.168.200.1 --tee

e, em seguida, prefixando as regras da tabela Mangle do módulo post-Routing por algo como

iptables -I POSTROUTING -t mangle -j ROUTE --gw 192.168.200.1 --tee 

em que 192.168.200.1 é o monitor de rede.

Estas regras espelharão todo o tráfego de entrada e saída encaminhando-o para 192.168.200.1

editar:

mangle table specific
  -j ROUTE            (explicitly route packets, valid at PREROUTING)
      options:
      --iface <iface_name>
      --ifindex <iface_idx> 

mas você também pode usar algo como

iptables -I PREROUTING –t mangle –i eth0 –j TEE –gateway 192.168.200.1

e

iptables -I POSTROUTING –t mangle –j TEE –gateway 192.168.200.1

em que TEE é um alvo que, a PREROUTING , tem mais opções, como -i , -p , etc

    
por 20.05.2014 / 14:59