lunes, 19 de marzo de 2012

Pfsense 2: Instalacion desde cero version nano.

Tengo que conectar una oficina a la planta de produccion, voy hacer uso de la ultima version de pfsense que es la 2.0.1, el equipo que voy a usar es una sistema embebido, el modelo es este:
Imagen 1: Sistema Alix.
La conexion la vamos hacer con OpenVPN para crear el tunel de este oficina a la planta de produccion, que vamos a configurar:

  • Configuracion Basica de Pfsense.
  • WAN
  • DNS Forwarder 
  • OpenNTP
  • DHCP
  • Syslog
  • Firewall
  • Alias
  • DNS Dinamico
  • OpenVPN
  • NAT 
  • Paquetes
  • SSH
Datos de la red:

Red: 192.168.4.0/24
LAN: 192.168.4.1
WAN: DHCP.

Nuestro provedor aca en mi ciudad es CableMas, asi que nuestra WAN debe ser DHCP.

La memoria CF es de 8GB, asi que la version adecuada para mi es esta:
Imagen 2: Version nano a instalar.
No voy a mostrar como copear el archivo a la memoria, de eso hay mucha informacion.

Prendiendo el equipo
Para poder tambien accesar el equipo que carece de tarjeta de video estoy haciendo uso del puerto serial, cable serial hembra-hembra nulo y atraves de hyper terminal de windows estoy viendo la consola y tenemos esto:
Imagen 3: Sistema Nano en Operacion.
Lo primero es darle el IP a la tarjeta de red, entonces nos vamos por este camino:
Option 2 ->2 LAN
192.168.4.1
24(Subnet)
DHCP: y
Direccion Inicial: 192.168.4.100
Direccion Final: 192.168.4.110
Do you want to revert to HTTP as the webConfigurator protocol? (y/n): y
...
Hace la operacion...
...
Listo ya tenemos nuestra lan en la red deseada.
Imagen 4: LAN configurada.
Accesando el GUI
Para esto nuestro equipo debe estar en la misma red de pfsense, entonces como ya tenia una IP asignada deshabilito mi tarjeta de red y la habilito para recibir nueva IP.
Imagen 5: Recibiendo IP de mi Pfsense.
Ya con esto es hora de irse a Firefox y a poner el IP de mi LAN.
Imagen 6: Accesando el GUI.
Ya conocen los datos por default, siempre ahi que cambiar el password antes de conectar la WAN, una vez accesando empieza el wizard.
Imagen 7: Wizard de Pfsense.
Imagen 8: Datos de mi hostname.
Imagen 9: Dando de alta mi zona de horario.
Aqui no le a poner mucha atencion ya que mas adelante yo voy a dar de alta los servidores que voy a utilizar para sincronizar la hora.
Imagen 10: Configurando WAN.
Imagen 11: Configurando LAN.
Como ya habiamos configurado la LAN no hay nada que cambiar aqui nada.
Imagen 12: Poner password fuerte.
Imagen 13: Parte final del wizard.
Imagen 14: Esperar unos segundos.
Imagen 15: Pfsense listo para trabajar.
Ya hemos terminado la 1ra fase de configuracion, lo que sigue es configurarlo a nuestras necesidades. Lo que yo hago enseguida es reiniciar a pfsense para probar todo lo hecho anteriormente.
Opciones Generales
Es la 1ra opcion donde yo voy a meter datos.
Imagen 16: Accesando opciones generales.
Por alguna razon pfsense no acepto mis datos para el hostname, aqui es donde lo doy de alta.
Aqui voy a necesitar saber los siguientes datos, el hostname ya lo tengo, pero necesito saber que servidores del tiempo externos voy a usar para sincronizar mi pfsense.

Para ello me voy a el sitio pool.ntp.org me voy a la zona norte america y nos muestra 4 posibles sitios a usar.
  • server 0 north-america pool ntp org 
  • server 1 north-america pool ntp org 
  • server 2 north-america pool ntp org 
  • server 3 north-america pool ntp org
NOTA: Elimine los puntos para que las aranas no los tomen para sus datos.

Como puedo saber cuales usar o puedo usar todos?

Bueno yo siempre uso 3, como decido cual usar pues con el famoso ping, el que tenga la distancia mas corta sera el # 1, asi que me voy a mi consola serial y le mando 10 pings a cada uno.

ping -c 10 0 north-america pool ntp org
...
--- 0.north-america.pool.ntp.org ping statistics ---
10 packets transmitted, 10 packets received, 0.0% packet loss
round-trip min/avg/max/stddev = 76.445/87.787/116.176/12.822 ms

ping -c 10 0 north-america pool ntp org
...
--- 1.north-america.pool.ntp.org ping statistics ---
10 packets transmitted, 10 packets received, 0.0% packet loss
round-trip min/avg/max/stddev = 88.956/92.489/95.236/1.754 ms

ping -c 10 2 north-america pool ntp org
...
--- 2.north-america.pool.ntp.org ping statistics ---
10 packets transmitted, 10 packets received, 0.0% packet loss
round-trip min/avg/max/stddev = 36.733/38.526/40.082/1.324 ms
ping -c 10 3 north-america pool ntp org
...
--- 3.north-america.pool.ntp.org ping statistics ---
10 packets transmitted, 10 packets received, 0.0% packet loss
round-trip min/avg/max/stddev = 86.117/91.993/108.681/7.951 ms

Ganadores:
2, 0, 1

Metemos los datos de nuestro hostname, los parametros de nuestros servidores de tiempo si usan mas de 1 separenlos por 1 espacio en blanco y salvan.

Imagen 17: Configuracion general.

De nuevo, reinicio para confirmar que mis hostname a sido dado de alta.

Confirmamos el hostname:
Imagen 18: Hostname correcto.
Bien ya tenemos el hostname que es importantisimo que sea el correcto, ya que dyndns.org lo requiere, en mi caso mi pfsense va a ser accesado desde Internet, el hostname para dyndns queda asi:

midominio . dyndns . org

Ahora mi tiempo es correcto?
Imagen 19: Tiempo correcto.
El tiempo esta correcto, parece que se ha sincronizado adecuadamente.

Ahora vamos a las opciones avanzadas.

Opciones Avanzadas
Imagen 20: Opciones avanzadas.
Aqui vamos a cambiar lo siguiente:
HTTP --> HTTPS.
Puerto--> distinto a el 443
SSH --> distinto a el 22.

