Jonathan,

Correct me if I'm wrong but:

The httpchk is sourced from HAProxy as an application level health
check so how can it be effected by a client request?
If a client gets a 404 then HAProxy doesn't really care (it just
passes on the 404).

I am quite often very wrong though.. :-).




On 7 March 2012 14:40, Jonathan Matthews <[email protected]> wrote:
> Hi all -
>
> It seems to me that there's a trivial DoS available whenever "observe
> layer7" is enabled if, as I'm imagining, the set of acceptable
> response codes for "observe layer7" is derived from those configured
> for the "httpchk".
> Please could someone suggest either what I'm assuming wrongly, or how
> to mitigate against this.
>
> I need to run with the defaults: a health check must not respond with
> a 4xx or 5xx. This is to guard against a back-end server bombing (5xx)
> or someone making a deployment-time error and either removing the
> health check code (404) or perhaps removing the host header
> configuration from the origin server (400). Don't say that last one
> won't happen - it just did ;-)
>
> If I do run in this mode, then (what I perceive as) the lack of
> configurability around the acceptable response codes for "observe
> layer7" means that anyone can DoS me: just repeatedly hit a
> non-existent page and force a 404 to be served, thereby taking my
> back-end servers out, one by one.
>
> What am I missing? Is there a way to say "httpchk must not be 4xx or
> 5xx; observe-layer7 only catches 5xx"?
>
> I'm aware of "observe layer4", of course. This is unhelpful in this
> scenario, as we're vhosting to a single IP on the origin servers. It
> will only guard against the entire HTTPd dying - not a specific vhost
> having problems.
>
> Any ideas?
> Cheers,
> Jonathan
>
> PS Thanks to all involved for HAProxy - an awesome bit of kit :-)
> --
> Jonathan Matthews
> London, UK
> http://www.jpluscplusm.com/contact.html
>



-- 
Regards,

Malcolm Turnbull.

Loadbalancer.org Ltd.
Phone: +44 (0)870 443 8779
http://www.loadbalancer.org/

Reply via email to