acl aclname src ip-address/mask ... :: clients IP address [fast]
acl aclname src addr1-addr2/mask ... :: range of addresses [fast]
acl aclname dst ip-address/mask ... :: URL host's IP address [slow]
acl aclname localip ip-address/mask ... :: IP address the client connected to (endereço IP de cliente conectado a) [fast]
acl aclname arp mac-address ... (xx:xx:xx:xx:xx:xx notação)
A ACL arp requer a opção "--enable-arp-acl", além disso, ACLs arp não são portáveis para todos os sistemas operacionais.
Funciona em
GNU/Linux, Solaris, Windows, FreeBSD e algumas outras variantes do *BSD.
[fast]
* Nota: o Squid3 só pode determinar o endereço MAC para os clientes que estão na mesma sub-rede. Se o cliente estiver em uma sub-rede diferente, então o Squid3 não pode descobrir o endereço MAC.
acl aclname srcdomain .foo.com ... :: reverse lookup, from client IP [slow]
acl aclname dstdomain .foo.com ... :: Destination server from URL [fast]
acl aclname srcdom_regex [-i] \.foo\.com ... :: regex matching client name [slow]
acl aclname dstdom_regex [-i] \.foo\.com ... :: regex matching server [fast]
Para "dstdomain" e "dstdom_regex", uma pesquisa inversa é tentada se o IP baseado na URL não for encontrado. O nome "none" é usado se a pesquisa inversa falhar.
acl aclname src_as number ...
acl aclname dst_as number ... :: [fast]
Exceto para controle de acesso, números AS podem ser usados para encaminhamento das requisições de caches específicos. Abaixo, tem um exemplo para encaminhar todos os pedidos de "AS#1241" e só para aqueles em "mycache.mydomain.net":
# acl asexample dst_as 1241
# cache_peer_access mycache.mydomain.net allow asexample
# cache_peer_access mycache_mydomain.net deny all
acl aclname peername myPeer ... :: [fast] corresponde com a entrada cache_peer setando name= on na linha cache_peer lines para uso confiável.
- acl aclname time [day-abbrevs] [h1:m1-h2:m2]
- [fast]
- day-abbrevs:
- S - Sunday
- M - Monday
- T - Tuesday
- W - Wednesday
- H - Thursday
- F - Friday
- A - Saturday
- h1:m1 deve ser menor do que h2:m2
Coloque sempre os dias na ordem, você pode omitir dias, mas coloque na ordem.
acl aclname url_regex [-i] ^http:// ... :: regex (expressão regular) corresponde a todas as URLs [fast]
acl aclname urllogin [-i] [^a-zA-Z0-9] ... :: regex corresponde ao campo de login na URL
acl aclname urlpath_regex [-i] \.gif$ ... :: regex que corresponde ao caminho da URL [fast]
acl aclname port 80 70 21 0-1024... :: porta TCP de destino [fast]. Intervalos são permitidos.
acl aclname localport 3128 ... :: porta TCP de conexão [fast]. NP: para o modo "intercept" é usualmente '80'
acl aclname myportname 3128 ... :: porta http(s)_port (quando usar https coloque uma porta diferente de http_port) [fast]
acl aclname proto HTTP FTP ... :: requisição de protocolo [fast]
acl aclname method GET POST ... :: requisição de método HTTP [fast]
acl aclname http_status 200 301 500- 400-403 ... :: código do status na resposta [fast]
acl aclname browser [-i] regexp ... :: o padrão corresponde ao cabeçalho User_Agent (veja também req_header abaixo) [fast]
acl aclname referer_regex [-i] regexp ... :: o padrão corresponde ao cabeçalho refererr [fast]. referer é pouco confiável, então use com cuidado.
acl aclname ident username ...
acl aclname ident_regex [-i] pattern ... :: a string corresponde à saída ident [slow] use REQUIRED para aceitar qualquer ident não-nulo.
acl aclname proxy_auth [-i] username ...
acl aclname proxy_auth_regex [-i] pattern ... :: autenticação HTTP verifica se o login e a senha digitados conferem com o login e a senha cadastrados [slow] e recebe uma lista de nomes de usuários permitidos.
Use REQUIRED para aceitar qualquer nome de usuário válido. Utilize a autenticação de proxy em cenários forward-proxy e autenticação HTTP simples em cenários reverse-proxy.
NOTAS:
- Quando um cabeçalho de autenticação de proxy é enviado, mas não é necessário na checagem da ACL, então o nome do usuário NÃO será registrado no access.log.
- proxy_auth requer um programa de autenticação EXTERNO para checar as combinações de login e senha (veja a diretiva auth_param).
- proxy_auth não pode ser usado em um proxy transparent/intercep. O navegador precisa ser configurado para usar um proxy e responder à autenticação.
acl aclname snmp_community string ... :: comunhão de strings para limitar o acesso ao agente SNMP [fast]
Exemplo:
acl snmppublic snmp_community public
acl aclname maxconn number :: será correspondido quando o endereço IP do cliente tem mais do que <number> conexões TCP estabelecidas. [fast]
* Nota: só mede conexões TCP diretas, então X-Forwarded-For para clientes indiretos não serão contadas.
acl aclname max_user_ip [-s] number :: corresponde quando o usuário tenta logar mais de uma vez com IPs diferentes. O parâmetro "authenticate_ip_ttl" controla o tempo de espera nas entradas. [fast]
Se "-s" for especificado, o limite é rigoroso, negando a navegação de outros endereços IP até que o TTL expire. Sem "-s", o Squid3 vai irritar o usuário negando requisições aleatoriamente (o contador é zerado cada vez que o limite é atingido e um pedido for negado).
* Nota: no modo de aceleração, ou onde haja um mix de proxies, os clientes podem parecer vir de múltiplos endereços, se forem passando por muitos proxies, então, um limite de 1, nesse caso, pode causar problemas para os usuários.
acl aclname random probability :: corresponde pseudo-aleatoriamente as requisições, com base na probabilidade dada.
A probabilidade pode ser escrita como um decimal (0,333), como fração (1/3) ou como razão de matches:non-matches (3:5).
acl aclname req_mime_type [-i] mime-type ... :: a regex corresponde com o tipo mime da requisição gerada pelo cliente. Pode ser usada para detectar upload de arquivos em alguns tipos de requisições HTTP por tunelamento [fast]
* Nota: NÃO coincide com a resposta. Você não pode usar para saber o tipo de arquivo retornado.
acl aclname req_header header-name [-i] any\.regex\.here :: A regex corresponde com qualquer um dos cabeçalhos de requisição conhecidos. Pode ser vista como um super-conjunto de "browser", "referer" e "mime-type" ACLs [fast]
acl aclname rep_mime_type [-i] mime-type ... :: a regex corresponde com o tipo mime da resposta recebida pelo Squid3. Pode ser usada para detectar download de arquivos em alguns tipos de requisições HTTP por tunelamento [fast]
* Nota: não tem nenhum efeito nas regras http_access. Só tem efeito nas regras que afetam o fluxo de dados de resposta como "http_reply_access".
acl aclname rep_header header-name [-i] any\.regex\.here :: a regex corresponde com qualquer um dos cabeçalhos de resposta conhecidos. Pode ser vista como um super-conjunto de "browser", "referer" e "mime-type" ACLs [fast]
acl aclname external class_name [arguments...] :: ACL externa de pesquisa por meio de uma classe auxiliar definida pela diretiva external_acl_type [slow]
acl aclname user_cert attribute values... :: corresponde com os atributos do usuário no certificado SSL sendo um dos DN/ C/ O/ CN/ L/ ST [fast]
acl aclname ca_cert attribute values... :: corresponde com os atributos do usuário no certificado CA SSL sendo um dos DN/ C/ O/ CN/ L/ ST [fast]
# acl aclname ext_user username ...
# acl aclname ext_user_regex [-i] pattern ... :: a string corresponde com o nome de usuário retornado pela ACL externa [slow]. Use REQUIRED para aceitar qualquer nome de usuário não-nulo.
acl aclname tag tagvalue ... :: a string corresponde com a tag retornada pela ACL externa.
acl aclname hier_code codename ... :: a string corresponde com o código de hierarquia do Squid3 [fast]. Por exemplo, DIRECT, PARENT_HIT, NONE, etc.
* Nota: não tem nenhum efeito nas regras "http_access". Só tem efeito nas regras que afetam fluxo de dados de resposta, como "http_reply_access".
Exemplos:
acl macaddress arp 09:00:2b:23:45:67
acl myexample dst_as 1241
acl password proxy_auth REQUIRED
acl fileupload req_mime_type -i ^multipart/form-data$
acl javascript rep_mime_type -i ^application/x-javascript$
Default:
ACLs all, manager, localhost, e to_localhost são predefinidas.