Hi Robert, 2018-04-17 16:27 GMT+02:00 Robert Schweikert <rjsch...@suse.com>:
> Hi, > > Configuration question. > > Apache version 2.4.23 > > What I am trying to do is have users authenticate but only allow access > to that authentication method from known IP ranges. To this effect I > have a config file that sets: > > <Directory "some_path> > Options +Indexes +FollowSymLinks > IndexOptions +NameWidth=* > > PerlAuthenHandler THE::PERL::MODULE > AuthName MODULE > AuthType Basic > Require valid-user > Require expr %{REQUEST_URI} =~ m#^/SOME_EXCEPTION/.*# > > Require ip A_VERY_LONG_LIST_OF_IP_RANGES > Require ip ANOTHER_VERY_LONG_LIST_OF_IP_RANGES > </Directory> > > The observed behavior is what could be described as "or" behavior. > Meaning even traffic from outside the specified IP ranges is allowed to > hit the auth handler, i.e. the user gets a username/password request > when accessing a path that is not in the "SOME_EXCEPTION" path. > > What I am trying to achieve is that Apache blocks any access if the > traffic originates from outside the specified IP ranges. > > Is there a potential that I am hitting some limit of the number of IP > ranges specified and thus the whole mechanism of limiting by IP is ignored? > > Am I simply mis-interpreting the documentation and I need to structure > the restrictions differently? > > Is there some "and" directive to tie the requires together in an "and" > fashion to ensure all "Require" directives are considered? This might be useful: https://httpd.apache.org/docs/2.4/mod/mod_authz_core.html#logic. By default the multiple requires are acting as RequireAny, meanwhile you'd probably need RequireAll. Hope that helps! Luca