Try: set block-policy return You should get your proper closed messages in nmap
On Fri, Nov 12, 2010 at 13:27, woolsherpahat <[email protected]> wrote: > (please see my in-line comments) > > On Fri, Nov 12, 2010 at 12:09 PM, Kenneth Gober <[email protected]> wrote: >> is it this? >>># redirect external ssh traffic from ????? >>>pass in log on $ext_if inet proto tcp to ($ext_if) port ?????\ >>> B B B rdr-to 127.0.0.1 port 22 >> to me, that rule looks like it will accept any inbound traffic on the >> external interface and redirect it to 127.0.0.1:22. B but I don't know what >> the question marks do; I've never seen them used in a pf rule before. B my >> guess is, if pf accepts them at all, it treats them as a wildcard. >> -ken > > The ????? marks are just replacements for the actual port number. This > rule should forward outside traffic from port ????? to the SSH server > but I think you are probably on the right track. I really don't > understand the new rdr-to and match nat-to rules as well as the older > pre 4.6 syntax. > > However, if I comment that rule out, an nmap still shows a bunch open > ports. If I try manually connecting to one of the ports that are > listed as open by nmap I get a "Could not open connection to the host, > on port 7800: Connect failed". Is it possible that nmap is just full > of crap? > >> On Fri, Nov 12, 2010 at 3:41 PM, woolsherpahat <[email protected]> >> wrote: >>> >>> Hello @misc! >>> >>> I have a lovely little Soekris 4501 running OpenBSD 4.7 (Release). >>> However, I get some strange results if I run a nmap scan on it from >>> work. I get hundreds of ports listed as open. Now it's likely that I >>> have mis-configured my firewall but I can' see exactly where. >>> Hopefully someone here on @misc can hit me with the clue stick. >>> >>> $ext_if (sis0) is my external facing interface. $int_if and $apple_if >>> (sis1 and sis2, respectively) are my internal subnets. The Soekris is >>> obviously doing NAT for all my internal subnets -- NAT works, as does >>> the restrictions on sis1 and sis2 from being able to send traffic to >>> sis0's subnet. Now unless I am terribly mistaken the 'block in log' >>> should by default block any inbound packets on any interface unless >>> there is a subsequent rule that matches that packet as the packet will >>> do whatever the last matching rule told it too. So all inbound traffic >>> will either A) be blocked or B) match an "exception" later on in the >>> ruleset right? So how come a scan from the "outside", reveals hundreds >>> of unfiltered ports? >>> >>> Advice would be much welcome. >>> Thank you! >>> >>> >>> >>> /etc/pf.conf: >>> >>> # macros >>> ext_if="sis0" >>> int_if="sis1" >>> apple_if="sis2" >>> wifi_if="ral0" >>> >>> table <bogons> persist file "/etc/bogon-bn-agg.txt" >>> >>> # options >>> set require-order yes >>> set block-policy drop >>> set optimization normal >>> set skip on lo0 >>> >>> >>> >>> # flag packets from all internal interfaces for NAT >>> match out on $ext_if inet from !($ext_if:network) to any nat-to >>> ($ext_if:0) >>> >>> # policy: default deny on all inbound traffic on all interfaces >>> block in log >>> >>> # immediately pass out traffic on external interface, modulate state to >>> make >>> # ISNs (initial sequence numbers) harder to guess >>> pass out quick on $ext_if proto tcp modulate state >>> >>> # policy: default allow on all outbound traffic on all interfaces >>> pass out >>> >>> # antispoofing for internal interfaces >>> antispoof quick for { $int_if $apple_if $wifi_if } >>> >>> # ingress/egress bogon filtering >>> block in quick log on $ext_if from <bogons> >>> block out quick log on $ext_if from <bogons> >>> >>> # allow internal traffic in, except from untrusted --> trusted >>> pass in on $int_if from $int_if:network >>> pass in on $apple_if from $apple_if:network to !$int_if:network >>> pass in on $wifi_if from $wifi_if:network to !$int_if:network >>> >>> # allow ssh traffic on trusted interface >>> pass in log on $int_if inet proto tcp from $int_if:network to $int_if port >>> 22 >>> >>> # redirect external ssh traffic from ????? >>> pass in log on $ext_if inet proto tcp to ($ext_if) port ?????\ >>> B B B B rdr-to 127.0.0.1 port 22

