
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: e .
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 -versionse viene visualizzato
-bash: java: command not foundallora la installiamo
apt install default-jreServer
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 19E8Poiché 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.listAggiorniamo l'elenco dei repository e installiamo il server
apt update
apt install rudder-server-rootCreiamo 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

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 19E8Aggiungiamo il repository
echo "deb http://repository.rudder.io/apt/6.1/ $(lsb_release -cs) main" > /etc/apt/sources.list.d/rudder.listInstalliamo l'agente
apt update
apt install rudder-agentConfigurazione 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 inventoryPossiamo anche avviare forzatamente l'agente e lui invierà immediatamente la richiesta
rudder agent runIl nostro agente è configurato, andiamo avanti.
Aggiunta di agenti
Effettuiamo il login
https://127.0.0.1/rudder/index.html

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

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.

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

Il gruppo è stato configurato.
Configurazione delle regole
Andiamo su Configuration policy → Rules e creiamo una nuova regola

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

E formiamo una nuova direttiva

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

Indichiamo obbligatoriamente la nostra regola

Poi salviamo e il gioco è fatto.
Controlliamo

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

È 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 è o Windows con potenti processori della famiglia AMD EPYC e dischi NVMe Intel molto veloci. Affrettatevi a ordinare!

Fonte: habr.com
