Gestión centralizada de usuarios con OpenLDAP

En uno de los últimos artículos hablábamos de cómo podemos hacer que nuestra Ubuntu sea más segura siguiendo las buenas prácticas reconocidas por los estándares internacionales. Si bien en ese mismo texto explicábamos como gestionar los usuarios locales, no valoramos cómo realizar dicha gestión cuando disponemos de una red con más de un servidor.

Con el objetivo de tener un mayor control sobre los usuarios definidos y una política de contraseñas homogénea, lo ideal en una red es disponer de un servicio centralizado de autenticación. Imaginaros que disponemos de una red con 20 servidores y necesitásemos dar de alta un nuevo usuario, deberíamos ejecutar las pertinentes modificaciones en los 20 diferentes entornos con el riesgo de errores e inconsistencias que ésto implica. Por otra parte, desde la perspectiva del usuario nos encontramos con 20 contraseñas que no tienen porque estar sincronizadas, diferentes políticas, etc… al final es más que probable que el usuario utilice contraseñas débiles o que las anote en un postit pegado al monitor.

Por esos motivos, desde el punto de vista de la seguridad, es recomendable disponer de un servicio centralizado de autenticación. Históricamente en el mundo Unix se ha utilizado NIS (Network Information Service), pero actualmente ya se encuentra en desuso y se recomienda LDAP por tratarse de un sistema más moderno y seguro.

Entre las implementaciones de LDAP más conocidas tenemos el Directorio Activo de Windows y OpenLDAP para sistemas Linux/Unix (también puede integrarse con clientes Windows). Veamos como podemos montar un servicio centralizado de autenticación con OpenLDAP que cumpla los siguientes requisitos:

  • Autenticación contra un único punto centralizado de la red.
  • Conexiones cifradas con TLS.
  • Identificación de estaciones mediante certificados digitales (únicamente podrán conectarse al servidor los clientes que dispongan de un certificado creado por nosotros y viceversa)
  • Política de contraseñas homogénea y robusta.
  • Los usuarios definidos en OpenLDAP dispondrán de campos donde se especificará a que máquinas tienen acceso. La autorización a que servicios de cada máquina se delegará a cada servidor para no perder flexibilidad.
  • Cuando el usuario se autentica por primera vez en un sistema, se almacenan sus credenciales en una cache local, de forma que si el servidor de LDAP cae temporalmente, el usuario puede seguir conectándose.

Continue reading Gestión centralizada de usuarios con OpenLDAP

R, estadística y tratamiento masivo de datos (alternativa a SAS, ACL e IDEA)

En el último artículo hemos visto AWK como herramienta para el tratamiento masivo de datos, donde hemos demostrado que podía ser una alternativa parcial a otras herramientas comerciales como SAS, ACL o IDEA (muy utilizadas en el mundo de la Auditoría). AWK es una solución parcial dado que únicamente nos proporciona funcionalidades para hacer un tratamiento básico sobre los ficheros (p.ej. sumarizaciones, cruces de datos, operaciones matemáticas simples, etc), sin embargo no tenemos las características estadísticas que si podemos encontrar en las herramientas comerciales.

Afortunadamente para todas esas funcionalidades podemos apoyarnos en R: R es un lenguaje de programación que permite llevar a cabo análisis estadísticos avanzados, entendiendo por por estadística como la ciencia de recoger y analizar datos con el propósito de sacar conclusiones y tomar decisiones.

Con R también podemos realizar cálculos numéricos, aunque para esas tareas también vale la pena echar un vistazo a Octave.

Aparte de las potentes características de R, existen multitud de paquetes que amplían las funcionalidades: desde dedicados al análisis de datos psicológicos hasta financieros.

Al igual que AWK, R no ofrece una interfaz gráfica tan potente como las herramientas comerciales que comentavamos, aunque podemos apoyarnos en determinados mecanismos que nos harán la vida más fácil a la hora de tratar la información (p.ej. utilizando MySQL Query Browser) como veremos en las correspondientes secciones del artículo.

Para aprender a utilizar R mediante esta guía es muy recomendable replicar todos los ejemplos y visualizar los resultados directamente. Únicamente leyendo el artículo es más difícil entender el funcionamiento completo de la herramienta.

De antemano pido disculpas si soy inexacto o cometo algún tipo de error en las explicaciones estadísticas, no soy un experto en esa materia y estaré muy agradecido si detectáis incorrecciones y las hacéis llegar vía comentario o correo.

