Servidor Samba, Ldap y Radius para EAP con wifi

Introducción

Se trata de configurar un servidor que permita validar el acceso a wifi mediante EAP, tanto TLS como PEAP a partir de una base de datos de usuarios samba almacenada en LDAP. Esta base de datos incluso podía estar almacenada en un servidor de dominio externo con un simple cambio de configuración de samba.

La instalación toma como referencia una distribución de Linux Fedora. En cualquier otra distribución serían necesarios ciertos cambios menores para adaptarse a sus características particulares.

 

Elementos integrantes

Para esta configuración entran en juego una serie de aplicaciones que tendrán que relacionarse entre sí. Tendremos que instalar todos los paquetes siguientes, aunque muchos de ellos son dependientes de otros y no es necesario especificarlos todos.

 

OpeSSL

OpenSSL es un conjunto de herramientas de administración y bibliotecas de funciones criptográficas para realizar transmisiones cifradas, como es el caso de  HTTPS.

OpenSSL permite implementar Secure Sockets Layer (SSL) y Transport Layer Security (TLS).

OpenSSL también permite crear certificados digitales para utilizar tanto con clientes como con servidores.

Los paquetes necesarios:

openssl

openssl-libs

Samba

Samba es un desarrollo para sistemas de tipo Unix del protocolo de archivos compartidos de Microsoft Windows originalmente llamado SMB, renombrado recientemente como CIFS.

Samba también permite validar usuarios haciendo de Controlador Principal de Dominio (PDC), como miembro de dominio o como un dominio Active Directory para redes basadas en Windows. Además puede servir colas de impresión, directorios compartidos y autenticar con su propia base de datos de usuarios.

Los paquetes necesarios

samba-libs

samba-winbind-modules

samba-winbind-krb5-locator

samba-dc

samba-dc-libs

samba-client

samba

samba-common

samba-winbind-clients

samba-winbind

smbldap-tools

Openldap

El nombre LDAP corresponde a las siglas de Lightweight Directory Access Protocol, es decir Protocolo Ligero de Acceso a Directorios.

El protocolo LDAP es un protocolo de la capa de aplicación que permite el acceso a un servicio de directorio al que pueden realizarse consultas. Un directorio es un conjunto de objetos con sus correspondientes atributos, organizado jerárquicamente.

El aspectos de LDAP que no interesa es su posibilidad de almacenar la información de los usuarios de un sistema y proporcionar los mecanismos de autenticación basados en usuario y contraseña.

Openldap utiliza los puertos tcp  389 para conexiones sin cifrar y 636 para conexiones TLS.

Los paquetes necesarios para openldap son los siguientes:

krb5-server-ldap

ldapvi

openldap-clients

nss-pam-ldapd

openldap

sssd-ldap

Freeradius

El nombre RADIUS corresponde a las siglas Remote Authentication Dial-In User Service.. Es un protocolo de autenticación y autorización para aplicaciones de acceso a la red o movilidad IP. Utiliza el puerto 1812 UDP para establecer sus conexiones.

Una de las características más importantes del protocolo RADIUS es su capacidad de manejar sesiones, notificando cuando comienza y termina una conexión, así que al usuario se le podrá determinar su consumo y facturar en consecuencia; los datos se pueden utilizar con propósitos estadísticos.

freeradius-ldap

freeradius

freeradius-utils

Kerberos

Kerberos es un protocolo de autenticación de redes de ordenador creado por el MIT que permite a dos ordenadores en una red insegura demostrar su identidad mutuamente de manera segura. Sus diseñadores se concentraron primeramente en un modelo de cliente-servidor, y brinda autenticación mutua: tanto cliente como servidor verifican la identidad uno del otro. Los mensajes de autenticación están protegidos para evitar eavesdropping y ataques de Replay.

Kerberos se basa en criptografía de clave simétrica y requiere un tercero de confianza. Además, existen extensiones del protocolo para poder utilizar criptografía de clave asimétrica.

pam_krb5

sssd-krb5

krb5-server

krb5-lib

krb5-server-ldap

krfb-libs

krdc-libs

krb5-libs

krb5-workstation

krdc

sssd-krb5-common

Squid

Squidd es un proxy-cache web que admite en su configuración diversos mecanismos de acceso, denegación y control de ancho de banda. Entre los mecanismos de acceso, squid dispone de mecanismos de autenticación.

squid

Estructura de la configuración

Nombre de host: caronte

Dominio DNS: bezmi.ies

Dirección IP de caronte.bezmi.ies: 192.168.10.1

Dominio samba: BEZMI.IES

Sufijo: Ldap: dc=bezmi.ies,dc=es

Dominio Kerberos: BEZMI.IES

Red local: 192.168.10.0/24

Gateway: 192.168.10.1

Servidor DNS: 192.168.10.1