Skip site navigation (1)Skip section navigation (2)
Date:      Mon, 06 Oct 2008 09:34:46 +0100
From:      Matthew Seaman <m.seaman@infracaninophile.co.uk>
To:        Jeremy Chadwick <koitsu@FreeBSD.org>
Cc:        Scott Bennett <bennett@cs.niu.edu>, freebsd-questions@FreeBSD.org
Subject:   Re: pf vs. RST attack question
Message-ID:  <48E9CDA6.80508@infracaninophile.co.uk>
In-Reply-To: <20081006072611.GA13147@icarus.home.lan>
References:  <200810051753.m95Hr3N5014872@mp.cs.niu.edu> <20081006003601.GA5733@icarus.home.lan> <48E9BBED.7090607@infracaninophile.co.uk> <20081006072611.GA13147@icarus.home.lan>

next in thread | previous in thread | raw e-mail | index | archive | help
This is an OpenPGP/MIME signed message (RFC 2440 and 3156)
--------------enigDB0E4602F230BC04BCB244D9
Content-Type: text/plain; charset=ISO-8859-1; format=flowed
Content-Transfer-Encoding: quoted-printable

Jeremy Chadwick wrote:
> On Mon, Oct 06, 2008 at 08:19:09AM +0100, Matthew Seaman wrote:
>> Jeremy Chadwick wrote:


>>> If you want a "magic solution", see blackhole(4).
>>>
>> block drop all
>>
>> looks fairly magical to me.  Stick that at the top of your ruleset as
>> your default policy, add more specific rules beneath it to allow
>> the traffic you do want to pass, and Robert is your Mother's Brother.
>> No more floods of RST packets.
>=20
> This is incredibly draconian.  :-)  I was trying my best to remain
> realistic.

It's no such thing.  This is the recommended standard practice when desig=
ning
firewalls: always start from the premise that all traffic will be dropped=
 by
default and add specific exceptions to allow the traffic you want.  Tryin=
g to
work the other way round is a recipe for disaster: 'allow everything, but=
 block
what is then shown to be deleterious' means that you're always playing ca=
tch-up
as changes on your servers expose new attack vectors and as attackers dis=
cover
and try to exploit those holes.  Not recommended, unless you actually /li=
ke/
being paged in the wee small hours.

>> (Actually, I'd recommend always adding a 'log' clause to any rules tha=
t
>> drop packets like so: 'block log drop all'.  Makes running 'tcpdump -i=
 pflog0'
>> an invaluable debugging aid.)
>=20
> I cannot advocate use of "log" on such "vague" rules, and my attitude i=
s
> based on experience:
>=20
> We had "log" set on some of our deny rules, specifically on an entry
> which blocked any traffic to an IP to any ports other than 53 (DNS).
> Someone initiated an attack against that IP, to a destination port of
> something other than 53, which caused pflog to go crazy with logging.
>=20
> What inadvertently resulted was a local system DoS -- the system began
> sporting a load average between 40 and 50, and was sluggish.
>=20
> The root cause?  /var/log/pflog was growing at such a tremendous rate
> that newsyslog (trying to rotate and compress the logs) could not keep
> up.  When I got to it, I found 8 or 9 gzip/newsyslog processes running
> trying to deal with the chaos.
>=20
> Bottom line: be very, very cautious what rules you use "log" on, and be=

> sure to remove it once the system is in production.
>=20

You have a point here, I will certainly admit that.  In my experience, I'=
ve not
yet run into that scenario.  I've tended to see systems more easily DoSed=
 by
running out of pf states due to excessive DoS traffic to allowed ports th=
an to
any extra load from pflogd and newsyslog from logging denied traffic.  Th=
e
machines in question already log so much legitimate traffic from Squid an=
d Apache
that pflog is trivial by comparison.  Of course, now I've said 'it never =
happens'
I'm expecting half our firewalls to explode any minute now...

	Cheers,

	Matthew

--=20
Dr Matthew J Seaman MA, D.Phil.                   7 Priory Courtyard
                                                  Flat 3
PGP: http://www.infracaninophile.co.uk/pgpkey     Ramsgate
                                                  Kent, CT11 9PW


--------------enigDB0E4602F230BC04BCB244D9
Content-Type: application/pgp-signature; name="signature.asc"
Content-Description: OpenPGP digital signature
Content-Disposition: attachment; filename="signature.asc"

-----BEGIN PGP SIGNATURE-----
Version: GnuPG v2.0.9 (FreeBSD)
Comment: Using GnuPG with Mozilla - http://enigmail.mozdev.org

iEYEAREIAAYFAkjpzawACgkQ8Mjk52CukIymuACeOnFlYEUv3WQMa0ivVfp85YNf
O2QAn2P7+FJryS55FH2Fm+kgoHY0EPYJ
=SuAZ
-----END PGP SIGNATURE-----

--------------enigDB0E4602F230BC04BCB244D9--



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?48E9CDA6.80508>