Installazione e utilizzo di «Rudder»

Installazione e utilizzo di «Rudder»

Prefazione

La nostra «amicizia» è iniziata due anni fa. Sono arrivato in un nuovo posto di lavoro, dove il precedente amministratore mi ha lasciato in eredità questo software senza alcun preavviso. Su internet, oltre alla documentazione ufficiale, non riuscivo a trovare nulla. Anche ora, se cerchi «rudder» su Google, nel 99% dei casi ti darà risultati riguardanti i timoni delle navi e i droni. Sono riuscito a trovare un approccio. Poiché la comunità di questo software è incredibilmente ridotta, ho deciso di condividere la mia esperienza e le mie difficoltà. Penso possa essere utile a qualcuno.

Quindi, Rudder

Rudder è uno strumento open source per l'audit e la gestione della configurazione che aiuta ad automatizzare la configurazione del sistema. Funziona installando un agent su ciascun utente finale. Attraverso un'interfaccia user-friendly possiamo osservare quanto la nostra infrastruttura sia conforme a tutte le politiche stabilite.

L'utilizzo di

Di seguito elencherò per cosa utilizzo Rudder.

  • Controllo di file e configurazioni: ./ssh/authorized_keys; /etc/hosts; iptables; (e poi dove ci porterà la fantasia)

  • Controllo dei pacchetti installati: zabbix.agent o qualsiasi altro software

Installazione del server

Di recente, ho aggiornato dalla versione 5 alla 6.1, tutto è andato a buon fine. Di seguito verranno fornite le istruzioni per Debian/Ubuntu, ma è disponibile anche supporto per: RHEL/CentOS e Sles.

Nasconderò l'installazione sotto spoiler per non distrarvi.

Spoiler

Dipendenze

Per rudder-server è necessaria almeno la Java RE versione 8, che può essere installata dal repository standard:

Controlliamo se è già installata

java -version

se l'output

-bash: java: command not found

allora la installiamo

apt install default-jre

Server

Importiamo la chiave

wget --quiet -O- "https://repository.rudder.io/apt/rudder_apt_key.pub" | sudo apt-key add -

Ecco il fingerprint

pub  4096R/474A19E8 2011-12-15 Rudder Project (release key) 
      Key fingerprint = 7C16 9817 7904 212D D58C  B4D1 9322 C330 474A 19E8

Poiché non abbiamo un abbonamento a pagamento, aggiungiamo il seguente repository

echo "deb http://repository.rudder.io/apt/6.1/ $(lsb_release -cs) main" > /etc/apt/sources.list.d/rudder.list

Aggiorniamo la lista dei repository e installiamo il server

apt update
apt install rudder-server-root

Creiamo l'utente admin

rudder server create-user -u admin -p "La tua Password"

In seguito, possiamo gestire gli utenti tramite la configurazione

Tutto pronto, il server è configurato.

Configurazione del server

Ora è necessario aggiungere all'agente di rudder gli indirizzi IP degli agenti o un'intera sottorete, seguendo le politiche di sicurezza.

Impostazioni —> Generale

Installazione e utilizzo di «Rudder»

Nel campo «Add a network» inseriamo l'indirizzo e la maschera nel formato x.x.x.x/xx. Per consentire l'accesso da tutti gli indirizzi della rete interna (a meno che non si tratti di una rete di test e ci si trovi dietro NAT) inseriamo: 0.0.0.0/0

Importante: dopo aver aggiunto l'indirizzo IP non dimenticare di premere Salva modifiche, altrimenti niente sarà salvato.

Porte

Sul server apriamo le seguenti porte

  • 443 — tcp

  • 5309 — tcp

  • 514 — udp

Abbiamo risolto la configurazione iniziale del server.

Installazione dell'agente

Spoiler

Aggiungiamo la chiave

wget --quiet -O- "https://repository.rudder.io/apt/rudder_apt_key.pub" | sudo apt-key add -

Impronta della chiave

pub  4096R/474A19E8 2011-12-15 Rudder Project (release key) 
      Key fingerprint = 7C16 9817 7904 212D D58C  B4D1 9322 C330 474A 19E8

Aggiungiamo il repository

echo "deb http://repository.rudder.io/apt/6.1/ $(lsb_release -cs) main" > /etc/apt/sources.list.d/rudder.list

Installiamo l'agente

apt update
apt install rudder-agent

Configurazione dell'agente

Indichiamo all'agente l'indirizzo IP del server delle politiche

rudder agent policy-server  #Senza parentesi. È possibile utilizzare anche il nome di dominio 

Eseguendo il seguente comando invieremo una richiesta per aggiungere un nuovo agente al server, dopo qualche minuto apparirà nell'elenco dei nuovi agenti; come aggiungere spiegherò nella sezione successiva

rudder agent inventory

Possiamo anche forzare l'avvio dell'agente e lui invierà la richiesta immediatamente

rudder agent run

Il nostro agente è configurato, procediamo.

Aggiunta di agenti

Accediamo

https://127.0.0.1/rudder/index.html

Installazione e utilizzo di «Rudder»

Nella sezione «Accept new nodes» apparirà il tuo agente; metti un segno di spunta e premi Accetta

