Archivo de la etiqueta Seguridad

Error de autenticación 802.1x mediante certificado en ISE

En un cliente hemos encontrado el siguiente problema, la autenticación de usuarios 802.1x mediante certificado falla y aparece el siguiente error en el live log de ISE:

OpenSSLErrorMessage SSL alert: code=0x22E=558 ; source=local ; type=fatal ; message=»certificate unknown.ssl/statem/statem_srvr.c:3800 error:1417C086:SSL routines:tls_process_client_certificate:certificate verify failed [error=337100934 lib=20 func=380 reason=134]»

Hay poca documentación al respecto, en este hilo de free radius se apunta a las EKU del certificado como motivo. Dado que la autenticación de máquina sí que funcionaba tras comparar los certificados y realizar varias pruebas con las propiedades de EKU, llegamos a la conclusión de que el error derivaba de que el certificado tenía marcada como crítica la clave EKU. Una vez no configurada como crítica la clave EKU la autenticación funciona perfectamente, este error también se extendía a equipos IPHONE, softphone AVAYA y posiblemente a otros dispositivos que usen las librerías de OPENSSL para la comprobación del certificado.

Comprobar actualizaciones de las firmas antimalware por cli en Checkpoint Endpoint Server

Si fallan las actualizaciones de las firmas antimalware, para ver un log de lo que sucede, iniciando dos sesiones ssh, en una de ellas se ejecuta:

cd $UEPMDIR/engine/conf/updates/bin/kav8
./keepup2date8.sh –download –simplelic –xmlfile confZLToProduction.xml –journal update.log

Y en la otra ejecuta se hace un tail del log:

tailf update.log

Por supuesto también se puede ejecutar en una sola sesión ssh y ver el log una vez finalizado el intento de actualización

Checkpoint: Los usuarios de VPN de acceso remoto, reciben direcciones IP reservadas en ipassignment.conf

Tras configurar la reserva de direcciones IP en el archivo $FWDIR/conf/ipassignment.conf, y aplicar la política, en los logs se observa que esas direcciones son asignadas a otros usuarios. Para solucionar este comportamiento, hay que utilizar distintas redes para Officemode y para ipassignment.conf. Esto se puede hacer mediante la segmentación de la red utilizada para Officemode, la pool VPN vamos o utilizando dos redes totalmente diferentes.

Una vez configurado con distintas redes, si está activado el Antispoofing para la interfaz de Internet, hay que añadir la red utilizada en $FWDIR/conf/ipassignment.conf a las excepciones de Antispoofing para dicha interfaz.

Configurar VPN con doble autenticación mediante certificados en Checkpoint R80.10

En este post resumo los pasos a seguir para configurar la autenticación de usuarios, mediante certificado y/o doble autenticacióm con certificado y usuario y contraseña para VPN de acceso remoto; ya sea para usuarios internos o de Active Directory (con pequeños cambios sirve para LDAP).

Script para la recolección de eventos de Microsoft windows remotamente

Este script lo desarrollé para un cliente y permite recoger eventos de una o varias máquinas corriendo Microsoft Windows. Se ha probado con Microsoft Windows Server 2003 pero posiblemente funcione bien en otras versiones. A continuación inserto la documentación creada para el cliente, que explica en detalle el funcionamiento.

Descarga el script Remote-Events_log-retriever

Convertir una máquina GNU/Linux en un «appliance»

Un cliente me pidió que le crease unas máquinas GNU/Linux con varios programas para la monitorización y el análisis del tráfico de red. La idea era repartir varias máquinas por distintos puntos de su extensa red y vigilar durante un tiempo ese segmento.

El cliente tan solo quería varias máquinas con GNU/Linux y algunos programas instalados, que se administrasen remotamente por SSH y enviaran a un servidor splunk central las alertas de Snort. Pero a mí me pareció una ocasión ideal para explotar la flexibilidad de GNU/Linux y las cosas chulas que se pueden hacer de una forma sencilla, así que me planteé los siguientes puntos que debería cubrir la solución:

  • Los usuarios no deben conocer la contraseña de administrador
  • Debe ser factible la gestión de los programas que se instalen (esto requiere privilegios de administrador)
  • Permitir su uso por usuarios con conocimiento cero de GNU/Linux (esto quiere decir que hay que evitar la SHELL)
  • Si llega a manos de un usuario con conocimientos, no quiero que desmonte el chiringuito. Hay que limitar el acceso
  • Los datos deben estar cifrados en el disco, ya que pueden contener datos sensibles y se van a mover por la geografía estatal
  • Se deben poder configurar las tarjetas de red

Para cubrir estos requisitos hay que:

  • Proteger la BIOS y el gestor de aranque (Grub) por contraseña
  • Cifrar la mayor parte del disco duro
  • Modificar el inicio para que init no lance el proceso login
  • Crear una interfaz de uso sencillo y que no permita el acceso a la SHELL

