Ok, but anyhow, this actually means that I can use http-response to do
something on the response. That's good. I'll play with it for a while on my
dev-server. Nice!

Version can be upgraded, of course, if I can just motivate it! :)

Den 29 juli 2017 12:44 em skrev "Igor Cicimov" <
[email protected]>:

>
>
> On Fri, Jul 28, 2017 at 10:00 PM, Charlie Elgholm <[email protected]>
> wrote:
>
>> Ok, I'm on the 1.5.x bransch unfortunately, due to Oracle Linux issues.
>> Can install manually, but that might raise some eyebrows.
>>
>> But what you're telling me is that I can route the request to another
>> backend (or drop it) in haproxy based on something I received from one
>> backend??
>>
>> Den 28 juli 2017 1:40 em skrev "Igor Cicimov" <
>> [email protected]>:
>>
>>
>>
>> On Fri, Jul 28, 2017 at 6:03 PM, Charlie Elgholm <[email protected]>
>> wrote:
>>
>>> Thanks!
>>>
>>> I was really hoping for acl-validation on the basis of the response from
>>> the backend server, and not on the incoming request at the frontend.
>>> And, as much as I really like lua as a language, I'd rather keep my
>>> haproxy with as small footprint as possible. =)
>>>
>>> Really nice example about all the possibilities though, thanks!
>>>
>>> This is how all examples I find operate:
>>> incoming request => haproxy => frontend => acl based on what's known
>>> about the incoming requests => A or B
>>> A: backend => stream backend response to client
>>> B: tarpit / reject
>>>
>>> I would like this:
>>> incoming request => haproxy => frontend => backend => acl based on
>>> what's known about the response from the backend => A or B
>>> A: stream backend response to client
>>> B: tarpit / reject
>>>
>>>
>>> 2017-07-28 9:52 GMT+02:00 Igor Cicimov <[email protected]>:
>>>
>>>>
>>>>
>>>> On 28 Jul 2017 5:41 pm, "Charlie Elgholm" <[email protected]> wrote:
>>>>
>>>> Hi Folks,
>>>>
>>>> Either I'm too stupid, or it's because it's Friday....
>>>>
>>>> Can you tarpit/reject (or other action) based on a response from the
>>>> backend?
>>>> You should be able to, right?
>>>>
>>>> Like this:
>>>> tcp-response content tarpit/reject if res.hdr(X-Tarpit-This)
>>>>
>>>> Can someone explain this to me? (Free beer.)
>>>>
>>>> I have a fairly complex ruleset on my backend server, written in Oracle
>>>> PL/SQL, which monitors Hack- or DoS-attempts, and I would love to tarpit
>>>> some requests on the frontend (by haproxy) based on something that happens
>>>> on my backend.
>>>>
>>>> As I do now I return a 503 response from the server, and iptable-block
>>>> those addresses for a while. But since they see the 503 response they'll
>>>> return at a later date and try again. I would like the connection to just
>>>> die (drop, no response at all) or tarpit (long timeout, so they give up). I
>>>> suppose/hope they'll eventually remove my IP from their databases.
>>>>
>>>> I'm guessing a tarpit is smarter than a reject, since the reject will
>>>> indicate to the attacker that somethings exist behind the server IP.
>>>> An iptable "drop" would be preferable, but I guess that's a little late
>>>> since haproxy has already acknowledged the connection to the attacker.
>>>>
>>>> --
>>>> Regards
>>>> Charlie Elgholm
>>>> Brightly AB
>>>>
>>>> Good example of delay with lua: http://godevops.net/2015/
>>>> 06/24/adding-random-delay-specific-http-requests-haproxy-lua/
>>>>
>>>
>>>
>>>
>>> --
>>> Regards
>>> Charlie Elgholm
>>> Brightly AB
>>>
>>
>> Well the idea is to redirect the response on the backend (based on some
>> condition) to a local frontend​ where you can use the tarpit on the request.
>>
>> You cam also try:
>>
>> http-response silent-drop if { status 503 }
>>
>> that you can use in the backed (at least in 1.7.8, not sure for other
>> versions)
>>
>>
>>
>>
> ​I was thinking of something along these lines:​
>
> ​frontend ft_tarpit
>   mode http
>   bind 127.0.0.1:4444
>   default_backend bk_tarpit
>
> backend bk_tarpit
>   mode http
>   timeout tarpit 3600s
>   http-request tarpit
>
> backend bk_main
>   mode http
>   http-response redirect 127.0.0.1:4444 if { status 503 }​
>
> but you are out of luck again since "http-response redirect" was
> introduced in 1.6
>
>

Reply via email to