North American Network Operators Group

Date Prev | Date Next | Date Index | Thread Index | Author Index | Historical

Re: Pattern matching odd HTTP request

  • From: Karsten W. Rohrbach
  • Date: Wed Sep 19 18:42:39 2001

Brian Behlendorf([email protected])@2001.09.18 18:50:56 +0000:
> On Wed, 19 Sep 2001, Karsten W. Rohrbach wrote:
> > source ip based connection rate limiting would perhaps solve the
> > problem. are there any modules available out there to accomplish this
> > task?
> is the only one I know of.  I've not used it myself, and it's not a part
> of the "core" distribution.  If people use it and it works, I'd appreciate
> knowing, as this comes up frequently enough that I'd agitate for getting
> it included.

update: mod_throttle/3.1.2 seems to do the thing (as far as i can see
from the source) but i cannot get the thing running on my freebsd 4.3
box here, i keeps dumping core all the time. it is designed to already
check the source ip address in the fixup handler.
_all_ other modules i downloaded do not do this. i tried the following
- mod_throttle/3.1.2 		dumps core at runtime, dang thing
- mod_throttle_access/0.2	starts processing after GET request
- mod_bandwidth/2.0.3		starts processing after GET request
- mod_bwshare/0.1.2		shmget: invalid argument but SHM is
				there, i can see it with ipcs(1)!
- mod_conn/1999			starts processing after GET request
- mod_limitipconn/0.0.3		starts processing after GET request

[] is the url to mod_throttle
which looks very mature (but runs buggy on my box, whyever). i am
pretty tired now from my long uptime hunting that stupid nimda worm and
getting rid of it on some of my customers' servers. i hate iis, yuck.

mod_throttle looks like it could do it, because it contains the relevant
code in the fixup handler. However the policies are pretty weird -- at
least for me in my current state.  man, it's been a long time since i 
hacked my last apache module. must be 5 years or so... if somebody gets
mod_throttle running on freebsd4, drop me a line how you did it. it's
nearly midnight and i'm going to take a looooong nap now.

btw, if your log files keep growing and growing, use multilog from
daemontools to autorotate them and keep them at a specified maximum
    ErrorLog "|exec setuidgid log multilog s200000 n5 /path/to/errlogdir"
daemontools are at []

you could even do
    ErrorLog "|exec grep -v '/scripts/' | setuidgid log multilog s200000 n5 /path/to/errlogdir"
to get rid of the darn worm-generated errors.

lowering the timeout does not make much sense, the best solution would
be having the max connections from one ip in the scoreboard structures
and connection handler because it _must_ be processed at connection
time, not when the request is already in -- there never will be a GET or
any other request... i see that this can be doen in the fixup_handler in
an module, but i am quite rusty concerning the apache api ;-)
brian, i'd appreciate if you would forward this to the core people.

i got an important appointment with my bed now...
take care,
/k (tired like hell)

> May the source be with you!
KR433/KR11-RIPE -- WebMonster Community Founder -- nGENn GmbH Senior Techie -- --
karsten& -- alpha& -- alpha& -- [email protected]
GnuPG 0x2964BF46 2001-03-15 42F9 9FFF 50D4 2F38 DBEE  DF22 3340 4F4E 2964 BF46
Please do not remove my address from To: and Cc: fields in mailing lists. 10x

Attachment: pgp00018.pgp
Description: PGP signature