Esto en la práctica implica transformar un GNU/Linux en una caja «tonta» que muestre un menú con las distintas acciones que se le permite realizar al usuario al arrancar la máquina, es decir en el TTy1. Además decidí mostrar el log de Snort en el TTy2.

A continuación muestro la documentación entregada al cliente en la que se explica con detalle la arquitectura. La documentación incluye, en el Anexo, un script que automatiza el proceso de configuración una vez instalado GNU/Linux.

Guía de bastionado de Microsoft Windows Server

Esta es una guía que he desarrollado para un cliente, por lo tanto hay aspectos que se adaptan a sus necesidades (como el cortafuegos). Pero ha grandes rasgos puede ser utilizada en cualquier ámbito.

1.     Principios genéricos

A la hora de instalar, configurar y administrar un servidor, se debe:

  • Cifrar todos los datos que se transmiten a través de la red, son particularmente importante los datos relativos a nombres de usuario y contraseñas
  • Minimizar la cantidad de programas y servicios instalados y en ejecución para minimizar el riesgo potencial ante vulnerabilidades
  • Utilizar medidas de seguridad adicionales, como: antivirus, cortafuegos a nivel de host o antimalware
  • Auditar los elementos críticos y/o de mayor riesgo de cada servidor
  • Minimizar la instalación de varios servicios en un mismo servidor, para reducir el riesgo de que un servicio comprometido afecte a otros servicios
  • Realizar un buen seguimiento de las cuentas de usuario, seguir una política de contraseñas sólida y forzar su uso así como eliminar las cuentas de usuarios innecesarias o que ya no se utilicen
  • Revisar los logs de sistema y de aplicación de manera rutinaria. Enviar los logs a un servidor de logs
  • Minimizar el uso de usuarios locales
  • Utilizar la metodología del menor privilegio en todos los ámbitos

Guía de bastionado Linux, basado en RedHat Enterprise Linux

Esta es una guía que he desarrollado para un cliente, por lo tanto hay aspectos que se adaptan a sus necesidades (como iptables). Pero ha grandes rasgos puede ser utilizada en cualquier ámbito. También he desarrollado un script modular que automatiza todo el proceso, para más información ir a este post: Script modular para el bastionado de GNU/Linux

1.     Principios genéricos

A la hora de instalar, configurar y administrar un servidor, se debe:

  • Cifrar todos los datos que se transmiten a través de la red, son particularmente importante los datos relativos a nombres de usuario y contraseñas
  • Minimizar la cantidad de programas y servicios instalados y en ejecución para minimizar el riesgo potencial ante vulnerabilidades
  • Utilizar medidas de seguridad adicionales como: SELinux, IPtables, Apparmor
  • Auditar los elementos críticos y/o de mayor riesgo de cada servidor
  • Minimizar la instalación de varios servicios en un mismo servidor, para reducir el riesgo de que un servicio comprometido afecte a otros servicios
  • Realizar un buen seguimiento de las cuentas de usuario, crear una política de contraseñas sólida y forzar su uso así como eliminar las cuentas de usuarios innecesarias o que ya no se utilicen
  • Revisar los logs de sistema y de aplicación de manera rutinaria. Enviar los logs a un servidor de logs
  • Evitar el inicio de sesión con el usuario root. Los administradores deben usar el comando sudo para ejecutar comandos como root. Utilizar el comando visudo para editar el archivo /etc/sudoers, este comando comprueba la sintaxis del archivo antes de guardarlo
  • Utilizar la metodología del menor privilegio en todos los ámbitos

Convertir un certifacado pfx (Microsoft) al formato PEM con openssl

  1. openssl pkcs12 -in archivo.pfx -out resultado.pem
  2. openssl pkcs12 -nokeys -in archivo.pfx -out resultado.cert
  3. openssl pkcs12 -nocerts -in archivo.pfx -out resultado.key -nodes
  4. Si vas a usar el certificado en un Cisco CSS hay que eliminar todo el contenido delante de «—–BEGIN RSA PRIVATE KEY—–» en el archivo resultado.key

Recetas

NMAP

-Idle scan (Escaneo pasivo)

1- Obtener hosts vulnerables como intermediario

shell#: nmap -O -v -sS|sT|sA|sW|sM objetivo -oA objetivo.result

2- Buscar los hosts vulnerables en el resultado

shell#: grep «IP ID» objetivo.result.gnmap | perl -pe ‘s/Host:([^\t]+).*IP ID Seq:([^:]+)/$1 $2/’

3-Realizar ping a través de un intermediario

shell#: nmap -PN -p- -sI intermediario destino

-Escaneo ping rápido

nmap -sP rango_ip

PERL

-Sustitución en linea multlinea

perl -pi.back -e ‘undef $/; s/SEARCH/REPLACE/ims’ file