Red Hat Ansible Automation Platform è una piattaforma per l'implementazione dell'automazione a livello aziendale, il che la rende uno strumento ideale per gli audit di sicurezza. Le misure di sicurezza vanno implementate su più livelli, ma questo articolo è dedicato alla riduzione degli attacchi SSH agli host gestiti. Rafforzare gli host gestiti non basta per eliminare tutti i rischi per la sicurezza, ma permette di ridurli al minimo (in particolare gli attacchi di forza bruta) o limitarne gli effetti (consentendo le connessioni SSH solo da host autorizzati, applicando sudo e così via). Questo articolo è incentrato su Ansible Automation Platform, ma la maggior parte della configurazione avanzata viene applicata agli host gestiti (modifica di sshd_config, sssd.conf, access.conf) in modo da poter applicare questi concetti ad altri strumenti di configurazione centralizzati come Red Hat Satellite.
Questo articolo illustra come potenziare la configurazione dell'host gestito utilizzando questo schema:
- Più account di servizio per l'accesso SSH agli host, creati in AD/LDAP:
- Chiave pubblica archiviata in AD/LDAP per l'accesso SSH con autenticazione con chiave pubblica
- Password archiviata in AD/LDAP solo per sudo (non per l'accesso SSH)
- Su qualsiasi host gestito:
- Un account di servizio può accedere solo dai nodi di esecuzione di Ansible Automation Platform (qualsiasi tentativo di accesso da qualsiasi altra posizione viene rifiutato)
- L'escalation dei privilegi con sudo per qualsiasi account di servizio richiede una password

Configurazione
Inizia da un deployment standard non protetto, che in genere include:
- Un account di servizio Ansible Automation Platform
- Utilizzato per l'accesso SSH agli host
- Creato in AD/LDAP con una password casuale
- Su qualsiasi host:
- L'account di servizio può accedere con la password
- L'account di servizio può eseguire comandi con i privilegi di altri utenti (sudo) senza utilizzare la password
Rafforzamento della configurazione
Molte aziende creano un solo account di servizio per ogni servizio. In questo scenario Ansible Automation Platform, viene creato un solo account di servizio da utilizzare con Ansible Automation Platform per connettersi a tutti gli host gestiti. Tuttavia, se per qualsiasi motivo l'account di servizio viene compromesso, l'autore dell'attacco potrebbe accedere a qualsiasi host gestito.
Questa è la prima modifica da apportare. La sicurezza viene implementata a più livelli, e un primo passo importante è la creazione di account di servizio diversi. Non esiste un approccio universale all'implementazione. Analizza la tua architettura e decidi cosa ha più senso per la tua infrastruttura. Di seguito sono riportate alcune strategie comuni per la creazione di account di servizio diversi:
- Posizione o datacenter: crea un account di servizio per ogni datacenter
- Organizzazione o dominio: crea un account di servizio per ogni organizzazione o dominio
- Sistema operativo: crea un account di servizio per ogni tipo di host (Red Hat Enterprise Linux 7, 8, 9 e così via)
- Utilizzo: crea un account di servizio per ogni utilizzo host dell'applicazione principale (database, Apache, Kafka)
- Sicurezza: crea un account di servizio per ogni area di sicurezza (DMZ, Internal Zone 1 e così via)
Crea un gruppo comune per tutti gli account di servizio. In questo modo è più semplice consentire l'accesso a un account di servizio e negare l'accesso a tutti gli altri.
Autenticazione con chiave pubblica SSH tramite AD/LDAP
Basa l'autenticazione SSH per gli account di servizio su chiavi pubbliche. Sebbene le chiavi pubbliche presentino alcuni svantaggi rispetto alle password, il loro utilizzo annulla l'efficacia degli attacchi di forza bruta per l'accesso SSH.
Innanzitutto, aggiungi le chiavi SSH pubbliche di ciascun account di servizio all'attributo altSecurityIdentities
in AD/LDAP.
Su ciascun host gestito, aggiungi ssh all'elenco dei servizi in /etc/sssd/sssd.conf
:
services = nss, pam, ssh
Aggiungi i parametri ldap_user_extra_attrs
e ldap_user_ssh_public_key
alla sezione [domain]
di /etc/sssd/sssd.conf
:
[domain/example.com] ldap_user_extra_attrs = altSecurityIdentities ldap_user_ssh_public_key = altSecurityIdentities
L'opzione AuthorizedKeysCommandUser
specifica l'account utente utilizzato per eseguire AuthorizedKeysCommand
. Consigliamo di utilizzare un utente dedicato, quindi aggiungi questi parametri SSH a /etc/ssh/sshd_config
:
AuthorizedKeysCommand /usr/bin/sss_ssh_authorizedkeys AuthorizedKeysCommandUser nobody
Per ulteriori informazioni, leggi l'articolo su come memorizzare le chiavi SSH degli utenti in Active Directory per l'autenticazione SSH, disponibile su Red Hat Customer Portal.
Nega l'autenticazione tramite password
Aggiungi questi parametri SSH a /etc/ssh/sshd_config
su tutti gli host gestiti per negare l'utilizzo dell'autenticazione tramite password SSH (<Service Account> sostituisci
Match User <Service Account> PasswordAuthentication no Match all
Richiedi la password per i privilegi sudo
Richiedi la password dell'account del servizio per i privilegi sudo. A tale scopo, crea un nuovo file con il nome del gruppo di account di servizio in /etc/sudoers.d
e aggiungi questa riga:
%<Service Account Group> ALL=(ALL:ALL) ALL
Ad esempio, se il nome del gruppo è aapsas
:
$ cat /etc/sudoers.d/aapsas %appsas ALL=(ALL:ALL) ALL
Anche se le procedure consigliate in materia di sicurezza suggeriscono di aggiungere solo alcuni specifici comandi consentiti per eseguire comandi sudo, con Ansible Automation Platform questo non è possibile. Nel caso degli host gestiti, Ansible Automation Platform comunica con i computer di destinazione (in genere tramite SSH) e copia ed esegue uno script Python.
Consenti le connessioni dai nodi di esecuzione autorizzati di Ansible Automation Platform
La configurazione di protezione avanzata prevede che le connessioni SSH per un account di servizio provengano solo dai nodi di esecuzione di Ansible Automation Platform o LOCAL
(per sudo). Per implementarla, aggiungi una riga in /etc/security/access.conf. La prima riga consente le connessioni da Ansible Automation Platform e LOCAL, mentre l'altra vieta qualsiasi altro account di servizio.
+: <Service Account> : <AAP Execution Nodes IPS> LOCAL -: <Service Account Group> : ALL
Automazione di tutta la configurazione
Questo articolo ha indicato i passaggi necessari per potenziare gli host gestiti per l'accesso SSH, ma nel caso di Ansible Automation Platform non è necessario eseguire tutto manualmente. Tutti i passaggi di configurazione descritti possono essere facilmente automatizzati utilizzando il modulo del modello. Crea modelli per i file di configurazione /etc/security/access.conf
, /etc/sssd/sssd.conf
e /etc/ssh/sshd_config
.
Stai modificando i parametri di sicurezza della connessione dell'host di destinazione, quindi fai attenzione. Una configurazione errata potrebbe causare il malfunzionamento del servizio SSHD, concedere l'accesso a utenti che non ne hanno bisogno e così via. Ricontrolla il tuo lavoro prima di propagare le modifiche.
Naturalmente, per implementare misure di sicurezza efficaci non è sufficiente una configurazione una tantum. Il rafforzamento della configurazione SSH per gli host gestiti è un passaggio importante in un processo continuo di protezione, ed è reso più semplice grazie ad Ansible Automation Platform.
Sull'autore
Alberto Gonzalez de Dios is a Senior Cloud consultant: Automation and OpenShift specialist. He joined Red Hat in 2018, and he is certified in Azure, AWS and Red Hat (Red Hat Certified Architect Level II).
Altri risultati simili a questo
Ricerca per canale
Automazione
Novità sull'automazione IT di tecnologie, team e ambienti
Intelligenza artificiale
Aggiornamenti sulle piattaforme che consentono alle aziende di eseguire carichi di lavoro IA ovunque
Hybrid cloud open source
Scopri come affrontare il futuro in modo più agile grazie al cloud ibrido
Sicurezza
Le ultime novità sulle nostre soluzioni per ridurre i rischi nelle tecnologie e negli ambienti
Edge computing
Aggiornamenti sulle piattaforme che semplificano l'operatività edge
Infrastruttura
Le ultime novità sulla piattaforma Linux aziendale leader a livello mondiale
Applicazioni
Approfondimenti sulle nostre soluzioni alle sfide applicative più difficili
Serie originali
Raccontiamo le interessanti storie di leader e creatori di tecnologie pensate per le aziende
Prodotti
- Red Hat Enterprise Linux
- Red Hat OpenShift
- Red Hat Ansible Automation Platform
- Servizi cloud
- Scopri tutti i prodotti
Strumenti
- Formazione e certificazioni
- Il mio account
- Supporto clienti
- Risorse per sviluppatori
- Trova un partner
- Red Hat Ecosystem Catalog
- Calcola il valore delle soluzioni Red Hat
- Documentazione
Prova, acquista, vendi
Comunica
- Contatta l'ufficio vendite
- Contatta l'assistenza clienti
- Contatta un esperto della formazione
- Social media
Informazioni su Red Hat
Red Hat è leader mondiale nella fornitura di soluzioni open source per le aziende, tra cui Linux, Kubernetes, container e soluzioni cloud. Le nostre soluzioni open source, rese sicure per un uso aziendale, consentono di operare su più piattaforme e ambienti, dal datacenter centrale all'edge della rete.
Seleziona la tua lingua
Red Hat legal and privacy links
- Informazioni su Red Hat
- Opportunità di lavoro
- Eventi
- Sedi
- Contattaci
- Blog di Red Hat
- Diversità, equità e inclusione
- Cool Stuff Store
- Red Hat Summit