![[ MQ 9.4.4 Oct 2025]](ng944.gif)
![[Linux]](nglinux.gif)
Replica sicura per DR RDQM
È possibile specificare che il collegamento di replica nella configurazione DR RDQM sia protetto con TLS.
Quando si crea un gestore di code di disaster recovery (DR) in una configurazione RDQM, si può specificare che il collegamento usato per replicare i dati tra le istanze primarie e secondarie del gestore di code sia protetto con TLS.
- Configurare i certificati richiesti.
- Configurare il servizio tlshd.
- Specificare l'opzione
-requando si crea un nuovo gestore di code utilizzando crtmqm.
I protocolli TLS e le suite di cifratura che possono essere utilizzati dai collegamenti di replica sicuri RDQM sono controllati dalla politica crittografica attiva a livello di sistema. Utilizzare il comando Linux® update-crypto-policies per modificare il criterio attivo corrente.
Configurazione dei certificati
Per utilizzare un collegamento di replica sicuro in una configurazione RDQM DR sono necessari due certificati, uno per ogni nodo del gruppo RDQM DR.
- Utilizza il seguente comando per generare una chiave privata:
dove key_file è il nome del file creato per memorizzare la chiave privata.openssl genpkey -algorithm RSA -pkeyopt rsa_keygen_bits:4096 -out key_file - Utilizzare il seguente comando per creare una richiesta di firma del certificato:
dove key_file è il file che contiene la chiave privata creata al punto 1, hostname è il nome host del nodo e cert_req_file è il file creato per memorizzare la richiesta di firma del certificato.openssl req -key key_file -subj "/CN=hostname" -new -out cert_req_fileIl Common Name (CN) del certificato deve essere impostato sul nome dell'host del nodo RDQM.
- Inviare la richiesta di firma del certificato all'autorità di certificazione (CA) per la firma. Quando si riceve il certificato firmato dalla CA, copiare i file della chiave privata, del certificato firmato e del certificato CA nella directory in cui si desidera memorizzare questi file. Ad esempio, la directory
/etc/drbd.d/. - Impostate i permessi e la proprietà dei file delle chiavi private e dei certificati per garantire che solo l'utente root possa visualizzare le chiavi private.
- Cambiare la proprietà del file della chiave privata e del certificato all'utente root.
- Impostate i permessi sul file della chiave privata in modo che solo l'utente root abbia accesso in lettura e scrittura.
#!/bin/bash
# The CA name
ca_name="RDQM Test CA"
# The CA filename
ca_filename="rdqm_test_ca"
# Host certificates to generate
test_hosts=("alice" "bob")
mkdir certificates && cd ./certificates
# Create private key for use with private CA using OpenSSL
openssl genpkey -algorithm RSA -pkeyopt rsa_keygen_bits:4096 \
-out $ca_filename.key
# Create a private CA certificate using OpenSSL
openssl req -key $ca_filename.key -new -x509 -days 3650 -subj "/CN=$ca_name" \
-out $ca_filename.crt
# Create certificates for each node
for host in ${test_hosts[@]}; do
# Create a private key
openssl genpkey -algorithm RSA -pkeyopt rsa_keygen_bits:4096 \
-out $host.key
# Generate a CSR
openssl req -key $host.key -subj "/CN=$host" -new -out $host.csr
# Create a valid certificate signed by the private CA
openssl x509 -req -in $host.csr -CA $ca_filename.crt \
-CAkey $ca_filename.key -CAcreateserial -days 365 -out $host.crt
# Remove sequential serial number
rm -f $ca_filename.srl
# Remove CSR
rm -f $host.csr
doneL'esempio genera i seguenti file nella directory certificates :- rdqm_test_ca.crt
- rdqm_test_ca.key
- alice.crt
- alice.csr
- alice.key
- bob.crt
- bob.csr
- bob.key
- Copiare il certificato CA (
rdqm_test_ca.crt) nella directory/etc/drbd.d/di ciascun nodo. (Questi sono percorsi di esempio, se necessario si può scegliere un'altra posizione) - Copiare il certificato di ogni nodo (file
.crt) e la chiave privata (file.key) in/etc/drbd.d/. (Questi sono percorsi di esempio, se necessario si può scegliere un'altra posizione) - Modificare le autorizzazioni e la proprietà dei file per le chiavi private e il certificato su ciascun nodo. Questo assicura che solo l'utente root possa visualizzare il contenuto delle chiavi private:
chmod 600 /etc/drbd.d/*.key chown root:root /etc/drbd.d/*.key chown root:root /etc/drbd.d/*.crt - Conservare la chiave privata dell'autorità di certificazione in un luogo sicuro.
Configurazione del servizio tlshd
Questo servizio tlshd deve essere configurato e poi abilitato e avviato, prima che qualsiasi handshake TLS di DRBD possa essere completato. Il servizio tlshd è fornito in un pacchetto che viene installato con i pacchetti drbd-utils-9.
Il file di configurazione per questo servizio è /etc/tlshd.conf e i contenuti iniziali sono:
[debug]
loglevel=0
tls=0
nl=0
[authenticate]
#keyrings= <keyring>;<keyring>;<keyring>
[authenticate.client]
#x509.truststore= <pathname>
#x509.certificate= <pathname>
#x509.private_key= <pathname>
[authenticate.server]
#x509.truststore= <pathname>
#x509.certificate= <pathname>
#x509.private_key= <pathname>
authenticate.client e authenticate.server (DRBD può stabilire le sue connessioni in entrambe le direzioni, a meno che non ci sia un firewall che blocca una direzione):- x509.truststore
- Il percorso del file che contiene il certificato della CA che ha firmato i certificati utilizzati dai nodi RDQM. Se è richiesta una catena di fiducia complessa, deve essere acquisita in un unico file.
- x509.certificate
- Il percorso del file che contiene il certificato firmato dalla CA per il nodo RDQM.
- x509.private_key
- Il percorso del file che contiene la chiave privata del nodo RDQM. Il file deve essere di proprietà di root e i permessi di lettura/scrittura devono essere concessi solo all'utente root.
authenticate.client e authenticate.server :- x509.crl
- Il percorso di un file contenente le liste di revoca dei certificati (CRL) codificate in PEM da usare per verificare lo stato di revoca dei certificati durante ogni handshake. Se questa opzione non è specificata, il controllo CRL viene saltato.
[authenticate.client]
x509.truststore=/etc/drbd.d/rdqm_test_ca.crt
x509.certificate=/etc/drbd.d/alice.crt
x509.private_key=/etc/drbd.d/alice.key
[authenticate.server]
x509.truststore=/etc/drbd.d/rdqm_test_ca.crt
x509.certificate=/etc/drbd.d/alice.crt
x509.private_key=/etc/drbd.d/alice.keysystemctl daemon-reloadPer avviare il servizio tlshd, digitate il seguente comando:systemctl enable --now tlshdCreazione della DR RDQM
-re , ad esempio per l'istanza primaria:crtmqm -rr p -rl <Local_IP> -ri <Recovery_IP> -rn <Recovery_name> -rp <Port> -re <DRQMname>Al termine del comando, viene visualizzato il comando da immettere sul nodo secondario per creare l'istanza secondaria del gestore di code.Utilizzare il comando rdqmstatus per confermare che il collegamento di replica è protetto da TLS. Per ulteriori informazioni, vedere Visualizzazione dello stato di DR RDQM.
Per ulteriori informazioni sulla creazione di un RDQM DR, vedere Creazione di un RDQM di disaster recovery.