Inserindo uma solução nat em uma rede enquanto não é o gateway

4

Eu tentei isso de várias maneiras diferentes. Atualmente tentando com pf no freebsd 8.2

Estou tentando inserir uma solução nat em uma rede existente que redirecionará o tráfego de um endereço IP externo para um endereço IP interno em todas as portas (nat estático), mas também quero traduzir o endereço de origem.

Rede atual.

hosta
192.168.1.2/24 

gw
192.168.1.1/24

outsidehost
10.0.0.1/24 

natbox
em0 192.168.1.3/24 (used to manage the box)
em1 10.0.0.2/24 (outside address same lan as outsidehost)
em0_alias0 192.168.1.4/24 (inside address same lan as hosta)
route 192.168.1.0/24 192.168.1.1
route 0.0.0.0 0.0.0.0 10.0.0.1

Eu quero que o outsidehost consiga fazer o telnet para 192.168.1.3 telneting (sp) para 10.0.0.2

Para que isso funcione, eu suponho que terei que mudar a origem do pacote quando ele sair do em0 ou ele será perdido no caminho de volta para o em1.

Então o fluxo é assim:

  • do telnet do host externo 10.0.0.2
  • altere o endereço de origem para 192.168.1.4
  • redirecionar o tráfego de 10.0.0.2 para 192.168.1.2
  • o pacote sai com src 192.168.1.4 vai para 192.168.1.2 e depois é enviado de volta para 192.168.1.4 se traduz de volta para qualquer que seja o addy de origem neste caso 10.0.0.1

Eu continuo pensando que isso pode ser feito com

binat e rdr, mas não consigo descobrir a sintaxe.

Como posso fazer isso?

    
por lostinip 10.01.2012 / 06:55

1 resposta

2

Acabei indo com o iptables no linux para conseguir isso.

Para, o encaminhamento de IP precisa ser ativado:

echo net.ipv4.ip_forward=1 >> /etc/sysctl.conf

E defina as seguintes regras:

iptables -F -t nat
# flush the NAT Table.
iptables -t nat -P INPUT DROP
# set the input chain on the NAT table to DROP by default. 
# This way any traffic not allowed by defining a source address gets dropped.
# If you don't provide a -s address below it will allow all hosts from anywhere
# to reach the inside address via the outside ip. 

iptables -t nat -A PREROUTING -s 10.0.0.1 -d 10.0.0.2 \
         -j DNAT --destination-address 192.168.1.3 
# define the source and destination of the traffic allowed through.
# Change the dest address to our inside host. 

iptable -t nat -A INPUT -s 192.168.0.0/24 -J ALLOW
# Drop all traffic on sourcing from inside subnet. 
# This won't apply to traffic that matches the rule above
# as the source address will change in the next rule. 

iptables -t nat -A POSTROUTING -d 192.168.1.3 \
         -j SNAT --source-address 192.168.1.4
# here is the insert magic. Change the source address of any traffic destined
# for our inside host to our vip or owned inside address.
# This way the traffic is routed back to us at the FW. 
    
por 13.01.2012 / 07:49