problema con pf e connessioni smtp

classic Classic list List threaded Threaded
11 messages Options
Reply | Threaded
Open this post in threaded view
|

problema con pf e connessioni smtp

Matteo Mancini-2
-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1

Ciao @lista,

ho un problema con un firewall su hw soekris, sono due settimane che
faccio prove su prove ma non ho trovato il perche' del problema.

Il problema sta' nelle sessioni smtp per le mail con allegati in
ingresso, non arrivano e quando arrivano hanno ritardi clamorosi.
Il problema e' nel firewall e non nel server smtp (ho provato
con un altro fw sempre open e tutto va'); su uso tcpdump vedo che la
mail arriva ma ogni tanto ci sono dei "buchi" dove non vedo passare
traffico,presumo che in questi buchi il server mittente va in timeout
(ma non ne sono sicuro). pflog non dice nulla e le sessioni smtp non
vengono bloccate, i log di sistema non indicano problemi.

Il firewall gestisce una lan, due dmz ed una linea internet, nelle due
dmz oltre al server smtp ci sono anche servizi ftp e web che non hanno
problemi anche se faccio ulpoad/download molto lunghi.

la configurazione della rete e' la seguente

                         INET
                          |  (http,ftp)---<--DMZ2-----fw------dmz1-->--(smtp-http-ftp)
                          |
                          |
                  -------LAN---------


la dmz2 e una vlan dello switch di lan, la dmz e' attaccata al firewall
tramite un hub e il router di inernet e' in cros con il fw.

Il problema se metto su il firewall di backup non c'e', i due firewall
hanno di diverso hw e il secondo firewall non gestisce la dmz (avevo
finito gli slot pci per le eth).

idee??..io le ho esaurite...
mercoledi' provo con un altra box soekris in modo da discriminare anche
il fattore hw...

Ciao

Grazie

Matteo


ps: qui di seguito il pf.conf


# cat pf/pf.conf
###############################################################################
# Macros
#

# available interfaces
dmz_if=         "sis2"
dmz2_if=        "sis3"
dmz3_if=        "sis4"
int_if=         "sis1"
ext_if=         "sis0"

# list of networks
ext_net=        $ext_if:network
dmz_net=        $dmz_if:network
dmz2_net=       $dmz2_if:network
dmz3_net=       $dmz3_if:network
int_net=        $int_if:network

# list of hosts
fw_ext=         "xx.yy.zz.34"
fw_dmz=         "($dmz_if)"
fw_dmz2=        "($dmz2_if)"
fw_dmz3=        "($dmz3_if)"
fw_int=         "($int_if)"

#web_dmz=       "10.0.0.70"
web_dmz=        "192.168.1.235"
web_ext=        "xx.yy.zz.34"
mail_int=       "10.0.0.70"
kbs_int=        "10.0.0.35"
as_int=         "10.0.0.55"
nagios_int=     "10.0.0.147"
ts_int=         "10.0.0.38"
web2_dmz2=     "172.25.16.123"
web2_ext=       "xx.yy.zz.38"
hilite_ip=      "{ xx.yy.zz.190, xx.yy.zz.220 }"
dc=             "{ 10.0.0.60, 10.0.0.61 }"

wupdate_ip=     ""


tcp_in_34=      "{ 20, 443, 25, 80, 53, 21, > 49151, 444 }"
udp_in_34=      "{ 53 }"

tcp_in_38=      "{ 21, 80, 5500:5700 }"
udp_in_38=      "{ }"

auth_dc_tcp=    "{ 389, 3268, 88, 53, 135, 1600, 6001, 6004, 445 }"
auth_dc_udp=    "{ 389, 88, 53, 123 }"

###############################################################################
# Tables
#

#table <rfc1918> const file "/etc/pf/rfc1918"
#table <trusted> persist file "/etc/pf/trusted"
#table <spam> persist file "/etc/pf/spam"
#table <dns_trans> persist file "/etc/pf/dns_trans"
table <server> persist file "/etc/pf/server"

####################################
# Options
#

