Problema al validar usuario con el AD usando LDAP



  • Buenas tardes, quiero pedir su ayuda a ver si pueden orientarme en donde esta mi error, les explico.

    Estoy en una red donde tenemos: 1 servidor Windows 2003 donde esta el AD y es el servidor DHCP, tengo varias estaciones de trabajo y a parte tengo un equipo con Pfsense, el cual funciona como proxy con Squid y SquidGuard, las restricciones de navegación las ejecuto por las IP y trabajan sin problema, pero deseo hacer un cambio y restringir por usuario ya que los mismos están cambiando de estaciones de trabajo muy seguido, lo que me obliga a modificar las listas de accesos constantemente.

    Estuve leyendo algunos de los post que están acá y complemente con unos vídeos de Youtube, entonces pude crear el usuario que se conectara con el AD y el grupo donde él estará, en la opción "System -> User Manager" cree el mismo grupo y usuario, le di los permisos, en la pestaña "Services -> Proxy Server -> Auth Setting" cree la configuración, coloque el puerto y los valores que pude ver. Al ingresar en "Diagnostics -> Authentication", coloco los usuarios creados o cualquiera que esta en el AD y me dice que es satisfactoria la conexión, pero al ingresar en el navegador, cuando me pide usuario y contraseña…. Entra en un loop y no accede a ninguna pagina, como si no pudiera validar el usuario contra el proxy. anexo las siguientes pantallas con los valores actuales. Estoy usando pfsense 2.2.2.






  • No he probado eso pero creo que estás confundiendo la definición de servidores de autentificación para los servicios "propios" (administración, OpenVPN, Captive Portal…) de pfSense en System con la autentificación que pueden llevar los paquetes "añadidos" (squid…)

    Algunos enlaces sobre el tema:

    https://forum.pfsense.org/index.php?topic=48154.msg254233#msg254233

    http://es.slideshare.net/mauro430/autenticacion-proxy-fitermediantegrupodeldap



  • Gracias por la respuesta, básicamente la idea es simplemente activar el squid y squidguard como lo tengo actualmente, pero validando el usuario conectado contra el AD y no la ip, pero el mismo no funciona, en uno de los post que me informas, no puedo ver la imágenes, tal vez si pudiera, me ayudaría en el problema.





  • @bellera:

    Sobre http://forum.pfsense.org/index.php/topic,22273.0.html, escribí al autor del tutorial hace algunas semanas pero no me respondió.

    Encontré una copia en https://es.scribd.com/doc/252760895/Tutorial-simple-squid-squidguardiann

    La dejo en http://www.bellera.cat/josep/pfsense2/tutorial-simple-squid-squidguard.pdf

    Un millón de gracias por la atención y ayuda, pero esos paso de validación por IP, lo tengo cubiertos, de hecho, actualmente esta trabajando así, pero deseo implementar por usuario de red validado contra el AD ya que los usuarios se están cambiando de estaciones de trabajo, lo que me obliga a entrar y actualizar las IP. Allí es donde surge mi problema.  Como lo puse en el principio, ya logro que el pfsense se comunique con el AD, pero no logro que el pfsense acepte las conexiones de los usuarios al momento de la navegación, aún cuando coloco en el navegador, el nombre del servidor proxy y el puerto.

    Perdona que te moleste, pero crees que en algún momento sea posible que pueda conversar contigo en linea unos minutos para mostrarte con exactitud lo que hago y lo que me ocurre, tal vez es que no me explico claramente.



  • Perdona que te moleste, pero quiero anexarte el "Proxy config" , ya que tal vez con tu experiencia puedas ver algo que yo no. Muchas gracias por el apoyo.

    Do not edit manually !

    http_port 11.120.11.23:8080
    icp_port 0

    pid_filename /var/run/squid.pid
    cache_effective_user proxy
    cache_effective_group proxy
    error_directory /usr/pbi/squid-amd64/etc/squid/errors/Spanish
    icon_directory /usr/pbi/squid-amd64/etc/squid/icons
    visible_hostname midominio
    cache_mgr jescalona@midominio.com
    access_log /dev/null
    cache_log /var/squid/logs/cache.log
    cache_store_log none
    logfile_rotate 0
    shutdown_lifetime 3 seconds

    Allow local network(s) on interface(s)

    acl localnet src  11.120.11.0/255.255.255.0
    uri_whitespace strip

    cache_mem 8 MB
    maximum_object_size_in_memory 32 KB
    memory_replacement_policy heap GDSF
    cache_replacement_policy heap LFUDA
    cache_dir ufs /var/squid/cache 100 16 256
    minimum_object_size 0 KB
    maximum_object_size 10 KB
    offline_mode off

    No redirector configured

    Setup some default acls

    acl all src 0.0.0.0/0.0.0.0
    acl localhost src 127.0.0.1/255.255.255.255
    acl safeports port 21 70 80 210 280 443 488 563 591 631 777 901  3128 1025-65535
    acl sslports port 443 563 
    acl manager proto cache_object
    acl purge method PURGE
    acl connect method CONNECT
    acl dynamic urlpath_regex cgi-bin ?
    acl allowed_subnets src 11.120.11.0/24
    cache deny dynamic
    http_access allow manager localhost

    http_access deny manager
    http_access allow purge localhost
    http_access deny purge
    http_access deny !safeports
    http_access deny CONNECT !sslports

    Always allow localhost connections

    http_access allow localhost

    request_body_max_size 0 KB
    reply_body_max_size 0 deny all
    delay_pools 1
    delay_class 1 2
    delay_parameters 1 -1/-1 -1/-1
    delay_initial_bucket_level 100
    delay_access 1 allow all

    Custom options

    url_rewrite_program /usr/pbi/squidguard-amd64/bin/squidGuard -c /usr/pbi/squidguard-amd64/etc/squidGuard/squidGuard.conf
    url_rewrite_bypass off
    url_rewrite_children 16 startup=8 idle=4 concurrency=0
    auth_param basic program /usr/pbi/squid-amd64/libexec/squid/squid_ldap_auth -v 3 -b dc=midominio,dc=com -R -D 'cn=pfsense_admin,dc=Users,dc=midominio,dc=com' -w Pfsense -f 'sAMAccountName' -u  -P 11.120.11.4:389
    auth_param basic children 5
    auth_param basic realm Ingrese su usuario y clave de Windows
    auth_param basic credentialsttl 60 minutes
    acl password proxy_auth REQUIRED
    http_access allow password localnet
    http_access allow password allowed_subnets

    Default block all to be sure

    http_access deny all



  • http://wiki.squid-cache.org/ConfigExamples/Authenticate/WindowsActiveDirectory#squid.conf

    ### /etc/squid3/squid.conf Configuration File ####
    
    ### provide basic authentication via ldap for clients not authenticated via kerberos/ntlm
    auth_param basic program /usr/lib/squid3/squid_ldap_auth -R -b "dc=example,dc=local" -D squid@example.local -W /etc/squid3/ldappass.txt -f sAMAccountName=%s -h dc1.example.local
    auth_param basic children 10
    auth_param basic realm Internet Proxy
    auth_param basic credentialsttl 1 minute
    
    ### acl for proxy auth and ldap authorizations
    acl auth proxy_auth REQUIRED
    
    ### enforce authentication
    http_access deny !auth
    http_access allow auth
    http_access deny all
    


  • Si no funciona correctamente diría que el problema tiene que estar en la línea

    auth_param basic program /usr/pbi/squid-amd64/libexec/squid/squid_ldap_auth -v 3 -b dc=midominio,dc=com -R -D 'cn=pfsense_admin,dc=Users,dc=midominio,dc=com' -w Pfsense -f 'sAMAccountName' -u  -P 11.120.11.4:389
    

    Verifica que los parámetros sean correctos para tu LDAP.



  • Gracias por la información, aprovecho para decirte que no tengo un directorio "/etc/squid3/", de hecho al leer tu mensaje, procedí a instalar el paquete "squid3", pero aun así no tengo el directorio especificado, no se si es que me falta otro paquete más y no lo conozco. Los paquetes que tengo son: "squid","squid3","squidGuard","squidGuard-devel", de nuevo gracias por la ayuda.



  • No puedes tener squid 2.x y squid 3.x

    Uno u otro.

    Los directorios que te dí están sacados de la wiki de squid y no tiene por qué ser los mismos en la distribución que se emplea. En este caso pfSense, que aunque sea FreeBSD tampoco tiene exactamente la misma distribución de directorios.

    Siento haber provocado confusión…



  • Hola bellera, quería agradecerte el apoyo prestado, pude solventar el problema que tenia y efectivamente ya esta funcionando sin inconveniente el proceso, tuve que eliminar los grupos y usuarios creados en el AD y procedí a crearlos en una nueva unidad organizativa. Inicie todo el proceso de configuración del pfsense y todo esta OK.

    De nuevo, mil gracias por el apoyo. Si de alguna manera puedo ayudar, estoy totalmente a la orden.



  • Hola
    Entonces el problema fue del lado del AD y no del squid ?



  • @jjescalona:

    De nuevo, mil gracias por el apoyo. Si de alguna manera puedo ayudar, estoy totalmente a la orden.

    De nada.

    La mejor forma de colaborar es ser activo en el foro. Entre todos, mejoramos…



  • @acriollo:

    Hola
    Entonces el problema fue del lado del AD y no del squid ?

    Efectivamente, el problema estaba en la manera como se creo inicialmente en el AD. Para resolver el problema cree una nueva Unidad Organizativa, dentro de ella el usuario de verificación y el grupo a validar el privilegio de navegación.



  • Buenas tardes, tengo exactamente el mismo problema. como lograste solucionarlo? saludos



  • Adicional, y notas para futuros casos de Squid+SquidGuard con AD.

    1. Traten de que los grupos esten creados sin espacios, en ou sin espacios, cuestion de que sea mas facil la ubicacion ej:  cn=GrupoVIP,ou=Internet,dc=dominio,dc=local

    2. Traten de que el usuario no tenga ni apellidos ni nombre (me refiero al usuario que usa Squidguard para leer el LDAP) , ya que el Squid usa el ID puro ejemplo  pperez, pero el squidGuard utiliza el CN completo:  Pedro Perez,  por lo que el estring quedara en el squidguard seria: cn=Pedro Perez,ou=Usuarios,dc=dominio,dc=local

    Y en el Squid: cn=pperez,ou=Usuarios,dc=dominio,dc=local

    1. Eviten ACL o GPO en el AD donde el usuario se pueda conectar en una sola maquina, esto debido a que al AD llega la peticion del usuario como si intentara conectarse al squid. Por lo que el AD no lo dejara autenticar.  Esto lo pueden arreglar haciendo desde el squid con ma_user_ip Acl pura del squid.  Asi evitan que el usuario preste su contraseña.