Archivo por meses: febrero 2013

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

Sigue leyendo

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.

Sigue leyendo

Integrar un servidor GNU/Linux a un directorio activo de Microsoft

Estos son los pasos a seguir para integrar un servidor RedHat a un AD de Microsoft y poder iniciar sesión con usuarios de AD en RedHat.

Excepto los pasos de instalación de paquetes, el resto de pasos deben servir para el resto de distribuciones de GNU/Linux y para los Unix en general.

  • Instalar y configurar NTP para que sincronice con el ad
    • yum install ntp
    • editar /etc/ntp.conf y agegar la línea “server ip_del_DC
  • Instalar samba
    • yum install samba
    • Samba debe estar compilado con las opciones: «–with-shared-modules=idmap_ad,idmap_rid», para comprobarlo ejecutar los comandos
      • grep idmap_ad $(which smbd)
      • grep idmap_rid $(which smbd)
  • Configurar PAM (Plugable Authentication Modules) Sigue leyendo

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

Sigue leyendo

Script modular para el bastionado de GNU/Linux

Objetivo

El script bastiona-linux pretende facilitar el proceso de aplicación de los requisitos corporativos de bastionado, a la vez que crea una plataforma flexible para la incorporación de nuevas medidas que puedan surgir en el futuro así como para eliminar o modificar las ya existentes.

Ejecución

El script se puede ejecutar de dos maneras:

1-      Mediante la asignación de permisos de ejecución

chmod +x bastiona-REL.sh

./ bastiona-REL.sh

2-      Invocando una nueva instancia de bash con el script como argumento

bash bastiona-REL.sh

Argumentos de ejecución

Es posible indicar como argumento de ejecución las opciones:

  • -h o –help: Muestra un mensaje de ayuda por pantalla
  • -r o –restore: Restaura el sistema al estado pre-bastionado, deshace todos los cambios realizados por el script de bastionado

Sigue leyendo

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

Sigue leyendo