pfctl: carp0: driver does not support altq

2005-01-06 Thread Michael W. Lucas

Hi,

The subject pretty much says it all.  :-) The system is an older
snapshot, 3.5 GENERIC#127 i386.

I'd like to have live failover on my traffic shaper box, but when I
try to queue on the carp interface I get the error pfctl: carp0:
driver does not support altq

I imagine that I could do some other sort of workaround to get live
failover, say, with a crossover cable and ifstatd, but CARP is much
much easier.

Any suggestions?  I've done some web searches, of course, but it seems
that nobody else has this problem...

==ml

-- 
Michael W. Lucas[EMAIL PROTECTED], [EMAIL PROTECTED]
http://www.BlackHelicopters.org/~mwlucas/
   Latest book: Cisco Routers for the Desperate
http://www.CiscoRoutersForTheDesperate.com


Re: setting up vpn tunnel with nat - twisted

2005-01-06 Thread Cedric Berger
brianBOFH wrote:
Hi,
I have two 192.168.1.0/24 networks physically separated.  I need to
get connectivity from one to the other and vice versa _without_
renumbering hosts.
That being said - I have an openbsd 3.6 machine with one public and
one private interface on each end.
I know I can setup the tunnel between the two.  But because I can't
bridge and route between the same network, my question is setting up
NAT between them.  Obviously the SRC and DST needs to be rewritten on
either side which means your typical NAT setup will not work.  Can
this be achieved with pf?  If anyone can point me in the right
direction I would appreciate it.
 

This is possible, but very tricky. You can create a transport-mode IPSec 
flow between the
public IP of your 2 gateways, and then do nat on enc0 and maybe rdr 
on enc0.
There is a chicken and eggs problem between the routing table lookup and 
IPSec lookup.
Read (man ipsec) about NAT and *enc#* interfaces.
You will have to setup a dummy flow from 192.168.1.0/24 to convince the 
kernel
to ipsec-process your packet.
Plan a good week of trial-and-error to make that work.
Cedric


Re: setting up vpn tunnel with nat - twisted

2005-01-06 Thread Rod.. Whitworth
On Wed, 5 Jan 2005 18:20:10 -0500, brianBOFH wrote:

Hi,

I have two 192.168.1.0/24 networks physically separated.  I need to
get connectivity from one to the other and vice versa _without_
renumbering hosts.

That being said - I have an openbsd 3.6 machine with one public and
one private interface on each end.

I know I can setup the tunnel between the two.  But because I can't
bridge and route between the same network, my question is setting up
NAT between them.  Obviously the SRC and DST needs to be rewritten on
either side which means your typical NAT setup will not work.  Can
this be achieved with pf?  If anyone can point me in the right
direction I would appreciate it.

Cheers,
Brian


First we need to know that there are no address clashes between members
of each LAN.
Second: Do you expect to be able to connect in any way from LAN1:hostx
to LAN2:hosty ?
Or are you just wanting to do something at the other gateway?

The question seemed easy (to state) to you but it misses much detail.
If you tell us too much we can filter better than we can construct in
the absence of detail.

Maybe renumbering one end is actually easier..

From the land down under: Australia.
Do we look umop apisdn from up over?

Do NOT CC me - I am subscribed to the list.
Replies to the sender address will fail except from the list-server.







carp and vlans

2005-01-06 Thread Zenker, Olaf
Hello list-members:

I've got a problem with carp and vlans. The two firewalls are clustered
(no loadbalancing, but ha). They are connected to a cisco switch in one
trunk. State table changes are pronounced over interface em0
(crosslink). Problem seems to be: both firewalls have serveral vlans
defined on the out Interface (fxp0). Of course both vlans are identical,
only difference is the mac address.
Now the firewalls allways complain about duplicate ip-addresses
(duplicate IP address 192.168.90.69 sent from ethernet address
00:10:dc:f1:22:70).

How to get rid of this (if possible at all)?

Thank you for any tips


Hints:

uname -a:

OpenBSD bsd_node1.smc-d.de 3.5 GENERIC#9 i386


sysctl net.inet.carp:

net.inet.carp.allow=1
net.inet.carp.preempt=1
net.inet.carp.log=0
net.inet.carp.arpbalance=0


ifconfig -a:

