On 08/01/15 19:31, Jonathan Gray wrote:
> On Sat, Aug 01, 2015 at 08:46:00PM +0200, Mike Belopuhov wrote:
>> [... snip ...]
>> You're slightly overanalyzing here: panic has caught the unhandled
>> case, but it's not needed per se.
>>
>
> The code directly after the panic assumes rpool is set.
> Something is clearly wrong in the pf code if this triggers.
>
> Without a pf.conf it is hard to guess as to why this triggers...
I've attached a partially sanitized concatenation of pf rules, ifconfig,
netstat -nr, cat /etc/hostname.$if. Please let me know what more info would be
helpful.
FWIW, this firewall has been operating successfully with snaps for many years.
The pf configuration is not tuned as it is somewhat a testbed with an
accumulation of various failed/successful experiments. Also, the urtwn
interface has been removed for at least the past month so treat the associated
rules accordingly.
### pfctl-sr:pfctl -a "*" -sr ###
pass all flags S/SA
match out on egress all set ( prio(5, 6) )
match all scrub (no-df)
match out on pppoe all scrub (max-mss 1440)
block drop all label "block_all"
block drop in on ! int inet from 10.1.2.0/24 to any
block drop in inet from 10.1.2.1 to any
block drop in on ! dsl inet from 192.168.7.0/24 to any
block drop in inet from 192.168.7.2 to any
block drop in quick on int from any to <bogus> label "bogus_in"
anchor "ext1" on pppoe0 all {
block drop in on ! pppoe0 from (pppoe0:network) to any
block drop in from (pppoe0) to any
block drop in log quick on pppoe0 proto tcp from <sshguard> to any port = 22
label "ssh bruteforce_pppoe0"
block drop in log quick on pppoe0 from <bogon> to any label "bogon_in_pppoe0"
block drop out log on pppoe0 from any to <bogon> label "bogon_out_pppoe0"
pass out log on pppoe0 all flags S/SA label "out_pppoe0"
match in on pppoe0 inet proto tcp from any to (pppoe0) port = 80 rdr-to
10.1.2.30
match in on pppoe0 inet proto tcp from any to (pppoe0) port = 6081 rdr-to
10.1.2.30
match in on pppoe0 inet proto tcp from any to (pppoe0) port = 8080 rdr-to
10.1.2.30
match in on pppoe0 inet proto tcp from any to (pppoe0) port = 9418 rdr-to
10.1.2.18 port 9418
match in on pppoe0 inet proto tcp from any to (pppoe0) port = 119 rdr-to
10.1.2.10 port 119
match in on pppoe0 inet proto tcp from any to (pppoe0) port = 65429 rdr-to
10.1.2.18 port 22
match in on pppoe0 inet proto tcp from any to (pppoe0) port = 65428 rdr-to
10.1.2.30 port 22
match in on pppoe0 inet proto tcp from any to (pppoe0) port = 65427 rdr-to
10.1.2.31 port 22
match in on pppoe0 inet proto tcp from any to (pppoe0) port = 65426 rdr-to
10.1.2.33 port 22
match in on pppoe0 inet proto tcp from any to (pppoe0) port = 65425 rdr-to
10.1.2.11 port 22
match in on pppoe0 inet proto tcp from any to (pppoe0) port = 65424 rdr-to
10.1.2.12 port 22
match in on pppoe0 inet proto tcp from any to (pppoe0) port = 65423 rdr-to
10.1.2.15 port 22
match in on pppoe0 inet proto tcp from any to (pppoe0) port = 65420 rdr-to
10.1.2.143 port 22
match in on pppoe0 inet proto tcp from any to (pppoe0) port = 65419 rdr-to
10.1.2.144 port 22
match in on pppoe0 inet proto tcp from any to (pppoe0) port = 46889 set (
prio 2 ) rdr-to 10.1.2.17 port 46889
match in on pppoe0 inet proto udp from any to (pppoe0) port = 46889 set (
prio 2 ) rdr-to 10.1.2.17 port 46889
match out on pppoe0 inet from <int_net> to any nat-to (pppoe0:0)
pass in quick on pppoe0 inet proto tcp from any to any port = 22 flags S/SA
synproxy state reply-to pppoe0
pass in quick on pppoe0 inet proto tcp from any to any port = 52122 flags
S/SA synproxy state reply-to pppoe0
pass in quick on pppoe0 inet proto tcp from any to any port = 65432 flags
S/SA synproxy state reply-to pppoe0
pass in quick on pppoe0 inet proto tcp from any to any port = 65431 flags
S/SA synproxy state reply-to pppoe0
pass in quick on pppoe0 inet proto tcp from any to any port = 65430 flags
S/SA synproxy state reply-to pppoe0
pass in quick on pppoe0 inet proto tcp from any to any port = 65429 flags
S/SA synproxy state reply-to pppoe0
pass in quick on pppoe0 inet proto tcp from any to any port = 65428 flags
S/SA synproxy state reply-to pppoe0
pass in quick on pppoe0 inet proto tcp from any to any port = 65427 flags
S/SA synproxy state reply-to pppoe0
pass in quick on pppoe0 inet proto tcp from any to any port = 65426 flags
S/SA synproxy state reply-to pppoe0
pass in quick on pppoe0 inet proto tcp from any to any port = 65425 flags
S/SA synproxy state reply-to pppoe0
pass in quick on pppoe0 inet proto tcp from any to any port = 65424 flags
S/SA synproxy state reply-to pppoe0
pass in quick on pppoe0 inet proto tcp from any to any port = 65423 flags
S/SA synproxy state reply-to pppoe0
pass in quick on pppoe0 inet proto tcp from any to any port = 65420 flags
S/SA synproxy state reply-to pppoe0
pass in quick on pppoe0 inet proto tcp from any to any port = 65419 flags
S/SA synproxy state reply-to pppoe0
pass in on pppoe0 inet proto tcp from any to any port = 119 flags S/SA
reply-to pppoe0
pass in on pppoe0 inet proto tcp from any to any port = 80 flags S/SA
reply-to pppoe0
pass in on pppoe0 inet proto udp from any to any port = 1194 reply-to pppoe0
pass in on pppoe0 inet proto tcp from any to any port = 46889 flags S/SA set
( prio 2 ) reply-to pppoe0
pass in on pppoe0 inet proto udp from any to any port = 46889 set ( prio 2 )
reply-to pppoe0
}
anchor "ext2" on urtwn0 all {
block drop in on ! urtwn0 from (urtwn0:network) to any
block drop in from (urtwn0) to any
block drop in log quick on urtwn0 proto tcp from <sshguard> to any port = 22
label "ssh bruteforce_urtwn0"
block drop in log quick on urtwn0 from <bogon> to any label "bogon_in_urtwn0"
block drop out log on urtwn0 from any to <bogon> label "bogon_out_urtwn0"
pass out log on urtwn0 all flags S/SA label "out_urtwn0"
match in on urtwn0 inet proto tcp from any to (urtwn0) port = 80 rdr-to
10.1.2.18
match in on urtwn0 inet proto tcp from any to (urtwn0) port = 6081 rdr-to
10.1.2.18
match in on urtwn0 inet proto tcp from any to (urtwn0) port = 8080 rdr-to
10.1.2.18
match in on urtwn0 inet proto tcp from any to (urtwn0) port = 9418 rdr-to
10.1.2.18 port 9418
match in on urtwn0 inet proto tcp from any to (urtwn0) port = 119 rdr-to
10.1.2.10 port 119
match in on urtwn0 inet proto tcp from any to (urtwn0) port = 65429 rdr-to
10.1.2.18 port 22
match in on urtwn0 inet proto tcp from any to (urtwn0) port = 65428 rdr-to
10.1.2.30 port 22
match in on urtwn0 inet proto tcp from any to (urtwn0) port = 65427 rdr-to
10.1.2.31 port 22
match in on urtwn0 inet proto tcp from any to (urtwn0) port = 65426 rdr-to
10.1.2.33 port 22
match in on urtwn0 inet proto tcp from any to (urtwn0) port = 65425 rdr-to
10.1.2.11 port 22
match in on urtwn0 inet proto tcp from any to (urtwn0) port = 65424 rdr-to
10.1.2.12 port 22
match in on urtwn0 inet proto tcp from any to (urtwn0) port = 65423 rdr-to
10.1.2.15 port 22
match in on urtwn0 inet proto tcp from any to (urtwn0) port = 65420 rdr-to
10.1.2.143 port 22
match in on urtwn0 inet proto tcp from any to (urtwn0) port = 65419 rdr-to
10.1.2.144 port 22
match in on urtwn0 inet proto tcp from any to (urtwn0) port = 46889 rdr-to
10.1.2.17 port 46889
match in on urtwn0 inet proto udp from any to (urtwn0) port = 46889 rdr-to
10.1.2.17 port 46889
match out on urtwn0 inet from ! (urtwn0) to any nat-to (urtwn0:0)
pass in quick on urtwn0 inet proto tcp from any to any port = 22 flags S/SA
synproxy state reply-to urtwn0
pass in quick on urtwn0 inet proto tcp from any to any port = 52122 flags
S/SA synproxy state reply-to urtwn0
pass in quick on urtwn0 inet proto tcp from any to any port = 65432 flags
S/SA synproxy state reply-to urtwn0
pass in quick on urtwn0 inet proto tcp from any to any port = 65431 flags
S/SA synproxy state reply-to urtwn0
pass in quick on urtwn0 inet proto tcp from any to any port = 65430 flags
S/SA synproxy state reply-to urtwn0
pass in quick on urtwn0 inet proto tcp from any to any port = 65429 flags
S/SA synproxy state reply-to urtwn0
pass in quick on urtwn0 inet proto tcp from any to any port = 65428 flags
S/SA synproxy state reply-to urtwn0
pass in quick on urtwn0 inet proto tcp from any to any port = 65427 flags
S/SA synproxy state reply-to urtwn0
pass in quick on urtwn0 inet proto tcp from any to any port = 65426 flags
S/SA synproxy state reply-to urtwn0
pass in quick on urtwn0 inet proto tcp from any to any port = 65425 flags
S/SA synproxy state reply-to urtwn0
pass in quick on urtwn0 inet proto tcp from any to any port = 65424 flags
S/SA synproxy state reply-to urtwn0
pass in quick on urtwn0 inet proto tcp from any to any port = 65423 flags
S/SA synproxy state reply-to urtwn0
pass in quick on urtwn0 inet proto tcp from any to any port = 65420 flags
S/SA synproxy state reply-to urtwn0
pass in quick on urtwn0 inet proto tcp from any to any port = 65419 flags
S/SA synproxy state reply-to urtwn0
pass in on urtwn0 inet proto tcp from any to any port = 119 flags S/SA
reply-to urtwn0
pass in on urtwn0 inet proto tcp from any to any port = 80 flags S/SA
reply-to urtwn0
pass in on urtwn0 inet proto udp from any to any port = 1194 reply-to urtwn0
}
pass out quick all flags S/SA
pass in inet proto icmp all icmp-type echoreq
pass in inet proto icmp all icmp-type unreach
pass in quick on dsl inet from 192.168.7.0/24 to any flags S/SA
pass on lo0 inet6 from fe80::1 to any flags S/SA
pass inet6 from ::1 to any flags S/SA
pass inet from 127.0.0.1 to any flags S/SA
pass inet from 10.1.2.0/24 to any flags S/SA
pass quick on tun0 inet all flags S/SA
pass out on vr3 inet proto tcp from any to 192.168.7.1 port = 80 flags S/SA
### ifconfig:ifconfig ###
lo0: flags=8049<UP,LOOPBACK,RUNNING,MULTICAST> mtu 32768
priority: 0
groups: lo
inet6 fe80::1%lo0 prefixlen 64 scopeid 0x6
inet6 ::1 prefixlen 128
inet 127.0.0.1 netmask 0xff000000
vr0: flags=8843<UP,BROADCAST,RUNNING,SIMPLEX,MULTICAST> mtu 1500
lladdr 00:00:24:c9:29:14
priority: 0
groups: int
media: Ethernet autoselect (100baseTX full-duplex)
status: active
inet 10.1.2.1 netmask 0xffffff00 broadcast 10.1.2.255
vr1: flags=8802<BROADCAST,SIMPLEX,MULTICAST> mtu 1500
lladdr 00:00:24:c9:29:15
priority: 0
media: Ethernet autoselect (none)
status: no carrier
vr2: flags=8802<BROADCAST,SIMPLEX,MULTICAST> mtu 1500
lladdr 00:00:24:c9:29:16
priority: 0
media: Ethernet autoselect (none)
status: no carrier
vr3: flags=8843<UP,BROADCAST,RUNNING,SIMPLEX,MULTICAST> mtu 1500
lladdr 00:00:24:c9:29:17
priority: 0
groups: dsl
media: Ethernet autoselect (100baseTX full-duplex)
status: active
inet 192.168.7.2 netmask 0xffffff00 broadcast 192.168.7.255
enc0: flags=0<>
priority: 0
groups: enc
status: active
pppoe0: flags=8851<UP,POINTOPOINT,RUNNING,SIMPLEX,MULTICAST> mtu 1492
description: dsl provider
priority: 0
dev: vr3 state: session
sid: 0x17 PADI retries: 0 PADR retries: 0 time: 21:25:34
sppp: phase network authproto pap authname "[email protected]"
groups: pppoe egress
status: active
inet a.class.c.194 --> a.class.c.1 netmask 0xffffffff
tun0: flags=8051<UP,POINTOPOINT,RUNNING,MULTICAST> mtu 1500
priority: 0
groups: tun
status: active
inet 172.16.16.6 --> 172.16.16.5 netmask 0xffffffff
pflog0: flags=141<UP,RUNNING,PROMISC> mtu 33192
priority: 0
groups: pflog
### netstat-nr:netstat -nr ###
Routing tables
Internet:
Destination Gateway Flags Refs Use Mtu Prio Iface
default a.class.c.1 UGS 1 636443 - 8 pppoe0
10.1.2/24 10.1.2.1 UC 12 0 - 8 vr0
10.1.2.1 00:00:24:c9:29:14 UHLl 2 565 - 1 lo0
10.1.2.2 ac:22:0b:74:9f:de UHLc 1 46628 - 8 vr0
10.1.2.3 12:98:e1:47:e2:99 UHLc 0 10377 - 8 vr0
10.1.2.4 7a:88:ce:70:09:8e UHLc 0 79 - 8 vr0
10.1.2.6 36:31:4d:56:db:75 UHLc 0 2 - 8 vr0
10.1.2.7 8a:2e:d1:64:f7:6b UHLc 1 3 - 8 vr0
10.1.2.10 96:5e:9d:e9:11:0b UHLc 1 210457 - 8 vr0
10.1.2.13 00:30:18:a3:1b:48 UHLc 0 377 - 8 vr0
10.1.2.17 00:11:32:2e:5b:dd UHLc 0 4948 - 8 vr0
10.1.2.22 00:11:32:40:3b:09 UHLc 0 4649 - 8 vr0
10.1.2.31 00:1b:21:2e:39:c4 UHLc 2 36285 - 8 vr0
10.1.2.33 00:50:43:00:7c:9a UHLc 6 137943 - 8 vr0
10.1.2.35 bc:ae:c5:86:d9:cb UHLc 1 611085 - 8 vr0
10.1.2.255 10.1.2.1 UHb 0 0 - 1 vr0
a.class.c.1 a.class.c.194 UH 0 0 - 8 pppoe0
a.class.c.194 a.class.c.194 UHl 0 106 - 1 lo0
127/8 127.0.0.1 UGRS 0 0 32768 8 lo0
127.0.0.1 127.0.0.1 UHl 3 118408 32768 1 lo0
172.16.16/24 172.16.16.5 UGS 0 19975 - 8 tun0
172.16.16.5 172.16.16.6 UH 2 0 - 8 tun0
172.16.16.6 172.16.16.6 UHl 0 0 - 1 lo0
192.168.1/24 172.16.16.5 UGS 0 2543 - 8 tun0
192.168.7/24 192.168.7.2 UC 0 0 - 8 vr3
192.168.7.2 00:00:24:c9:29:17 UHLl 0 0 - 1 lo0
192.168.7.255 192.168.7.2 UHb 0 0 - 1 vr3
224/4 127.0.0.1 URS 1 38 32768 8 lo0
Internet6:
Destination Gateway Flags Refs
Use Mtu Prio Iface
::/104 ::1 UGRS 0
0 32768 8 lo0
::/96 ::1 UGRS 0
0 32768 8 lo0
::1 ::1 UHl 14
0 32768 1 lo0
::127.0.0.0/104 ::1 UGRS 0
0 32768 8 lo0
::224.0.0.0/100 ::1 UGRS 0
0 32768 8 lo0
::255.0.0.0/104 ::1 UGRS 0
0 32768 8 lo0
::ffff:0.0.0.0/96 ::1 UGRS 0
0 32768 8 lo0
2002::/24 ::1 UGRS 0
0 32768 8 lo0
2002:7f00::/24 ::1 UGRS 0
0 32768 8 lo0
2002:e000::/20 ::1 UGRS 0
0 32768 8 lo0
2002:ff00::/24 ::1 UGRS 0
0 32768 8 lo0
fe80::/10 ::1 UGRS 0
0 32768 8 lo0
fe80::%lo0/64 fe80::1%lo0 U 0
0 32768 4 lo0
fe80::1%lo0 fe80::1%lo0 UHl 0
0 32768 1 lo0
fec0::/10 ::1 UGRS 0
0 32768 8 lo0
ff01::/16 ::1 UGRS 0
0 32768 8 lo0
ff01::%lo0/32 ::1 UC 0
0 32768 4 lo0
ff02::/16 ::1 UGRS 0
0 32768 8 lo0
ff02::%lo0/32 ::1 UC 0
0 32768 4 lo0
## cat /etc/hostname.pppoe0 ##
inet 0.0.0.0 255.255.255.255 NONE description "ATT - DSL Extreme" \
pppoedev vr3 authproto pap \
authname "[email protected]" authkey "who_knows" up
dest 0.0.0.1
!/usr/local/bin/cpdt -x /var/db/ddclient/ddclient.cache
!/sbin/route add default -ifp pppoe0 0.0.0.1
## cat /etc/hostname.tun0 ##
up
!/usr/local/sbin/openvpn --daemon --config /etc/openvpn/client.conf
## cat /etc/hostname.vr0 ##
inet 10.1.2.1 255.255.255.0 10.1.2.255
group int
## cat /etc/hostname.vr3 ##
inet 192.168.7.2 255.255.255.0 192.168.7.255
group dsl