[FUG-BR] 1 link de internet para cada rede interna.

2011-06-02 Por tôpico Mario Lobo
Bom dia a todos;

Terei em breve a seguinte situação:

1 link de 1M para a rede interna 10.10.10.x
1 link de 2M para as redes internas 198.162.0.x e 172 .16.3.x

Minha dúvida é como implementar isso. Atualmente uso o pf como firewall
Uma placa de rede para cada rede interna e uma para cada link de internet (5
total).

Adaptei o meu  pf.conf atual para os 2 links. Ainda não testei porque o 2o
link ainda não está instalado. Gostaria
do comentário de voces, se est correto meu raciocínio, se tá tudo errado,
etc... O default router do FreeBSD é o link de 2M.

FBSD 8.2-STABLE


### pf.conf

[ Macros ]

### Interfaces ###

  ifext_1M=sis0
  gwip_1M=xx.xx.xx.xx

  ifext_2M=rl1
  gwip_2M=yy.yy.yy.yy

### Network ifs ###

  ifint_aln=dc0
  ifint_lab=vr0
  ifint_enc=rl0

### Networks ###

  rede_1M=10.10.10.0/24
  rede_2Ma=192.168.0.0/24
  rede_2Mb=172.16.3.0/24

[ Queueing ]##

[ Translation ]###

### NAT

  nat on $ifext_1M from $ifint_enc:network to any - $ifext_1M port
1024:65535
  nat on $ifext_2M from { $ifint_aln:network,$ifint_lab:network } to any -
$ifext_2M port 1024:65535

### RDR

  no rdr on lo0 from any to any

  # FW Servers ---

  # mail /owa
  rdr on $ifext_2M inet proto tcp to port smtp  - $brightmail port smtp
  rdr on $ifext_2M inet proto tcp to port https - $exchange port https

  # DENY rouge redirections
  no rdr

[ Filtering ]#

### unconditional passes

  pass quick on $ifint_aln inet proto { tcp, udp, icmp } from
$ifint_aln:network to $ifint_aln:network
  pass quick on $ifint_lab inet proto { tcp, udp, icmp } from
$ifint_lab:network to $ifint_lab:network
  pass quick on $ifint_enc inet proto { tcp, udp, icmp } from
$ifint_enc:network to $ifint_enc:network

  # allow lab to see DNS
  pass quick on $ifint_aln inet proto { tcp, udp, icmp } from
$ifint_lab:network to $ad_dns

  # route enc network - no restrictions
  pass in quick on $ifint_enc route-to ( $ifext_1M $gwip_1M ) inet from
$ifint_enc:network to !$ifint_enc keep state
  # From gateway -
  pass out quick on $ifint_enc inet proto { tcp, udp, icmp } from $ifint_enc
to any keep state

