Firewall multi-local com ipnat

4

Eu estou tentando (sem sucesso) configurar uma caixa ipnat / ipf no FreeBSD 8.2, aqui está o cenário:

outside                                  inside
                              +----+
ADSL 1.2.3.0/29 -------(re0)- |    | -(re2)-- 172.16.16.0/254  DMZ
                              |    | 
HDSL 101.102.103.0/29 -(re1)- |    | -(re3)-- 192.168.10.0/254 LAN
                              +----+

Até agora eu tinha apenas o ADSL e consegui navegar a partir da LAN e redirecionar as solicitações recebidas para vários serviços na DMZ,

o gateway padrão para a caixa é 1.2.3.4 todos os endereços IP atribuídos são alias às respectivas interfaces

aqui está o meu ipnat.conf

# -------------------------------
# navigation from inside 
map re0 192.168.10.0/24 -> 1.2.3.4/32 proxy port ftp ftp/tcp
map re0 192.168.10.0/24 -> 1.2.3.4/32 portmap tcp/udp 11000:39999
map re0 192.168.10.0/24 -> 1.2.3.4/32

map re0 172.16.16.0/24 -> 1.2.3.4/32 proxy port ftp ftp/tcp
map re0 172.16.16.0/24 -> 1.2.3.4/32 portmap tcp/udp 40000:59999
map re0 172.16.16.0/24 -> 1.2.3.4/32

# some services
rdr re0 1.2.3.2/32 port 80   -> 172.16.16.100  port   80 tcp/udp
rdr re0 1.2.3.3/32 port 25   -> 172.16.16.200  port   25 tcp/udp
rdr re0 1.2.3.3/32 port 110  -> 172.16.16.200  port  110 tcp/udp
rdr re0 1.2.3.5/32 port 3389 -> 192.168.10.10  port 3389 tcp/udp
# -------------------------------

agora eu configuraria a caixa para que alguns serviços fossem acessados através da nova conexão HDSL, algo como:

# -------------------------------
# navigation from inside 
map re0 192.168.10.0/24 -> 1.2.3.4/32 proxy port ftp ftp/tcp
map re0 192.168.10.0/24 -> 1.2.3.4/32 portmap tcp/udp 11000:39999
map re0 192.168.10.0/24 -> 1.2.3.4/32

map re0 172.16.16.0/24 -> 1.2.3.4/32 proxy port ftp ftp/tcp
map re0 172.16.16.0/24 -> 1.2.3.4/32 portmap tcp/udp 40000:59999
map re0 172.16.16.0/24 -> 1.2.3.4/32

# some services via ADSL and some via HDSL
rdr re0 1.2.3.2/32         port 80   -> 172.16.16.100  port   80 tcp/udp
rdr re1 101.102.103.103/32 port 25   -> 172.16.16.200  port   25 tcp/udp
rdr re1 101.102.103.103/32 port 110  -> 172.16.16.200  port  110 tcp/udp
rdr re0 1.2.3.5/32         port 3389 -> 192.168.10.10  port 3389 tcp/udp
# -------------------------------

mas eu não sou capaz de configurar as coisas como eu faria ... pacotes recebidos são roteados para o destino certo, mas as respostas vão para outro lugar, eu também tentei com mapas e bimaps com o mesmo (se não o pior ;-) ...) resultados.

Desculpe pelo longo post, muitos agradecimentos a todos que ajudarão!

    
por user160205 15.02.2013 / 18:46

1 resposta

0

Embora eu não possa dizer exatamente como você faria isso com o freeBSD (como eu nunca o usei seriamente), acho que você deveria passar algum tempo lendo o pf man pages, e preste atenção na seção de roteamento, especialmente estas duas seções:

route-to
       The route-to option routes the packet to the specified interface
       with an optional address for the next hop.  When a route-to rule
       creates state, only packets that pass in the same direction as the
       filter rule specifies will be routed in this way.  Packets passing
       in the opposite direction (replies) are not affected and are routed
       normally.

e

reply-to
       The reply-to option is similar to route-to, but routes packets that
       pass in the opposite direction (replies) to the specified inter-
       face.  Opposite direction is only defined in the context of a state
       entry, and reply-to is useful only in rules that create state.  It
       can be used on systems with multiple external connections to route
       all outgoing packets of a connection through the interface the
       incoming connection arrived through (symmetric routing enforce-
       ment).
    
por 24.05.2013 / 11:27