Ver siguiente imagen.
Imagen 21: Etiqueta Admin.

Una vez elegido los valores deseados,  yo nunca uso los valores default, prefiero cambiarlos para estar fuera de los rootkits y escaneos comunes.

Una vez presionado el boton Save, el cambio se hace rapido.
Imagen 22: Cambios generados, aviso del sistema.
Imagen 23: Pfsense nos redirecciona a la pagina inicial.
Imagen 24: Avisos del sistema.
Como se puede ver la imagen 23, cuando activamos ssh, pfsense nos avisa en la parte superior derecha, un click y le decimos que estamos enterados.

Ahora nos vamos a la pestaña: Firewall/NAT y hacemos lo siguiente:
Imagen 24: opciones de Firewall/NAT.
Observern la imagen 24, hemos habilitado la opcion de generar ID aleatoriamente para nuestros paquetes, les recuerdo que si ven que su red se comporta de manera extrana, como samba, folders compartidos de windows, recuerden esta opcion, revisen sus logs de vez en cuando, cuando algo se comporte raro.

Si eso pasa deshabilitan esta opcion y vean si las cosas mejoraron.
  • Pestana Networking no la toco.
  • Miscellaneous no la toco.
  • Systema Tunables no la toco.
  • Notifications no la toco.
Bien hasta aqui he configurado las opciones basicas para mi, lo que sigue es ir sobre el dns, un servicio escencial para cualquier red.

DNS forwarder
Vamos hacer lo siguiente:
Imagen 25: Opciones personales.
OpenNTP
Deseo que mis clientes tomen a pfsense como servidor del tiempo, ya hemos configurado pfsense, solo es cuestion de habilitar el servicio para que permite que otros clientes de la red puedan pedirle a el les proporcione la hora correcta, para esto hacemos lo siguiente:
Imagen 26: Accesando el OpenNTP.
Imagen 27: Habilitando el openntp.
Listo es muy sencillo poner a trabajar este servicio, solo les recomiendo que esperan un par de horas ante de poder hacer uso del servicio.
Configurando Clientes para NTP.
Si los clientes no desean hacer uso de los datos que nos mande el DHCP, podemos configurarlo a mano, y cuando se sincronice nos mostraria un mensaje como este:
Image 28: Windows XP sincronizando su tiempo con pfsense.
Listo, lo hacemos a mano.
DHCP
Viene ahora la parte de configurar el servicio mas comunmente usando de cualquier firewall, aqui yo lo que hago es dar de alta cada uno de mis clientes y niego todos los clientes que no son de mi red, ya que cuando estas manejando +50 estaciones es dificil dar acceso a cualquier equipo que se conecta a la red.

Para esto pfsense nos ayuda, ver lo que sigue.
Imagen 29: Configurando DHCP.
En mi caso, trabajamos de 7:00AM a 5:00PM, entonces multiplicando 8 horas x 3600 tenemos que mi lease inicial debe ser de 28800 segundos y el maximo +2 horas de 36000.

Aparte que deseo que cuando el cliente obtenga el lease tambien se vaya el IP de pfsense como servidor de tiempo.

Al inicio del post, habiamos configurado ya los rangos de nuestro dhcp, pero como a el GUI de pfsense no le agrada que se haga por consola, no hay problema aqui lo podemos hacer de nuevo alcabo es muy facil.

Salvamos y vemos la siguiente ventana:
Imagen 30: Cambios aceptados.
Ahora viene una opcion que yo uso, la habia  mencionado arriba, voy a dar de alta la MAC address de mi equipo para que siempre le otorge la misma IP y cuando se conecte otro cliente no le de IP le niego el acceso y asi poder controlar las estaciones de mi red, la 1ra vez que se hace es tardado, pero una vez hecho el mantenimiento es sencillo.

Vamos dando de alta mi estacion:
Imagen 30: Click para dar de alta una estacion en el dhcp.
Imagen 31: Datos de mi estacion.
Imagen 32: Aceptar cambios.
Imagen 33: Listo.
Renovamos la IP de nuestra estacion:
Imagen 34: Renovacion de IP en estacion.
De aqui sigue ahora si habilitar el parametro de DHCP para que lo que deseo se cumpla:
Imagen 35: Negar todos los clientes que no esten dados de alta.
Salvan y cierren.

Vamos a ver como se va a comportar pfsense cuando un cliente se conecte y quieran hacer uso de nuestra red.
Imagen 36: Clientes tratando de conectarse.
Cuando esto pase debemos estar listos para buscar estas estaciones si no han sido autorizadas por nosotros.

Si es conocido, vamos dandolo de alta y observemos los logs:
Imagen 37: Entregando IP a nuestro cliente.
Listo, el dhcp operando.
Syslog
A mi me gusta que cuando vea los logs aparezcan de arriba hacia abajo y que me muestre 100 logs por cada servicio, esto lo hago asi:
Imagen 38: Configurando syslog.
Firewall
Por default nunca dejo la regla que viene por default en pfsense, por ello necesitamos antes de modificar las reglas saber que necesitamos, vamos a abrir solo lo que mi red necesita, en mi caso 5 cosas para empezar:
  1. Acceso a consultar DNS.
  2. Navegacion sobre el protocolo HTTP(Puerto 80)
  3. Navegacion sobre el protocolo HTTPS(Puerto 443)
  4. Acceso a servidores FTP.
  5. Acceso a Servidores CVSUP de FreeBSD.
Con esto ya podemos trabajar sobre nuestas reglas, por ello empezamos eliminando la regla por default y ademas vamos hacer uso de los alias para dar de alta ahi los servidores de FreeBSD que necesitan actualizarse.

Vamos empezando por eliminar la regla default y agregando reglas para nuestra lista hasta el 4.

a)Eliminamos la regla.
Imagen 39: Eliminando regla general.
Imagen 40: Aceptar borrado.
Imagen 41: Aplicar cambio.
b) Agregando nuestras reglas: DNS.
Imagen 41: 1ra regla a ingresar el dns.
Recordar siempre, salvar y aplicar cambio.
c)HTTP:
Imagen 42: Regla para HTTP.
Al final tenemos esto:
Imagen 43: Reglas activadas.
Alias
Necesitamos una regla que nos ayude a permitir a nuestros servidores actualizarse como mis FreeBSD, nadie mas necesita el puerto del cvsup, asi que vamos creado nuestro alias.
Imagen 44: Creando Alias.
Imagen 45: Nuestro alias para nuestros FreeBSD.
Salvamos, aplicamos,cerramos, listo.

