Problemilla con Squid

Imagen de rpujolp
0 puntos

Haciendo pruebas con squid y con esta configuracion en concreto

acl recepcio src 192.168.13.27 192.168.13.28
acl recepcio2 src 192.168.13.29
acl alumnes src 192.168.13.25
acl onlymnac dstdomain .mnac.cat
acl nogroc dstdomain .groc.es
acl localnet src 192.168.13.0/24

http_access deny recepcio
http_access deny recepcio2 !onlymnac
http_access allow alumnes !nogroc
http_access allow localnet

la intención es que la ip 192.168.13.25 tenga acceso a todo menos a www.groc.es y me deja acceder a ella. Todo lo demas va perfecto.
Sé que es muy básico pero son los primeros pinitos con squid... gracias de antemano.

Imagen de Firecold
+1
0
-1

esto lo puedes hacer con listas de acceso de esta manera ejemplo:

acl mired src "/etc/squid3/mired.txt" # creas el archivo mired.txt en la carpeta de squid y escribes las ips que deseas que tengan internet, los que no esten en esta lista no tendran acceso a internet.
acl webloqueadas url_regex -i "/etc/squid3/sitiosdenegados.txt" # tambien creas este archivo y adentro escribes las paginas que deseas bloquear.

http_access allow mired !webloqueadas
http_access deny all

espero que te halla sido de ayuda cualquier duda no escatimes en preguntar. Saludos

+1
0
-1
Imagen de rpujolp
+1
0
-1

Gracias Firecold pero antes de meterme en otras posibilidades necesito saber la razon por la que esto funciona

acl groc dstdomain .groc.es
acl localnet src 192.168.13.0/24
http_access allow localnet !groc

Aqui se bloquea www.groc.es perfectamente

y esto no

acl groc dstdomain .groc.es
acl becario src 192.168.13.25
acl localnet src 192.168.13.0/24
http_access allow becario !groc
http_access allow localnet

Aqui 192.168.13.25 puede entrar en www.groc.es cuando no deberia.

+1
0
-1
Imagen de Firecold
+1
0
-1

srcdomain y dstdomain
Estos tipos de acl especifican un nombre de dominio.
En el caso de srcdomain es el dominio origen y se determina por resolución DNS inversa de la IP de la máquina, es decir, tendremos que tener bien configurado el DNS de la red local.
En el caso de dstdomain el nombre del dominio se comprueba con el dominio que se haya especificado en la petición de página web.
Por ejemplo:
acl google_com dstdomain google.com

url_regex
Permite especificar expresiones regulares para comprobar una url completa, desde el http:// inicial.
Por ejemplo:
Denegar todos los ficheros de tipo exe que provengan de virus_fijo.com
acl anti_exe url_regex -i exe$
acl vfijo dstdomain virus_fijo.com
http_access deny anti_exe vfijo

SQUID trabaja o aplica las reglas "de arriba hacia abajo" en tu caso, se aplica el permiso de navegar a la ip 192.168.13.25, perfecto, despues de niega el acceso a groc, PERO, ya tiene la red permiso de navegar, asi que esa DENY no funciona o tambien puedes probar de esta manera denegando primero groc y despues dando permiso de navegar a dicha ip Ejemplo:

acl groc dstdomain .groc.es
acl becario src 192.168.13.25
acl localnet src 192.168.13.0/24
http_access deny groc
http_access allow becario
http_access allow localnet
http_access deny all

Solo que de esta forma, NADIE podria entrar a groc. Si quieres que solo un usuario sea el que tenga prohibido el acceso a ese site, pues debes especificarlo! Corregido, es que estaba contestando en otros post y cruce uno con otro. pero ahi esta

+1
0
-1
Imagen de rpujolp
+1
0
-1

Gracias por la respuesta pero te robaré un poco mas de paciencia. Como dices las reglas se aplican de arriba a abajo y cuando se encuentra una coincidiencia se dejan de aplicar. En este caso
acl groc dstdomain .groc.es
acl becario src 192.168.13.25
acl localnet src 192.168.13.0/24

