
Prólogo
Nuestra "amistad" comenzó hace dos años. Llegué a un nuevo trabajo donde el administrador anterior me dejó esta herramienta como herencia. En Internet, aparte de la documentación oficial, no encontré nada más. Incluso ahora, si buscas "rudder" en Google, en el 99% de los casos se refiere a timones de barcos y drones. Logré encontrar la manera de usarlo. Dado que la comunidad de este software es insignificante, decidí compartir mi experiencia y dificultades. Creo que será útil para alguien.
Así que, Rudder
Rudder es una herramienta de auditoría y gestión de configuración de código abierto que ayuda a automatizar la configuración del sistema. Funciona con el principio de instalar un agente en cada usuario final. A través de una interfaz fácil de usar, podemos observar cuán bien nuestra infraestructura cumple con todas las políticas establecidas.
Uso
A continuación, enumeraré para qué utilizo Rudder.
Control de archivos y configuraciones: .\/ssh\/authorized_keys; \/etc\/hosts; iptables; (y qué más se me ocurra)
Control de paquetes instalados: zabbix.agent o cualquier otro software
Instalación del servidor
Recientemente actualicé de la versión 5 a la 6.1, todo salió bien. A continuación se presentarán los comandos para Debian\/Ubuntu, pero también hay soporte para: y .
Ocultaré la instalación en spoilers para no distraerles.
Spoiler
Dependencias
Para el rudder-server se requiere Java RE, mínimo la versión 8, se puede instalar desde el repositorio estándar:
Verificamos si está instalada
java -versionsi la salida
-bash: java: command not foundentonces instalamos
apt install default-jreServidor
Importamos la clave
wget --quiet -O- "https:\/\/repository.rudder.io\/apt\/rudder_apt_key.pub" | sudo apt-key add -Aquí está la huella digital
pub 4096R\/474A19E8 2011-12-15 Rudder Project (clave de liberación)
Huella de clave = 7C16 9817 7904 212D D58C B4D1 9322 C330 474A 19E8Como no tenemos una suscripción paga, añadimos el siguiente repositorio
echo "deb http:\/\/repository.rudder.io\/apt\/6.1\/ $(lsb_release -cs) main" > \/etc\/apt\/sources.list.d\/rudder.listActualizamos la lista de repositorios e instalamos el servidor
apt update
apt install rudder-server-rootCreamos un usuario admin
rudder server create-user -u admin -p "Tu Contraseña"Más adelante podemos gestionar usuarios a través de la configuración
Listo, el servidor está preparado.
Configuración del servidor
Ahora es necesario agregar las direcciones IP de los agentes de Rudder o toda una subred, según la política de seguridad.
Configuraciones —> General

En el campo «Add a network» escribimos la dirección y la máscara en el formato x.x.x.x/xx. Para permitir el acceso desde todas las direcciones de la red interna (si es que es una red de prueba y estás detrás de NAT) escribimos: 0.0.0.0/0
Importante: después de añadir la dirección IP, no olvides hacer clic en Save changes, de lo contrario no se guardará nada.
Puertos
En el servidor abrimos los siguientes puertos
443 — tcp
5309 — tcp
514 — udp
Hemos comprendido la configuración inicial del servidor.
Instalación del Agente
Spoiler
Añadimos la clave
wget --quiet -O- "https:\/\/repository.rudder.io\/apt\/rudder_apt_key.pub" | sudo apt-key add -Huella de la clave
pub 4096R\/474A19E8 2011-12-15 Rudder Project (clave de liberación)
Huella de clave = 7C16 9817 7904 212D D58C B4D1 9322 C330 474A 19E8Añadimos el repositorio
echo "deb http:\/\/repository.rudder.io\/apt\/6.1\/ $(lsb_release -cs) main" > \/etc\/apt\/sources.list.d\/rudder.listInstalamos el agente
apt update
apt install rudder-agentConfiguración del agente
Especificamos al agente la dirección IP del servidor de políticas
rudder agent policy-server #Sin paréntesis. También se puede usar el nombre de dominio Al ejecutar el siguiente comando, enviaremos una solicitud para añadir un nuevo agente al servidor, en unos minutos aparecerá en la lista de nuevos agentes, cómo añadirlo lo explicaré en la siguiente sección
rudder agent inventoryTambién podemos ejecutar el agente forzosamente y él enviará la solicitud de inmediato
rudder agent runNuestro agente está configurado, continuamos.
Añadiendo agentes
Iniciamos sesión
https://127.0.0.1/rudder/index.html