Agregamos nuestra regla:
Imagen 46: Regla para nuestro alias.
A el final tenemos esto en nuestras reglas:
Imagen 47: Reglas finales.
Bien lo que sigue es configurar mi dns dinamico.

DNS Dinamico
Antes de arrancar la configuracion de OpenVPN necesito que mi pfsense pueda tener activado el servicio de DNS dinamico, deseaba hacer uso de dyndns pero ya no dan cuentas gratis, asi que voy a tener que hacer uso de no-ip, nunca lo he usado vamos a ver como se comporta.

En la cuenta de no-ip debemos dar de alta el IP de nuestro enlace, y el tiene manera de saberlo, mi configuracion del portal esta asi:
Imagen 48: Configurando el portal de no-ip.org.
Esta es mi configuracion en pfsense:
Imagen 49: Configurando no-ip de lado de pfsense.
Salvamos y a ver los logs:
Imagen 50: no-ip logs en pfsense.
Parece que ya podemos hacer uso de nuestro nombre y accesar nuestro equipo desde cualquier parte del mundo.

OpenVPN
Viene la parte mas importante de todo esto, como dije a el inicio, la razon principal de este equipo es poder conectarme a la red de la planta de produccion, aqui vamos a llevar a cabo esta tarea.

Segun mi manual vamos a requerir ciertos datos de mi servidor maestro:

Pasos a seguir:
Imagen 51: Abri el cert manager.
Necesitamos los certificados de nuestro servidor y los de este equipo.
Imagen 52: Importar certificados del servidor.
Imagen 53: Importando certificados de mi servidor.
Imagen 54: Certificados importados del servidor.
Imagen 55:  Importando certificados para mi cliente.
Imagen 56: Datos de mis certificados.
Imagen 57: Operacion terminada.
Ya hemos hecho lo basico, le dimos la informacion necesaria para poder llevar a cabo la conexion, que fue:
1) Importar los certificados de nuestro servidor remoto:
  • server.crt
  • server.key
2) Importar los certificados de nuestro cliente:
  • cliente.crt
  • cliente.key
Recordar mi post sobre OpenVPN, debemos recordar siempre el CN=Common Name de nuestro cliente.

Empezamos:
Imagen 58: Accesando OpenVPN desde el GUI.
Imagen 59: Agreagamos nuestro cliente OpenVPN.
Imagen 60: Configuracion de nuestro cliente.
Imagen 61: Configurando acceso a nuestro cliente en el server.
 Hemos dado de alta nuestro cliente a la red de la empresa atraves de OpenVPN, ahora sigue ver si funciono o no, para esto tenemos en el dashboard la opcion, vamos a darla de alta:
Imagen 62: Agregando OpenVPN a el dashboard.
Imagen 63: OpenVPN en el dashboard.
Como podemos ver, hemos logrado entablar la conexion con el pfsense remoto, lo que sigue es probar si funciona la conexion, esto lo hacemos muy facil, este cliente esta en la red:

192.168.4.0/24

La planta de produccion es la red:

192.168.2.0/24, ahi tengo un servidor apache en el IP: 192.168.2.15, vamos a ver si responde:
Imagen 64: Servidor atraves de la VPN respondiendo.
Hemos logrado entablar la conexion, esta operando, ahora no estoy muy satisfecho con la conexion, tengo un servidor mysql en la IP 192.168.2.3, vamos a ver si responde:
Imagen 65: Conexion a Mysql Fallo.
No significa que la VPN no funciona bien, significa que nuestro firewall esta haciendo su labor, recordar que solo estamos abriendo lo que necesitamos, vamos a ver los logs del firewall:
Imagen 66: Logs de pfsense bloqueando conexion a MySQL.
Como podran ver en la imagen anterior, ahi aparece que el puerto 3306 de MySQL esta siendo bloqueado, como yo deseo que los usuarios de esta red tengan acceso a ese servicio, pero yo se que ellos no necesitan ir a ningun servidor en Internet, si no solo los de la empresa, por lo tanto abro un alias y ahi agrego los servidores de la empresa para que ellos solo puedan ir a esos sistemas:
Imagen 67: Alias de nuestros servidores remotos.
Imagen 68: Regla para mi alias para MySQL.
Probamos de nuevo:
Imagen 69: MySQL ya responde.
MySQL ha respondido el llamado, la VPN sigue funcionando.

Hasta aqui hemos logrado crear una conexion con nuestro pfsense hacia otro pfsense atraves de OpenVPN, creo que hemos visto paso a paso como llegar hasta este punto.

Lo que sigue es como configurar Nat para yo poder accesar remotamente este equipo para administrarlo sin necesidad de ir fisicamente a la oficina donde quedara instalado.

NAT
Para poder dar acceso a cualquier servicio interno desde Internet debemos hacer uso de la funcion que nos proporciona pf que es Port Forward, para esto necesitamos saber datos basicos hacerca de lo que deseamos abrir, por ejemplo, yo deseo poder accesar el GUI desde Internet, los datos son los siguientes:

IP Interna del equipo: 192.168.4.1
Puerto que deseo accesar: XYZ
Protocolo: TCP

Listo hacemos lo siguiente:
Imagen 70: Configurando Port-Forward.
Imagen 71: Datos de nuestro sistema interno.
 Save -> Apply -> Close.
Imagen 72: Por Forward configurado.
Ya con esto, yo entro a cualquier equipo con conexion a Internet apunto a mi nombre que tengo con no-ip, puerto especifico y si el firewall del equipo remoto no me bloquea, debo poder accesar remotamente mi equipo.
Paquetes
Ahora vamos a instalar los paquetes que yo voy a necesitar para la operacion diaria.

  1. cron
  2. diag_new_states
  3. squid(el mas tardado en esta instalacion y mas por ser un sistema embebido)
Estos no tiene ciencia instalarlos, el GUI nos ayuda sin problemas.


Paquete desde FreeBSD:
  1. sarg
  2. ifstat
Pare esto necesitamos entrar en la consola y saber las rutas de cada paquete, en otros post he mostrado como se instala sarg asi que leanlo y no tendran problemas.
SSH Por Llave Publica.
Tambien en otro post toco este tema, asi que si desean configurarlo por llave publica leanlo.


Pfsense 2: Debugear Squid.

Una cosa es instalar y configurar las opciones que nos da squid en la GUI de pfsense y otra cosa es saber cuando squid nos esta bloqueando.

