Installazione e utilizzo di «Rudder»

Installazione e utilizzo di «Rudder»

Introduzione

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. In rete, oltre alla documentazione ufficiale, non riuscivo a trovare nulla. Anche ora, se cerchi «rudder» su Google, nel 99% dei casi ti verranno restituiti: timoni di navi e droni. Sono riuscito a trovare un modo per utilizzarlo. Poiché la comunità di questo software è molto piccola, ho deciso di condividere la mia esperienza e le mie difficoltà. Penso che possa essere utile a qualcuno.

Quindi, Rudder

Rudder è un'utilità per audit e gestione della configurazione open source che aiuta ad automatizzare la configurazione del sistema. Funziona installando un agente su ogni utente finale. Tramite un'interfaccia conveniente possiamo osservare quanto la nostra infrastruttura sia conforme a tutte le politiche impostate.

Utilizzo

Di seguito elencherò per cosa utilizzo Rudder.

  • Controllo dei file e delle 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 sono passato dalla versione 5 alla 6.1, tutto è andato a buon fine. Di seguito verranno presentati i comandi per Debian/Ubuntu, ma c'è anche supporto per: RHEL/CentOS e Sles.

Nasconderò l'installazione in spoiler, per non distrarvi.

Spoiler

Dipendenze

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

Controlliamo se non è già installata

java -version

se viene visualizzato

-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 l'impronta

pub  4096R/474A19E8 2011-12-15 Rudder Project (chiave di rilascio) 
      Impronta della chiave = 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 l'elenco 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 futuro possiamo gestire gli utenti tramite configurazione

Tutto, il server è pronto.

Configurazione del server

Ora è necessario aggiungere gli indirizzi IP degli agenti di Rudder o l'intera subnet, facendo riferimento alla politica 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 a tutti gli indirizzi della rete interna (a meno che non sia una rete di test e ci si trovi dietro un NAT) si inserisce: 0.0.0.0/0

Importante — dopo aver aggiunto l'indirizzo ip non dimenticare di fare clic su Save changes, altrimenti nulla verrà salvato.

Porte

Sul server apriamo le seguenti porte

  • 443 — tcp

  • 5309 — tcp

  • 514 — udp

Abbiamo chiarito 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 (chiave di rilascio) 
      Impronta della chiave = 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 prossima sezione

rudder agent inventory

Possiamo anche avviare forzatamente l'agente e lui invierà immediatamente la richiesta

rudder agent run

Il nostro agente è configurato, andiamo avanti.

Aggiunta di agenti

Effettuiamo il login

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 Accept

Installazione e utilizzo di «Rudder»

Dovrà passare un po' di tempo mentre il sistema verifica il server per la conformità

Creazione di gruppi di server

Creeremo un gruppo (è un vero divertimento), non ho idea del perché gli sviluppatori abbiano reso così complessa la formazione dei gruppi, ma come ho capito, non c'è altro modo. Passiamo alla sezione Node management -> Groups e facciamo clic su Create, selezioniamo un gruppo statico e un nome.

Installazione e utilizzo di «Rudder»

Filtriamo il server di cui abbiamo bisogno in base a caratteristiche specifiche, ad esempio in base all'indirizzo ip, e salviamo

Installazione e utilizzo di «Rudder»

Il gruppo è stato configurato.

Configurazione delle regole

Andiamo su Configuration policy → Rules e creiamo una nuova regola

Installazione e utilizzo di «Rudder»

Aggiungiamo il gruppo preparato in precedenza (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 di un nuovo dipendente, o per precauzione, ad esempio se qualcuno cancella accidentalmente la mia chiave.

Andiamo su Configuration policy → Directives sulla sinistra vediamo «Directive library» Troviamo «Remote access → SSH authorised keys», sulla destra facciamo clic su Create Directive

Inseriamo i dati dell'utente e aggiungiamo la sua chiave. Poi selezioniamo la politica di applicazione

  • Global — Politica impostata per impostazione predefinita

  • Enforce — Eseguire sui server selezionati

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

Installazione e utilizzo di «Rudder»

Indichiamo obbligatoriamente la nostra regola

Installazione e utilizzo di «Rudder»

Poi salviamo e il gioco è fatto.

Controlliamo

Installazione e utilizzo di «Rudder»

Chiave aggiunta con successo

Caratteristiche

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»

È possibile installare e controllare software non solo su Linux ma anche su Windows, quest'ultima non l'ho verificata, non c'era necessità..

Dall'autore

Forse ti starai chiedendo perché inventare la ruota se esistono già Ansible e Puppet?

Rispondo: Ansible ha delle carenze, ad esempio non vediamo in quale stato si trova questa configurazione, oppure la situazione a tutti nota quando esegui un ruolo o un playbook e iniziano a comparire errori di crash, e inizi a cercare sul server per vedere quale pacchetto è stato aggiornato. E con Puppet non ho semplicemente lavorato.

Ci sono dei contro in Rudder? Moltissimi.. A partire dal fatto che gli agenti si disconnettono e bisogna reinstallarli o usare il comando rudder reset. (ma a dire il vero, nella versione 6 non ho ancora visto questo), fino a una configurazione estremamente complessa e a un'interfaccia poco logica.

Ci sono dei pro? E ci sono anche tanti pro: A differenza dell'ormai ben noto Ansible, abbiamo un'interfaccia web in cui possiamo vedere il compliance che abbiamo applicato. Ad esempio, se le porte sono esposte all'esterno, in quale stato si trova il firewall, se gli agenti di sicurezza o altri strumenti sono installati.

Questo software è perfetto per il dipartimento di sicurezza informatica, poiché lo stato dell'infrastruttura sarà sempre sotto controllo, e se una di queste regole diventa rossa, è un motivo per visitare il server. Come ho già detto, da due anni utilizzo Rudder, e se ci si dedica un po’, la vita diventa migliore. La cosa più difficile in una grande infrastruttura è che non ricordi in quale stato si trova il server, non hai perso l'installazione degli agenti di sicurezza o hai configurato correttamente iptables, mentre Rudder ti aiuterà a rimanere aggiornato su tutti gli eventi. Informato significa armato! )

P.S. È venuto molto più di quanto avessi pianificato, non descriverò come installare i pacchetti, se ci saranno richieste lo farò in una seconda parte.

P.S.S L'articolo è di carattere informativo, ho deciso di condividerlo poiché ci sono poche informazioni in rete. Potrebbe interessare a qualcuno. Buona giornata, cari amici )

In base alla pubblicità

Server epici è VPS su Linux o Windows con potenti processori della famiglia AMD EPYC e dischi NVMe Intel molto veloci. Affrettatevi 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