Kian Mohageri wrote:
On 6/18/06, *Ronnel P. Maglasang* <[EMAIL PROTECTED] <mailto:[EMAIL PROTECTED]>> wrote:

    i have nat function enabled, also tried enabling rdr and
    binat.  are you
    saying the "keep state" functionality depends on these 3?



No, but translation rules create states according to pf.conf(5).
" Note: nat, binat and rdr rules implicitly create state for connections."

Check out the 'state-policy' option (if-bound). I think it's what you're looking for.
i think the implementation and the documentation do not match well on this.
i've looked at the PF online documentation in http://www.openbsd.org/faq/pf/nat.html and it says that translated packets still go to the ruleset evaluation. you're correct that nat and translation rules implicitly creates states, i can see the states with the 'pfctl -sa' command. what i'm looking for is the ability to configure PF such that reply packets for packets originated on the LAN or all packets arriving on the external interface go to the ruleset evaluation(for rules on the external interface) and match a rule, even if an
state exist.

the global run-time 'state-policy' option does not help, i've tried setting all the values.
i think this is used on conjunction with the "keep state" enabled on a rule.

one note, i observe that reply packets can match a rule(s) on the internal interface.
A few other things to mention. I'm pretty sure you can only have one loginterface. I'd suggest making it your external one. You can, instead of passing quick on lo0, just 'set skip on lo0' so pf doesn't process those packets at all...

thanks for your suggestions on these.
-Kian

    here's my pf config file:

    #
    # Aliases
    #
    loopback = "{ lo0 }"
    lan = "{ em0  }"
    wan = "{ vr0 }"

    #statistics
    set loginterface em0
    set loginterface vr0

    #optimize packets
    set optimization normal

    #normalize outgoing packets IP ID field
    scrub log on vr0 all random-id fragment reassemble

    #
    # NAT on WAN interface (dont use IF alias for on the fly changes)
    #
    nat on $wan from 20.0.0.0/8 <http://20.0.0.0/8> to any -> (vr0)

    # loopback
    pass in quick on lo0 all
    pass out quick on lo0 all

    # for ssh from 10.3.1.41 <http://10.3.1.41> to 10.10.0.161
    <http://10.10.0.161>
    pass in log quick on $wan proto tcp from 10.3.1.41
    <http://10.3.1.41> to 10.10.0.161 <http://10.10.0.161> port 22
    pass out log quick on $wan proto tcp from 10.10.0.161
    <http://10.10.0.161> port 22 to 10.3.1.41 <http://10.3.1.41>

    # tcp from internal source to external dest
    # note: response packet will not be evaluated against incoming wan
    rules
    pass in log quick on $lan proto tcp from 20.0.0.0/8
    <http://20.0.0.0/8> to 10.3.2.19 <http://10.3.2.19>
    pass out log quick on $wan proto tcp from 10.10.0.161
    <http://10.10.0.161> to 10.3.2.19 <http://10.3.2.19>
    pass in log quick on $wan proto tcp from 10.3.2.19
    <http://10.3.2.19> to 10.10.0.161 <http://10.10.0.161>
    pass out log quick on $lan proto tcp from 10.3.2.19
    <http://10.3.2.19> to any

    #
    # default block
    #
    block in log quick all
    block out log quick all


    Kian Mohageri wrote:
    > Post your ruleset and people can help you.  You're probably using
    > nat/rdr/binat which create states.
    >
    > -Kian
    >
    > On 6/18/06, *Ronnel P. Maglasang* < [EMAIL PROTECTED]
    <mailto:[EMAIL PROTECTED]>
    > <mailto:[EMAIL PROTECTED]
    <mailto:[EMAIL PROTECTED]>>> wrote:
    >
    >     I have a minimum PF setup that sits in between my internal
    >     network(lan)
    >     and external network(wan). PF by design, bypasses ruleset
    >     evaluation(on
    >     external interfaces) for incoming packets on external
    interface that
    >     corresponds
    >     to an entry in the state table or a response to an internal
    generated
    >     packet.
    >     I observe this for TCP, UDP and also ICMP packets. Even if the
    >     matching rule
    >     in the internal interface do not have a "keep state", still the
    >     response
    >     packet
    >     bypasses the ruleset evaluation. Is there a way (force) to allow
    >     response
    >     packets to go thru ruleset evaluation? I just want to have full
    >     control of
    >     the incoming packets on the external interface wether they are
    >     response to
    >     a LAN traffic or not. I'll be implementing queueing soon and I
    >     think this
    >     PF behavior will affect badly. Has anyone experienced this?
    >
    >     Thanks a lot.
    >     - sho
    >     _______________________________________________
    >     freebsd-pf@freebsd.org <mailto:freebsd-pf@freebsd.org>
    <mailto: freebsd-pf@freebsd.org <mailto:freebsd-pf@freebsd.org>>
    mailing list
    >     http://lists.freebsd.org/mailman/listinfo/freebsd-pf
    >     To unsubscribe, send any mail to "
    >     [EMAIL PROTECTED]
    <mailto:[EMAIL PROTECTED]>
    >     <mailto:[EMAIL PROTECTED]
    <mailto:[EMAIL PROTECTED]>>"
    >
    >



_______________________________________________
freebsd-pf@freebsd.org mailing list
http://lists.freebsd.org/mailman/listinfo/freebsd-pf
To unsubscribe, send any mail to "[EMAIL PROTECTED]"

Reply via email to