#set timeout     { frag 15, interval 5 }
#set timeout     { tcp.first 120, tcp.opening 30, tcp.established 86400}
#set timeout     { tcp.closing 900, tcp.finwait 45, tcp.closed 90 }
#set limit       { frags 2500, states 5000 }
set optimization        aggressive
set block-policy        drop
set loginterface        $ext_if

#scrub in all fragment reassemble no-df min-ttl 24 max-mss 1492
#scrub out all random-id fragment reassemble no-df min-ttl 24 max-mss 1492

###################################
# Translation
#

binat   on $ext_if inet from $web2_dmz2 to any -> $web2_ext
binat   on $ext_if inet from $web_dmz to any -> $web_ext
nat     on $ext_if inet from $dmz3_net to any -> xx.yy.zz.35
no nat  on $ext_if inet from !<server> to any
nat     on $ext_if inet from <server> to any -> xx.yy.zz.35

###############################################################################

##############################################################################
# Packet Filtering
#


block   in log all
block   out all


pass    in quick on lo0 all
pass    out quick on lo0 all
pass    in quick on $int_if all
pass    out quick on $int_if all

# dmz interface
pass    in quick on $dmz_if inet from $dmz_net to !$int_net keep state
pass    out quick on $dmz_if all keep state

# dmz2 interface
pass    in quick on $dmz2_if inet from $dmz2_net to !$int_net keep state
pass    out quick on $dmz2_if all keep state


block   out quick on $ext_if inet from !$ext_net to any


#antispoof log for $ext_if


#block in quick on $ext_if proto tcp all flags SF/SFRA
#block in quick on $ext_if proto tcp all flags SFUP/SFRAU
#block in quick on $ext_if proto tcp all flags FPU/SFFRAUP
#block in quick on $ext_if proto tcp all flags /SFRA
#block in quick on $ext_if proto tcp all flags F/SFRA


pass    out on $ext_if inet proto { icmp, udp, tcp } all keep state

##############################################
################## FIREWALL ##################
# inbound traffic (firewall)
pass    in on $ext_if inet proto tcp from <trusted> to $fw_ext \
        port 22 flags S/SA keep state

##############################################
################## DMZ ZONE ##################

# inbound traffic ( inet->web)
pass    in quick on $ext_if inet proto tcp from any to $web_dmz \
        port $tcp_in_34 keep state

pass    in quick on $ext_if inet proto udp from any to $web_dmz \
        port $udp_in_34 keep state

pass    in quick on $dmz_if inet proto tcp from $web_dmz to $mail_int \
        port 25 keep state

pass    in quick on $dmz_if inet proto tcp from $web_dmz to $dc \
        port $auth_dc_tcp keep state

pass    in quick on $dmz_if inet proto udp from $web_dmz to $dc \
        port $auth_dc_udp keep state

pass    in quick on $dmz_if inet proto icmp from $web_dmz to $dc keep state

pass    in quick on $dmz_if inet proto tcp from $web_dmz to $nagios_int \
        port 5667 keep state

pass    in quick on $dmz_if inet proto udp from $web_ext to $dc \
        port 53 keep state

# Port-wise to internal
pass    in quick on $dmz_if inet proto tcp from $web_dmz to $kbs_int \
        port 80 keep state

pass    in quick on $dmz_if inet proto tcp from $web_dmz to $as_int \
        port { 8475, 446, 23 } keep state

pass    in quick on $dmz_if inet proto tcp from $web_dmz to $ts_int \
        port 3389 keep state

# Web server DMZ2
pass    in quick on $ext_if inet proto tcp from any to $web2_dmz2 \
        port $tcp_in_38 keep state

pass    in quick on $ext_if inet proto tcp from $hilite_ip to $web2_dmz2 \
        port { 3389 } keep state

pass    in quick on $dmz2_if inet proto tcp from $web2_dmz2 to $mail_int
port 2\        keep state

pass    in quick on $dmz2_if inet proto tcp from $web2_dmz2 to
$nagios_int port\        keep state
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.1 (GNU/Linux)

iD8DBQFEFcxI/TjXD9LUVswRAhFqAKCGD8OHv3Znv90cRT2bj1BHWjq2KgCfX7Tl
I66OcFe2UGX1eyZ1vAr7/TI=
=Doxr
-----END PGP SIGNATURE-----
________________________________________________________
http://www.sikurezza.org - Italian Security Mailing List
Reply | Threaded
Open this post in threaded view
|

