How to make Apache (2.2.4) less greedy,
or Sendmail less polite? [semi-solved]
Olaf Greve
o.greve at axis.nl
Tue May 8 12:51:49 UTC 2007
Hiya all,
Well, I promised you guys a follow-up on this, and here's what I have
found out (first the situation and solution, and then two small
questions)....
The situation:
Firstly, I took some measures to figure out where the issues came
from, and using Apache's "server-status" handler (tnx for that
recommendation!), I noticed the script that caused Apache to choke up
(i.e. grab an excessive amount of resources), was a PHP script that
shows entries of photographic events that I organise from time to
time. This didn't happen for all entries, but only for specific ones.
I then wondered why, as this script never caused trouble before, and
while checking the server status I did already notice that the "store
comments" script (allowing visitor's feedback to the entries) was
called very often. Too often. I checked out the sizes of the comments
files (which normally are very small plain text files, of perhaps
some 4Kb size at most), and lo and behold: some of them were as big
as 18Mb! The main issue then becoming that when these files were
parsed as
text by PHP when an entry is shown, this either took a long time to
complete, or in the worst case caused even a core dump to be
generated by the over-excessive load on the server's resources.
Next, when checking the contents of those files, it became apparent
that they were completely hammered with all sorts of typical
commercial spam, referring to vi*gr* websites, etc. I think this is
known as "forum spam" (or so), but my site uses custom scripts, so
someone must have found the URL, and made use of it by manually
figuring out the parameters and it's functionality.
The (partial) "solution":
For now, I have configured the webserver so, that ANY call to this
"store comments" script is forbidden, and will simply generate a
standard server error (hopefully the spammers will signal these
server errors, and will stop the hack attempt), while I am looking
into a better solution (e.g. by having to type additional text (anti-
spam challenges) when posting a comment). But then, as mentioned
above, someone went through the trouble of figuring out how to
manipulate my code, and hence caused me a LOT of time being wasted,
so I want to "reward" them for their trouble, by punishing the
responsible people as much as possible. Therefore, I will go through
the Apache access log to work out the IP addresses of
the machines that were used for this, and I will report them to the
proper anti spam authorities, such that they will be blacklisted
Internet wide. If anyone knows of good places to do so (the more, the
merrier), I welcome hearing about them...
The questions:
-Can anyone recommend me proper anti spam authorities to whom I can
report the IP addresses that caused the issues on my machine?
-At present, in Apache I have added:
<Location ~ "store_comments_script.php">
Order deny,allow
Deny from all
</Location>
Can anyone tell me of a good way to only ever allow calls to this
script coming from the proper previous script, or should this be
handled from PHP itself?
Perhaps this question isn't very clear, but what I'm looking for is a
way to block any and all direct calls to this script, that originate
from anywhere but from the photography site itself.
Can anyone help me perhaps with those two thingies?
Tnx once more, and cheers!
Olafo
More information about the freebsd-amd64
mailing list