
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: e .
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 -versionse l'output
-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 il fingerprint
pub 4096R/474A19E8 2011-12-15 Rudder Project (release key)
Key fingerprint = 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 la lista 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 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

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 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 sezione successiva
rudder agent inventoryPossiamo anche forzare l'avvio dell'agente e lui invierà la richiesta immediatamente
rudder agent runIl nostro agente è configurato, procediamo.
Aggiunta di agenti
Accediamo
https://127.0.0.1/rudder/index.html

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

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.

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

Il gruppo è configurato.
Configurazione delle regole.
Passiamo a Politica di configurazione → Regole e creiamo una nuova regola.

Aggiungiamo il gruppo precedentemente preparato (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 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

È fondamentale specificare la nostra regola

Poi salviamo e il gioco è fatto.
Controlliamo

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.

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

Fonte: habr.com