### Quick blocks

  block in  on $ifext_1M inet from any to !($ifext_1M)
  block in  on $ifext_2M inet from any to !($ifext_2M)

  # Ftp ( secure ftp-proxy )
  anchor ftp-proxy/*

### Allowances

  # From LAB
---

pass in quick on $ifint_lab route-to ( $ifext_2M $gwip_2M ) inet proto
tcp  from $ifint_lab:network to !$ifint_lab port $Allow_tcp_ports_lab
pass in quick on $ifint_lab route-to ( $ifext_2M $gwip_2M ) inet proto
udp  from $ifint_lab:network to !$ifint_lab port $Allow_udp_ports_lab
pass in quick on $ifint_lab route-to ( $ifext_2M $gwip_2M ) inet proto
icmp from $ifint_lab:network to !$ifint_lab icmp-type { echorep, echoreq,
timex, unreach }

pass out quick on $ifint_lab inet proto tcp tagged ftp_proxy modulate
state

# From gateway -
pass out quick on $ifint_lab inet proto { tcp, udp, icmp } from
$ifint_lab to any keep state


  # From ALN
---

pass in quick on $ifint_aln inet proto tcp from any to lo0 port $SshPort
flags S/SA keep state (max 20,  source-track rule, max-src-nodes 2,
max-src-states 10)
pass in quick on $ifint_aln inet proto tcp from any to lo0 port $FtpPort
flags S/SA keep state (max 250, source-track rule, max-src-conn 100,
max-src-nodes 254, max-src-conn-rate 75/20)

pass in quick on $ifint_aln route-to ( $ifext_2M $gwip_2M ) inet proto
tcp  from $ifint_aln:network to !$ifint_aln port $Allow_tcp_ports_aln flags
S/SA modulate state
pass in quick on $ifint_aln route-to ( $ifext_2M $gwip_2M ) inet proto
tcp  from $ifint_aln:network to !$ifint_aln port $Allow_udp_ports_aln keep
state
pass in quick on $ifint_aln route-to ( $ifext_2M $gwip_2M ) inet proto
icmp from $ifint_aln:network to !$ifint_aln icmp-type { echorep, echoreq,
timex, unreach } keep state

# To Servers --
pass out quick on $ifint_aln inet proto tcp from any to $brightmail port
smtp flags S/SA modulate state (max 100,  source-track rule, max-src-nodes
30,  max-src-states 5,  max-src-conn-rate 10/300, overload banned flush
global, tcp.established 45)
pass out quick on $ifint_aln inet proto tcp from any to $exchange port
443  flags S/SA modulate state
pass out quick on $ifint_aln inet proto tcp from any to $srvmic2008 port
21 flags S/SA modulate state

# From gateway -
pass out quick on $ifint_aln inet proto { tcp, udp, icmp } from
$ifint_aln to any keep state

## fin pf.conf


Obrigado pela atenção;

-- 
Mario Lobo
http://www.mallavoodoo.com.br
FreeBSD since version 2.2.8 [not Pro-Audio 

Re: [FUG-BR] 1 link de internet para cada rede interna.

2011-06-02 Por tôpico Bruno Torres Viana
Mario,

Aparentemente olhando bem rápido não vejo nada de errado, mas eu utilizo
outra prática.

Para block

block log all


Para as regras de direcionar tráfego para um ou outro link

pass in quick log on $int_if route-to ($ext_if2 $ext_gw2) proto tcp from any
to any port 5050 keep state
pass out quick log on $ext_if2 reply-to ($ext_if2 $ext_gw2) proto tcp from
any to any port 5050 keep state

Abraço!


Em 2 de junho de 2011 10:17, Mario Lobo l...@bsd.com.br escreveu:

 Bom dia a todos;

 Terei em breve a seguinte situação:

 1 link de 1M para a rede interna 10.10.10.x
 1 link de 2M para as redes internas 198.162.0.x e 172 .16.3.x

 Minha dúvida é como implementar isso. Atualmente uso o pf como firewall
 Uma placa de rede para cada rede interna e uma para cada link de internet
 (5
 total).

 Adaptei o meu  pf.conf atual para os 2 links. Ainda não testei porque o 2o
 link ainda não está instalado. Gostaria
 do comentário de voces, se est correto meu raciocínio, se tá tudo errado,
 etc... O default router do FreeBSD é o link de 2M.

 FBSD 8.2-STABLE


 ### pf.conf

 [ Macros ]

 ### Interfaces ###

  ifext_1M=sis0
  gwip_1M=xx.xx.xx.xx

  ifext_2M=rl1
  gwip_2M=yy.yy.yy.yy

 ### Network ifs ###

  ifint_aln=dc0
  ifint_lab=vr0
  ifint_enc=rl0

 ### Networks ###

  rede_1M=10.10.10.0/24
  rede_2Ma=192.168.0.0/24
  rede_2Mb=172.16.3.0/24

 [ Queueing ]##

 [ Translation ]###

 ### NAT

  nat on $ifext_1M from $ifint_enc:network to any - $ifext_1M port
 1024:65535
  nat on $ifext_2M from { $ifint_aln:network,$ifint_lab:network } to any -
 $ifext_2M port 1024:65535

 ### RDR

  no rdr on lo0 from any to any

  # FW Servers ---

  # mail /owa
  rdr on $ifext_2M inet proto tcp to port smtp  - $brightmail port smtp
  rdr on $ifext_2M inet proto tcp to port https - $exchange port https

  # DENY rouge redirections
  no rdr

 [ Filtering ]#

 ### unconditional passes

  pass quick on $ifint_aln inet proto { tcp, udp, icmp } from
 $ifint_aln:network to $ifint_aln:network
  pass quick on $ifint_lab inet proto { tcp, udp, icmp } from
 $ifint_lab:network to $ifint_lab:network
  pass quick on $ifint_enc inet proto { tcp, udp, icmp } from
 $ifint_enc:network to $ifint_enc:network

  # allow lab to see DNS
  pass quick on $ifint_aln inet proto { tcp, udp, icmp } from
 $ifint_lab:network to $ad_dns

  # route enc network - no restrictions
  pass in quick on $ifint_enc route-to ( $ifext_1M $gwip_1M ) inet from
 $ifint_enc:network to !$ifint_enc keep state
  # From gateway -
  pass out quick on $ifint_enc inet proto { tcp, udp, icmp } from $ifint_enc
 to any keep state

 ### Quick blocks

  block in  on $ifext_1M inet from any to !($ifext_1M)
  block in  on $ifext_2M inet from any to !($ifext_2M)

  # Ftp ( secure ftp-proxy )
  anchor ftp-proxy/*

 ### Allowances

  # From LAB
 ---

pass in quick on $ifint_lab route-to ( $ifext_2M $gwip_2M ) inet proto
 tcp  from $ifint_lab:network to !$ifint_lab port $Allow_tcp_ports_lab
pass in quick on $ifint_lab route-to ( $ifext_2M $gwip_2M ) inet proto
 udp  from $ifint_lab:network to !$ifint_lab port $Allow_udp_ports_lab
pass in quick on $ifint_lab route-to ( $ifext_2M $gwip_2M ) inet proto
 icmp from $ifint_lab:network to !$ifint_lab icmp-type { echorep, echoreq,
 timex, unreach }

pass out quick on $ifint_lab inet proto tcp tagged ftp_proxy modulate
 state

# From gateway -
pass out quick on $ifint_lab inet proto { tcp, udp, icmp } from
 $ifint_lab to any keep state


  # From ALN
 ---

pass in quick on $ifint_aln inet proto tcp from any to lo0 port $SshPort
 flags S/SA keep state (max 20,  source-track rule, max-src-nodes 2,
 max-src-states 10)
pass in quick on $ifint_aln inet proto tcp from any to lo0 port $FtpPort
 flags S/SA keep state (max 250, source-track rule, max-src-conn 100,
 max-src-nodes 254, max-src-conn-rate 75/20)

pass in quick on $ifint_aln route-to ( $ifext_2M $gwip_2M ) inet proto
 tcp  from $ifint_aln:network to !$ifint_aln port $Allow_tcp_ports_aln flags
 S/SA modulate state
pass in quick on $ifint_aln route-to ( $ifext_2M $gwip_2M ) inet proto
 tcp  from $ifint_aln:network to !$ifint_aln port $Allow_udp_ports_aln keep
 state
pass in quick on $ifint_aln route-to ( $ifext_2M $gwip_2M ) inet proto
 icmp from $ifint_aln:network to !$ifint_aln icmp-type { echorep, echoreq,
 timex, unreach } keep state

# To Servers --
pass out quick on $ifint_aln inet proto tcp from any to $brightmail port
 smtp flags S/SA modulate state (max 100,  source-track rule, max-src-nodes
 30,  max-src-states 5,  max-src-conn-rate 10/300, 

Re: [FUG-BR] 1 link de internet para cada rede interna.

2011-06-02 Por tôpico Mario Lobo
Primeiramente, obrigado pela resposta Bruno.

O block log all ta no final de tudo. Esqueci de colocar.

Quando voce diz:

pass in quick log on $int_if route-to ($ext_if2 $ext_gw2) proto tcp from any
to any port 5050 keep state
pass out quick log on $ext_if2 reply-to ($ext_if2 $ext_gw2) proto tcp from
any to any port 5050 keep state

Esse reply-to é realmente necessário? não entendi a função dele já que ele
referencia a mesma
interface do pass out. Nesse caso, para cada regra de permissão route-to
para uma porta fora na interface interna,
eu teria que colocar uma regra reply-to para esta mesma porta na interface
externa? Pergunto porque as redes internas tem umas 20 portas diferentes que
são permitidas conectar fora e isso vai aumentar muito o numero de regras.

Obrigado,

-- 
Mario Lobo
http://www.mallavoodoo.com.br
FreeBSD since version 2.2.8 [not Pro-Audio YET!!] (99,7% winfoes FREE)

Em 2 de junho de 2011 10:31, Bruno Torres Viana btvi...@gmail.comescreveu:

 Mario,

 Aparentemente olhando bem rápido não vejo nada de errado, mas eu utilizo
 outra prática.

 Para block

 block log all


 Para as regras de direcionar tráfego para um ou outro link

 pass in quick log on $int_if route-to ($ext_if2 $ext_gw2) proto tcp from
 any
 to any port 5050 keep state
 pass out quick log on $ext_if2 reply-to ($ext_if2 $ext_gw2) proto tcp from
 any to any port 5050 keep state

 Abraço!


 Em 2 de junho de 2011 10:17, Mario Lobo l...@bsd.com.br escreveu:

  Bom dia a todos;
 
  Terei em breve a seguinte situação:
 
  1 link de 1M para a rede interna 10.10.10.x
  1 link de 2M para as redes internas 198.162.0.x e 172 .16.3.x
 
  Minha dúvida é como implementar isso. Atualmente uso o pf como firewall
  Uma placa de rede para cada rede interna e uma para cada link de internet
  (5
  total).
 
  Adaptei o meu  pf.conf atual para os 2 links. Ainda não testei porque o
 2o
  link ainda não está instalado. Gostaria
  do comentário de voces, se est correto meu raciocínio, se tá tudo errado,
  etc... O default router do FreeBSD é o link de 2M.
 
  FBSD 8.2-STABLE
 
 
  ### pf.conf
 
  [ Macros ]
 
  ### Interfaces ###
 
   ifext_1M=sis0
   gwip_1M=xx.xx.xx.xx
 
   ifext_2M=rl1
   gwip_2M=yy.yy.yy.yy
 
  ### Network ifs ###
 
   ifint_aln=dc0
   ifint_lab=vr0
   ifint_enc=rl0
 
  ### Networks ###
 
   rede_1M=10.10.10.0/24
   rede_2Ma=192.168.0.0/24
   rede_2Mb=172.16.3.0/24
 
  [ Queueing ]##
 
  [ Translation ]###
 
  ### NAT
 
   nat on $ifext_1M from $ifint_enc:network to any - $ifext_1M port
  1024:65535
   nat on $ifext_2M from { $ifint_aln:network,$ifint_lab:network } to any
 -
  $ifext_2M port 1024:65535
 
  ### RDR
 
   no rdr on lo0 from any to any
 
   # FW Servers ---
 
   # mail /owa
   rdr on $ifext_2M inet proto tcp to port smtp  - $brightmail port smtp
   rdr on $ifext_2M inet proto tcp to port https - $exchange port https
 
   # DENY rouge redirections
   no rdr
 
  [ Filtering ]#
 
  ### unconditional passes
 
   pass quick on $ifint_aln inet proto { tcp, udp, icmp } from
  $ifint_aln:network to $ifint_aln:network
   pass quick on $ifint_lab inet proto { tcp, udp, icmp } from
  $ifint_lab:network to $ifint_lab:network
   pass quick on $ifint_enc inet proto { tcp, udp, icmp } from
  $ifint_enc:network to $ifint_enc:network
 
   # allow lab to see DNS
   pass quick on $ifint_aln inet proto { tcp, udp, icmp } from
  $ifint_lab:network to $ad_dns
 
   # route enc network - no restrictions
   pass in quick on $ifint_enc route-to ( $ifext_1M $gwip_1M ) inet from
  $ifint_enc:network to !$ifint_enc keep state
   # From gateway -
   pass out quick on $ifint_enc inet proto { tcp, udp, icmp } from
 $ifint_enc
  to any keep state
 
  ### Quick blocks
 
   block in  on $ifext_1M inet from any to !($ifext_1M)
   block in  on $ifext_2M inet from any to !($ifext_2M)
 
   # Ftp ( secure ftp-proxy )
   anchor ftp-proxy/*
 
  ### Allowances
 
   # From LAB
  ---
 
 pass in quick on $ifint_lab route-to ( $ifext_2M $gwip_2M ) inet proto
  tcp  from $ifint_lab:network to !$ifint_lab port $Allow_tcp_ports_lab
 pass in quick on $ifint_lab route-to ( $ifext_2M $gwip_2M ) inet proto
  udp  from $ifint_lab:network to !$ifint_lab port $Allow_udp_ports_lab
 pass in quick on $ifint_lab route-to ( $ifext_2M $gwip_2M ) inet proto
  icmp from $ifint_lab:network to !$ifint_lab icmp-type { echorep, echoreq,
  timex, unreach }
 
 pass out quick on $ifint_lab inet proto tcp tagged ftp_proxy modulate
  state
 
 # From gateway -
 pass out quick on $ifint_lab inet proto { tcp, udp, icmp } from
  $ifint_lab to any keep state
 
 
   # From ALN
  ---