Reglas de acceso por nombre de usuario


  • Buenas tardes.
    Implementé un servidor proxy con Squid+SquidGuard y pfSense 2.0.1
    Todo funciona bien usando el proxy transparente, el detalle es que para eso tengo que poner las IPs de los usuarios a los que doy/restrinjo el acceso a internet, por políticas de la empresa, las IPs son administradas por un servidor DHCP que las cambia cada cierto tiempo, el detalle es que cuando cambian las IPs de las maquinas, las reglas que estaban asignadas ya no se cumplen, se mueven a otras maquinas, etc, en total todo un enrredo, por lo que, lo que quiero es que las reglas se validen de acuerdo al usuario que inicia sesión en las máquinas, por ejemplo si tengo al usuario pepito en la maquina con IP 10.10.15.101, lo que hacía era crear una regla para esa IP, pero cuando el DHCP cambia la IP de pepito y le toca 10.10.15.125, las reglas ya no se cumplen, si no que le tocan las reglas de la otra IP, y así con los demás usuarios, también se da el caso de que el usuario pepito inicia sesión en otra computadora con otra IP diferente, y no tiene acceso a las paginas que utiliza desde su computadora, por que las reglas para esa otra computadora no son las mismas.

    Lo que quiero hacer es que no importa desde que computadora o que IP tenga, el usuario pepito tenga siempre las mismas reglas de acceso a internet, lo mismo para los demás usuarios, jaimito, luchito, pedrito, etc, etc.

    ¿Es posible hacer eso? ¿validar las reglas por nombre de usuario sin importar la computadora o IP que tengan?

    Los usuarios son administrados por Active Directory y todos usan Windows XP, algunos con iexplore (que verguenza, pero bueno…) y otros con Firefox.


  • Copio directamente de arriba (Documentación):

    Tutorial squid y squidGuard en pfSense
    http://forum.pfsense.org/index.php?topic=22273.0
    2.0 -> http://forum.pfsense.org/index.php/topic,44492.msg235654.html#msg235654

    ¿Proxy transparente?
    Muy cómodo, pero… no gestiona ni usuarios ni https...
    http://wiki.squid-cache.org/SquidFaq/InterceptionProxy#Concepts_of_Interception_Caching (en inglés)

    Forzar el uso de squid externo a pfSense
    http://forum.pfsense.org/index.php?topic=15571.0
    http://forum.pfsense.org/index.php?topic=21083.0

    Encontrar el proxy externo, WPAD (Web Proxy Autodiscovery Protocol)
    http://forum.pfsense.org/index.php?topic=29452.0
    http://foro.jotahacker.es/hacker-basico/descubrimiento-automatico-de-proxy-web-wpad-t463.0.html

    Documentación sobre squid
    squid es el servidor proxy-caché más popular. Puede instalarse en un pfSense que esté en disco duro.
    La interfase web de pfSense permite ajustar bastantes cosas de squid.
    Para más comprensión de qué es cada opción, va bien recurrir a la documentación oficial de squid.
    http://www.squid-cache.org/Doc/config/
    http://wiki.squid-cache.org/



  • Gracias por la respuesta sr. Ballera

    Sí, hace buen rato que leí toda la documentación, pero no encuentro algo que me ayude a solucionar mi problema
    no quiero fijar IPs, por politicas de la empresa, las IPs tienen y deben de ser dinámicas y cambiar cada cierto tiempo, existen algunos usuarios que utilizan diferentes computadoras para trabajar, y cada usuario tiene diferentes politicas de acceso a internet, por lo que también no  se puede poner reglas por IPs o MAC.

    Lo que quiero hacer es que el proxy se fije cual es el nombre del usuario que inició sesión y accede a internet para darle sus reglas. Por ejemplo
    El usuario Pepito, el día de hoy inicia sesión en su computadora, cuya IP es 10.10.100.105, en la tarde va a otra área dentro de la empresa e inicia sesión en una computadora X con IP 10.10.100.X, pero necesita acceder a páginas web para realizar su trabajo.
    Dentro de 2 semanas, el usuario Pepito inicia sesión en su computadora, pero ahora su IP es 10.10.100.120, y necesita acceder a las paginas web de siempre, pero ya no puede porque su IP es otra.

    Entonces lo que quiero hacer es que no importa cual sea la IP donde esté el usuario, si se llama Pepito, que se apliquen sus reglas, si se llama Jaimito, que se apliquen sus reglas, si se llama Luchito, que se apliquen sus reglas, todo eso independientemente de la IP o MAC o computadora desde la que se conecte.

    Osea, no amarrar las reglas por IP o MAC, si no por nombre de usuario.

    Gracias.


  • Dices que tienes Active Directory…

    Por políticas puedes decirle donde está el proxy.

    El proxy NO transparente validándose en Active Directory.
    http://forum.pfsense.org/index.php/topic,45548.msg238014.html#msg238014

    Y, finalmente, no autorizar la salida directa de las máquinas a Internet. Sólo el acceso al proxy.


  • Ya logré hacer que el proxy autentifique por usuarios (proxy no transparente), sin importar que IP tenga la computadora desde la que acceda.
    Eso desde Services->Proxy Server->Auth Settings  y en Auth method puse Local, luego se crean los usuarios con sus contraseñas, sólo para las personas que tendrán acceso a internet.
    Todas las reglas funcionan bién en cualquier computadora, pero ahora tengo otro problema con el correo y Thunderbird, que no se puede enviar ni recibir correos:  http://forum.pfsense.org/index.php/topic,46447.0.html


  • Eso desde Services->Proxy Server->Auth Settings  y en Auth method puse Local, luego se crean los usuarios con sus contraseñas, sólo para las personas que tendrán acceso a internet.

    Si te vale, ok. Como decías que tenías Active Directory…

    Saludos,

    Josep Pujadas


  • Sí tengo Active Directory, pero no es necesario que los 180 usuarios del active directory tengan acceso a internet, así que el tipo de autenticación que le puse es suficiente para controlarlos :D
    Ahora tengo el problemita con el thunderbird…


  • Hola.

    Siento reabrir el hilo, pero es en el que más me aclaro con mi problema. ¿Es posible registrar las url visitadas por cada usuario al configurarlo según comenta carlosj2585 con Auth method Local?

    Y otra pregunta.. ¿sabeis donde se guardan los usuarios? En que fichero / bbdd / etc. para entrar por shell.

    Gracias.


  • Hola
    Para revisar que URLs abren los usuarios, tienes que instalar el paquete LightSquid, que te muestra un reporte por días, horas, tamaño de archivos, URLs (e IP de maquina) del usuario.

    No estoy seguro donde se almacenan las cuentas de usuarios, por ahí lo ví en algún archivo, como texto plano (no se encriptan las contraseñas) pero ahora no recuerdo la ubicación de ese archivo… lo busco y te aviso...


  • Gracias por responder carlos.

    ¿Como puedo acceder al LightSquid? Estaré torpe, pero no lo veo, lo he instalado, y me sale proxy server que es el squid, y proxy filter, que es el squid guard, pero no encuentro nada más… Siento la pregunta tonta.

    Y si me averiguas lo del fichero me harías un favor, he visto que cuando entras a Local Users, en la url te sale "squid_users.xml", pero he buscado el fichero y no lo encuentro, y me vendría de perlas, porque por privacidad tengo que preparar un programita que a través de ssh conecte con el proxy, acceda al fichero, y modifique la contraseña, porque no quiero que los usuarios entren al panel del pfsense para cambiarlo "a pelo".

    Gracias por la ayuda.


  • Los reportes de Ligthsquid los encuentras en el menú «Status->Proxy Report»
    El archivo de usuarios locales está en /var/etc/squid.passwd  y las contraseñas sí están encriptadas, ese archivo xml que encontraste muestra las contraseñas sin encriptar (si no me estoy confundiendo)
    No recuerdo bien donde ví un post con una dirección para que el usuario cambie su contraseña directamente sin entrar a más configuraciones, es un vínculo que se le pasa, y ahí puede cambiar su contraseña para navegar por internet usando el proxy.


  • Gracias de nuevo Carlos.

    Si que he estado mirando lo del Lightsquid, pero me sale un error que estoy investigando porque no se como hacer el run lightparser.pl:

    LigthSquid diagnostic.
    Error : report folder '/var/lightsquid/report' not contain any valid data! Please run lightparser.pl (and check 'report' folder content)
    Please check config file !

    Respecto a lo de las contraseñas, si que es verdad que en el directorio que me has pasado están encriptadas, de todas formas estoy mirando si encuentro el tipo de encriptación por si puedo sobreescribir las contraseñas encriptandolas las nuevas encima. Respecto al xml, no están las contraseñas, se ve que llama a funciones, pero no encuentro la descripción, me pierdo siguiendo los includes. El archivo está en /usr/local/pkg/squid_users.xml.

    Seguiré buscando por si encuentro solución a estos problemas, si alguien lo sabe y me puede ayudar sería de agradecer.
    Gracias.


  • Hola.

    Pongo mis avances por si para alguien le sirve. He seguido el error del lightsquid, y al parecer este registro es solo si tienes squidguard, no el squid en si. Es decir, yo estoy usando los filtros (hablando de menus del pfsense) desde el proxy server, y no desde el proxy filter. Pero, si que he encontrado un log, que lo habilitas desde Services >> Proxy server >> Log store directory. Y luego voy a Diagnostics >> Edit File >> PONGO LA RUTA >> Load, y aquí ya me aparece el log de acceso en un fichero access.log, que es el que estoy usando hasta que tenga optimizado el proxy filter, que es necesario para la segunda parte de mi problema.

    Respecto al cifrado de contraseñas del squid, según dije en mi anterior post, en /var/etc/squid.passwd están las contraseñas encriptadas. Ahora bien, al entrar en /usr/local/pkg/squid_users.xml, aquí se llama a una función squid_resync_users(), la cual se encuentra enunciada en el fichero squid.inc en el que se describe que la contraseña se encripta en base64_encode. Bien, ya he avanzado, estoy empezando a hacer un programa en C# para entablar la conexión, recoger el fichero, modificar/añadir el fichero, y volverlo a subir. El problema es que no me funciona la conexión ssh para subir un fichero, porque al iniciar una conexión ssh pasa al menu de consola que esta por defecto, que luego ya pulsas el 8 y vas al shell.

    Estoy mirando a ver si puedo saltarme este menu de alguna forma, parece ser que en versiones anteriores según dice el hilo http://forum.pfsense.org/index.php?topic=3832.0, podías deshabilitarlo en System->Advanced->Miscellaneous->Console menu: disable console menu, pero ya no está, estoy mirando si al cambiar a la 2.0.1 está en otro lugar, si alguien lo sabe más rápido acabaré jeje.

    Saludos.