Finalmente, destacar que para la elaboración del artículo me he basado en diversos tutoriales que he encontrado por Internet, especialmente simpleR, con los cuales he ido aprendido a utilizar R de forma paralela a la redacción de esta guía.
Continue reading R, estadística y tratamiento masivo de datos (alternativa a SAS, ACL e IDEA)

Tratamiento masivo de datos con AWK, alternativa parcial a ACL o SAS

GNU awk es una herramienta muy útil para modificar archivos, buscar y transformar datos y, en general, realizar cualquier tipo de tratamiento masivo de ficheros. Con un programa awk es posible contar el número de líneas de un archivo, seleccionar columnas, aplicar filtros, realizar cruces, borrar el último campo de cada línea, hacer sumarizaciones, comprobar duplicados, muestreos, etc.

Para aprender a utilizar AWK mediante esta pequeña guía, lo mejor es copiar los ficheros de ejemplo que aparecen y ejecutar las instrucciones o programas que se comentan para ver directamente cual es el resultado. Únicamente leyendo la guía es bastante más complicado entender el funcionamiento de AWK.
Continue reading Tratamiento masivo de datos con AWK, alternativa parcial a ACL o SAS

I Jornades GPL Tarragona

El dijous 29 de Gener tindran lloc les primeres Jornades GPL Tarragona, a on tenim convidats molt especials que estic convençut que ens faran passar una bona estona. Podeu accedir a l’agenda de les jornades a la mateixa web de GPL Tarragona, o bé escoltar el programa l’Internauta de Vicent Partal a Catalunya Radio, a on hem tingut el plaer de participar.

Us recomano que visiteu directament la pàgina de L’internauta per accedir als programa complet mitjançant podcast. No obstant, per anar obrint boca he fet l’extracció de l’entrevista per penjar-la a la plataforma Woices (a les jornades tindrem l’oportunitat de conèixer els detalls darrera d’aquesta iniciativa empresarial).

Per altra banda, qui vulgui accedir a GPL Tarragona aprofitant les possibilitats de SocialDNS (cal instal·lar plugin pel navegador) pot fer-ho mitjançant go://gpltarragona. A les jornades també podrem conèixer que hi ha darrera d’aquesta comunitat/tecnologia.

Us esperem a tots!

Cifrar un directorio en Ubuntu GNU/Linux mediante EncFS

Si necesitamos almacenar información sensible en nuestro sistema, a parte de tener en cuenta los procedimientos de borrado seguro, tenemos varias opciones:

  • Cifrar una partición entera con LUKS (Truecrypt también lo permite): Como desventaja la configuración es más costosa y si hablamos de la partición principal del sistema, en el arranque el usuario ha de introducir la contraseña para que la máquina pueda iniciarse (no es útil para servidores). Por contra, tenerlo todo cifrado te garantiza que no dejas información por error en lugares no cifrados del disco.
  • Crear un archivo que contendrá información cifrada (por ejemplo mediante Truecrypt): las desventajas es que el tamaño del fichero es fijo (se ocupan X GB aunque no haya información) y no se pueden realizar copias de seguridad incrementales, por contra Truecrypt tiene la ventaja de que es compatible con sistemas Linux y Windows (ideal para USB pendrives) y es muy fácil de usar gracias a su interfaz gráfica.
  • Cifrar un directorio mediante EncFS: permite realizar copias de seguridad incrementales y no nos impone una ocupación en disco mayor que la necesaria

Veamos como podemos utilizar la tercera opción:

sudo apt-get install encfs
sudo adduser miusuario fuse
sudo chmod 660 /dev/fuse
sudo chown root:fuse /dev/fuse
sudo modprobe fuse

Al igual que sshfs, EncFS utiliza Fuse y por tanto cualquier usuario que pertenezca al grupo ‘fuse’ podrá crear y montar directorios cifrados:

mkdir ~/.private
mkdir ~/Private
encfs ~/.private ~/Private

La primera vez que ejecutamos ‘encfs’, deberemos escoger si queremos una configuración en modo experto o deseamos una de las configuraciones predefinidas: paranoica o estándar. La segunda será suficiente siempre y cuando establezcamos una contraseña robusta.

En el ejemplo, cabe destacar que EncFS guardará los archivos cifrados en ~/.private y los nombres de los ficheros también estarán cifrados (lo único que no se oculta es la cantidad de ficheros, información poco valiosa habitualmente). Para desmontar el directorio podemos ejecutar:

fusermount -u ~/Private