rl0: flags=8943UP,BROADCAST,RUNNING,PROMISC,SIMPLEX,MULTICAST mtu 1500
address: 00:0a:cd:05:18:e8
media: Ethernet 100baseTX full-duplex
status: active
inet 192.168.90.248 netmask 0xffe0 broadcast 192.168.90.255
em0: flags=8843UP,BROADCAST,RUNNING,SIMPLEX,MULTICAST mtu 1500
address: 00:10:dc:f5:b2:0b
media: Ethernet 1000baseT full-duplex
status: active
inet 10.10.10.1 netmask 0xfffc broadcast 10.10.10.3
fxp0: flags=8943UP,BROADCAST,RUNNING,PROMISC,SIMPLEX,MULTICAST mtu
1500
address: 00:10:dc:f5:b2:0c
media: Ethernet 100baseTX full-duplex
status: active
inet 5.5.5.5 netmask 0xfff8 broadcast 5.5.5.7
pflog0: flags=141UP,RUNNING,PROMISC mtu 33224
pfsync0: flags=41UP,RUNNING mtu 1348
pfsync: syncif: em0 maxupd: 128
vlan9: flags=8843UP,BROADCAST,RUNNING,SIMPLEX,MULTICAST mtu 1500
address: 00:10:dc:f5:b2:0c
vlan: 9 parent interface: fxp0
inet 82.210.20.190 netmask 0xfff8 broadcast 82.210.20.191
---snip---
(here several more vlans)
---snip---
carp0: flags=41UP,RUNNING mtu 1500
carp: MASTER vhid 1 advbase 1 advskew 0
inet 192.168.90.249 netmask 0xffe0
carp1: flags=41UP,RUNNING mtu 1500
carp: MASTER vhid 2 advbase 1 advskew 0
inet 5.5.5.6 netmask 0xfff8


netstat -sp carp:

carp:
18 packets received (IPv4)
0 packets received (IPv6)
0 packets discarded for bad interface
0 packets shorter than header
0 discarded for bad checksums
0 discarded packets with a bad version
0 discarded because packet too short
0 discarded for bad authentication
0 discarded for bad vhid
0 discarded because of a bad address list
159542 packets sent (IPv4)
0 packets sent (IPv6)





Olaf Zenker
Systemmanager SMC Düsseldorf
T-Systems International GmbH
Global Network Factory
Systemmanagement Customer Solutions
Sohnstr.45, 40237 Düsseldorf
+49 211-9148-620 (tel)
+49 211-9148-975 (fax)
E-Mail: [EMAIL PROTECTED]
Internetseite: http://www.t-systems.com

Diese E-Mail enthält vertrauliche und/oder rechtlich geschützte Informationen. 
Wenn Sie nicht der richtige Adressat sind oder diese E-Mail irrtümlich erhalten 
haben, informieren Sie bitte sofort den Absender und vernichten Sie diese Mail. 
Das unerlaubte Kopieren sowie die unbefugte Weitergabe dieser Mail ist nicht 
gestattet.

This e-mail may contain confidential and/or privileged information. If you are 
not the intended recipient (or have received this e-mail in error) please 
notify the sender immediately and destroy this e-mail. Any unauthorised 
copying, disclosure or distribution of the material in this e-mail is strictly 
forbidden.




Re: pfctl: carp0: driver does not support altq

2005-01-06 Thread Lars Hansson
Michael W. Lucas wrote:
I'd like to have live failover on my traffic shaper box, but when I
try to queue on the carp interface I get the error pfctl: carp0:
driver does not support altq
WHy are you trying to queue on the carp interfaces and not on
the real interfaces?
---
Lars


Re: setting up vpn tunnel with nat - twisted

2005-01-06 Thread brianBOFH
On Thu, 06 Jan 2005 21:11:08 +1100, Rod.. Whitworth [EMAIL PROTECTED] wrote:
 On Wed, 5 Jan 2005 18:20:10 -0500, brianBOFH wrote:
 
 Hi,
 
 I have two 192.168.1.0/24 networks physically separated.  I need to
 get connectivity from one to the other and vice versa _without_
 renumbering hosts.
 
 That being said - I have an openbsd 3.6 machine with one public and
 one private interface on each end.
 
 I know I can setup the tunnel between the two.  But because I can't
 bridge and route between the same network, my question is setting up
 NAT between them.  Obviously the SRC and DST needs to be rewritten on
 either side which means your typical NAT setup will not work.  Can
 this be achieved with pf?  If anyone can point me in the right
 direction I would appreciate it.
 
 Cheers,
 Brian
 
 
 First we need to know that there are no address clashes between members
 of each LAN.
 Second: Do you expect to be able to connect in any way from LAN1:hostx
 to LAN2:hosty ?
 Or are you just wanting to do something at the other gateway?
 
 The question seemed easy (to state) to you but it misses much detail.
 If you tell us too much we can filter better than we can construct in
 the absence of detail.
 
 Maybe renumbering one end is actually easier..
 
 From the land down under: Australia.
 Do we look umop apisdn from up over?
 
 Do NOT CC me - I am subscribed to the list.
 Replies to the sender address will fail except from the list-server.
 
 