Re: problema con pf e connessioni smtp

fausto napolitano
>
> Il problema sta' nelle sessioni smtp per le mail con allegati in
> ingresso, non arrivano e quando arrivano hanno ritardi clamorosi.
>

Cosi', a naso, un problema simile per gli attachments mi capitò tempo  
fa,
e lo risolsi passando il Maximum Transmission Unit della scheda su  
internet
da 1500 a 1492. Non so se le schede Soekris lo supportano.

> ps: qui di seguito il pf.conf

hai provato anche senza pf?

chaps,
fau perfect quoting ;)________________________________________________________
http://www.sikurezza.org - Italian Security Mailing List
Reply | Threaded
Open this post in threaded view
|

Re: problema con pf e connessioni smtp

franz-9
In reply to this post by Matteo Mancini-2
On 3/13/06, Matteo Mancini <[hidden email]> wrote:

[snip]

> Il problema e' nel firewall e non nel server smtp (ho provato
> con un altro fw sempre open e tutto va'); su uso tcpdump vedo che la
> mail arriva ma ogni tanto ci sono dei "buchi" dove non vedo passare
> traffico,presumo che in questi buchi il server mittente va in timeout
> (ma non ne sono sicuro). pflog non dice nulla e le sessioni smtp non
> vengono bloccate, i log di sistema non indicano problemi.

Ciao Matteo,

nulla di interessante sui log del servizio smtp dietro il fw?

fRANz

________________________________________________________
http://www.sikurezza.org - Italian Security Mailing List
Reply | Threaded
Open this post in threaded view
|

Re: problema con pf e connessioni smtp

Marco Munari
In reply to this post by Matteo Mancini-2
On Mon, 13 Mar 2006 20:47:20 +0100, Matteo Mancini <[hidden email]> said:
>Il problema sta' nelle sessioni smtp per le mail con allegati in
>ingresso, non arrivano e quando arrivano hanno ritardi clamorosi.
...
>ps: qui di seguito il pf.conf

...
>set optimization        aggressive
...
>pass    in quick on $dmz_if inet proto tcp from $web_dmz to $mail_int \
>        port 25 keep state

da manuale (pf.conf):
     set optimization
           aggressive
                 Aggressively expire connections.  This can greatly reduce the
                 memory usage of the firewall at the cost of dropping idle
                 connections early.

smtp e` un po' speciale rispetto agli altri, e non ha certo bisogno di una
temporizzazione TCP aggressive. Non so se sia la causa, ma certamente
hai fatto una cosa inadatta proprio per smtp (puoi anche fare una
temporizzazione dedicata per smtp mettendo i parametri tra parentesi).

[Non dimenticare che il tuo PF non logga in uscita, ma solo in
ingresso, casomai puo` aver senso fare il contrario].

Non hai usato i flag tcp di inizio connessione (flags S/SA) per una
regola keep state.

Questo e` quello che ho notato divertendomi a vedere il tuo pf.conf,
ci sara` probabilmente anche qualcos'altro perche` ovunque buttavo l'occhio
c'erano errori.

Saluti,
MARco
--
http://xref.mm.homeunix.org:8380/~u17430.62732/mail/belpaese,it
x(t),y(t) = th(3t-34.5)*e^[-(3t-34.5)^2]/2-4.3+e^(-1.8/t^2)/(.8*atg(t-
3)+2)(t-1.8)-.3th(5t-42.5),(1.4e^[-(3t-34.5)^2]+1-sgn[|t-8.5|-.5]*1.5*
|sin(pi*t)|^[2e^(-(t-11.5)^2)+.5+e^(-(.6t-3.3)^2)])/(.5+t)+1  ; 0<t<14

________________________________________________________
http://www.sikurezza.org - Italian Security Mailing List
Reply | Threaded
Open this post in threaded view
|

Re: problema con pf e connessioni smtp

Matteo Mancini-2
In reply to this post by fausto napolitano
-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1


