Utilizzo di rsyslog con TLS senza generare un cert autografato

Quasi tutte le guide che ho visto per l'utilizzo di TLS con rsyslog comportno la generazione di un autoscatto e l'utilizzo di tale argomento. Se le caselle sono già state create con un certificato firmato legit come si imposta il client e il server per usarlo semplicemente?

2 Solutions collect form web for “Utilizzo di rsyslog con TLS senza generare un cert autografato”

Non c'è grande differenza per impostare questo se il tuo cert è "legit". Un certificato ampiamente affidabile è caratterizzato dal fatto di avere l'ancoraggio di fiducia (ovvero il certificato di root o certificato CA) semplificato nell'archivio di fiducia del sistema operativo o del browser.

Supponi di avere server.example.com.key e server.example.com.csr . La tua CA ti invia indietro il tuo certificato, server.example.com.crt e tutto ciò che port al tuo cert se la catena di fiducia, ad esempio ca.crt, intermediate1.crt, intermediate2.crt o tutti i concetti concatenati in una come catena .crt. Alcuni vanno per client.crt e client.key . client.crt ha la stessa catena di trust come il certificato del server.

La grande differenza di un autoscatto firmato per impostare questo è che potrebbe essere necessario includere i certificati intermedi sul file CA. Se i intermedi sono presenti nella fiducia del tuo sistema, tutto quello che devi fare è indicare il rsyslog (/etc/ssl/certs/ca-certificates.crt su Ubuntu, YMMV)

I docs ( qui , qui e qui ) riassumono bene come impostare TLS:

La configuration del server viene eseguita in questo modo:

 # make gtls driver the default $DefaultNetstreamDriver gtls # certificate files $DefaultNetstreamDriverCAFile /path/to/chain.crt $DefaultNetstreamDriverCertFile /path/to/server.example.com.crt $DefaultNetstreamDriverKeyFile /path/to/server.example.com.key $ModLoad imtcp # load TCP listener $InputTCPServerStreamDriverAuthMode x509/name $InputTCPServerStreamDriverPermittedPeer *.example.com $InputTCPServerStreamDriverMode 1 # run driver in TLS-only mode $InputTCPServerRun 10514 # start up listener at port 10514 

La configuration del client dovrebbe essere simile a questa:

 # certificate files $DefaultNetstreamDriverCAFile /path/to/chain.crt $DefaultNetstreamDriverCertFile /path/to/client.crt $DefaultNetstreamDriverKeyFile /path/to/client.key # set up the action $DefaultNetstreamDriver gtls # use gtls netstream driver $ActionSendStreamDriverMode 1 # require TLS for the connection $ActionSendStreamDriverAuthMode x509/name $ActionSendStreamDriverPermittedPeer server.example.com *.* @@(o)server.example.com:10514 # send (all) messages 

Se hai i propri certificati legittimi:

mycompany.ca

mycompany.crt

mycompany.key

Sul server:

Rimuovere il commento:

 $ModLoad imtcp 

Inserisci:

 $DefaultNetstreamDriver gtls $DefaultNetstreamDriverCAFile /etc/ssl/certs/mycompany.ca $DefaultNetstreamDriverCertFile /etc/ssl/certs/mycompany.crt $DefaultNetstreamDriverKeyFile /etc/ssl/certs/mycompany.key $InputTCPServerStreamDriverAuthMode anon $InputTCPServerStreamDriverMode 1 $InputTCPServerRun 10514 

Sul cliente:

 $DefaultNetstreamDriver gtls $DefaultNetstreamDriverCAFile /etc/ssl/certs/mycompany.ca $ActionSendStreamDriverAuthMode x509/name $ActionSendStreamDriverPermittedPeer *.mycompany.com $ActionSendStreamDriverMode 1 *.* @@rsyslog_server.mycompany.com:10514 (or ip) 

Riavviare il syslog

Per testare i risultati sul server eseguire:

 sudo tcpdump -i eth0 tcp port 10514 -X -s 0 -nn 

Verifica Selinux, il path dei certs, la data di scadenza dei certs e le autorizzazioni.

Suggerimenti per Linux e Windows Server, quali Ubuntu, Centos, Apache, Nginx, Debian e argomenti di rete.