Estou tentando configurar um servidor NAT básico. Quero que todo o tráfego vindo do mundo externo para o servidor NAT seja redirecionado para outra máquina, onde tenho um serviço lipcap em execução para analisar esse tráfego.
Eu tentei -redirect_port e -redirect_address na parte natd_flags em rc.conf mas nada funciona... alguma ideia?
Responder1
O espaço do usuário natd
precisa ipfw
estar ativado. O IPFW captura pacotes e os redireciona para os natd
endereços que traduzem. Mas hoje em dia você pode usar o kernel nat incorporado no ipfw.
Vamos habilitar o mecanismo IPFW
# /etc/rc.conf
. . . . .
gateway_enable="YES"
firewall_enable="YES"
firewall_nat_enable="YES"
firewall_script="/etc/rc.ipfw"
. . . . .
E vamos configurar o redirecionamento do kernel:
# /etc/rc.ipfw
. . . . .
oip="1.2.3.4" # Outer IP looking to the internet
tip="10.0.0.100 # Target host
ipfw nat 1 config redirect_addr ${tip} ${oip}
. . . . .
Isso é tudo.
Responder2
O firewall PF possui NAT e redirecionamento integrados. Adicione isto ao /etc/rc.conf:
gateway_enable="YES"
pf_enable="YES"
E configure o firewall. Adicione estas linhas ao /etc/pf.conf:
ext_if=em0
ext_addr = N.N.N.N (your external IP)
int_if=em1
int_net=10.0.0.0/8
int_addr=10.0.0.1
libcap_host=10.0.0.2
nat on $ext_if from $int_net to any -> $ext_addr
rdr on $ext_if from any to $ext_addr -> $libcap_host
A regra NAT fará o que você espera, enviará todo o tráfego gerado na sua rede de internet para o mundo através do IP externo do gateway. A regra rdr roteará todas as conexões de entrada para o host de destino.