There will definately be overlap between the two.  Hence my wanting to
nat the entire network going both directions.  I need to connect from
LAN1:host(1-254) to LAN2:host(1-254) and vice versa.

Ideally I would be able to add a route to a pseudo-net(nat'd openbsd
box the gateway of course) on either end.

If it's not possible just say so :)

Thanks,
Brian


Re: pfctl: carp0: driver does not support altq

2005-01-06 Thread Michael W. Lucas
On Thu, Jan 06, 2005 at 08:59:53PM +0800, Lars Hansson wrote:
 Michael W. Lucas wrote:
 I'd like to have live failover on my traffic shaper box, but when I
 try to queue on the carp interface I get the error pfctl: carp0:
 driver does not support altq
 
 WHy are you trying to queue on the carp interfaces and not on
 the real interfaces?

If that will work, I'll do it.

It seems to me (now *there's* dangerous phrase :-) that since the
traffic would be going to the IP address of the carp interface, I
would have to queue on the carp interface?  If I can just queue on the
real interface, I'm fine with that.

Can you just queue on the real interface and have it work for traffic
arriving via CARP?  I haven't been able to find any documentation one
way or the other.

==ml

-- 
Michael W. Lucas[EMAIL PROTECTED], [EMAIL PROTECTED]
http://www.BlackHelicopters.org/~mwlucas/
   Latest book: Cisco Routers for the Desperate
http://www.CiscoRoutersForTheDesperate.com


Re: setting up vpn tunnel with nat - twisted

2005-01-06 Thread brianBOFH
Thanks.  On the flip-side, shouldn't I be able to setup one-direction
fairly easily?  In this case, connections can be initiated from LAN1
- LAN2 but not from LAN2 - LAN1.

In this model - after IPSEC endpoints are created, I would simply nat
traffic on the private interface from LAN1 to 192.168.1.50(openbsd
gateway) with a destination of 192.168.88.0/24 - which then crosses
the tunnel and gets NAT'd from 192.168.88.0/24 to
192.168.1.0/24(LAN2).

Thoughts? :)

-Brian



On Thu, 06 Jan 2005 11:11:12 +0100, Cedric Berger [EMAIL PROTECTED] wrote:
 brianBOFH wrote:
 
 Hi,
 
 I have two 192.168.1.0/24 networks physically separated.  I need to
 get connectivity from one to the other and vice versa _without_
 renumbering hosts.
 
 That being said - I have an openbsd 3.6 machine with one public and
 one private interface on each end.
 
 I know I can setup the tunnel between the two.  But because I can't
 bridge and route between the same network, my question is setting up
 NAT between them.  Obviously the SRC and DST needs to be rewritten on
 either side which means your typical NAT setup will not work.  Can
 this be achieved with pf?  If anyone can point me in the right
 direction I would appreciate it.
 
 
 This is possible, but very tricky. You can create a transport-mode IPSec
 flow between the
 public IP of your 2 gateways, and then do nat on enc0 and maybe rdr
 on enc0.
 There is a chicken and eggs problem between the routing table lookup and
 IPSec lookup.
 Read (man ipsec) about NAT and *enc#* interfaces.
 You will have to setup a dummy flow from 192.168.1.0/24 to convince the
 kernel
 to ipsec-process your packet.
 Plan a good week of trial-and-error to make that work.
 Cedric
 



Re: setting up vpn tunnel with nat - twisted

2005-01-06 Thread Bryan Irvine
undeadly has this:
http://www.undeadly.org/cgi?action=articlesid=20041009000521

Don't know if that's what you are looking for.