Cuando deseamos tener un control total del trafico que sale de nuestra red las ACL son nuestras armas mas letales, sabiendo como usarlas y aplicarlas nos abre un mundo de posibilidades, pero al ser muy estricto con nuestros usuarios aunque se enojen(dice un gran maestro mio: Prefiero se un gran paranoico y desconfiado que ser un gran estupido confiado), debemos ser capaces de resolver los problemas.

Resolver problemas con squid es saber entender sus logs y saber cuando entra en juego tambien el firewall, cualquier servicio que nosotros administremos, llamese mysql, apache, ldap, spam assassin, pf, squid, etc, etc, todos ellos manejan logs, los cuales siempre estan a la orden para poder saber si algo anda mal y algo necesita modificarse.

En el caso de squid, nos indicara si estamos bloqueando algo, el usuario te va a llamar y va a querer que le resuelvas el problema rapido por que si no se cae la luna sobre la tierra y te va a mandar un correo si esta muy molesto con copia a gente que nada que ver con la operacion y vas a ver algo asi:

Imagen 1: Pagina Bloqueada por Squid
Como podran ver en la Imagen 1, squid bloqueo la pagina, por que?

La palabra magica: "Access Denied", nos dice todo, a veces los usuarios se pierden y existen otras que dicen "Time Out", o "Return Zero", que nos indican que el problema es con el servidor externo.

Yo vivo en Tijuana, Mexico y nuestras grandes institituciones como el IMSS tienen un pesimo sistema en linea, y aqui es donde nosotros debemos estar listos para ver cuando squid esta bloqueando las cosas, y otra cosa mas algunas paginas de ellos nos redireccionan a otros dominios a veces IP's, ese sitios nos permite entender mejor los logs de squid y como abrir lo que el sitio requiere.
Imagen 2: Pagina inicial del IMSS.
Desconzco quien los administra pero si leen este blog espero se pongan las pilas aunque yo se que les importa poco lo que aqui digo, pero espero algun dia nuestra mentalidad cambie.

Bien vamos retomando el tema, como entender los logs de squid y como desbloquear paginas.

Para iniciar, vamos a ver que en squid tenemos unos ACL que estan hechos para el departamento de RH que son los que entran a el IMSS, el acl esta asi:

### Grupo RH
acl GRUPO2 src "/usr/local/etc/squid/acl/GRUPO2.acl"
acl GRUPO2_SITIOS dstdomain "/usr/local/etc/squid/acl/GRUPO2_SITIOS.acl"

Definicion de ACL GRUPO2.acl:

192.168.50.99/32

Indico el grupo de maquinas que caen en este acl.

Definicion de ACL GRUPO2_SITIOS.acl:

.sat.gob.mx
.infonavit.org.mx
.imss.gob.mx

Aqui indico que paginas puede accesar este grupo.

Ahora sigue ver como las tiene squid activadas.

### ACL acceso a grupo de usuarios de contabilidad
http_access allow GRUPO2 GRUPO2_SITIOS
http_access deny GRUPO2

Como he dicho en mis post anteriores, siempre que un acl recibe acceso enseguida es negarlo, recordar que squid se detiene cuando aparece el primer acceso o bloqueo.

Con esto tenemos encajonados a este grupo de usuarios a no salir de donde nosotros deseamos.

Una vez que squid esta operando, el usuario empieza a hacer uso del portal, vamos a ver que dicen los logs de squid:

