-
[Squid] Erro nas ACL´s
Boa Tarde Galera,
Estou cnfigurando meu squid com o squid.conf da seguinte maneira:
#############################
### Administracao ###
#############################
coredump_dir /var/cache/squid
http_port 3128
cache_mgr [email protected]
request_body_max_size 45 MB
request_header_max_size 10000 KB
ie_refresh on
cache_mem 100 MB
cache_dir ufs /var/log/squid/squid 300 32 256
cache_access_log /var/log/squid/access.log
cache_log /var/log/squid/cache.log
cache_store_log /var/log/squid/store.log
##############################
###### ACL ######
##############################
acl all src 0.0.0.0/0.0.0.0
acl lan src 192.168.1.0/255.255.255.0
acl abre_porta port 80 8080 21 22 443 53 25 110
acl bloq_conteudo urlpath_regex \.torrent$
acl sites_bloquados dstdomain -i "/etc/squid/acl/sites_bloqueados"
###############################
### Aplica as ACLs ###
###############################
http_access deny all
http_acess allow abre_porta
http_access allow lan
http_access deny bloq_conteudo
http_access deny sites_bloqueados
Quando tento inicar o serviço, recebo a seguinte mensagem:
~# /etc/init.d/squid start
Starting Squid HTTP proxy: squidFATAL: cache_dir /var/log/squid/squid: (2) No such file or directory
Squid Cache (Version 2.7.STABLE3): Terminated abnormally.
CPU Usage: 0.004 seconds = 0.000 user + 0.004 sys
Maximum Resident Size: 0 KB
Page faults with physical i/o: 0
/etc/init.d/squid: line 73: 3505 Abortado start-stop-daemon --quiet --start --pidfile $PIDFILE --chuid $CHUID --exec $DAEMON -- $SQUID_ARGS < /dev/null
failed!
Onde está o erro?
-
Starting Squid HTTP proxy: squidFATAL: cache_dir /var/log/squid/squid: (2) No such file or directory
Voce tem que criar esse diretorio e e dar permissoes ao squid para ele... E depois rodar o squid -z para que ele crie a arvore do cache no diretorio.
Alem disso:
acl sites_bloquados dstdomain -i "/etc/squid/acl/sites_bloqueados" <- digitado errado
http_access deny sites_bloqueados
http_acess allow abre_porta <- tambem errado...
Acredito que tambem tenha um problema na sequencia das ACLs... O squid faz match da primeira e depois PARA. Se voce colocar do jeito que esta, ninguem vai funcionar... Acredito que a ordem certa seria:
http_access deny bloq_conteudo
http_access deny sites_bloqueados
http_access allow lan
http_access allow abre_porta < -- tenho duvidas se essa regra eh necessaria...
http_access deny all
-
Obrigado, já corrigi o nome da ACL sites_bloqueados.
Já tenho o diretório /var/log/squid onde estão os arquivos:
:/var/log/squid# ls -lat
total 20
drwxr-x--- 2 proxy proxy 4096 Nov 18 06:25 .
drwxr-xr-x 7 root root 4096 Nov 18 06:25 ..
-rw-r----- 1 proxy proxy 10832 Nov 17 13:33 cache.log.1
-rw-r----- 1 proxy proxy 0 Nov 17 12:54 access.log.1
-rw-r----- 1 proxy proxy 0 Nov 17 12:54 store.log.1
A pasta /var/log/squid está com as permissões abaixo:
drwxr-x--- 2 proxy proxy 4096 Nov 18 06:25 squid
Quanto as ACL´s, elas não são lidas de cima pra baixo??? Logo a ordem não seria a seguinte:
1 - Fecha tudo
2 - Abre o necessário.
3 - Nega.
4 - Permite.
????
-
Sim, elas sao lidas de cima para baixo... Mas no momento que ele "encaixa" o cara em uma regra, ele para por ali e nao le as proximas...
Se voce colocar um deny all no inicio, ele vai negar todo mundo e vai parar por ali...
O normal seria algo do tipo:
deny algum dominio
deny algum regex
aceita fulano
deny o resto
Nao sei de deu pra ficar claro isto...
Em relacao ao erro, a linha que esta dando erro eh a do cache, nao a de logs... Esta:
cache_dir ufs /var/log/squid/squid 300 32 256
Voce esta dizendo ai que dentro de /var/log/squid deveria ter OUTRO diretorio squid, onde ficara o cache.
As diretivas de cache_log, access_log estao corretas, falta a criacao deste diretorio para o cache dentro de /var/log/squid...
Basta um:
mkdir -p /var/log/squid/squid
chown squid:squid /var/log/squid -R
-
Entendi sim a parte das ACL´s.
Quando ele encontra uma regra que atenda, ele não continua nas demais regras, certo?
Usei as portas com base nas ACL´s do próprio squid. Pq acham que elas não seriam necessárias?
PS: Consegui startar o serviço, o novo squid.conf está assim:
#############################
### Administracao ###
#############################
coredump_dir /var/cache/squid
http_port 3128
cache_mgr [email protected]
request_body_max_size 45 MB
request_header_max_size 10000 KB
ie_refresh on
cache_mem 100 MB
cache_dir ufs /var/cache/squid 300 32 256
cache_access_log /var/log/squid/access.log
cache_log /var/log/squid/cache.log
cache_store_log /var/log/squid/store.log
##############################
###### ACL ######
##############################
acl all src 0.0.0.0/0.0.0.0
acl lan src 192.168.1.0/255.255.255.0
acl abre_porta port 80 8080 21 22 443 53 25 110
acl bloq_conteudo urlpath_regex \.torrent$
acl sites_bloqueados dstdomain -i "/etc/squid/acl/sites_bloqueados"
###############################
### Aplica as ACLs ###
###############################
http_access deny all
http_access allow abre_porta
http_access allow lan
http_access deny bloq_conteudo
http_access deny sites_bloqueados
PS: tive que criar a pasta /var/cache/squid e colocar como proprietário o usuário proxy.