[opensuse-es] Autenticar squid por grupos
Hola gente, estoy con el siguiente problema.. Voy configurando mi servidor squid para autorizar los accesos a internet, y mi idea es hacerlo por usuario, de la estructura LDAP que tengo.. El problema es que no encuentro la forma de realizar la autenticacion por medio de grupos, osea, tengo un grupo cn=Internet,ou=Groups,dc=mi,dc=empresa,dc=com. el cual tiene en sus objectClass el posixGroups, y tengo los memberUid de los usuarios que quiero que accedan a internet, Pero no encuentro la forma de configurar squid para que deje acceder a internet solamente a los miembros de este grupo, si alguno tiene idea, agradezco, salu2 Carlitos --------------------------------------------------------------------- Para dar de baja la suscripción, mande un mensaje a: opensuse-es+unsubscribe@opensuse.org Para obtener el resto de direcciones-comando, mande un mensaje a: opensuse-es+help@opensuse.org
El Lunes, 21 de Julio de 2008, Carlos Moreira escribió:
Hola gente, estoy con el siguiente problema..
Voy configurando mi servidor squid para autorizar los accesos a internet, y mi idea es hacerlo por usuario, de la estructura LDAP que tengo.. El problema es que no encuentro la forma de realizar la autenticacion por medio de grupos, osea, tengo un grupo cn=Internet,ou=Groups,dc=mi,dc=empresa,dc=com. el cual tiene en sus objectClass el posixGroups, y tengo los memberUid de los usuarios que quiero que accedan a internet,
yo te conteste algo sobre esto la vez pasada.. pero no respondiste si lo que te conteste se sirvio o no y asi no avanzamos.. :-( Jaime V. ______________________________________________ LLama Gratis a cualquier PC del Mundo. Llamadas a fijos y móviles desde 1 céntimo por minuto. http://es.voice.yahoo.com --------------------------------------------------------------------- Para dar de baja la suscripción, mande un mensaje a: opensuse-es+unsubscribe@opensuse.org Para obtener el resto de direcciones-comando, mande un mensaje a: opensuse-es+help@opensuse.org
Perdona por no haber respondido en el post que correspondía.. te comento como he avanzado segun la ayuda que me diste.. Jaime Velez escribió:
El Martes, 15 de Julio de 2008, Carlos Moreira escribió:
auth_param basic program /usr/lib/squid/squid_ldap_auth -b "ou=users,dc=imcanelones,dc=gub,dc=uy" -h 10.1.1.25 -f (uid=%s) auth_param basic children 5 auth_param basic realm Squid proxy-caching web server auth_param basic credentialsttl 2 hours auth_param basic casesensitive off
Lo primero es que pruebes la orden así squid_ldap_auth -b "ou=users,dc=imcanelones,dc=gub,dc=uy" -h 10.1.1.25 -f (uid=%s)
cuando ejecutas la orden así la maquina se queda esperando algo.. das un usuario legal de ldap y el password del usuario separado por un espacio ejemplo: juan pepe12345 se refiere al usuario juan con password pepe12345 si el usuario existe en ldap y el password es correcto te debe aparecer un OK en mi caso la instrucción es squid_ldap_auth -b "ou=people,dc=Antiquitera,dc=site" -v 3 los usuarios están en el contenedor (unidad organizacional) people que pertenece a Antiquitera.site. (el -v 3 es que autentique contra un ldap versión 3)
si te aparecen puros ERR tienes un error de alguna clase o en la instrucción, o en el árbol LDAP, eso no tiene pierde.
solo has verificado que el usuario exista y su password sea correcto.
hasta aca me esta funcionando bien, escribo lo siguiente /usr/lib/squid/squid_ldap_auth -b ou=users,dc=imcanelones,dc=gub,dc=uy -h 10.1.1.25 -f uid=%s carlos.moreira micontraseña OK
falta que pertenezca a un grupo especifico (muy útil para que unos usuarios naveguen y otros no, o que unos naveguen con algunas restricciones y otros sin restricción) la instrucción esa es la parte que sigue
external_acl_type ldap_group children=7 %LOGIN /usr/lib/squid/squid_ldap_group -P -b "ou=users,dc=imcanelones,dc=gub,dc=uy" -f "(&(CN=%g)(objectClass=posixGroup)(memberUid=%u))"
nuevamente ejecuta la instrucción directamente en la linea de comandos (como root) así squid_ldap_group -P -b "ou=users,dc=imcanelones,dc=gub,dc=uy" -f "(&(CN=%g) (objectClass=posixGroup)(memberUid=%u))"
al ejecutarla te pide el usuario y el "grupo de control" por llamarlo de alguna forma, si por ejemplo el usuario es pepe y pepe pertenece al grupo "Internet" y son los usuarios de ese grupo los que tienen salida irrestricta entonces das pepe Internet la respuesta debe ser OK si pepe No pertenece al grupo Internet entonces la respuesta debe ser ERR el squid_ldap_group que me ha funcionado a mi es este squid_ldap_group -b "ou=group,dc=Antiquitera,dc=site" -f "(&(objectclass=posixGroup) (cn=%a) (member=uid=%v,ou=people,dc=Antiquitera,dc=site))" -B "ou=people,dc=Antiquitera,dc=site" -v 3 -s sub donde
-b "ou=group,dc=Antiquitera,dc=site" apunta al contenedor de grupos (unidad organizacional de los grupos) (aquí veo que apuntas a donde están los usuarios.. eso esta como raro
-f "(&(objectclass=posixGroup)(cn=%a) (member=uid=%v,ou=people,dc=Antiquitera,dc=site))" donde se busca al usuario especifico y que clase de objeto (objectclass) debe tener el usuario y
-B "ou=people,dc=Antiquitera,dc=site"
Especifica donde se encuentran los usuarios en mi caso hay básicamente dos contenedores en el árbol ldap (hay mas, pero para esto solo se tienen en cuenta dos) ou=people,dc=Antiquitera,dc=site (donde están los usuarios) ou=group,dc=Antiquitera,dc=site (donde están los grupos)
creo que eso es todo...
lo de las acl's esto esta mejor explicado en el archivo de squid de los que cualquiera te lo pueda explicar aquí. Espero haberte ayudado... suerte
Jaime V
/usr/lib/squid/squid_ldap_group -b "cn=Internet,ou=Groups,dc=imcanelones,dc=gub,dc=uy" -h 10.1.1.25 -f "(&(cn=%g)(memberUid=%u))" carlos.moreira Internet OK aca arregle un poco esta linea, y ahora si me esta dando OK, cuando consulto por un usuario que este en el grupo internet, y me da error cuando el usuario no esta en dicho grupo. Por lo que esto mejoro bastante. Igual no me esta dejando conecar a internet, pero creo que ahora el problema esta en como defini las listas de control de acceso o los permisos... Osea, creo que en alguna parte le tengo que poner que valide el grupo Internet.. no?? les dejo como lo tengo escrito, gracias por la ayuda acl lan src 10.1.1.0/255.255.255.0 acl password proxy_auth REQUIRED acl internet_users external ldap_group http_access allow internet_users http_access allow lan password http_access deny all No tengo que meter el grupo internet en algun lado?? Jaime Velez escribió:
El Lunes, 21 de Julio de 2008, Carlos Moreira escribió:
Hola gente, estoy con el siguiente problema..
Voy configurando mi servidor squid para autorizar los accesos a internet, y mi idea es hacerlo por usuario, de la estructura LDAP que tengo.. El problema es que no encuentro la forma de realizar la autenticacion por medio de grupos, osea, tengo un grupo cn=Internet,ou=Groups,dc=mi,dc=empresa,dc=com. el cual tiene en sus objectClass el posixGroups, y tengo los memberUid de los usuarios que quiero que accedan a internet,
yo te conteste algo sobre esto la vez pasada.. pero no respondiste si lo que te conteste se sirvio o no y asi no avanzamos.. :-(
Jaime V.
______________________________________________ LLama Gratis a cualquier PC del Mundo. Llamadas a fijos y móviles desde 1 céntimo por minuto. http://es.voice.yahoo.com
--------------------------------------------------------------------- Para dar de baja la suscripción, mande un mensaje a: opensuse-es+unsubscribe@opensuse.org Para obtener el resto de direcciones-comando, mande un mensaje a: opensuse-es+help@opensuse.org
--------------------------------------------------------------------- Para dar de baja la suscripción, mande un mensaje a: opensuse-es+unsubscribe@opensuse.org Para obtener el resto de direcciones-comando, mande un mensaje a: opensuse-es+help@opensuse.org
/usr/lib/squid/squid_ldap_group -b "cn=Internet,ou=Groups,dc=imcanelones,dc=gub,dc=uy" -h 10.1.1.25 -f "(&(cn=%g)(memberUid=%u))" carlos.moreira Internet OK ya este es un avance enorme... esta de un pelo...si el script funciona ya esta de un pelo
aca arregle un poco esta linea, y ahora si me esta dando OK, cuando consulto por un usuario que este en el grupo internet, y me da error cuando el usuario no esta en dicho grupo. Por lo que esto mejoro bastante.
Igual no me esta dejando conecar a internet, pero creo que ahora el problema esta en como defini las listas de control de acceso o los permisos... Osea, creo que en alguna parte le tengo que poner que valide el grupo Internet.. no?? les dejo como lo tengo escrito, gracias por la ayuda
El problema basicamente es de acl's falta poco.. ahora mismo lo unico que consegui es esto espero que te funcione.. no tengo ahora donde probarlo pero por probarlo.. no "creo" que el computador explote (pero por si acaso, pruebalo desde lejitos no sea que si explote y mate a alguien cercano) *********** acl password proxy_auth REQUIRED acl password_group external ldap_group Internet <-- aqui esta el grupo acl all src 0.0.0.0/0.0.0.0 acl manager proto cache_object acl localhost src 127.0.0.1/255.255.255.255 acl to_localhost dst 127.0.0.0/8 acl SSL_ports port 443 563 acl Safe_ports port 80 21 443 563 70 210 1025-65535 280 488 591 777 # acl Safe_ports port 21 # ftp # acl Safe_ports port 443 563 # https, snews # acl Safe_ports port 70 # gopher # acl Safe_ports port 210 # wais # acl Safe_ports port 1025-65535 # unregistered ports # acl Safe_ports port 280 # http-mgmt # acl Safe_ports port 488 # gss-http # acl Safe_ports port 591 # filemaker # acl Safe_ports port 777 # multiling http acl CONNECT method CONNECT http_access allow password_group http_access allow manager localhost http_access deny manager http_access deny !Safe_ports http_access deny CONNECT !SSL_ports http_access allow localhost http_access deny all ******************* Jaime V ______________________________________________ LLama Gratis a cualquier PC del Mundo. Llamadas a fijos y móviles desde 1 céntimo por minuto. http://es.voice.yahoo.com --------------------------------------------------------------------- Para dar de baja la suscripción, mande un mensaje a: opensuse-es+unsubscribe@opensuse.org Para obtener el resto de direcciones-comando, mande un mensaje a: opensuse-es+help@opensuse.org
El Lunes, 21 de Julio de 2008, Jaime Velez escribió: me falto las primeras linea de la cosa.. repito todo ***************** auth_param basic program /usr/sbin/squid_ldap_auth -b "ou=Users,ou=OxObjects,dc=incubarcaribe,dc=org" -D "uid=mailadmin,dc=incubarcaribe,dc=org" -w "xxxxxx" -u userPassword -v 3 -f "uid=%s" localhost #auth_param basic children 5 #auth_param basic realm Squid proxy-caching web server #auth_param basic credentialsttl 1 hours refresh_pattern ^ftp: 1440 20% 10080 refresh_pattern ^gopher: 1440 0% 1440 refresh_pattern . 0 20% 4320 half_closed_clients off # TAG: external_acl_type external_acl_type ldap_group %LOGIN /usr/sbin/squid_ldap_group -b "ou=Groups,ou=OxObjects,dc=incubarcaribe,dc=org" -f "(&(objectclass=posixGroup) (cn=%a)(memberUid=%v))" -v 3 localhost acl password proxy_auth REQUIRED acl password_group external ldap_group Internet <---agui esta el grupo acl all src 0.0.0.0/0.0.0.0 acl manager proto cache_object acl localhost src 127.0.0.1/255.255.255.255 acl to_localhost dst 127.0.0.0/8 acl SSL_ports port 443 563 acl Safe_ports port 80 21 443 563 70 210 1025-65535 280 488 591 777 # acl Safe_ports port 21 # ftp # acl Safe_ports port 443 563 # https, snews # acl Safe_ports port 70 # gopher # acl Safe_ports port 210 # wais # acl Safe_ports port 1025-65535 # unregistered ports # acl Safe_ports port 280 # http-mgmt # acl Safe_ports port 488 # gss-http # acl Safe_ports port 591 # filemaker # acl Safe_ports port 777 # multiling http acl CONNECT method CONNECT http_access allow password_group http_access allow manager localhost http_access deny manager http_access deny !Safe_ports http_access deny CONNECT !SSL_ports http_access allow localhost http_access deny all ********************* tendras que pegarle la adaptada... jaime V ______________________________________________ LLama Gratis a cualquier PC del Mundo. Llamadas a fijos y móviles desde 1 céntimo por minuto. http://es.voice.yahoo.com --------------------------------------------------------------------- Para dar de baja la suscripción, mande un mensaje a: opensuse-es+unsubscribe@opensuse.org Para obtener el resto de direcciones-comando, mande un mensaje a: opensuse-es+help@opensuse.org
Bien... les comento que al fiin pude solucionar el problema... les dejo un poco como me quedaron las lineas del squid.conf para autenticar cn ldap, por si a alguno le sirve para mas adelante.. auth_param basic program /usr/lib/squid/squid_ldap_auth -b "ou=users,dc=imcanelones,dc=gub,dc=uy" -h 10.1.1.25 -f "(uid=%s)" external_acl_type ldap_group children=7 %LOGIN /usr/lib/squid/squid_ldap_group -b "ou=Groups,dc=imcanelones,dc=gub,dc=uy" -h 10.1.1.25 -f "(&(cn=%g)(memberUid=%u))" acl password proxy_auth REQUIRED acl password_group external ldap_group Internet http_access allow password_group http_access deny !Safe_ports http_access deny CONNECT !SSL_ports http_access allow localhost http_access deny all muchas gracias jaime por la ayuda.. salu2 Carlitos Jaime Velez escribió:
El Lunes, 21 de Julio de 2008, Jaime Velez escribió: me falto las primeras linea de la cosa.. repito todo
***************** auth_param basic program /usr/sbin/squid_ldap_auth -b "ou=Users,ou=OxObjects,dc=incubarcaribe,dc=org" -D "uid=mailadmin,dc=incubarcaribe,dc=org" -w "xxxxxx" -u userPassword -v 3 -f "uid=%s" localhost #auth_param basic children 5 #auth_param basic realm Squid proxy-caching web server #auth_param basic credentialsttl 1 hours refresh_pattern ^ftp: 1440 20% 10080 refresh_pattern ^gopher: 1440 0% 1440 refresh_pattern . 0 20% 4320 half_closed_clients off # TAG: external_acl_type external_acl_type ldap_group %LOGIN /usr/sbin/squid_ldap_group -b "ou=Groups,ou=OxObjects,dc=incubarcaribe,dc=org" -f "(&(objectclass=posixGroup) (cn=%a)(memberUid=%v))" -v 3 localhost
acl password proxy_auth REQUIRED acl password_group external ldap_group Internet <---agui esta el grupo
acl all src 0.0.0.0/0.0.0.0 acl manager proto cache_object acl localhost src 127.0.0.1/255.255.255.255 acl to_localhost dst 127.0.0.0/8 acl SSL_ports port 443 563 acl Safe_ports port 80 21 443 563 70 210 1025-65535 280 488 591 777 # acl Safe_ports port 21 # ftp # acl Safe_ports port 443 563 # https, snews # acl Safe_ports port 70 # gopher # acl Safe_ports port 210 # wais # acl Safe_ports port 1025-65535 # unregistered ports # acl Safe_ports port 280 # http-mgmt # acl Safe_ports port 488 # gss-http # acl Safe_ports port 591 # filemaker # acl Safe_ports port 777 # multiling http acl CONNECT method CONNECT http_access allow password_group http_access allow manager localhost http_access deny manager http_access deny !Safe_ports http_access deny CONNECT !SSL_ports http_access allow localhost http_access deny all
*********************
tendras que pegarle la adaptada... jaime V
______________________________________________ LLama Gratis a cualquier PC del Mundo. Llamadas a fijos y móviles desde 1 céntimo por minuto. http://es.voice.yahoo.com
--------------------------------------------------------------------- Para dar de baja la suscripción, mande un mensaje a: opensuse-es+unsubscribe@opensuse.org Para obtener el resto de direcciones-comando, mande un mensaje a: opensuse-es+help@opensuse.org
--------------------------------------------------------------------- Para dar de baja la suscripción, mande un mensaje a: opensuse-es+unsubscribe@opensuse.org Para obtener el resto de direcciones-comando, mande un mensaje a: opensuse-es+help@opensuse.org
participants (2)
-
Carlos Moreira
-
Jaime Velez