Issues with pf and snmp
DAve
dave.list at pixelhammer.com
Fri Apr 9 19:55:41 UTC 2010
Peter Maxwell wrote:
>
> Hi DAve,
>
> This may be a daft question, but is the destination IP in your tcpdump
> of 10.0.241.41 (one of) the IP address(es) assigned to dc0?
Yes it is.
>
> The next question isn't actually related to your problem; when you say
> "I've been working to enable pf on all our servers in preparation for
> moving them outside the PIXs we currently use", does that mean the
> servers that have services running on them will also do their own packet
> filtering? If so, then your existing setup with a PIX sounds better.
> Your packet filters should - whenever possible - be on a separate box
> from the hosts running any services. The reason being if one of your
> daemon processes are compromised then so is your fw ;-)
Yea, well, I get to voice my opinions and then wait for the decision. If
we do *not* move outside the PIX, I will still leave PF on each box for
the layered security. So I still need to get snmp to work.
I poked around the manuals for quite a while this morning and found
nothing that I saw as an answer. Searching the net for anything with pf
and snmp provided links to monitoring pf, not filtering snmp.
I am not certain the problem is not of my own creation, but I may have
to look at snmp as the issue if I cannot find anything incorrect in my
pf rules. Though, cacti has been querying this server for over two years
without a problem until I turned up pf.
Still digging...
DAve
>
> Best wishes,
>
> Peter
>
>
>
>
>
> "
> On 9 April 2010 17:46, DAve <dave.list at pixelhammer.com
> <mailto:dave.list at pixelhammer.com>> wrote:
>
> Good afternoon.
>
> I've been working to enable pf on all our servers in preparation for
> moving them outside the PIXs we currently use. The first server I
> tackled was our ftp server, it currently is only used to support VOIP
> phones via ftp, http, and tftp. I used ipfilter extensively but that was
> 10? years ago.
>
> Everything is working at this point except snmp. Cacti connects to the
> server to query snmp and gets part of a result, then snmp stops and
> takes 80% of the CPU. Cacti is on the <monitoring> network. I am at a
> loss to understand what is wrong with my ruleset.
>
> ### Macros ###
> # define common values, so they can be referenced and changed easily.
> ext_if="dc0" # replace with actual external interface name i.e., dc0
> int_if="dc1"
> loop_if="lo0"
>
> ### Tables ###
> table <martians> persist { 127.0.0.0/8 <http://127.0.0.0/8>,
> 172.16.0.0/12 <http://172.16.0.0/12>, 169.254.0.0/16
> <http://169.254.0.0/16>,
> 192.0.2.0/24 <http://192.0.2.0/24>, 0.0.0.0/8 <http://0.0.0.0/8>,
> 240.0.0.0/4 <http://240.0.0.0/4> }
> table <monitoring> persist { 192.168.32.0/24
> <http://192.168.32.0/24>, 10.0.241.0/24 <http://10.0.241.0/24> }
> table <sshguard> persist
>
> ### Normalization ###
> # reassemble fragments and resolve or reduce traffic ambiguities.
> scrub all random-id
>
> ### Default Filtering ###
> block in log all
> block out log all
>
> # Lets make certain localhost and the private network is unrestricted
> set skip on $loop_if
> set skip on $int_if
>
> # Now lets start hammering anything obvious
> block drop in quick on $ext_if from <martians> to any
> block drop out quick on $ext_if from any to <martians>
> block in quick on $ext_if inet proto tcp from <sshguard> to any port 22
> label "ssh bruteforce"
> antispoof for $ext_if
>
> # Lets pass ssh, time and dns, we always need those. Also connections
> from the office and monitoring
> pass in quick on $ext_if inet proto tcp from any to $ext_if port 22 keep
> state
> pass out quick on $ext_if inet proto udp from $ext_if to any port 53
> keep state
> pass out quick on $ext_if inet proto udp from $ext_if to any port 123
> keep state
> pass in quick on $ext_if inet proto { tcp, udp, icmp } from <monitoring>
> to $ext_if keep state
>
> ### Server Specific rules ###
> # We gotta support those FTP users, that's why we are here and not a
> kiosk in a mall
> pass in quick on $ext_if inet proto tcp from any to $ext_if port 21 keep
> state
> pass in quick on $ext_if inet proto tcp from any to $ext_if port
> 65000:65500 keep state
> # Yep, Cisco phones still using tftp, we do not understand what internet
> they use at Cisco.
> pass in quick on $ext_if inet proto udp from any to $ext_if port 69
> # We use www to serve config files as well
> pass in quick on $ext_if inet proto tcp from any to $ext_if port 80 keep
> state
>
> I would think the line allowing tcp,udp,icmp would allow snmp to work
> from the monitoring server, but snmp is certainly not behaving. here is
> the relevant pflog entry.
>
> 480683 rule 0/0(match): block in on dc0: 10.0.241.28.39107 >
> 10.0.241.41.161: C=SECRET GetNextRequest(21) .0.1[|snmp]
>
> Thanks for any help.
>
> DAve
--
"Posterity, you will know how much it cost the present generation to
preserve your freedom. I hope you will make good use of it. If you
do not, I shall repent in heaven that ever I took half the pains to
preserve it." John Adams
http://appleseedinfo.org
More information about the freebsd-pf
mailing list