1332135178.385      0 192.168.50.99 TCP_DENIED/403 1400 GET http://www.encuentra.gob.mx/css/apf.css - NONE/- text/html
1332135178.385      0 192.168.50.99 TCP_DENIED/403 1428 GET http://www.encuentra.gob.mx/api/gobmxWidgetAPI-min.js - NONE/- text/html
1332135178.386      0 192.168.50.99 TCP_DENIED/403 1444 GET http://www.encuentra.gob.mx/properties/gobmxWidgetAPI-conf.js - NONE/- text/html
1332135178.405      0 192.168.50.99 TCP_DENIED/403 1444 GET http://www.encuentra.gob.mx/properties/gobmxWidgetAPI-conf.js - NONE/- text/html
1332135178.528    147 192.168.50.99 TCP_MISS/304 468 GET http://www.imss.gob.mx/css/carrusel/carrusel_2.css - DIRECT/201.144.108.20 -
1332135178.528    147 192.168.50.99 TCP_MISS/304 468 GET http://www.imss.gob.mx/css/ms.css - DIRECT/201.144.108.20 -
1332135178.534    149 192.168.50.99 TCP_MISS/304 468 GET http://www.imss.gob.mx/css/carrusel/scroll/scroll.css - DIRECT/201.144.108.20 -
1332135178.534    153 192.168.50.99 TCP_MISS/304 468 GET http://www.imss.gob.mx/css/estilo.css - DIRECT/201.144.108.20 -
1332135178.539    149 192.168.50.99 TCP_MISS/304 468 GET http://www.imss.gob.mx/css/carrusel/javascript/C2_V4.js - DIRECT/201.144.108.20 -
1332135178.546    156 192.168.50.99 TCP_MISS/304 468 GET http://www.imss.gob.mx/css/carrusel/javascript/mootools.js - DIRECT/201.144.108.20 -
1332135178.590    410 192.168.50.99 TCP_MISS/200 29887 GET http://www.imss.gob.mx/Pages/default.aspx - DIRECT/201.144.108.20 text/html
1332135178.607     77 192.168.50.99 TCP_MISS/304 468 GET http://www.imss.gob.mx/css/imagenes/banners/pot.jpg - DIRECT/201.144.108.20 -
1332135178.608     77 192.168.50.99 TCP_MISS/304 468 GET http://www.imss.gob.mx/Style%20Library/Images/Portada_linkexterno.gif - DIRECT/201.144.108.20 -
1332135178.613     77 192.168.50.99 TCP_MISS/304 468 GET http://www.imss.gob.mx/css/imagenes/banners/presidencia_nuevo.jpg - DIRECT/201.144.108.20 -
1332135178.615     79 192.168.50.99 TCP_MISS/304 468 GET http://www.imss.gob.mx/css/imagenes/banners/revista_imss.jpg - DIRECT/201.144.108.20 -
1332135178.626     85 192.168.50.99 TCP_MISS/304 468 GET http://www.imss.gob.mx/css/imagenes/banners/2.jpg - DIRECT/201.144.108.20 -
1332135178.639     91 192.168.50.99 TCP_MISS/304 468 GET http://www.imss.gob.mx/css/imagenes/twitter_bk.gif - DIRECT/201.144.108.20 -
1332135178.670     80 192.168.50.99 TCP_MISS/304 468 GET http://www.imss.gob.mx/css/imagenes/youtube_bk.gif - DIRECT/201.144.108.20 -
1332135178.672    170 192.168.50.99 TCP_MISS/304 468 GET http://www.imss.gob.mx/comunicacion/PublishingImages/01.jpg - DIRECT/201.144.108.20 -
1332135178.689     78 192.168.50.99 TCP_MISS/304 468 GET http://www.imss.gob.mx/css/imagenes/facebook_bk.gif - DIRECT/201.144.108.20 -
1332135178.703     92 192.168.50.99 TCP_MISS/304 468 GET http://www.imss.gob.mx/css/imagenes/Portada_altaSMS.gif - DIRECT/201.144.108.20 -
1332135178.708      0 192.168.50.99 TCP_DENIED/403 1402 GET http://www.youtube.com/embed/86S-TY1Teqc - NONE/- text/html
1332135178.708      0 192.168.50.99 TCP_DENIED/403 1396 GET http://www.google-analytics.com/ga.js - NONE/- text/html
1332135178.718    103 192.168.50.99 TCP_MISS/304 468 GET http://www.imss.gob.mx/css/carrusel/imagenes/Portada_estamos_trabajando.jpg - DIRECT/201.144.108.20 -
1332135178.731    115 192.168.50.99 TCP_MISS/304 468 GET http://www.imss.gob.mx/css/carrusel/imagenes/Portada_revista.jpg - DIRECT/201.144.108.20 -
1332135178.741    113 192.168.50.99 TCP_MISS/304 468 GET http://www.imss.gob.mx/css/carrusel/imagenes/Portada_equipamiento.jpg - DIRECT/201.144.108.20 -
1332135178.785     79 192.168.50.99 TCP_MISS/304 468 GET http://www.imss.gob.mx/css/carrusel/imagenes/Portada_guarderias.jpg - DIRECT/201.144.108.20 -
1332135178.786     80 192.168.50.99 TCP_MISS/304 468 GET http://www.imss.gob.mx/css/carrusel/imagenes/Portada_delegaciones.jpg - DIRECT/201.144.108.20 -
1332135178.792     85 192.168.50.99 TCP_MISS/304 468 GET http://www.imss.gob.mx/css/imagenes/contacto_webmaster.png - DIRECT/201.144.108.20 -
1332135178.994     77 192.168.50.99 TCP_MISS/304 468 GET http://www.imss.gob.mx/css/imagenes/fondo_menu.jpg - DIRECT/201.144.108.20 -
1332135178.994     77 192.168.50.99 TCP_MISS/304 468 GET http://www.imss.gob.mx/css/imagenes/encabezado.jpg - DIRECT/201.144.108.20 -
1332135179.000     82 192.168.50.99 TCP_MISS/304 468 GET http://www.imss.gob.mx/css/imagenes/fondo_notas.png - DIRECT/201.144.108.20 -
1332135179.001     83 192.168.50.99 TCP_MISS/304 468 GET http://www.imss.gob.mx/css/imagenes/bullet1.gif - DIRECT/201.144.108.20 -
1332135179.008     90 192.168.50.99 TCP_MISS/304 468 GET http://www.imss.gob.mx/css/carrusel/imagenes/V4-Carrusel2_fondo.jpg - DIRECT/201.144.108.20 -
1332135179.016     97 192.168.50.99 TCP_MISS/304 468 GET http://www.imss.gob.mx/css/carrusel/imagenes/flechas_carrusel2.gif - DIRECT/201.144.108.20 -
1332135179.023    102 192.168.50.99 TCP_MISS/304 468 GET http://www.imss.gob.mx/css/imagenes/pie1.jpg - DIRECT/201.144.108.20 -
1332135179.032    110 192.168.50.99 TCP_MISS/304 468 GET http://www.imss.gob.mx/css/imagenes/pie.jpg - DIRECT/201.144.108.20 -
1332135179.079     84 192.168.50.99 TCP_MISS/304 468 GET http://www.imss.gob.mx/css/carrusel/scroll/arrow-up.gif - DIRECT/201.144.108.20 -
1332135179.080     84 192.168.50.99 TCP_MISS/304 468 GET http://www.imss.gob.mx/css/carrusel/scroll/stripe.gif - DIRECT/201.144.108.20 -
1332135179.084     83 192.168.50.99 TCP_MISS/304 468 GET http://www.imss.gob.mx/css/carrusel/scroll/knob-top.gif - DIRECT/201.144.108.20 -
1332135179.099     97 192.168.50.99 TCP_MISS/304 468 GET http://www.imss.gob.mx/css/carrusel/scroll/vertical-knob.gif - DIRECT/201.144.108.20 -
1332135180.102   1092 192.168.50.99 TCP_MISS/304 468 GET http://www.imss.gob.mx/css/carrusel/scroll/knob-bottom.gif - DIRECT/201.144.108.20 -
1332135180.109   1091 192.168.50.99 TCP_MISS/304 468 GET http://www.imss.gob.mx/css/carrusel/scroll/arrow-down.gif - DIRECT/201.144.108.20 -
1332135180.117   1030 192.168.50.99 TCP_MISS/304 468 GET http://www.imss.gob.mx/css/carrusel/scroll/arrow-right.gif - DIRECT/201.144.108.20 -
1332135180.119   1038 192.168.50.99 TCP_MISS/304 468 GET http://www.imss.gob.mx/css/carrusel/scroll/knob-right.gif - DIRECT/201.144.108.20 -
1332135180.119   1038 192.168.50.99 TCP_MISS/304 468 GET http://www.imss.gob.mx/css/carrusel/scroll/horizontal-knob.gif - DIRECT/201.144.108.20 -
1332135180.120   1095 192.168.50.99 TCP_MISS/304 468 GET http://www.imss.gob.mx/css/carrusel/scroll/arrow-left.gif - DIRECT/201.144.108.20 -
1332135180.120   1086 192.168.50.99 TCP_MISS/304 468 GET http://www.imss.gob.mx/css/carrusel/scroll/knob-left.gif - DIRECT/201.144.108.20 -
1332135180.122    631 192.168.50.99 TCP_MISS/304 468 GET http://www.imss.gob.mx/css/imagenes/bullet_menu.png - DIRECT/201.144.108.20 -


