Google EL TIPO DE INFORMATICA: Proxy
Mostrando entradas con la etiqueta Proxy. Mostrar todas las entradas
Mostrando entradas con la etiqueta Proxy. Mostrar todas las entradas

lunes, 17 de agosto de 2015

Inspeccion de Trafico HTTPS con WatchGuard XTM

Con WatchGuard podemos crear reglas de Proxy HTTP que inspeccionan el trafico de negación de los usuarios y nos permiten analizar el contenido. Esta inspección permite analizar los headers HTTP, el contenido de las paginas, aplicar antivirus, reglas de DLP que podría buscar patrones o palabras especificas en contenido de las paginas, etc., mas adelante se muestra la ventana de configuracion de una regla de proxy HTTP donde se muestra los diferentes chequeos que hace el equipo en el trafico HTTP. 

Opciones de análisis de trafico HTTP en reglas de Proxy

Pero con el trafico HTTPS es distinto. Como este trafico es encriptado, el equipo no puede hacer este tipo de análisis una vez se realiza la conexion. Lo único que podemos hacer es permitir o denegar el acceso a sitios Web en base al nombre de dominio, porque es la única información que el equipo puede ver, el nombre del site al que el usuario solicita la conexion. Así que el equipo permitirá la conexion al sitio pero no tendrá idea de lo que se este transfiriendo. 

  • Inspección de Trafico HTTPS

Para prevenir esto, se utiliza la inspección de trafico HTTPS. Como la encriptacion se realiza utilizando el certificado SSL que envía el servidor al cliente (el certificado contiene la clave publica del servidor, que se utilizara para negociar la clave simétrica para encriptacion de todo el trafico), lo que hace el equipo al activarse esta opción es capturar este certificado que envía el servidor al cliente, generar el mismo otro certificado para el dominio que solicito el usuario y pasarlo al usuario como que es el certificado original. El computador cliente empieza entonces la negociación de encriptacion del trafico en base al certificado que le envío el Firewall. De esta forma el trafico se encripta entre el cliente y el Firewall, donde este entonces puede desenciptar porque es con su propio certificado que se encripto, y realizar el análisis al trafico. Luego el Firewall hace la conexion al servidor remoto utilizando el certificado original. El cliente cree que esta hablando con el servidor remoto, y el servidor remoto cree que esta hablando con el cliente. 

Para activar esto en WatchGuard, solo tenemos que editar la regla de proxy HTTPS y seleccionar la opcion "Enable deep inspection of HTTPS content" como se muestra a continuación. 

En la regla, hacer clic en el botón de edición del proxy

Una vez en la ventana de edicion de la regla de proxy HTTPS, se activa la opción "Enable deep inspection....", pueden seleccionar la opcion "Allow SSLv3". También verán que se activa una drop box llamado "Proxy Action", esto es para seleccionar la regla de proxy HTTP que se le aplicara al trafico una vez se desencripte. En el caso de este ejemplo la regla que seleccione se llama "ACCESO_INTERNET_NORMAL". Al trafico HTTPS de esta regla se le aplicaran los análisis que se definan en esta regla HTTP.

Activación inspección trafico HTTPS

  • Importar Certificado CA WatchGuard
Al aplicar salvar la regla que modificamos anteriormente y aplicarla notaran que cuando intentan acceder cualquier sitio HTTPS les aparece un mensaje como el siguiente en el navegador:

Error de Certificado SSL en Internet Explorer
Esto significa que el cliente recibió el certificado SSL que genero el WatchGuard, pero no confía en este certificado. Si hacemos clic en "Continue to the website..." podremos acceder al site, pero esto no es algo que queremos que todos los usuarios tengan que hacer. Además, si utilizan Chrome, no tendrán esa opción de continuar. Para corregir esto lo que tenemos que hacer es importar el certificado que usa Watchguard para firmar los certificados que crea para cada dominio, el certificado CA. Para esto, una vez dentro de un sitio HTTPS, hacemos clic en la barra de navegación encima de "Certificate Error" y luego hacemos clic en "View certificates":



Esto nos mostrara información del certificado SSL que genero el Firewall para este site. Como podrán ver, indica el sitio para el cual se genero (en este caso *.google.com.do) y nos dice que el certificado no puede ser verificado con una autoridad certificadora de confianza. 


Como pueden ver, podemos instalar el certificado en el equipo haciendo clic en "Install Certificate", pero si instalamos este certificado, el mensaje de error dejara de aparecer solo para este dominio, para todos los demás sitios HTTPS seguirá apareciendo. Lo que necesitamos es agregar el certificado que usa WatchGuard para firmar todos estos certificados que genera como un CA de confianza, así que en la ventana anterior haremos clic en "Certification Path", donde podremos ver el certificado del CA:


Aquí podemos ver el certificado CA que uso el equipo Watchguard para generar y firmar, hacemos clic encima de el y luego hacemos clic en el boton "View Certificate", se nos mostrara una ventana similar a la del certificado para google.com.do, pero en este caso si haremos clic en "Install Certificate":