En la sección «Accept new nodes» aparecerá tu agente, marcamos la casilla y hacemos clic en Accept

Debería pasar un poco de tiempo mientras el sistema verifica al servidor por su cumplimiento
Creación de grupos de servidores
Crearemos un grupo (es un verdadero entretenimiento), no tengo idea de por qué los desarrolladores hicieron tan complicado el proceso de formación de grupos, pero como entendí, no hay otra manera. Vamos a la sección Node management -> Groups y hacemos clic en Create, elegimos un grupo estático y un nombre.

Filtramos el servidor que necesitamos por características específicas, por ejemplo, por la dirección IP, y guardamos

El grupo está configurado.
Configuración de reglas
Vamos a Configuration policy → Rules, y creamos una nueva regla

Añadimos el grupo preparado anteriormente (esto se puede hacer más tarde)

Y formamos una nueva directiva

Crearemos una directiva para añadir claves públicas en .ssh/authorized_keys. Esto lo utilizo en caso de que un nuevo empleado entre, o por precaución, por ejemplo, si alguien elimina accidentalmente mi clave.
Vamos a Configuration policy → Directives a la izquierda vemos «Directive library» Encontramos «Remote access → SSH authorised keys», a la derecha hacemos clic en Create Directive
Escribimos los datos del usuario y añadimos su clave. Luego elegimos la política de aplicación
Global — Política establecida por defecto
Enforce — Ejecutar en los servidores seleccionados
Auditoría — Realiza una auditoría y dice en qué clientes hay claves.

Siempre indicamos nuestra regla.

Luego guardamos y todo está listo.
Verificamos.

Clave añadida con éxito.
Beneficios.
El agente proporciona información completa sobre el servidor. Listas de paquetes instalados, interfaces, puertos abiertos y mucho más, que pueden verse en la captura de pantalla a continuación.

También se puede instalar y controlar software no solo en Linux, sino también en Windows; no he comprobado esto último, no ha habido necesidad.
Del autor.
Quizás te preguntes, ¿por qué reinventar la rueda si ya existen Ansible y Puppet?
Respondo: Ansible tiene desventajas, por ejemplo, no vemos en qué estado se encuentra actualmente esta configuración, o la situación familiar cuando ejecutas un rol o un playbook y aparecen errores de fallo; empiezas a acceder al servidor para ver qué paquete se ha actualizado. Y, a decir verdad, no he trabajado con Puppet.
¿Hay desventajas en Rudder? Hay muchas... Desde que los agentes fallan y hay que reinstalarlos o usar el comando rudder reset. (Por cierto, en la versión 6 no he visto esto aún), hasta la configuración extremadamente compleja y una interfaz poco intuitiva.
¿Y hay ventajas? También hay muchas ventajas: A diferencia del conocido Ansible, tenemos una interfaz web que muestra el cumplimiento que aplicamos. Por ejemplo, si hay puertos expuestos al mundo, en qué estado se encuentra el firewall, si están instalados los agentes de seguridad u otras herramientas.
Este software es ideal para el departamento de seguridad informática, ya que el estado de la infraestructura siempre estará a la vista, y si alguna regla aparece en rojo, es un motivo para visitar el servidor. Como mencioné, llevo 2 años usando Rudder, y si lo entiendes un poco, la vida se vuelve más fácil. Lo más complicado en una gran infraestructura es no recordar en qué estado está el servidor, si el novato no pasó la instalación de los agentes de seguridad o si configuró correctamente iptables; Rudder te ayudará a estar al tanto de todo. ¡Informado es estar preparado! :)
P.D. Salió mucho más de lo que planeé, no voy a describir cómo instalar paquetes, si hay solicitudes, escribiré una segunda parte.
P.S.S Este artículo tiene carácter informativo, decidí compartirlo ya que hay muy poca información en Internet. Puede que a alguien le interese. ¡Les deseo un buen día, queridos amigos! )
Publicidad
Servidores épicos — es o Windows con potentes procesadores de la familia AMD EPYC y discos NVMe Intel muy rápidos. ¡Apresúrate a hacer tu pedido!

Fuente: habr.com
