Suggestions for a custom module, looking for a developer

Hello, I’m testing nginx and like it very much.
To make it perfect for my needs I am thinking about having someone code
a
“third-party” module for me.
If I get this done I’m obviously going to share it with the community,
it’s the
least I can do to give something back.

Since if I can’t get this module done I will have to use a commercial
closed-source webserver, I am willing to pay a “bounty” for this module.

I deeply apologize if this offends anyone, but since I know that a few
open
source projects are open to bounties and the majority accepts donations,
I
thought I’d ask.

I’d like to know how much should I expect to pay if I’m going to hire a
coder
for this module. If anybody knows of someone I should talk to to get
this done
please let me know.

This module would have to help me with connection flooding and bandwidth
limiting. Here is what I’d like the module to do.

I’d like the module to be able to check for the following conditions:

  • A single IP address that has retrieved more than megabytes
    (in
    requests’ bodies) in seconds.
  • A single IP address that sent more than requests in
    seconds.

I think that there should be a parameter, , to define how many
IP
addresses, are to be kept in memory, in a FIFO fashion.

Then if any of the above conditions is triggered I would like to have
executed a
list of custom commands, .
It should also be possible to use the offending IP address as a
parameter for
the custom commands.
In my case I would like to add a firewall rule to ban the offending IP
and an
email sent to the admin.

I would also like the possibility to limit the total bandwidth usage for
each IP
in kbytes/sec.

All of this should be doable at directory level, at worst at virtual
host level.

I know that nginx can limit the number of connections per IP and the
speed for
each connection but sadly this is not enough for me to handle abusers
without
hurting normal users’ performance.

Any consideration on such a module would be very appreciated.
Please don’t flame me if all this post seems rubbish to you :slight_smile:

Thank you!

Adrian ha scritto:

Hello, I’m testing nginx and like it very much.
To make it perfect for my needs I am thinking about having someone code a
“third-party” module for me.
If I get this done I’m obviously going to share it with the community, it’s the
least I can do to give something back.

This is always a good thing!

Since if I can’t get this module done I will have to use a commercial
closed-source webserver, I am willing to pay a “bounty” for this module.

I deeply apologize if this offends anyone, but since I know that a few open
source projects are open to bounties and the majority accepts donations, I
thought I’d ask.

No problem; you just need to contact someone that is able to write the
custom module.

You can look at http://wiki.codemongers.com/NginxModules, for someone
who has already written a module for nginx.

I’d like to know how much should I expect to pay if I’m going to hire a coder
for this module. If anybody knows of someone I should talk to to get this done
please let me know.

It’s not possible to estimate the price.
You need to ask to the coder you are going to hire.

All of this should be doable at directory level, at worst at virtual host level.

Note that for all these requirements, you could use an external tool
that parses the access log file, and iptables for accounting.

I know that nginx can limit the number of connections per IP and the speed for
each connection but sadly this is not enough for me to handle abusers without
hurting normal users’ performance.

Any consideration on such a module would be very appreciated.
Please don’t flame me if all this post seems rubbish to you :slight_smile:

Thank you!

Manlio P.

Adrian schrieb:

I’d like the module to be able to check for the following conditions:

  • A single IP address that has retrieved more than megabytes (in
    requests’ bodies) in seconds.
  • A single IP address that sent more than requests in seconds.

I think thats what I also would like to see in nginx, see
http://article.gmane.org/gmane.comp.web.nginx.english/2040

Igor replied to that:
“No, nginx currently does not support this, but it will be my next main
task,
just after I will have complete current main task - async resolver and
variable support in proxy_pass.”

So maybe you could tickle him a bit? :wink:

I could join in on the bounty even though with limited ressources.

Regards,

thomas