On Wed, 5 Jan 2005 18:20:10 -0500, brianBOFH [EMAIL PROTECTED] wrote:
 Hi,
 
 I have two 192.168.1.0/24 networks physically separated.  I need to
 get connectivity from one to the other and vice versa _without_
 renumbering hosts.
 
 That being said - I have an openbsd 3.6 machine with one public and
 one private interface on each end.
 
 I know I can setup the tunnel between the two.  But because I can't
 bridge and route between the same network, my question is setting up
 NAT between them.  Obviously the SRC and DST needs to be rewritten on
 either side which means your typical NAT setup will not work.  Can
 this be achieved with pf?  If anyone can point me in the right
 direction I would appreciate it.
 
 Cheers,
 Brian



Strange ? keep state behaviour

2005-01-06 Thread Jason Murray
Hello new to the list, but not exactly new to pf.
I've got a 3 interface firewall and I'm seeing what I would call strange 
behaviour. Here is the scenario. I want to allow http in from the Internet 
to a web server on an isolated segment. I have a rdr rule set up and it 
works just fine (traffic flows when no filtering is being done).

If I have a rule set like the following:
block log all
antispoof quick for { lo0 $uat_if $dev_if }
# Allow web traffic to the UAT (marlin) box.
pass in log quick on $ext_if proto tcp from any to $marlin port { 80, 443 } 
flags S/SA keep state

Traffic does not flow. I get the following in the logs:
Jan 06 12:11:56.324068 rule 13/0(match): pass in on ext_if: 
out.side.add.ress.61005  in.side.web.server.80: S 3708921981:3708921981(0) 
win 16384 mss 1460,nop,nop,sackOK (DF)
Jan 06 12:11:56.324104 rule 0/0(match): block out on uat_if: 
out.side.add.ress.61005  in.side.web.server.80: S 3708921981:3708921981(0) 
win 16384 mss 1460,nop,nop,sackOK (DF)
Jan 06 12:11:59.353276 rule 0/0(match): block out on uat_if: 
out.side.add.ress.61005  in.side.web.server.80: S 3708921981:3708921981(0) 
win 16384 mss 1460,nop,nop,sackOK (DF)
Jan 06 12:12:05.361189 rule 0/0(match): block out on uat_if: 
out.side.add.ress.61005  in.side.web.server.80: S 3708921981:3708921981(0) 
win 16384 mss 1460,nop,nop,sackOK (DF)

This does not make any sense to me. AFAIK (from reading man pf.conf 
numerous times) the keep state should allow the traffic to pass once the 
pass in on $ext_if... rule is matched.

Regardless, it does not work. To get it to work I have to add the following:
pass out log quick on $uat_if proto tcp from any to $marlin port {80, 443 } 
flags S/SA keep state

Then my logs show:
Jan 06 12:19:32.244139 rule 13/0(match): pass in on ext_if: 
out.side.add.ress.56709  in.side.web.server.80: S 457881634:457881634(0) 
win 16384 mss 1460,nop,nop,sackOK (DF)
Jan 06 12:19:32.244176 rule 15/0(match): pass out on uat_if: 
out.side.add.ress.56709  in.side.web.server.80: S 457881634:457881634(0) 
win 16384 mss 1460,nop,nop,sackOK (DF)
Jan 06 12:19:32.567937 rule 13/0(match): pass in on ext_if: 
out.side.add.ress.63950  in.side.web.server.80: S 3954645361:3954645361(0) 
win 16384 mss 1460,nop,nop,sackOK (DF)
Jan 06 12:19:32.567955 rule 15/0(match): pass out on uat_if: 
out.side.add.ress.63950  in.side.web.server.80: S 3954645361:3954645361(0) 
win 16384 mss 1460,nop,nop,sackOK (DF)

And it works and all is better. Except for the fact that this is not the 
behaviour I expect from my reading of the docs.

Can anyone shed any light on this for me?
Thanks in advance.


Re: Strange ? keep state behaviour

2005-01-06 Thread Jason Murray
I'm cc'ing the pf list so that the whole thread is archived.
I've included the whole pf.conf file. There isn't much more than what you 
already have.

Your suggestion does work, but it weakens the rule set. Instead of a 
default deny stance, I have a default deny inbound on the external interface.

It also doesn't provide any clue as to why keep state isn't carrying 
across the interfaces.

Sven wrote:
snip On Thu, 06 Jan 2005 16:48:50 -0500, Jason Murray 
[EMAIL PROTECTED] wrote:
Without seeing the rest of your ruleset (hint) I can't say for sure
but does it work if you change
block log all
to
block log all on $ext_if
?
# macros
uat_if = rl0 # UAT
dev_if = xl0 # DEV
ext_if = fxp0