> Cosi', a naso, un problema simile per gli attachments mi capitò tempo  fa,
> e lo risolsi passando il Maximum Transmission Unit della scheda su
> internet
> da 1500 a 1492. Non so se le schede Soekris lo supportano.

questa non la ho provata, domani faccio la modifica..
La cosa strana e' che ho altre fw sokreis praticamente identiche presso
altri clienti e il problema non sussiste..o almeno non e' stato mai
segnalato


>
> hai provato anche senza pf?

no..ma e' possibile nattare il traffico anche senza pf??

>
> chaps,
> fau perfect quoting
> ;)________________________________________________________
> http://www.sikurezza.org - Italian Security Mailing List
>

-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.1 (GNU/Linux)

iD8DBQFEFyDA/TjXD9LUVswRAgh4AKClUABd0043VS88onYjT2Rz3maT+ACfc4Op
0GvO7F3CG2POjwSDEaTP6tY=
=mII4
-----END PGP SIGNATURE-----
________________________________________________________
http://www.sikurezza.org - Italian Security Mailing List
Reply | Threaded
Open this post in threaded view
|

Re: problema con pf e connessioni smtp

Matteo Mancini-2
In reply to this post by franz-9
-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1


>
> Ciao Matteo,
>
> nulla di interessante sui log del servizio smtp dietro il fw?

niente di particolare, vedo la sessione che inizia, passa i comandi
helo
mail from
rcpt to
bdata
e poi dopo un paio di ore vedo la sassione in timeout

ho provato anche con un altro smtp ma il problema e' il medesimo

>
> fRANz


Ciao

Matteo
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.1 (GNU/Linux)

iD8DBQFEFyFG/TjXD9LUVswRAillAJ9sjRv0ADf/RKKTXu8fvYVhqMQJlwCgkvSe
E6Igy2YU9IN98Ky22ZWzcQ8=
=yB5s
-----END PGP SIGNATURE-----
________________________________________________________
http://www.sikurezza.org - Italian Security Mailing List
Reply | Threaded
Open this post in threaded view
|

Re: problema con pf e connessioni smtp

fausto napolitano
In reply to this post by Matteo Mancini-2
>> hai provato anche senza pf?
> no..ma e' possibile nattare il traffico anche senza pf??

Intendo: lasci passare tutto e fai _solo_ nat/rdr senza block di  
alcun genere

fau




________________________________________________________
http://www.sikurezza.org - Italian Security Mailing List
Reply | Threaded
Open this post in threaded view
|

Re: problema con pf e connessioni smtp

Matteo Mancini-2
In reply to this post by Matteo Mancini-2
-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1

Ciao *

>>>Cosi', a naso, un problema simile per gli attachments mi capitò tempo  fa,
>>>e lo risolsi passando il Maximum Transmission Unit della scheda su
>>>internet
>>>da 1500 a 1492. Non so se le schede Soekris lo supportano.
>
>
> questa non la ho provata, domani faccio la modifica..
> La cosa strana e' che ho altre fw sokreis praticamente identiche presso
> altri clienti e il problema non sussiste..o almeno non e' stato mai
> segnalato

oggi ho fatto la modifica del mtu dell'interfaccia esterna e parrebbe
che il problema sia risolto. Il tempo di arrivo e' un po' lunghetto ma
potrebbe essere un problema derivante dalla scarsa connettivita', visto
che ho provato con allegati grossi.

...non mi spiego ancora perche' negli altri fw che ho questo problema
non sussiste..



Grazie

Matteo
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.1 (GNU/Linux)

iD8DBQFEGHHq/TjXD9LUVswRAohfAJ95XKSsSi1i2fP/uCJIwi+QCSOaegCbBOPX
qaBLmYl+vqSWlijhGqM5vAM=
=txzw
-----END PGP SIGNATURE-----
________________________________________________________
http://www.sikurezza.org - Italian Security Mailing List
Reply | Threaded
Open this post in threaded view
|

Re: problema con pf e connessioni smtp

Matteo Mancini-2
In reply to this post by Marco Munari
-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1

> da manuale (pf.conf):
>      set optimization
>            aggressive
>                  Aggressively expire connections.  This can greatly reduce the
>                  memory usage of the firewall at the cost of dropping idle
>                  connections early.
>