Installazione e utilizzo di «Rudder»

Ci vorrà un po' di tempo affinché il sistema controlli che il server sia conforme.

Creazione di gruppi di server.

Creiamo un gruppo (è un vero divertimento), non ho idea del perché gli sviluppatori abbiano reso così complicata la formazione dei gruppi, ma da quello che ho capito, non si può fare in altro modo. Passiamo alla sezione Gestione Nodo -> Gruppi e clicchiamo su Crea, scegliamo un gruppo statico e un nome.

Installazione e utilizzo di «Rudder»

Filtriamo il server necessario in base a caratteristiche specifiche, ad esempio l'indirizzo IP, e salviamo.

Installazione e utilizzo di «Rudder»

Il gruppo è configurato.

Configurazione delle regole.

Passiamo a Politica di configurazione → Regole e creiamo una nuova regola.

Installazione e utilizzo di «Rudder»

Aggiungiamo il gruppo precedentemente preparato (questo può essere fatto anche in seguito).

Installazione e utilizzo di «Rudder»

E formiamo una nuova direttiva.

Installazione e utilizzo di «Rudder»

Creiamo una direttiva per l'aggiunta di chiavi pubbliche in .ssh/authorized_keys. La utilizzo nel caso in cui un nuovo dipendente esca, o per precauzione, ad esempio se qualcuno elimina accidentalmente la mia chiave.

Passiamo a Politica di configurazione → Direttive, a sinistra vediamo "Libreria di direttive". Troviamo "Accesso remoto → Chiavi pubbliche SSH", a destra clicchiamo su Crea Direttiva.

Inseriamo i dati dell'utente e aggiungiamo la sua chiave. Successivamente, scegliamo la politica di applicazione.

  • Globale — Politica predefinita.

  • Forzare — Eseguire sui server selezionati.

  • Audit — Effettuerà un audit e indicherà su quali clienti ci sono chiavi

Installazione e utilizzo di «Rudder»

È fondamentale specificare la nostra regola

Installazione e utilizzo di «Rudder»

Poi salviamo e il gioco è fatto.

Controlliamo

Installazione e utilizzo di «Rudder»

Chiave aggiunta con successo

Vantaggi

L'agente fornisce informazioni complete sul server: elenchi dei pacchetti installati, interfacce, porte aperte e molto altro che puoi vedere nello screenshot qui sotto.

Installazione e utilizzo di «Rudder»

Puoi anche installare e controllare il software non solo su Linux, ma anche su Windows; quest'ultimo non l'ho testato, non ce n'era bisogno.

Dall'autore

Probabilmente ti chiederai perché reinventare la ruota se esistono già Ansible e Puppet?

Rispondo: Ansible ha dei difetti, ad esempio non vediamo in quale stato si trovi attualmente questa configurazione, o la situazione familiare in cui lanci il ruolo o il playbook e ricevi errori di crash, e inizia a controllare il server per vedere quale pacchetto è stato aggiornato. E con Puppet non ho semplicemente lavorato.

Ci sono degli svantaggi in Rudder? Ce ne sono molti... Iniziando dal fatto che gli agenti si scollegano e bisogna reinstallarli o usare il comando rudder reset. (A proposito, nella versione 6 non ho ancora visto questo), fino ad arrivare a una configurazione estremamente complessa e a un'interfaccia poco intuitiva.

E ci sono vantaggi? E anche i vantaggi sono tanti: A differenza del noto ansible, abbiamo un'interfaccia web in cui possiamo vedere il compliance che abbiamo applicato. Ad esempio, possiamo verificare se le porte sono aperte verso l'esterno, in che stato si trova il firewall, se sono installati gli agenti di sicurezza o altre funzionalità.

Questo software è perfetto per il dipartimento di sicurezza informatica, poiché lo stato dell'infrastruttura sarà sempre sotto controllo, e se qualche regola diventa rossa, è un segnale per visitare il server. Come ho detto, uso Rudder da due anni, e se lo si esplora un po', la vita migliora. La cosa più difficile in un'infrastruttura grande è che non si ricorda in quale stato si trova il server, se il junior ha perso l'installazione degli agenti di sicurezza o se ha configurato correttamente iptables. Rudder vi aiuterà a rimanere aggiornati su tutti gli eventi. Informato significa essere preparati!)

P.S. È uscito molto di più di quanto avessi pianificato, non descriverò come installare i pacchetti; se ci saranno richieste, scriverò una seconda parte.

P.S.S L'articolo ha un carattere informativo, ho deciso di condividerlo poiché ci sono poche informazioni in giro per il web. Potrebbe interessare a qualcuno. Buona giornata, cari amici )

In pubblicità

Server epici — rappresenta VPS su Linux o Windows con potenti processori della famiglia AMD EPYC e dischi NVMe Intel molto veloci. Affrettati a ordinare!

Installazione e utilizzo di «Rudder»

Fonte: habr.com

Acquista hosting affidabile per siti web con protezione DDoS, VPS VDS server 🔥 Acquista hosting affidabile per siti web con protezione DDoS, VPS VDS server | ProHoster