tcp_services = { 22 }
icmp_types = echoreq

priv_nets = { 127.0.0.0/8, 192.168.0.0/16, 172.16.0.0/12, 10.0.0.0/8 }

marlin = 10.245.245.130
simba = 10.245.245.2

# options
set block-policy return
set loginterface $ext_if
set state-policy floating

# scrub
scrub in all

# nat/rdr
nat on $ext_if from $uat_if:network to any - ($ext_if)
nat on $ext_if from $dev_if:network to any - ($ext_if)
#rdr on $uat_if proto tcp from any to any port 21 - 127.0.0.1 port 8021
#rdr on $dev_if proto tcp from any to any port 21 - 127.0.0.1 port 8021
rdr on $ext_if proto tcp from any to any port 80 - $marlin
rdr on $ext_if proto tcp from any to any port 443 - $marlin

# filter rules

# Default policy is to block traffic if it is not specifically allowed
block log all

antispoof quick for { lo0 $uat_if $dev_if }

# Traffic is allowed from Simba and Marlin
pass in log quick on $dev_if from any to $marlin keep state

# Traffic is not allowed from Marlin to Simba
block in log quick on $uat_if from any to $simba

# ssh vpn stuff
# Allow inbound ssh from the Internet only to the external interface.
pass in quick on $ext_if inet proto tcp from any to ($ext_if) port { 22 } flags
S/SA keep state
# Allow traffic from the loopback to pass.
pass log quick on lo0 all keep state

# Allow web traffic to the UAT (marlin) box.
pass in log quick on $ext_if proto tcp from any to $marlin port { 80, 443 } flag
s S/SA keep state
# this rule should not be need since the keep state above should obviate it,
# however I could not get the traffic to pass unless it was there.
pass out log quick on $uat_if proto tcp from any to $marlin port {80, 443 } flag
s S/SA keep state

# Allow ping from any box to pass.
pass in log quick inet proto icmp all icmp-type $icmp_types keep state




Re: Strange ? keep state behaviour

2005-01-06 Thread Jason Opperisano
On Thu, 2005-01-06 at 16:48, Jason Murray wrote:
 Hello new to the list, but not exactly new to pf.
 
 I've got a 3 interface firewall and I'm seeing what I would call strange 
 behaviour. Here is the scenario. I want to allow http in from the Internet 
 to a web server on an isolated segment. I have a rdr rule set up and it 
 works just fine (traffic flows when no filtering is being done).
 
 If I have a rule set like the following:
 
 block log all
 antispoof quick for { lo0 $uat_if $dev_if }
 # Allow web traffic to the UAT (marlin) box.
 pass in log quick on $ext_if proto tcp from any to $marlin port { 80, 443 } 
 flags S/SA keep state

snip

i *really* hope someone will smack me if i'm off-base here, because i'm
not sure i'm 100% clear on this...BUT...as *i* understand it, as soon as
you use on $if in a rule--the state that is created is if-bound even
if your state-policy is floating.  so you either (a) create 2 rules, one
pass in for the inbound interface and one pass out for the outbound
interface, (b) create strict rules on the inbound interface and a single
lax rule on the outbound interface or (c) don't use the on $if
construct in your rules.

personally--i use (b) for internal-external rules and (a) for
external-internal rules.  i always assumed that if i needed to build a
pf.conf to support an enormous number of states--i would use (c).

-j

--
I'm having the best day of my life, and I owe it all to not going
 to Church!
--The Simpsons


Re: Strange ? keep state behaviour

2005-01-06 Thread Jason Murray

Sven wrote:
On Thu, 06 Jan 2005 18:06:48 -0500, Jason Murray [EMAIL PROTECTED] wrote:
I'm cc'ing the pf list so that the whole thread is archived.
I've included the whole pf.conf file. There isn't much more than what you
already have.
Your suggestion does work, but it weakens the rule set. Instead of a
default deny stance, I have a default deny inbound on the external interface.
It also doesn't provide any clue as to why keep state isn't carrying
across the interfaces.

Because you block all traffic on $uat_if
snip
I think you misunderstand keep state. From man pf.conf:
 If a packet matches a pass ... keep state rule, the filter creates a
 state for this connection and automatically lets pass all subsequent
 packets of that connection.