> smtp e` un po' speciale rispetto agli altri, e non ha certo bisogno di una
> temporizzazione TCP aggressive. Non so se sia la causa, ma certamente
> hai fatto una cosa inadatta proprio per smtp (puoi anche fare una
> temporizzazione dedicata per smtp mettendo i parametri tra parentesi).

ho fatto anche la prova di togliere la suddetta voce ma non e' questo il
 problema


>
> [Non dimenticare che il tuo PF non logga in uscita, ma solo in
> ingresso, casomai puo` aver senso fare il contrario].

Ho fatto anche questo ma senza risultati, tutto il traffico in uscita da
un certo set di ip (table <server>) e' accettato


> Non hai usato i flag tcp di inizio connessione (flags S/SA) per una
> regola keep state.
>
> Questo e` quello che ho notato divertendomi a vedere il tuo pf.conf,
> ci sara` probabilmente anche qualcos'altro perche` ovunque buttavo l'occhio
> c'erano errori.

Il  file che ho girato e' l'ultimo dopo una lunga serie di modifiche,
per cercare di risolvere il problema...
Nel pf.conf originale tutte le connessioni tcp avevano "flags S/SA keep
state"..cmq il controllo dei flags di inzio connessione e' solo un
vincolo ulteriore, quindi toglierli e' stato un modo per far passare
tutto basta che rispetti protocollo-ip-porta.


Ciao

Matteo
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.1 (GNU/Linux)

iD8DBQFEGHH+/TjXD9LUVswRAs+9AKCupC+kkAEsFuOiKSnu9ftLRKxk5gCfSD+j
eyR0URwFij2e3sZS7x04+eY=
=l3b8
-----END PGP SIGNATURE-----
________________________________________________________
http://www.sikurezza.org - Italian Security Mailing List
Reply | Threaded
Open this post in threaded view
|

Re: problema con pf e connessioni smtp

fausto napolitano
In reply to this post by Matteo Mancini-2
> oggi ho fatto la modifica del mtu dell'interfaccia esterna e parrebbe
> che il problema sia risolto. Il tempo di arrivo e' un po' lunghetto ma
> potrebbe essere un problema derivante dalla scarsa connettivita',  
> visto
> che ho provato con allegati grossi.
>
> ...non mi spiego ancora perche' negli altri fw che ho questo problema
> non sussiste..

Credo sia un problema strettamente legato alla rete o all'isp, piu'  
che al firewall;
"The PPPoE header is 6 octets and the PPP protocol ID is 2 octets, so  
the PPP
maximum transmission unit (MTU) must not be greater than 1492."

Pero' mi resta il dubbio di come OpenBSD gestisce questa situazione,  
nel senso
perche' con Linux o altro funziona?

cheers,
fau


________________________________________________________
http://www.sikurezza.org - Italian Security Mailing List
Reply | Threaded
Open this post in threaded view
|

Re: problema con pf e connessioni smtp

Matteo Mancini-2
-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1

Ciao a tutti..

>
> Credo sia un problema strettamente legato alla rete o all'isp, piu'  che
> al firewall;
> "The PPPoE header is 6 octets and the PPP protocol ID is 2 octets, so
> the PPP
> maximum transmission unit (MTU) must not be greater than 1492."
>
> Pero' mi resta il dubbio di come OpenBSD gestisce questa situazione,
> nel senso
> perche' con Linux o altro funziona?

Quando mi sono accorto del problema ho rimpiazzato il soekris con una
macchina di recupero sempre con open, stessa release e stesso livello di
 patch, e il problema non sussisteva.

Oggi non ho ricevuto nessuna segnalazione di problemi, forse il problema
 e' propio nel mtu.


Ciao

Grazie

Matteo
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.1 (GNU/Linux)

iD8DBQFEGcZy/TjXD9LUVswRAn1HAJ9pfhbcn0py/+KFviGfSIsT56qdtgCdGW+B
7HlcxdQAgrHfhjHzzJOdW1w=
=HNw7
-----END PGP SIGNATURE-----
________________________________________________________
http://www.sikurezza.org - Italian Security Mailing List