Ejemplos de ACL
acl todos
Una acl que verifica todos los equipos de la red. Puede parecer un poco tonta, pero se va a utilizar posteriormente para establecer una politica preestablecida para denegarlo o aceptarlo todo.
acl todos src 0.0.0.0/0.0.0.0
acl localhost
Nuestra propia maquina como origen de conexiones
acl localhost src 127.0.0.1/255.255.255.255
Nuestra propia máquina como destino de las conexiones
acl localhost_destino dst 127.0.0.0/8
http_access
Este es el parámetro que permite o deniega accesos a una o más acl.
La sintaxis de uso es:
http_access allow|deny [!]acl ...
Observamos como cada acl puede ir precedida por un signo "!" que indicaría que la acl no se verifica.
Por ejemplo, para permitir acceso fuera del horario laboral, según una acl que definimos anteriormente:
http_access allow ! horario_laboral
Para denegar el acceso en horario laboral
http_access deny horario_laboral
Para dar acceso completo a la red local
http_access allow red_local
Características de http_access
Si no hay ninguna línea de acceso la acción predeterminada es denegar la petición.
Si una petición no ha verificado ninguna línea de acceso, la ación que se realiza es la opuesta a la última línea de la lista. Si la última línea deniega entonces el valor predeterminado es permitir. Por este motivo es conveniente incluir una línea "deny all" o "allow all" al final de las listas de accesos para tener las cosas claras.
Es importante la forma en la cual añadimos los distinto parámetros http_access para determinar la forma en la que se comprueba. En primer lugar, todas las acl incluidas en en una cláusula http_access se comprueban y todas ellas tendrán que verificarse conjuntamente, es decir, como si estuvieran unidas por un operador AND. Después, los sucesivos parámetros http_access se evalúan individualmente, es decir, como si estuvieran unidos mediante un operador OR.
Por ejemplo
acl red1 src 192.168.0.0/24
acl red2 src 192.168.1.0/24
http_access allow red1 red2
permitiría el acceso a todas aquellas conexiones que procedieran a la vez de red1 y de red2, que probablemente no es lo que pretendemos. Para permitir acceso a las dos redes podríamos:
acl red1 src 192.168.0.0/24
acl red2 src 192.168.1.0/24
http_access allow red1
http_access allow red2
o también, de forma más simple:
acl redes src 192.168.0.0/24 192.168.1.0/24
http_access allow redes