restringir para habilitar granted externo explained deny configuracion basica allow all acceso apache2

apache2 - para - Uso de la negación en la directiva LocationMatch



habilitar apache para acceso externo (4)

Era una cuestión de obtener la expresión regular correcta. La directiva LocationMatch con la siguiente expresión regular funcionó bien.

SSLVerifyClient require SSLVerifyDepth 1 SSLCACertificateFile /etc/apache2/ssl/myca.crt <Location /jira> SSLRequire %{SSL_CLIENT_S_DN_CN} in {"AllUsers", "JiraUsers"} </Location> <LocationMatch ^/[a-ik-zA-IK-Z]> SSLRequire %{SSL_CLIENT_S_DN_CN} eq "AllUsers" </LocationMatch>

Nuestro sitio se ejecuta en apache y está protegido mediante certificados de cliente. Hasta ahora, solo había un certificado que proporcionaría acceso a todo el sitio. Ahora, tenemos el requisito de exponer a jira a un nuevo grupo de usuarios que no deberían poder acceder a nada más que jira. Creé un certificado separado para ese grupo y planeé distinguirlos usando la combinación SSLRequire y Location / LocationMatch.

Entonces el criterio es:

  1. Los usuarios con un certificado antiguo pueden acceder al sitio completo
  2. Los usuarios con un nuevo certificado solo pueden acceder al patrón / jira URL

Intenté algunas combinaciones pero no pude obtener la negación para el trabajo de LocationMatch. Cualquier ayuda sería apreciada.

El archivo httpd.conf se ve así:

SSLVerifyClient require SSLVerifyDepth 1 SSLCACertificateFile /etc/apache2/ssl/myca.crt <Location /jira> SSLRequire %{SSL_CLIENT_S_DN_CN} in {"AllUsers", "JiraUsers"} </Location> <LocationMatch /!(jira)> SSLRequire %{SSL_CLIENT_S_DN_CN} eq "AllUsers" </LocationMatch>

¡Gracias!



prueba este: (gracias a Milos por el consejo)

SSLVerifyClient require SSLVerifyDepth 1 SSLCACertificateFile /etc/apache2/ssl/myca.crt <Location /jira> SSLRequire %{SSL_CLIENT_S_DN_CN} in {"AllUsers", "JiraUsers"} </Location> <LocationMatch "^/(?!jira)"> SSLRequire %{SSL_CLIENT_S_DN_CN} eq "AllUsers" </LocationMatch>


Las expresiones negativas negativas no son compatibles con apache 2.2

Ver https://issues.apache.org/bugzilla/show_bug.cgi?id=10932

No sé si se ha solucionado en la última versión de Apache.

Como solución alternativa, use:

<LocationMatch "/[^s][^t][^a][^t][^i][^c]"> </LocationMatch>

o

<LocationMatch "^/(?!static)"> </LocationMatch>