Información técnica sobre las conexiones en modo sin agente para sistemas Linux

El uso de conexiones en modo sin agente para supervisar sistemas Linux es posible proporcionando a Cyberwatch una cuenta que permita conectarse al activo mediante el protocolo SSH. El protocolo SSH ofrece diferentes métodos para gestionar la autenticación (contraseñas, claves SSH) de las cuentas autorizadas.

Crear una cuenta SSH con autenticación por login/contraseña

Por ejemplo, es posible usar el siguiente comando:

sudo useradd --create-home --shell '/bin/bash' --comment 'CyberWatch SAS' 'cyberwatch'
sudo passwd cyberwatch # Atencion, aqui debera introducir la contrasena que se asignara a la cuenta

Explicacion: este comando crea una cuenta llamada “cyberwatch” y permite definir la contraseña de esta cuenta.

Crear una cuenta SSH con autenticación por clave publica/clave privada

Generación de la clave SSH

En una maquina Linux dedicada a la generación de claves, genere una clave RSA de 4096 bits:

ssh-keygen -t rsa -b 4096

Por defecto, esta clave se guardara en los archivos ~/.ssh/id_rsa (clave privada) y ~/.ssh/id_rsa.pub (clave publica).

Las claves SSH con passphrase no son compatibles.

Creación del usuario y configuración de la clave

En el activo Linux a proteger, cree un usuario ‘cyberwatch’ con el comando:

sudo useradd --create-home --shell '/bin/bash' --comment 'CyberWatch SAS' 'cyberwatch'

Desde la maquina Linux dedicada a la generación de claves, transfiera la clave publica generada en el punto 1 al activo Linux a proteger. Esto puede realizarse con el comando:

cat ~/.ssh/id_rsa.pub | ssh [user]@[host] 'sudo tee -a /home/cyberwatch/.ssh/authorized_keys'

sustituyendo [user] y [host] por los parámetros de conexión del activo que se va a supervisar.

Opcional - Conceder permisos sudoers SIN TTY a Cyberwatch

Para ciertas operaciones, como el despliegue de correcciones, la ejecución de algunos escaneos o la verificacion de scripts de Conformidad, son necesarios permisos sudoers para ejecutar los comandos asociados en el activo.

Proporcionar estos permisos no es estrictamente necesario. Cyberwatch puede ejecutar por defecto sus escaneos de vulnerabilidades sin tener permisos especificos en los activos supervisados.

A continuación se muestra una de las formas de establecer estos permisos en sus activos para permitir a Cyberwatch realizar las operaciones mencionadas.

En el activo objetivo, vía SSH, use el siguiente comando:

sudo visudo

Agregue al final del archivo las siguientes lineas:

# cyberwatch privileges
cyberwatch ALL=(ALL) NOPASSWD:ALL
Defaults:cyberwatch !requiretty

Explicacion: este comando modifica el archivo /etc/sudoers y configura los permisos del usuario “cyberwatch” para que sea sudoer y deshabilita TTY.

Detalle de los permisos sudoers minimos necesarios para desplegar correcciones en sistemas Linux

Los sistemas Linux ofrecen métodos para limitar los permisos sudoers al uso de ciertos comandos. Esto puede ser útil si desea permitir que Cyberwatch realice ciertas operaciones especificas como el despliegue de correcciones.

Sin embargo, esto no sera suficiente para permitir que Cyberwatch realice los análisis de Conformidad, ya que no es posible establecer una lista completa de los comandos que pueden ser ejecutados y que requieren permisos sudoers.

Una forma de restringir los permisos sudoers del usuario usado para supervisar un activo Linux es limitar sus permisos a los siguientes comandos:

id
apt-get/yum/pacman
shutdown
ss
dmidecode
docker

A continuación, una breve explicacion de por que podría autorizar estos comandos:

  • id es el primer comando ejecutado por Cyberwatch al conectarse a un activo, permite determinar si Cyberwatch dispone o no de permisos sudoers en el activo
  • apt-get/yum/pacman son gestores de paquetes usados tipicamente en diferentes sistemas Linux (lista no exhaustiva), se utilizaran cuando Cyberwatch despliegue correcciones en función del sistema operativo
  • shutdown se usara si desea desencadenar un reinicio de sus activos desde Cyberwatch
  • ss se usa para el escaneo de puertos. Autorizar la ejecución de este comando con permisos sudoers permite a Cyberwatch recuperar los procesos detrás de los distintos puertos
  • dmidecode se usa para recuperar los metadatos del BIOS, el comando requiere permisos sudoers
  • docker se usa para ejecutar el escaneo de vulnerabilidades de las imágenes Docker encontradas en el activo

Para un activo que utiliza apt, un ejemplo de configuración del archivo /etc/sudoers podría ser:

# cyberwatch privileges
Cmnd_Alias CBW = /usr/bin/id, /usr/bin/apt-get, /sbin/shutdown, /usr/bin/ss, /usr/sbin/dmidecode, /usr/bin/docker
cyberwatch-agent ALL=(ALL) NOPASSWD:SETENV: CBW
Defaults:cyberwatch-agent !requiretty

Volver arriba

English Français Español