Inline -Bryan
> On Aug 22, 2018, at 11:37 AM, Derek Dagit <der...@oath.com.INVALID> wrote: > > Bryan, some clarification questions: > > >> 2. 403 > > What should we do on the N+1st redirect? Do we try to resolve the target > host and 403 that too, or just return it to the client regardless of how it > resolves? > > This is why I went with "Return" by default rather than "Reject". > Sounds good, that is what we are doing now with n+1. > > >> 3. I like Lief’s proposal. > > OK I can renumber the config values if necessary. > > > >> You might want to add another option to add non-routable IPs to the list > too. > > We do prevent connections to the ANY address 0.0.0.0 globally in ATS > already (redirect or not). I can look at adding additional checks for > non-routable addresses. > > >> I would create a configuration option called >> proxy.config.http.redirect_enabled > and start with 0 as off and set proxy.config.http.number_of_redirections to > 1 as the default. > > We have recently removed this config, seeing as it is redundant with > number_of_redirections. Are you proposing we bring this config back with a > new meaning and use it to configure the Follow/Reject/Return behavior? Yes, if it is being enabled for different modes I would think it would be best to have it under and enabled option, This is how some other configuration options are done (e.g. proxy.config.log.logging_enabled). > > Setting it to 0 according to Leif's proposal would default to the current > behavior, which we are saying is not recommended. Is this what you suggest > or were you thinking Reject or Return should be the default? > > >> When checking for localhost you should resolve the ip and check to see if > it matches any of the IPs on the server. > > OK will look at this too. I am not sure there is a good solution to handle > other servers or VIPs where the VIP is not mapped to a loop-back interface. > (If the VIP is mapped to the loopback, then this is covered by checks for > loopback. If it is not mapped to loopback, then I am not sure how we can > know to treat it specially aside from an additional config—and that starts > to sound like maybe a plugin should be handling such things.) > > > > Thanks for the input. I'm fine with changing it. > > The current Pull Request is up, but keeping the discussion here until we > settle on what we want to do. > https://github.com/apache/trafficserver/pull/4145 > > > > On Wed, Aug 22, 2018 at 1:04 PM, Bryan Call <bc...@apache.org> wrote: > >> 1. Yes >> 2. 403 >> 3. I like Lief’s proposal. You might want to add another option to add >> non-routable IPs to the list too. I would create a configuration option >> called proxy.config.http.redirect_enabled and start with 0 as off and set >> proxy.config.http.number_of_redirections to 1 as the default. >> >> When checking for localhost you should resolve the ip and check to see if >> it matches any of the IPs on the server. That could be a long list if >> there servers has many IP aliases. This still doesn’t block IPs used by >> other servers in the same network. >> >> -Bryan >> >> >> >>> On Aug 6, 2018, at 5:25 PM, Derek Dagit <der...@oath.com.INVALID> wrote: >>> >>> 1. Yep >>> >>> 2. I see multiple possible answers as well... >>> >>> 3. ... and the 0,1,2-style config having either default sounds OK. >>> >>> Regarding 1)2), Could we resolve and then check if the address is a >>> loopback address? >>> 3) Hmm, not sure about the use of *cast addresses either. >>> 4) The VIP deployment I'm used to will actually set up the host such >>> that the VIP name resolves to the loopback address, so the above works. >>> That might not be good enough for all deployments though. >>> >>> On Mon, Aug 6, 2018 at 6:16 PM, Leif Hedstrom <zw...@apache.org> wrote: >>> >>>> >>>> >>>>> On Aug 6, 2018, at 4:50 PM, Alan Carroll <solidwallofc...@oath.com. >> INVALID> >>>> wrote: >>>>> >>>>> 1. Yes. >>>> >>>> Agreed. >>>> >>>>> >>>>> 2. I think a 403 >>>> >>>> I can go either way. The HTTP way would be to just return the Location >> as >>>> is (i.e. retain the redirect), following redirects is a little >> unorthodox. >>>> Maybe since we are adding new configuration(s), maybe make it such that >> the >>>> behavior can be configurable either way? >>>> >>>> Depending on if we add another configuration, or add on to the existing >>>> one, I’m thinking something in the line of >>>> >>>> 0 - Always allow follow redirect >>>> 1 - Allow follow redirect, but return the normal redirect if it’s >>>> for localhost >>>> 2 - Allow follow redirect, but give a 403 if it's to localhost >>>> >>>> >>>> My vote would be for 1) to be the default, but I can live with 2) as >> well. >>>> >>>> Question: The notion of “localhost” is a little vague here… I think >>>> there’s a number of other ways to reach “localhost”, rather than just >>>> localhost/127.0.0.1: >>>> >>>> 1) FQDNs >>>> 2) One of the possibly many IPs that are local to the box, >>>> including IPv6 link-locals >>>> 3) Possibly some broadcast or multicast addresses?? >>>> 4) The upstream VIP IP that might point back to the box(es) >>>> >>>> I think there are many ways that someone could make a follow redirect >> loop >>>> back to itself, or a peering proxy. >>>> >>>> Cheers, >>>> >>>> — Leif >>>> >>>> >>> >>> >>> -- >>> Derek >> >> > > > -- > Derek