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:
- Acceso a consultar DNS.
- Navegacion sobre el protocolo HTTP(Puerto 80)
- Navegacion sobre el protocolo HTTPS(Puerto 443)
- Acceso a servidores FTP.
- 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:
2) Importar los certificados de nuestro cliente:
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.
- cron
- diag_new_states
- 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:
- sarg
- 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.