Significados de los logs de squid:

TCP_DENIED: Sitio bloqueado, este es nuestro principal palabra clave a buscar cuando algo es bloqueado.

TCP_MISS: Cuando squid no tiene en cache la pagina, indica que tiene que ir a el servidor del dominio remoto por los datos en este caso www.imss.gob.mx.

TCP_HIT: No aparece aqui por que mi pfsense es un sistema nano y tengo deshabilitado el cache solo estoy bloqueando, si ustedes tienen hablitado su cache, este parametro significa que squid esta haciendo uso de su cache y no tuvo necesidad de ir a el sitio remoto por los datos.

Existen muchos mas pero estos son los que mas van a ver en sus logs.

Si observan, aparecen muchos dominios que nada que ver con www.imss.gob.mx, por ejemplo:


http://www.encuentra.gob.mx
http://www.youtube.com
http://www.google-analytics.com


Yo se que por sentido comun estos son sitios que "no" necesariamente deben estar abiertos para que portal funcione, los de http://www.google-analytics.com aparecen por todos lados.

No los abro al menos que alguna funcion del sitio los requiera, en mi caso ninguno, sigamos.

Hasta aqui todo bien, el usuario a logrado entrar a el portal, empieza a trabajar, nosotros seguimos nuestra agenda y de repente nos llega la 1ra llamada de auxilio y ya nos mando en el correo esto:
Imagen 3: Sitio bloqueado por squid.


Yo marque datos importantes que son los que nosotros como administradores debemos poner atencion, en la imagen 3 podemos ver 1 dato interesante, dice:


http://201.144.108.69/hlda/


Bien, el usuario no entiende esto y esta bien, lo del Cesar a el Cesar, y el log de squid dice lo mismo:


1332136401.647      1 192.168.50.99 TCP_DENIED/403 1376 GET http://201.144.108.69/hlda/ - NONE/- text/html


Nosotros preguntamos, "Oyes me podrias mostrar de donde llegastes a esta pagina?" y el usuario nos indica que viene de esta pagina:
Imagen 4: Sitio inicial.
Dice la imagen 4 que deseaba entrar a el link:


Reporte Informativo de Semanas Cotizadas del Asegurado


Si observan la imagen 4, poner el puntero del mouse ya nos indica que lo esta dirigiendo a otro IP, recodar nuestros ACL para este grupo, ninguno tiene dado de alta este IP, muchas sitios manejan IP's en vez de nombres de dominio, como les habia mencionado antes.


Que tenemos que hacer?

Primero que nada debemos actualizar nuestros acl y dar de alta el IP en nuestra lista de dominios permitidos para este grupo:


.sat.gob.mx
.infonavit.org.mx
.imss.gob.mx
.201.144.108.69



Recordar siempre poner un "." antes del IP o nombre de dominio, hecho esto le pedimos a squid que levante los cambios:


squid -k reconfigure


Y le pedimos a el usuario que vuelva a intentar.

Imagen 5: Sitio bloqueado de nuevo.
Por que les digo que nuestras instituciones tiene un cochinero?


Si observan el sitio esta abajo y nos retorna de nuevo una pagina bloqueada de un servidor en el rango de IP privadas(198.168.x.y), error grave, estos IP's nunca deben de aparecer en redes publicas como Internet.

Ahora observen que aparece en mi PC que tiene todo abierto para navegar:

Imagen 6: Sitio Caido.

El servidor remoto no responde y la imagen 6 nos dice todo, a veces los usuarios no entienden y aunque les expliquemos con manzanas no se quedan contentos y dicen que somos unos inutiles, pero ni modo no puedes hacer entender a todos.

Aqui lo que sigue es pedirle que intenen mas tarde y nosotros tambien mas tarde intentar si el sitio vuelve solo confirmar si ellos logran accesar el sitio.

Despues nos habla de nuevo el usuario y dice que ahi otro sitio que no puede accesar:

Imagen 7: Otro sitio bloqueado.
Este mensaje es totalmente distinto a el problema anterior, el log dice:


1332138102.991      0 192.168.50.99 TCP_DENIED/403 1360 CONNECT 201.144.108.83:8443 - NONE/- text/html


Otro IP, pero ademas esta indicando un puerto, interesante...


Vamos hacer lo mismo que el problema anterior, dar de alta el sitio en los ACL:


.sat.gob.mx
.infonavit.org.mx
.imss.gob.mx
.201.144.108.69
.201.144.108.83



Son del mismo bloque los ultimos IP's pero distinto nodo.


Pedimos a squid que levante los cambios:


squid -k reconfigure


Le pedimos intentar de nuevo, y....


1332138590.838      0 192.168.50.99 TCP_DENIED/403 1360 CONNECT 201.144.108.83:8443 - NONE/- text/html


Mismo problema, ya lo que sigue es que viendo el log, nos dice que aparte de tener que dar de alta el IP en el ACL debemos de dar de alta el puerto en squid, por default squid tiene ya un rango de puertos definidos y como todos los otros programas, el tiene un rango default en squid.conf:

acl safeports port 21 70 80 210 280 443 488 563 591 631 777 901 249 3128 1025-65535
acl sslports port 443 563 249

Como podran ver el 8443 no existe y ademas es https(ver imagen 7), voy a agregar en la lista de squid.


acl sslports port 8443  #Puerto para GRUPO2 SITIO IMSS 2012-03-18


Yo agrego el ACL y le pongo un comentario para cuando regrese saber por que esta ahi.

Ya saben:


squid -k parse
squid -k reconfigure


Tambien cuando ya estamos involucrando puertos no oficiales, el firewall tiene algo que ver, como soy paranoico y yo configure el firewall, se que este puerto no es de los permitidos, entonces no hay como entrar remotamente a el equipo del usuario y hacer uso del bueno viejo lobo de mar, telnet:

Imagen 8: Telnet sin respuesta.
Como podran ver el servidor externo no responde, vamos a ver que dicen los logs del firewall:
Imagen 9: pfsense bloqueando puerto.
Confirmado, Pfsense nos esta bloqueando tambien, asi que agregamos un alias para este grupo y le abrimos el puerto en el firewall.

Imagen 10: Creando alias para este grupo.
Imagen 11: Agregando regla a la LAN para nuestro alias.

