PfSense es una distribución basada en FreeBSD, derivada de m0n0wall. Su objetivo principal es tener un Firewall fácil de configurar, a través de un interfaz amigable con el usuario y que se pudiera instalar en cualquier PC, incluyendo PCS de una sola tarjeta.
Se trata de una solución muy completa, que esta licenciada bajo BSD lo que significa que es de libre distribución.
OpenBsd considerado el sistema operativo más seguro del mundo tiene presente packet filter (PF) (filtro de paquetes sistema de OpenBsd para filtrar el trafico tcp/ip proporciona además control de ancho de banda y priorización de paquetes.) como estándar desde noviembre de 2004.
Bueno para comenzar con la instalación lo primero que debemos de tener a la mano es la imagen de pfSense, después de quemarla podremos comenzar con la instalación. Manos a la obra.
Esta es la primer imagen que nos saldrá al insertar el CD de instalación, es nuestro caso usamos VirtualBox pcon la ISO correspondiente a Pfsense de 32Bit para poder virtualizar nuestro proyecto.
Le damos ENTER para que comience la instalación por “Default”.
En este paso el sistema nos pregunta si queremos crear Vlans, lo cual decimos que no (n)
En este paso, nos pide que seleccionemos las interfaces, en nuestro caso seleccionamos, le0 para WAN y le1 para LAN.
Para finalizar la configuración damos ENTER sin completar la ultima petición.
En este menú seleccionamos la opción 99. Lo cual iniciaría el asistente de instalación.
Como la instalación no es compleja salteamos todos los pasos dando ENTER en todas las opciones que nos indicaba, ya que escogimos EASY INSTALL, y nos indicara que reiniciemos la PC.
Reiniciamos…
Ingresamos a nuestro PfSense por medio de nuestro navegador copiamos la dirección Ip de la tarjeta LAN que por defecto es 192.168.1.1(Aunque nosotros la cambiamos a 10.10.10.1, en la opción 2 del Menú, y luego asignamos DHCP de rango 10.10.10.50 a 10.10.10.200). Luego nos pedirá autenticar lo que realizamos con:
User: admin
Password: pfsense
Y listo! Esta es todo para poder instalar PFsense! Sencillo!
Introduccion al proyecto
“Un portal cautivo es un programa o máquina de una red informática que vigila el tráfico HTTP y fuerza a los usuarios a pasar por una página especial si quieren navegar por Internet de forma normal.
El programa intercepta todo el tráfico HTTP hasta que el usuario se autentifica. El portal se encargará de hacer que esta sesión caduque al cabo de un tiempo. También puede empezar a controlar el ancho de banda usado por cada cliente.”
En base a esto se realizará este proyecto, realizar una red en la cual los usuarios de la misma deberán ingresar a través de una pagina web de “Login” para poder obtener Internet.
Se usan sobre todo en redes inalámbricas abiertas, donde interesa mostrar un mensaje de bienvenida a los usuarios y para informar de las condiciones del acceso (puertos permitidos, responsabilidad legal, etc.).
Portal Cautivo
Portal cautivo Yendo a [Services] [Captive portal] podemos configurar la forma en que los usuarios de una red entran a navegar por Internet. A esta prestación se le llama portal cautivo.
El portal cautivo admite desde sencillas configuraciones donde sólo aparece una página de información al usuario hasta distintos sistemas de validación.
Se muestra aquí cómo habilitar el portal cautivo para la red sin hilos (wireless) con una página de información al usuario, sin autentificación y con un tiempo máximo de conexión de 30 minutos.
<p><font face="Arial">Has entrado en nuestra red sin hilos (wireless).</font></p>
<p><font face="Arial">Esta red es un servicio público de libre acceso. Como medida legal y de seguridad, <b>todas las conexiones que realices serán registradas y guardadas durante un tiempo prudencial en nuestros servidores</b>.</font></p>
<p><font face="Arial">En caso de producirse algún problema legal con el uso de esta red nos reservamos el derecho de entregar los registros de las conexiones realizadas a las autoridades competentes.</font></p>
<p><font face="Arial"><b><font color="#FF0000">Las conexiones están limitadas a 30 minutos. Pasado este tiempo serás desconectado automáticamente.</b> Puedes, no obstante, volver a conectarte después si lo deseas.</font></p>
<p><font face="Arial">En bien de todos/as, haz un buen uso de este servicio ...</font></p>
<p><font face="Arial">¡Gracias!</font></p>
<form method="post" action="$PORTAL_ACTION$"> <p align="center"><font face="Arial"> <input name="redirurl" value="$PORTAL_REDIRURL$"> <input name="accept" value="Acepto las condiciones del servicio"> </font> </form>
</body>
</html>
Por lo tanto, cuando el usuario quiera ingresar a una URL cualquiera, previamente le aparecerá lo siguiente:
Objetivos del Portal Cautivo:
Aislar física y lógicamente las redes dedicadas a servidores, profesorado, alumnos i sin hilos (wireless). Seguridad de dentro a dentro.
Regular las comunicaciones entre las distintas redes locales y de las redes locales a Internet. Seguridad de dentro a dentro yde dentro a afuera.
Aprovechar el caudal de las tres ADSL de que se dispone, a poder ser de forma automática. Balanceo de carga.
Aumentar la seguridad en los servicios que tenemos en Internet. Seguridad de afuera a dentro.
Poder tener una red sin hilos (wireless) abierta.
Utilizar una solución abierta, de código libre.
Utilizar un hardware de tamaño reducido, integrable en el armario de comunicaciones.
Utilizar un hardware no basado en disco duro, que no requiera protección con un SAI de apagado y puesta en marcha automáticos.
Poder configurar todos los dispositivos de la red (ordenadores, impresoras, puntos de acceso, ...) mediante DHCP estático, es decir, asignándoles una dirección IP en función de su dirección MAC.
Control del uso de aplicaciones P2P.
Estandarizar y automatizar la configuración de los navegadores en lo que se refiere al uso de servidores intermediarios (proxy) y la configuración de red de todas las máquinas.
En nuestro caso, debiamos lograr que el portal cautivo se pueda aplicar a una red "Huergo" que pertenece a la escuela y mediante este, lograr que los usuarios de la red mencionada anteriormente, cuando deseen ingresar a Internet, se les aparezca una ventana que pida el usuario y la contraseña del alumno (la de la red "Huergo"). Para esto debimos utilizar RadiusFree o Radius. Las recomendaciones en cuanto a Radius son las siguientes:
Inicio del Servidor:
Una vez que se ha instalado, lo primero que debe hacer es cambiar lo menos posible . La configuración por defecto está diseñada para trabajar en todas partes, y para llevar a cabo casi todos los métodos de autenticación.
No edite los archivos de configuración por defecto hasta que entienda lo que hacen.Esto significa la lectura de la documentación contenida en los comentarios de los archivos de configuración.Muchas configuraciones comunes se documentan como sugerencias o ejemplos en los archivos de configuración. Muchos de los problemas comunes se discuten en los archivos de configuración, junto con las soluciones sugeridas.
Recomendamos la lectura de los archivos de configuración, en gran parte porque la mayoría de los elementos de configuración están documentados sólo en los comentarios en los archivos de configuración.
Cuando el servidor se ha instalado en una máquina nueva, el primer paso es iniciar en modo de depuración, como usuario root :
$ Radiusd -X
Este paso demuestra que el servidor está instalado y configurado correctamente. Si ha instalado la versión 2 de la fuente, este paso también creará los certificados predeterminados utilizados para la autenticación EAP.
Pruebas Iniciales:
Autenticación La prueba es simple. Editar el usuarios de archivos, y añadir la siguiente línea de texto en la parte superior, antes de cualquier otra cosa:
pruebas Cleartext-Contraseña: = "password"
Inicie el servidor en modo de depuración ( -X radiusd ), y ejecutar radtest desde otra ventana de terminal:
Usted debe ver el servidor responde con una aceptación de acceso . Si no lo hace, el registro de depuración mostrará por qué. Pega el resultado en la forma de depuración , y una versión HTML coloreada será producido. Busque texto en rojo o amarillo, y leer los mensajes.
Si lo hace ver un Access-Accept , entonces felicitaciones , los siguientes métodos de autenticación ahora trabajan para la prueba de usuario:
El siguiente paso es añadir más usuarios, y para configurar las bases de datos. Esos pasos son fuera del alcance de esta página web corto, pero el método general para usar es importante, y se describe en la siguiente sección.
Los pasos siguientes describen el método más conocido para la configuración del servidor. Tras ellos le permite crear configuraciones complejas con un minimm de esfuerzo. Si no se siguen los lleva a día de frustración y esfuerzo perdido.
Configuracion del Servidor:
Cambio de la configuración del servidor se debe hacer a través de los siguientes pasos:
Comience con una configuración de "trabajo conocido", tal como se suministra por la instalación por defecto.
Haga un pequeño cambio en los archivos de configuración.
Inicie el servidor en modo de depuración ( -X radiusd ).
Verifique que los resultados son lo que usted espera
El resultado de la depuración muestra los cambios de configuración que haya realizado.
Bases de datos (si se utiliza) están conectados y en funcionamiento.
Paquetes de prueba son aceptados por el servidor.
El resultado de la depuración muestra que los paquetes están siendo procesados como espera.
Los paquetes de respuesta son contener los atributos que se pueden esperar para ver.
Si todo está bien, guardar una copia de la configuración, vuelva al paso (2), y hacer otro cambio.
Si algo sale mal,
vuelva a comprobar la configuración
leer la totalidad de la salida de depuración, en busca de palabras comoerror o advertencia . Estos mensajes suelen contener descripciones de lo que salió mal, y sugerencias sobre cómo se puede arreglar. (Véase también la forma de depuración )
Trate de sustituir a su configuración con una copia guardada de una configuración "de trabajo conocido", y empezar de nuevo. Este proceso puede limpiar los errores causados por cambios temporales, o ediciones que usted ha olvidado.
Pida ayuda en los freeradius usuarios lista de correo. Incluya una descripción de lo que está tratando de hacer, y la totalidad de salida de depuración , especialmente de salida se muestran los paquetes de recepción del servidor y de las pruebas de procesamiento. Es posible que desee para fregar la información "secreta" de la salida antes de publicarlo. (Secretos compartidos, contraseñas, etc.)
En nuestro caso en particular, tuvimos que colocar el siguiente codigo en la consola del Radius para lograr que el Portal Cautivo tenga efecto sobre los usuarios de la red.
Ready to process requests.
rad_recv: Access-Request packet from host 192.168.2.90 port 38060, id=57, length=130
NAS-IP-Address = 192.168.2.90
NAS-Identifier = "pfsense.localdomain"
User-Name = "alumno"
User-Password = "huergo200509"
Service-Type = Login-User
NAS-Port-Type = Ethernet
NAS-Port = 2000
Framed-IP-Address = 10.10.10.50
Called-Station-Id = "192.168.2.90"
Calling-Station-Id = "64:70:02:b6:cc:11"
# Executing section authorize from file /usr/local/etc/raddb/sites-enabled/default
+group authorize {
++[preprocess] = ok
++[chap] = noop
++[mschap] = noop
++[digest] = noop
[suffix] No '@' in User-Name = "alumno", looking up realm NULL
[suffix] No such realm "NULL"
++[suffix] = noop
[eap] No EAP-Message, not doing EAP
++[eap] = noop
[files] users: Matched entry DEFAULT at line 50
++[files] = ok
++[expiration] = noop
++[logintime] = noop
[pap] WARNING! No "known good" password found for the user. Authentication may fail because of this.
++[pap] = noop
+} # group authorize = ok
Found Auth-Type = System
# Executing group from file /usr/local/etc/raddb/sites-enabled/default
+group authenticate {
++[unix] = ok
+} # group authenticate = ok
# Executing section post-auth from file /usr/local/etc/raddb/sites-enabled/default
+group post-auth {
++[exec] = noop
+} # group post-auth = noop
Sending Access-Accept of id 57 to 192.168.2.90 port 38060
Finished request 2.
Going to the next request
Waking up in 4.9 seconds.
Cleaning up request 2 ID 57 with timestamp +259
Ready to process requests.
less radiusd.conf
vi modules/unix
less users
listen {
ipaddr = *
# ipv6addr = ::
port = 0
type = acct
# interface = eth0
# clients = per_socket_clients
}
# Unix /etc/passwd style authentication
#
unix {
# allowed values: {no, yes}
cache = no
# Reload the cache every 600 seconds (10mins). 0 to
# disable.
cache_reload = 600
# This is required for some systems, like FreeBSD,