PF reencaminhamento temporário para IP diferente

1

Eu tenho um host do FreeBSD que serve como um ponto de entrada para sistemas adicionais em uma rede interna. Como tal, eu tenho pf configurado para redirecionar o tráfego de entrada em certas portas (digamos, porta 5000) para o endereço local do host em uma das cadeias que executam um serviço de rede nessa máquina. Isso é assim:

---port 5000--->[Main host]
                     |
                     |---port 5000--->[Machine A]
                     |~~~~~~~~~~~~~~~~[Machine B]

O redirecionamento é executado pela regra PF:

rdr pass on egress proto tcp from any to $IP port 5000 -> $MACHINE_A_IP

Este é o estado que quase sempre desejo, e é isso que é configurado por padrão. No entanto, eu gostaria de algumas vezes temporariamente redirecionar a porta 5000 para a Máquina B, assim:

---port 5000--->[Main host]
                     |
                     |~~~~~~~~~~~~~~~~[Machine A]
                     |---port 5000--->[Machine B]

Eu tentei configurar âncoras PF para facilitar isso, mas como sou novo no PF, acho difícil analisar a documentação para cobrir esse caso de uso.

Como eu emito regras PF dinâmicas no host principal para redirecionar temporariamente 5000 da Máquina A para a Máquina B?

    
por DCKing 01.01.2017 / 19:59

1 resposta

2

A maneira correta de conseguir isso é usar a tabela como um alvo para redirecionamento. Você pode alterar o conteúdo da tabela sem recarregar o pf usando pfctl . Esteja ciente de que os estados de firewall existentes continuarão encaminhando o tráfego para o host antigo até que os fluxos tcp sejam fechados ou o tempo limite de "transmissões" do udp.

    
por 19.02.2017 / 15:22

Tags