Imagen 12: Regla agregada.
Ahora si podemos volver a probar desde el cliente con el telnet.

Imagen 13: Conexion exitosa.
Como podran observar desde la consola del cliente ya ha logrado conectarse.

Ahora es cuestion de que intente de nuevo y...

Imagen 14: Acceso aprobado.
Al parecer hemos logrado arreglar el problema, checamos el log:


1332141021.973    155 192.168.50.99 TCP_MISS/200 1275 CONNECT 201.144.108.83:8443 - DIRECT/201.144.108.83 -


Parece que todo va bien..

Imagen 15: Pagina correcta.
Asi es el usuario a logrado entrar a la pagina que deseaba, ya nos agradecio que es lo mejor de todo.

Puede squid bloquear a un todo poderoso?

Respuesta: Si.

Aunque nosotros estemos en la ACL de usuarios sin-restricciones, ahi veces que squid nos bloquea, vean este caso:

Imagen 16: Administrador bloqeueado.
Asi es, squid nos bloqueo, por que?

Si observan la imagen 16, aparece otro puerto, el 81, nuestro logs dice:

192.168.50.100 TCP_DENIED/403 1400 GET http://pfsense.foofus.com:81//downloads - NONE/- text/html

No es posible que nos haya bloqueado, bueno aqui esta un ejemplo, el problema es que el puerto numero 81 no es un valor que sea de los conocidos, pero a diferencia del problema anterior, este no es https, es una peticion http, asi que nos vamos a la seccion safeports y agregamos el puerto con su comentario:

acl safeports port 81   #Puerto para administrador 2012-03-18

Ya saben:

squid -k parse
squid -k reconfigure

Si gustan vamos viendo si mi equipo tiene acceso a el puerto 81:
Imagen 17: Acceso denegado a el administrador.
Log de nuestro firewall:
Imagen 18: Pfsense bloqueando puerto 81.
Ustedes a lo mejor si estan en el sistema de produccion con tantos usuarios conectados y pfsense logeando a lo mejor les pueden aparecer muchos logs bloqueando el puerto 81 y varios IP's distintos, como podriamos confirmar cual IP es?

En mi caso dice que el IP del sitio bloqueado es el 64 71 188 242, podremos hacer uso de dig en nuestra consola de pfsense:
Imagen 19: Confirmando IP de dominio bloqueado.
Ahi tienen, es el mismo que indica el log de mi pfsense.

Nos falta ademas recordar que nuestro firewall tampoco tienen dado de alta el puerto 81 por ser un valor no estandarizado, asi que de nuevo doy de alta un alias y una regla que permite a este alias salir a el puerto 81(ya vieron en la imagen 10 y consecutivas como se hace) y probamos.

Imagen 20: Acceso autorizado.

Como hemos visto, como cada seccion de nuestro pfsense entra en juego, hemos observado como hacer uso de los logs que es lo mas importante, muchas veces llegamos a el foro y preguntamos cosas como estas y nunca damos estos detalles, espero que esto sirva a todos y con esto contribuir con post mas avanzados y no ver preguntas basicas en donde el problema sea algo como esto.

Va a ver muchas casos mas, pero mas o menos yo los ataco de esta manera, herramientas tan basicas como telnet nos dan informacion muy valiosa.

Los alias de pfsense es otra joya.

Este procedimiento es mi forma de atacar los problemas, y lo referente a squid no es solo para pfsense, sino a todos los administradores que hagan uso de squid, ya que sus logs y configuracion es la misma, les puede servir, no importa si es Linux, FreeBSD, pfsense, el firewall lo mismo solo deben cambiar sus reglas a la version de firewall que usen, iptables, pf, etc, etc.

Otra cosa que me gustaria agregar, a veces algunos sitios actualizan sus paginas, nombres de dominio, ip's, etc, una pagina puede estar funcionando sin problemas la semana anterior y este semana cambio algo en su estructura que nuestros ACL's deben actualizarse, esto pasa comunmente.

Bueno amigos, ojala y les sea util este tiempo que he regalado y si le sirve a 1 solo me basta.

Saludos desde Tijuana.

jueves, 15 de marzo de 2012

Pfsense 2: Restringir navegacion por horario con Squid

Siguiendo el blog, a veces es necesario dar acceso en base a la hora, por ejemplo nosotros trabajamos de 7:00AM a 5:00PM.

O bien podriamos decidir abrir el Facebook durante la hora de comida para un grupo de usuarios de 11PM a 11:50PM.

En fin uno puede hacer esto con squid.

Ya tenemos un squid operando, vamos a darle un poco de realidad a esto para que se entienda mejor.

Yo todo lo estoy manejando por IP, pero si ustedes lo manejan en base a autentificacion, no hay problema se puede llevar a cabo, voy a seguir mi blog y trabajare sobre IP para no perder el hilo.

Tengo 1 equipo con el IP:
192.168.50.99
Nombre del ACL: GRUPO1
Archivo Nuevo: GRUPO1.acl

Yo deseo que el pueda entrar a facebook, twitter, youtube cuando cene asi puede su mente descansar y relajarse.
Nombre del ACL: GRUPO1_SITIOS
Archivo Nuevo: GRUPO1_SITIOS.acl

Tiempos de acceso: 11PM A 11:59PM
Nombre del ACL: GRUPO1_HORAS

Vamos a seguir el blog, recuerden que estamos trabajando sobre el archivo: squid-custom y una vez editado, copeamos el contenido y ejecutamos el parse de squid para ver si esta todo bien escrito y enseguida reconfigurar.

1) Abrimos la consola.
2) Abrimos el archivo squid-custom y agregamos los acl:

######################################################################
###                     Opciones Personalzadas                     ###
######################################################################
###Servidores Ubuntu de la Red.
acl UBUNTU_LAN src "/usr/local/etc/squid/acl/UBUNTU_LAN.acl"
###Servidores de actualizacion para Ubuntu
acl UBUNTU_UP_SERVERS dstdomain "/usr/local/etc/squid/acl/UBUNTU_UP_SERVERS.acl"
###             Bloqueo de web msn messenger
acl msnmime req_mime_type ^application/x-msn-messenger
acl msngw url_regex -i gateway.dll
### Grupo que puede entrar a facebook de 11PM a 12AM
acl GRUPO1 src "/usr/local/etc/squid/acl/GRUPO1.acl"
acl GRUPO1_SITIOS dstdomain "/usr/local/etc/squid/acl/GRUPO1_SITIOS.acl"
acl GRUPO1_HORAS time MTWHF 23:00-23:59
###             Fin de acl's personalizadas                        ###
######################################################################