The emphasis is on subsequent. In your case the first packet, the one
that's supposed to create the state, is blocked on $uat_if because of
the block log all rule.
I must have read that statement a dozen times. If I understand things 
properly when the packet comes in on $ext_if it creates the state. Because 
the state is floating it should be picked up when the packet tries to go 
out on $uat_if. Since it is in the state table it should pass no problem.

To have to create a keep state rule on each interface a packet traverses 
seems counter intuitive to the way it is described. But, that does seem to 
be what is needed.

This suggests that if I do:
pass quick log from any to $marlin flags S/SA keep state
It should also solve my problems. I'll try this tomorrow and see what 
results I get.

The rule you added is a good solution to your problem.
However, the implication is that if you want to be highly granular with 
your ruleset, then you will have to add more rules.


Re: Strange ? keep state behaviour

2005-01-06 Thread Sven
On Thu, 06 Jan 2005 18:06:48 -0500, Jason Murray [EMAIL PROTECTED] wrote:
 I'm cc'ing the pf list so that the whole thread is archived.
 
 I've included the whole pf.conf file. There isn't much more than what you
 already have.
 
 Your suggestion does work, but it weakens the rule set. Instead of a
 default deny stance, I have a default deny inbound on the external interface.
 
 It also doesn't provide any clue as to why keep state isn't carrying
 across the interfaces.

Because you block all traffic on $uat_if

 
 Sven wrote:
 snip On Thu, 06 Jan 2005 16:48:50 -0500, Jason Murray
 [EMAIL PROTECTED] wrote:
 
  Without seeing the rest of your ruleset (hint) I can't say for sure
  but does it work if you change
 
  block log all
  to
  block log all on $ext_if
  ?
 
 
 # macros
 uat_if = rl0 # UAT
 dev_if = xl0 # DEV
 ext_if = fxp0
 
 tcp_services = { 22 }
 icmp_types = echoreq
 
 priv_nets = { 127.0.0.0/8, 192.168.0.0/16, 172.16.0.0/12, 10.0.0.0/8 }
 
 marlin = 10.245.245.130
 simba = 10.245.245.2
 
 # options
 set block-policy return
 set loginterface $ext_if
 set state-policy floating
 
 # scrub
 scrub in all
 
 # nat/rdr
 nat on $ext_if from $uat_if:network to any - ($ext_if)
 nat on $ext_if from $dev_if:network to any - ($ext_if)
 #rdr on $uat_if proto tcp from any to any port 21 - 127.0.0.1 port 8021
 #rdr on $dev_if proto tcp from any to any port 21 - 127.0.0.1 port 8021
 rdr on $ext_if proto tcp from any to any port 80 - $marlin
 rdr on $ext_if proto tcp from any to any port 443 - $marlin
 
 # filter rules
 
 # Default policy is to block traffic if it is not specifically allowed
 block log all
 
 antispoof quick for { lo0 $uat_if $dev_if }
 
 # Traffic is allowed from Simba and Marlin
 pass in log quick on $dev_if from any to $marlin keep state
 
 # Traffic is not allowed from Marlin to Simba
 block in log quick on $uat_if from any to $simba
 
 # ssh vpn stuff
 # Allow inbound ssh from the Internet only to the external interface.
 pass in quick on $ext_if inet proto tcp from any to ($ext_if) port { 22 } 
 flags
 S/SA keep state
 # Allow traffic from the loopback to pass.
 pass log quick on lo0 all keep state
 
 # Allow web traffic to the UAT (marlin) box.
 pass in log quick on $ext_if proto tcp from any to $marlin port { 80, 443 } 
 flag
 s S/SA keep state
 # this rule should not be need since the keep state above should obviate it,
 # however I could not get the traffic to pass unless it was there.
 pass out log quick on $uat_if proto tcp from any to $marlin port {80, 443 } 
 flag
 s S/SA keep state
 
 # Allow ping from any box to pass.
 pass in log quick inet proto icmp all icmp-type $icmp_types keep state

I think you misunderstand keep state. From man pf.conf:

 If a packet matches a pass ... keep state rule, the filter creates a
 state for this connection and automatically lets pass all subsequent
 packets of that connection.

The emphasis is on subsequent. In your case the first packet, the one
that's supposed to create the state, is blocked on $uat_if because of
the block log all rule.
The rule you added is a good solution to your problem.


/Sven
-- 

Why are the pretty ones always insane?
-- J.G. Thirlwell