Thread name: "Re: [Gutl-l] Incrementar la seguridad en el Proxy(Squid) [1/2Solucion]" Mail number: 22 Date: Wed, Apr 08, 2015 In reply to: Michael González Medina > > El 07/04/15 a las 18:15, låzaro escribió: > >Thread name: "Re: [Gutl-l] Incrementar la seguridad en el Proxy(Squid) > >[1/2Solucion]" > >Mail number: 11 > >Date: Tue, Apr 07, 2015 > >In reply to: Michael González Medina > >>El 07/04/15 a las 16:56, Michael González Medina escribió: > >>>El 07/04/15 a las 16:48, Carlos R Laguna escribió: > >>>>El 07/04/15 a las 16:06, ERNESTO TUR LAURENCIO escribió: > >>>>>Como bien dices la idea de blindar más aún las conexiones > >>>>>mediante el uso de SSL es una, lo que ya sabes que vas a > >>>>>sacrificar velocidad de acceso por nivel de cifrado. > >>>>> > >>>>>Mientras no aparezca la indicada, goza con la equivocada. > >>>>> > >>>>>Salu2 > >>>>> > >>>>>-----Mensaje original----- > >>>>>De: gutl-l-boun...@jovenclub.cu > >>>>>[mailto:gutl-l-boun...@jovenclub.cu] En nombre de Michael > >>>>>González Medina > >>>>>Enviado el: martes, 07 de abril de 2015 02:39 p.m. > >>>>>Para: Lista cubana de soporte tecnico en Tecnologias Libres > >>>>>Asunto: [Gutl-l] Incrementar la seguridad en el Proxy(Squid) > >>>>> > >>>>>Buenas tardes: > >>>>> > >>>>>Antes que nada aclarar, que, cuando me refiero a seguridad en > >>>>>el Proxy(Squid), estoy hablando de, la comunicación entre el > >>>>>cliente y el servidor. Este tema se ha tocado varias veces y > >>>>>existen otras variantes(como el Kerberos, LDAP, helpers del > >>>>>Squid hechos para esto, > >>>>>etc) pero... siempre hay un pero... existen > >>>>>holgazanes/vagos/paranoicos como yo, a los que estas > >>>>>soluciones les resulta un tanto engorrosas o... > >>>>>no compatible por filosofía etc... > >>>>> > >>>>>En fin, que buscando y probando, he logrado el tópico de este > >>>>>correo pero, sin usar ninguna de las soluciones anteriores > >>>>>sino, una un poco mas sencilla, pero que por ello, no deja de > >>>>>ser válida, cual...: > >>>>> > >>>>>Web Proxy Autodiscovery Protocol(WPAD) sobre SSL > >>>>> > >>>>>me explico: > >>>>> > >>>>>Mediante el queridísimo servidor de páginas web Apache, > >>>>>montamos un Virtualhost(mencionar aquí *muy importante* que se > >>>>>le debe habilitar el soporte para SSL lo cual es crítico en > >>>>>este caso[lo explico mas adelante]), en este, ponemos el > >>>>>script "proxy.pac" (que es el que contiene la información del > >>>>>proxy), luego en los clientes(es decir en los > >>>>>navegadores[Firefox]) configuramos la red como "configuración > >>>>>automática del proxy" y le ponemos la url del Virtualhost, y > >>>>>listo! > >>>>> > >>>>>La diferencia del método tradicional (sin soporte para SSL) > >>>>>es... que... > >>>>>mientras, en el método anterior, si se conecta un > >>>>>sniffer(hablo de sniffer porque es lo mas común para > >>>>>monitorear redes en busca de datos > >>>>>etc..) y se monitorean las conexiones, se podían obtener datos > >>>>>relevantes en cuanto a user/pass etc.. sin embargo, al estar > >>>>>comunicándose sobre SSL el sniffer no puede ver con la misma > >>>>>facilidad dichos datos, por lo que, sí, creo que ahora la > >>>>>comunicación entre cliente-servidor es un tanto más segura, > >>>>> > >>>>>saludos, > >>>>> > >>>>>PD: Se aceptan críticas/debates , dale Lázaro, "pichea" que yo > >>>>>se que este tema te encanta. > >>>>> > >>>>> > >>>>> > >>>>> > >>>>>______________________________________________________________________ > >>>>>Lista de correos del Grupo de Usuarios de Tecnologías Libres de Cuba. > >>>>>Gutl-l@jovenclub.cu > >>>>>https://listas.jovenclub.cu/cgi-bin/mailman/listinfo/gutl-l > >>>>Tus opciones son, Kerberos > >>>>SSL, Firefox y Chrome lo soportan aunque no esta muy documentado. > >>>> > >>>> > >>>cierto Carlos, lo que pasa es que no me quiero enredar ni con > >>>Kerberos ni con LDAP para autenticar usuarios de un proxy, de > >>>cualquier forma, muchas gracias por tu respuesta. > >>> > >>>Por ejemplo, estoy "sniffeando" el esquema el digest y hasta > >>>ahora... no veo el texto plano con el user y pass, así que.... > >>>pudiera(dejame cruzar los dedos.... ;-) ) ser una opción, > >>> > >>>saludos, > >>> > >>Bueno vamos mejorando, ya me he cansado de "sniffear" el trafico de > >>datos entre cliente y servidor para autenticar en el Proxy y no > >>aparece el texto plano por ninguna parte, en cambio el metodo digest > >>usa nuevos campos como el nonce y el cnonce donde al parecer viajan > >>encriptados los datos del password(el campo user sigue siendo plano) > >>pero bueno, ya creo que ahora si, esta un pelin mas seguro, > >> > >>saludos, > >> > >>PD: No obstante sigo a la busqueda de perfeccionar esto hasta donde > >>sea posible. > >En digest, el servidor del lado de hallá, almacena el password cifrado > >y el cliente le envía dicho password cifrado, el servidor lo compara > >con el que tiene almacenado y lo mache. Lo cual no es muy diferente de > >si yo te intercepto el password y te lo mando cifrado :D sin > >importarme cual sea este xD > > > > > > > y haz probado que pinche esto que me comentas? Te pregunto porque > cuando cliente-servidor establecen una conexión para transferir > datos(en este caso user/pass) dichos datos interceptados(flags, > headers, etc... ) en teoría deberían ser válidos durante el tiempo > de conexión por lo que si los interceptas y envías desde otro host > no deberían servirte, >
y sigo pensando en voz alta... La página tiene una mecánica sensilla. Conectado por SSL, en mi caso a Unicorn como servidor web. Ahí te muestra una página con un formulario. Al utenticarte, haciendo POST (via SSL) en ese formulario, consulta la base de datos y verifique los datos de autenticación conexion=YAML.load ''' development: adapter: postgresql database: rails encoding: utf8 reconnect: false pool: 5 username: rails password: rails host: 127.0.0.1 ''' require 'active_record' ActiveRecord::Base.establish_connection(conexion) class User < ActiveRecord::Base; end Esto sería una aplicación web sencilla (sinatra) sinatra: # busca el usaurio en la base de datos @user= User.find_by_username=params['usaurio'] # verifica si puso bien el password if @user.password == Digest::SHA2.hexdigest(cual) # tomamos la ip del usuario @ip=params.remote_host # y le habilitamos la navegacion @user.navegacion=true @user.ip=@ip @user.save end Seguidamente, la página redirecciona dándote una cookie; a otra página que te diga "mantenta esta página abierta". Esa otra página, tendrá un timer (JavaScript) que cada N segundos, le reitere una especia de keepalive al servidor. Mientras esa página este abierta, transmitiendo cada 1 minuto ese keepalive, por ejemplo. setInterval(function(){ jQuery.post(...) },500) La página tendría un cartelón bien grande que diga: <h1>No cierre esta página</h1> Del lado de allá (sinatra en el servidor), chequeamos que esto esté sucediendo get '/autenticacion' @user=User.find_by_ip params['ip'] @user.navegacion=true end Localizamos al usaurio por su IP, esto devolverá un usaurio que ya se halla autenticado (por su ip que cogimos) y refresca el cambo navegación (booleano) Por detrás del telón, tendriamos un script corriendo y caudcando usuario cuya última autenticación sea de hace más de 1 minuto. Esto quiere decir que cerró la página. refrescar.rb Tenemos una tabla personalizada en iptables que recrearemos constantemente. system('iptables -F navegacion') # para todos los usuario que estén navegando for usuario in User.find_all_by_navegacion true # verificar cuando fue la última vez que mandó el ping # si fue hace más de 5 minutos if Time.now - usuario.updated_at > 300 usuario.navegacion=false usuario.save else # si está en regla (tiene la página abierta) # lo autorizamos system %[iptables -A navegacion -s #{@ip} -j ACCEPT] end end No es tan fácil ponerlo en un correo como lo tengo en mi cabeza. Pero espero que le de una idea a alguien. -- -------- Warning! ------------ 100'000 pelos de escoba fueron introducidos satisfactoriamente en su puerto USB. A continuación, la firma de una herramienta inútil: -- Este mensaje ha sido analizado por MailScanner en busca de virus y otros contenidos peligrosos, y se considera que est� limpio.
______________________________________________________________________ Lista de correos del Grupo de Usuarios de Tecnologías Libres de Cuba. Gutl-l@jovenclub.cu https://listas.jovenclub.cu/cgi-bin/mailman/listinfo/gutl-l