Al hacer clic en "Install Certificate" se abrirá el wizard para la importación de certificados. Hacemos clic en next en la primera ventana y luego hacemos clic en "Browse", donde indicaremos donde almacenaremos el certificado. Como queremos agregarlo como una CA de confianza, seleccionaremos "Trusted Root Certification Authorities": 


Al seleccionar la ubicación del certificado en la ventana "Select Certificate Storage", hacemos clic en OK y luego en Next. En la próxima ventana hacemos clic en "Finish", se nos presentara una ventana como la siguiente de confirmación de importación del certificado, donde haremos clic en "Yes":


Con esto ya hemos importado en este equipo el certificado CA de nuestro equipo WatchGuard, si cerramos el Internet Explorer y abrimos nuevamente algún sitio HTTPS veremos que ya no saldrá la alerta de que el certificado no es confiable:


En este punto, ya tenemos nuestro proxy HTTPS inspeccionando trafico cifrado y nuestro equipo confía en el certificado que le envía el WatchGuard, pero hay que tener en cuenta que por ahora solo este equipo confía en este certificado, los demás equipos de la red continuaran presentando la alerta de que no confía en este certificado. Lo que resta ahora es publicar este certificado a todas las computadoras del dominio con una Política de Grupo (GPO) para no tener que hacer este procesamiento en cada equipo de la red. En el próximo post veremos entonces como exportar este certificado y propagarlo mediante una GPO a todos los equipos del dominio.

domingo, 24 de febrero de 2013

Bloquear Youtube y Permitir Solo Algunos Videos con Squid

Posiblemente les haya pasado esto, bloquean Youtube en su red con Squid, un día les informan que hay un video que necesitan que varios usuarios puedan ver. Una forma rápida sera permitir el acceso a Youtube a ese usuario o grupo de usuarios. Y que si el video deben verlo todos los usuarios? Esto me paso varias veces y estuve buscando una forma de permitir solo algunos videos pero no encontré como hacerlo, así que me puse a buscar la forma de hacerlo y aquí se la presento. Lo primero claro esta seria bloquear Youtube, esta parte me imagino que ya todos lo tienen. Para esto usaremos la forma mas sencilla, que seria bloqueando el dominio youtube.com, algo como esto:

acl youtube dstdomain .youtube.com
http_access deny youtube all

Estas reglas bloquearan el acceso al dominio Youtube, pero como saben hay cantidades de sitios Web donde se puede ver videos Online, una forma mas efectiva es bloquear el tipo de archivo (mime type) .FLV que es el que se transfiere desde estas paginas, crearíamos entonces las siguientes reglas:

acl video-files rep_mime_type video/x-flv
http_reply_access deny video-files

Con esto ya hemos bloqueado todos los videos, y seguro que esta es la configuracion que actualmente tienen. Ahora vamos a identificar el video que queremos permitir y luego modificar la regla para permitir ese video en especifico. Bien, supongamos que nos pasan el siguiente video y quieren circularlo para que todos lo puedan ver. Pongamos por ejemplo este:


Lo que haremos entonces sera tomar lo que esta despues del signo de igual "=" (en el caso del video de ejemplo seria aBhYULqQsdM)  y copiarlo. Esto es la identificacion del video. Luego iremos a nuestra regla de Squid y agregaremos lo siguiente:

acl youtube dstdomain .youtube.com
acl videos-permitidos urlpath_regex /videoplayback
acl videos-permitidos urlpath_regex aBhYULqQsdM
http_access allow youtube videos-permitidos
http_access deny youtube all
http_reply_access allow youtube videos-permitidos

Como pueden ver agregamos el acl "videos-permitidos" y estamos utilizando "urlpath_regex" y le agregamos el identificador del video que queremos permitir, también agregamos a este mismo acl la cadena de caracteres "/videoplayback",  cuando se solicita algún video esta cadena se agrega al url. Luego permitimos el acceso al dominio Youtube.com solo a las paginas que tengan esas cadena de caracteres en su URL. Con esto se podrá acceder a Youtube para las paginas que especifiquemos. Para no tener que agregar varias lineas en el caso de que queramos permitir varios videos para los usuarios, una mejor forma seria crear un archivo y agregar cada identificador de los videos que vayamos a permitir. Por ejemplo, podemos crear un archivo el archivo de texto "/etc/squid/videos-permitidos.acl" y agregar aquí los identificadores, el contenido del archivo se vería de esta forma:

/videoplayback
aBhYULqQsdM
AV-glc90fKg
kZ2NA--PFbE

Nuestra configuracion se vería entonces de esta manera:

acl youtube dstdomain .youtube.com
acl videos-permitidos urlpath_regex "/etc/squid/videos-permtidos.acl"
http_access allow youtube videos-permitidos
http_access deny youtube all
http_reply_access allow youtube videos-permitidos

Ahora, cada vez que queramos permitir un video de Youtube solo tenemos que agregar en este archivo el identificador del video. Bueno, hasta aquí esta pequeña guia. Espero que les funcione y les sea de utilidad.