http_access allow becario !groc ;aqui se permite la IP 13.25 y se le prohibe el acceso al dominio .groc.es a la vez.
http_access allow localnet ;aqui se le da permiso a la red, pero en el caso de la IP del becario ya no llegaria.

Lo mejor del caso es que si hago
http_access allow becario !groc
http_access deny localnet

sí que funciona. Se bloquea esta web al becario y puede navegar en el resto.

Cuando me dices "en tu caso, se aplica el permiso de navegar a la ip 192.168.13.25, perfecto, despues de niega el acceso a domain, PERO, ya tiene la red permiso de navegar," creo que la red aún no tiene permiso para navegar, se le da después, y en principio ya no deberia seguir aplicando ninguna regla más: no?

Me esta comiendo la moral la duda esta!

Saludos

+1
0
-1
Imagen de Firecold
+1
0
-1

tus reglas estaban asi:

acl groc dstdomain .groc.es # la web que deseas bloquear
acl becario src 192.168.13.25 # la ip de cierta maquina
acl localnet src 192.168.13.0/24 # la red de tu lan imagino
http_access allow becario !groc # aqui estas dando permiso de navegar a esta ip pero sin poder ingresar a groc.
http_access allow localnet # aqui estas dando perniso de navegar desde 192.168.13.1 a 192.168.13.255 entonces le estas diciendo a SQUID que todos pueden navegar libremente sin ninguna restriccion incluida 192.168.13.25.

Ejemplo dado por mi:

acl groc dstdomain .groc.es # domain o dominio que deseas bloquear
acl becario src 192.168.13.25 # ip de cierta mauina
acl localnet src 192.168.13.0/24 # red local
http_access deny groc # denegando groc a TODOS por eso se escribe primero
http_access allow becario # dandole permisos de navegar, pero desde el principio denegara groc
http_access allow localnet # dandole permisos a la red
http_access deny all # denegando todo lo que no este relatado en este archivo

Ahora bien si quieres darle permiso de navegar en groc a toda la red menos a 192.168.13.25 seria de esta manera:

acl localnet src 192.168.13.0/24
acl groc dstdomain .groc.es
acl becario src 192.168.13.25
http_access allow localnet
http_access allow becario !groc
http_access deny all

Asi permites que toda la red entre a groc menos 192.168.13.25, espero que esto aclare tus dudas.

+1
0
-1
Imagen de rpujolp
+1
0
-1

Mil gracias por tu paciencia. He probado tu configuración y tampoco bloquea la web esta a la estación. No se si cortarme las venas esta noche ja ja.

+1
0
-1
Imagen de Firecold
+1
0
-1

solo una pregunta amigo estas reiniciando el servicio despues de cada cambio y si aun no te funciona usa url_regex a mi forma de ver es mas eficiente, prueba y me avisas.

prueba con esto:

acl accesototal src "/etc/squid3/accesototal.txt" # asi como lo dice sin restricciones
acl mired src "/etc/squid3/mired.txt # aqui la ips que no quieres que entren a groc
acl webloqueadas url_regex -i "/etc/squid3/sitiosdenegados.txt" # aqui escribes las webs que quieras bloquear como .groc.es

http_access allow accesototal # permites a las ips que esten el archivo accesototal.txt
http_access allow mired !webloqueadas # permites las ips que quieres que no entren a groc
http_access deny all # siempre añade esto

reinicias el servicio si estas usando squid 3 seria: sudo service squid3 stop y sudo service squid3 start y despues de esto pruebas. el reload relee la configuracion pero muchas veces no la aplica.

+1
0
-1
Imagen de rpujolp
+1
0
-1

Si si, hago un reload cada vez.
Buscando por internet he encontrado la solución!

acl becari src 192.168.13.50/255.255.255.255
acl groc_es dstdomain .groc.es

http_access deny becari groc_es
http_access allow localnet
http_access allow localhost

Así sí que funciona!

Gracias amigo por tu gran paciencia y saludos.

+1
0
-1