Yes, just confirmed it:
  
http://www.networkinghowtos.com/howto/set-the-x-forwarded-for-header-on-a-nginx-reverse-proxy-setup/
Documentation on how to set up X-Forwarded-For in nginx

Best Regards

Teravus

On Tue, Oct 8, 2013 at 12:10 PM, Teravus Ovares <tera...@gmail.com> wrote:
>  I'm sure you could configure nginx to send the X-Forwarded-For header
> to the OpenSim based service and then enable the
> DOSAllowXForwardedForHeader in the robust.ini to receive the power of
> the 'per service' rate limiting while also having the protection at
> the proxy level.    That said, I'm happy you found a configuration
> that works for you.
>
> Best Regards
>
> Teravus
>
> On Tue, Oct 8, 2013 at 11:43 AM, Michael Emory Cerquoni
> <nebadon2...@gmail.com> wrote:
>> I had a look at the Robust.ini.example earlier and I found the instructions
>> to be clear and straight forward, I am glad you did infact allow this to be
>> completely disabled, at OSgrid we use nginx as a reverse proxy and also to
>> do DoS protection and load balancing, without the options to disable this
>> completely it would have been a major problem moving forward.
>>
>>
>> On Tue, Oct 8, 2013 at 12:27 PM, Teravus Ovares <tera...@gmail.com> wrote:
>>>
>>> Just to be clear, and comment/answer some questions.
>>>
>>> I did add the DOS protection variables to the Robust.ini.example in
>>> the [LoginService] section.  The Rate Limit code does 'per connection'
>>> velocity counts.   The default rate setting is 5 requests in 10
>>> seconds.    If you have a transparent proxy, such as squid, you need
>>> to set DOSAllowXForwardedForHeader to true so that the code trusts the
>>> X-Forwarded-For header that your proxy adds to the headers.    If you
>>> want to turn it off, set DOSMaxRequestsInTimeFrame = 0.       If you
>>> want to allow individual clients to do 20 connections in 5 seconds,
>>> set DOSMaxRequestsInTimeFrame = 20 and   DOSRequestTimeFrameMS = 5000.
>>>   If you want to change how long individual connections are blocked
>>> when they go over the rate limit, change DOSForgiveClientAfterMS.
>>>
>>> Hopefully this helps get you started with the config options.
>>>
>>> One more thing, this DOS protector is configured and implemented 'per
>>> service',    So, if it's implemented in the login service, it's not
>>> going to get triggered by the Group Service.   If there's DOS
>>> protection on the Group Service and the login service, and a
>>> connection gets blocked on the login service, they'll still be able to
>>> access the Group Service because they're individually rate limited...
>>>  This is for flexibility.    Choosing what the best rate limit is
>>> cannot really be done server wide, it has to be based on the needs of
>>> the individual service and that's why it was implemented this way.
>>> At this point, the only major service that has rate limiting on by
>>> default is the login service.
>>>
>>> I'll be happy to answer more questions and discuss default settings.
>>>
>>>
>>>  Best Regards
>>>
>>> Teravus
>>>
>>>
>>> On Tue, Oct 8, 2013 at 8:04 AM, James Stallings II
>>> <james.stalli...@gmail.com> wrote:
>>> > As I have often been told by you, Melanie, if I am upgrading and not
>>> > auditing, adjusting, and testing my configs in accordance with changes,
>>> > I'm
>>> > doing it wrong.
>>> >
>>> > I think that statement probably applies more to those running larger
>>> > concerns than anyone else.
>>> >
>>> > Honestly, Teravus typically does a better job of coding than to produce
>>> > work
>>> > that does not take such matters of scale into consideration.
>>> >
>>> > I'm comfortable with whatever he chooses to do, and if it turns out it
>>> > isn't
>>> > a case of 'one size fits all', I'll make adjustments accordingly.
>>> >
>>> >
>>> > On Tue, Oct 8, 2013 at 7:52 AM, Melanie <mela...@t-data.com> wrote:
>>> >>
>>> >> I'm worried that people with larger installations will see service
>>> >> failures because legit traffic is seen as abusive. This could cause
>>> >> issues
>>> >> for the lerger grids out there. I don't believe that whatever tenuous
>>> >> protection this may offer for small grids and standalones outwieghs the
>>> >> potential service impairment it may cause for unsuspecting larger
>>> >> grids. Not
>>> >> every grid operator reads this list,
>>> >>
>>> >> So I'd again suggest that we stick to the way we've always done it and
>>> >> make the default for new features be "off".
>>> >>
>>> >> Melanie
>>> >>
>>> >> On 8 Oct 2013, at 09:31, Teravus Ovares <tera...@gmail.com> wrote:
>>> >>
>>> >> I understand what you're saying.      It's hard to argue to leave
>>> >> people unprotected from attacks, though.    I'm certainly open to
>>> >> making the defaults less protective, and, I'm concerned enough about
>>> >> it that I'd prefer to leave some protection in place there.
>>> >>
>>> >> What are your thoughts on that?
>>> >>
>>> >> Best Regards
>>> >>
>>> >> Teravus
>>> >>
>>> >> On Tue, Oct 8, 2013 at 12:41 AM, Melanie <mela...@t-data.com> wrote:
>>> >> > Hi,
>>> >> >
>>> >> > in keeping with our SOP, the defaults provided should be emulating
>>> >> > the previous behavior, e.g. NO rate limiting.
>>> >> >
>>> >> > I would much appreciate if that procedure would be adhered to,
>>> >> > unless we vote to abandon it. Users could suffer because they don't
>>> >> > expect the default config to change on them.
>>> >> >
>>> >> > Cheers,
>>> >> >
>>> >> > Melanie
>>> >> >
>>> >> > On 08/10/2013 05:42, Teravus Ovares wrote:
>>> >> >> Hi there,
>>> >> >>
>>> >> >> I just wanted to inform -dev that I added some rate limiting DOS
>>> >> >> protection classes to use to protect your opensim based services
>>> >> >> from
>>> >> >> rapid calling.      At the moment, this will be most noticeable in
>>> >> >> the
>>> >> >> Login Service.    I have, both as an example, and good practice,
>>> >> >> applied the Rate limit protection to the login service.    There are
>>> >> >> new Configuration options in StandaloneCommon.ini and Robust.ini
>>> >> >> that
>>> >> >> control how the connections are rate limited and if trusts the
>>> >> >> X-Forwarded-For header.    Just for the sake of getting something up
>>> >> >> there, I set the defaults to something sane, however they may not
>>> >> >> work
>>> >> >> for everyone, so it may be wise to take a look at the new
>>> >> >> configuration options in the [LoginService] section of your
>>> >> >> bin/Robust.ini.example and
>>> >> >> /bin/config-include/StandaloneCommon.ini.example AND/OR have
>>> >> >> discussions on what would be more sane default options.   There's a
>>> >> >> chance that this could affect anyone, so don't neglect to take a
>>> >> >> look
>>> >> >> at it.
>>> >> >>
>>> >> >> You may also notice messages on your console and in your logs like:
>>> >> >> 21:56:29 - [LOGINDOSPROTECTION]: client: 192.168.1.213 is blocked
>>> >> >> for
>>> >> >> 120000 milliseconds, X-ForwardedForAllowed status is False,
>>> >> >> endpoint:192.168.1.213
>>> >> >>
>>> >> >> This is an example of the DOS Protection blocking a connection
>>> >> >> because
>>> >> >> the client went beyond the rate limit.
>>> >> >>
>>> >> >> The rate limit is defined by X requests in Y period of time and is
>>> >> >> implemented in a rolling Y fashion.   It also has a 'forget' period
>>> >> >> of
>>> >> >> time that will unblock the blocked user.
>>> >> >>
>>> >> >> At this point, there's one implemented for XMLRPC handlers, one for
>>> >> >> GenericHTTPHandlers and a base class for StreamHandlers based on
>>> >> >> BaseStreamHandler.
>>> >> >>
>>> >> >> If you are interested in the code changes, you can check the diff:
>>> >> >>
>>> >> >>
>>> >> >> http://opensimulator.org/viewgit/?a=commitdiff&p=opensim&h=f76cc6036ebf446553ee5201321879538dafe3b2
>>> >> >>
>>> >> >> There's still more to do, and, here's a start to providing some
>>> >> >> modicum of protection on the services.
>>> >> >>
>>> >> >> If you have any questions, feel free to reply and ask..  or send me
>>> >> >> an
>>> >> >> e-mail personally.
>>> >> >>
>>> >> >> Thanks and Best Regards
>>> >> >>
>>> >> >> Teravus
>>> >> >> _______________________________________________
>>> >> >> Opensim-dev mailing list
>>> >> >> Opensim-dev@lists.berlios.de
>>> >> >> https://lists.berlios.de/mailman/listinfo/opensim-dev
>>> >> > _______________________________________________
>>> >> > Opensim-dev mailing list
>>> >> > Opensim-dev@lists.berlios.de
>>> >> > https://lists.berlios.de/mailman/listinfo/opensim-dev
>>> >> _______________________________________________
>>> >> Opensim-dev mailing list
>>> >> Opensim-dev@lists.berlios.de
>>> >> https://lists.berlios.de/mailman/listinfo/opensim-dev
>>> >>
>>> >>
>>> >> _______________________________________________
>>> >> Opensim-dev mailing list
>>> >> Opensim-dev@lists.berlios.de
>>> >> https://lists.berlios.de/mailman/listinfo/opensim-dev
>>> >
>>> >
>>> >
>>> >
>>> > --
>>> > ===================================
>>> > http://osgrid.org/
>>> > http://simhost.com
>>> > http://twitter.com/jstallings2
>>> >
>>> >
>>> > _______________________________________________
>>> > Opensim-dev mailing list
>>> > Opensim-dev@lists.berlios.de
>>> > https://lists.berlios.de/mailman/listinfo/opensim-dev
>>> _______________________________________________
>>> Opensim-dev mailing list
>>> Opensim-dev@lists.berlios.de
>>> https://lists.berlios.de/mailman/listinfo/opensim-dev
>>
>>
>>
>>
>> --
>> Michael Emory Cerquoni
>>
>> _______________________________________________
>> Opensim-dev mailing list
>> Opensim-dev@lists.berlios.de
>> https://lists.berlios.de/mailman/listinfo/opensim-dev
_______________________________________________
Opensim-dev mailing list
Opensim-dev@lists.berlios.de
https://lists.berlios.de/mailman/listinfo/opensim-dev

Reply via email to