Salvan.

Archivo: /usr/local/etc/squid/acl/GRUPO1.acl

192.168.50.99/32

Salvan.

Archivo: /usr/local/etc/squid/acl/GRUPO1_SITIOS.acl

.facebook.com
.youtube.com
.twitter.com

Salvan.

3) Agregamos las ACL a nuestras reglas para que squid les permita operar:

Abrimos de nuevo el archivo squid-custom y agregamos las ACL para que trabajen:

######################################################################
###                     Opciones Personalzadas                     ###
######################################################################
###                  Nuestras ACL's en operacion.                  ###
###                     Bloqueo de WEB Messenger
http_access deny msnmime
http_access deny msngw

### ACL sin restricciones
http_access allow unrestricted_hosts
http_access deny unrestricted_hosts

### ACL para que mis ubuntu's puedan actualizarse.
http_access allow UBUNTU_LAN UBUNTU_UP_SERVERS
http_access deny UBUNTU_LAN

### ACL para dar acceso a cierta hora
http_access allow GRUPO1 GRUPO1_SITIOS GRUPO1_HORAS
http_access deny GRUPO1

###                     Fin de mis ACL's                           ###
######################################################################

Salvan.

4) Copeamos nuestro archivo personalizado a el de produccion:

cp squid-custom squid.conf

5) Revisamos si todo esta bien escrito(gramatica).

squid -k parse
(No debe retornar nada, de lo contrario arreglar el error)

6) squid -k reconfigure (No debe retornar nada, si es asi ya la hicimos)

7) Probamos en la maquina del cliente:

Accesano el Sitio Permitido
 No parece que sea la pagina que uno conoce, que paso? Lo mas seguro que facebook hace uso de otros dominios para mostrar la imagenes, vamos a revisar los logs de squid /var/squid/logs/access.log:

1331797313.531      0 192.168.50.99 TCP_DENIED/403 1438 GET http://static.ak.fbcdn.net/rsrc.php/v1/y5/r/lv-mu7kxrY8.js - NONE/- text/html

Correcto, facebook hace uso de otros dominios, asi que vamos tambien a darlos de alta en nuestros sitios permitidos:

Abrimos el archivo GRUPO1_SITIOS.acl y agregamos este dominio de facebook.

.facebook.com
.fbcdn.net

.youtube.com
.twitter.com

Salvamos.

Le pedimos a squid que levante los cambios:

squid -k reconfigure

Le pedimos a el usuario que intente de nuevo:

Sitio permitido.

Twitter y Youtube pasan por lo mismo, vean el log de squid:

Twitter:
1331797439.282      0 192.168.50.99 TCP_DENIED/403 1460 GET http://a0.twimg.com/a/1331785271/t1/css/t1_core_logged_out.bundle.css - NONE/- text/html

Youtube:

1331797704.245      0 192.168.50.99 TCP_DENIED/403 1422 GET http://s.ytimg.com/yt/jsbin/www-guide-vflOgLheI.js - NONE/- text/html

Nuestro archivo GRUPO1_SITIOS.acl queda asi:

.facebook.com
.fbcdn.net
.youtube.com
.ytimg.com
.twitter.com
.twimg.com


Salvan.

Piden a squid que levante los cambios y ya deben poder entrar a los sitios deseamos sin problemas durante el tiempo marcado.

8) Que pasa cuando ya no es la hora de navegar?

Bloqueando sitio fuera de hora.
Aqui tenemos que facebook ha sido bloqueado.

Twitter bloqueado.



Youtube bloqueado.

9) Listo problema atacado usuario feliz.

Esta es una de las tantas cosas que squid nos permite llevar a cabo, lo mas importante aparte de conocer los ACL es saber entender los logs, siempre que algo se bloquea es rapidamente leer los logs y buscar la palabra no deseada "DENIED".

Saludos!!!



lunes, 12 de marzo de 2012

Pfsense 2: Bloquear WEB MSN con Squid.

Como podemos bloquear web msn con pfsense+squid?

Squid es un poderoso software con el cual podemos proteger nuestra red de muchas cosas, como bloquear web msn, esta tarea es basica en cualquier red.

Para llevar a cabo esto debemos hacer uso de los siguientes ACL:

1) Abrimos la consola.
2) Abrimos el archivo squid.conf y agregamos las siguientes ACL:

acl msnmime req_mime_type ^application/x-msn-messenger
acl msngw url_regex -i gateway.dll
acl msnproxy url_regex -i xmlProxy.htm

3) Ya solo es cuestion de decidir donde vamos a colocar estos ACL, en este ejemplo voy a bloquear a todos, asi que las coloco al principio de nuestras ACL:

http_access deny msnmime
http_access deny msngw
http_access deny msnproxy

Lo que sigue son las ACL que estaban operando, por lo regular las reglas que bloquen siempre a el inicio.

4) Le pedimos a squid que levante los cambios.

squid -k reconfigure

5) Probar.

6) Leer los logs de squid y deben ver esto:

1331616635.498      0 192.168.50.100 TCP_DENIED/403 1438 POST http://sn1.gateway.messenger.live.com/gateway/gateway.dll? - NONE/- text/html
1331616755.703      0 192.168.50.100 TCP_DENIED/403 1438 POST http://sn1.gateway.messenger.live.com/gateway/gateway.dll? - NONE/- text/html



El navegador nos va a dar esto:

Tratando de Reconectar.
Como podran ver en la figura anterior el web msn esta tratando de conectarse, entonces a funcionado.

Ahora si abrimos el live msn que se instala vamos a observar esto:

GUI MNS bloqueado.
Tambien ha sido bloqueado.


7)Consejo, si desean llevar esto aun mas recuerden que su firewall solo debe permitir salir a los puertos que necesitamos, la regla que dice que nuestra LAN puede salir a donde sea no sirve para esto, eliminenla y abran solo lo que necesitan, ejemplo:

Puertos Necesarios Solamente.
Como podran observar solo he abierto lo que mi red necesita, nada mas, el msn GUI usa el puerto 1863 TCP, si alguien quiere usarlo sin pasar por el proxy no va a poder salir, si da de alta el proxy en el GUI de todos modos no puede salir como ya observamos, creo que hemos hecho la tarea correcto!!!

8) Listo.

Hasta pronto.