Hello Axton...cool name by the way. I noticed the match statements work for me as well, Perhaps it is required? ________________________________________ From: Axton [axton.gr...@gmail.com] Sent: Thursday, November 03, 2011 2:06 PM To: Bentley, Dain Cc: Stuart Henderson; misc@openbsd.org Subject: Re: Packet Tagging issues with NAT in pf OBSD 4.9
On Thu, Nov 3, 2011 at 12:26 PM, Bentley, Dain <dbent...@nas.edu<mailto:dbent...@nas.edu>> wrote: Hello Stuart and thanks for your reply. It still doesn't help, this seems to work but I'm not sure if this is a good config: # NAT RULES match out on $ext tagged LAN nat-to ($ext) # BLOCKING AND PACKET TAGGING pass in on $int from $int_net tag LAN #pass in on $int tag LAN block out on $ext from any to any pass out quick on $ext tagged LAN ________________________________________ From: owner-m...@openbsd.org<mailto:owner-m...@openbsd.org> [owner-m...@openbsd.org<mailto:owner-m...@openbsd.org>] On Behalf Of Stuart Henderson [s...@spacehopper.org<mailto:s...@spacehopper.org>] Sent: Thursday, November 03, 2011 6:53 AM To: misc@openbsd.org<mailto:misc@openbsd.org> Subject: Re: Packet Tagging issues with NAT in pf OBSD 4.9 you aren't using tagging in your sample. On 2011-11-03, Wesley M. <open...@e-solutions.re<mailto:open...@e-solutions.re>> wrote: > Hi, try this sample > > _int = "re0" > _ext = "fxp1" > int_net = "192.168.200.0/24<http://192.168.200.0/24>" > set block-policy drop > set skip on lo > match in all scrub (no-df max-mss 1440) > match out on $_ext inet from $int_net to any nat-to (egress) > block log all > pass in on $_int inet proto udp from $int_net to any port domain > pass in on $_int inet proto tcp from $int_net to any port \ > { www, https, ssh, pop3, imap, imaps, pop3s, submission, smtps } > pass out on $_ext inet proto tcp all > pass out on $_ext inet proto udp all > > > All the best, > > Wesley MOUEDINE ASSABY. > > >> _int = "re0" >> _ext = "fxp1" >> int_net = "192.168.200.0/24<http://192.168.200.0/24>" >> >> pass out on $_ext tag LAN_NAT_TO_INET tagged LAN_TO_INET >> pass in on $_int from $int_net tag LAN_TO_INET >> >> ...... >> >> pass out quick on $_ext tagged LAN_NAT_TO_INET nat-to ($_ext) >> >> >> >> Any reason why at the bottom of my .conf file where nat-to is in my > "quick" >> rule it would work but when it's at the first filter rule it does not? >> I've >> read over the man page and have the book of pf v.2 and still am > confused. >> Any >> tought is greatly appreciated. >> >> >> >> Regards, >> >> Dain I use something like this. The ruleset has been modified before posting, so no guarantees that I didn't mess something up. # interfaces if_lo="lo" if_enc="enc0" if_gif="gif0" if_ext="vlan3" if_int="vlan20" if_srv="vlan40" # interface ip's ip4_int="10.0.0.1" ip6_int="2001:xxxx:xxxx:20::10" ip4_srv="10.0.20.1" ip6_srv="2001:xxxx:xxxx:40::10" # networks net4_int="10.0.0.0/22<http://10.0.0.0/22>" net6_int="2001:xxxx:xxxx:20::/64" net4_srv="10.0.20.0/22<http://10.0.20.0/22>" net6_srv="2001:xxxx:xxxx:40::/64" # other macros icmp_types="echoreq" # default policy block log all # TRANSLATION match out on $if_ext inet tag INT_INET_NAT tagged INT_INET nat-to ($if_ext) static-port match out on $if_ext inet tag SRV_INET_NAT tagged SRV_INET nat-to ($if_ext) # allow router access to all nets (ipv4) pass out on $if_ext proto tcp from $if_ext to any pass out on $if_ext proto udp from $if_ext to any keep state pass out on $if_ext inet proto icmp from $if_ext to any keep state pass out on $if_int proto tcp from $if_int to any pass out on $if_int proto udp from $if_int to any keep state pass out on $if_int inet proto icmp from $if_int to any keep state pass out on $if_int inet6 proto ipv6-icmp from $if_int to any keep state pass out on $if_srv proto tcp from $if_srv to any pass out on $if_srv proto udp from $if_srv to any keep state pass out on $if_srv inet proto icmp from $if_srv to any keep state pass out on $if_srv inet6 proto ipv6-icmp from $if_srv to any keep state # tag packets per network pass in on $if_int proto tcp from { $net4_int, $net6_int } tag INT_INET pass in on $if_int proto udp from { $net4_int, $net6_int } tag INT_INET keep state pass in on $if_int inet proto icmp from $net4_int icmp-type $icmp_types tag INT_INET keep state pass in on $if_int inet6 proto ipv6-icmp tag INT_INET keep state pass in on $if_srv proto tcp from { $net4_srv, $net6_srv } tag SRV_INET pass in on $if_srv proto udp from { $net4_srv, $net6_srv } tag SRV_INET keep state pass in on $if_srv inet proto icmp from $net4_srv icmp-type $icmp_types tag SRV_INET keep state pass in on $if_srv inet6 proto ipv6-icmp tag SRV_INET keep state # policy enforcement # networks to internet (ipv4) pass out quick on $if_ext tagged INT_INET_NAT pass out quick on $if_ext tagged SRV_INET_NAT # internal network to other networks (ipv4) pass out quick on $if_srv tagged INT_INET # server networks to other networks (ipv4) pass out quick on $if_int tagged SRV_INET Axton Grams