Splunk - Chiffrement des communications partie 3
Alasta 8 Novembre 2021 splunk splunk gui cli admin chiffrement
Description : Chiffrement des communications des différents composants Splunk partie 3 - Collecte des données.
Description :
Nous allons voir comment chiffrer les communications Splunk :
- Configuration de la collecte côté client UF
- Configuration de la collecte côté indexer
Prérequis :
Avoir une VM avec un UF d’installé ainsi que le cluster d’indexers et search head.
Préparation du Deployement Server pour les agents UF :
Nous allons utiliser le serveur us1 qui joue déjà le rôle de Deployer.
Pour activer le Deployement Server il suffit de créer une app dans le $SPLUNK_HOME/etc/deployment-apps/.
On commence par créer une app qui va déclarer le outputs.conf des UF :
$ mkdir -p $SPLUNK_HOME/etc/deployment-apps/myapp_uf_outputs/local/
$ vi $SPLUNK_HOME/etc/deployment-apps/myapp_uf_outputs/local/outputs.conf
[tcpout:primary_indexers]
server = idx1.udmiot.lab:9997, idx2.udmiot.lab:9997,idx3.udmiot.lab:9997,idx4.udmiot.lab:9997
sslCertPath = $SPLUNK_HOME/etc/auth/my_cert/wildcard_web.udmiot_with_key.pem
sslRootCAPath = $SPLUNK_HOME/etc/auth/my_cert/rootCA.pem
[tcpout]
defaultGroup = primary_indexers
forceTimebasedAutoLB = true
autoLBFrequency = 10
autoLBVolume = 512000
Sur le client UF créer les certificats :
$ mkdir -p $SPLUNK_HOME/etc/auth/my_cert/
Y déposer les certificats suivants :
- wildcard_web.udmiot_with_key.pem
- rootCA.pem
Sur le client UF il faut créer une app pour déclarer le Deployement Server :
$ mkdir -p $SPLUNK_HOME/etc/apps/myapp_deploymentserver/local/
$ vi $SPLUNK_HOME/etc/apps/myapp_deploymentserver/local/deploymentclient.conf
[deployment-client]
# Set the phoneHome at the end of the PS engagement
# 10 minutes
# phoneHomeIntervalInSecs = 600
[target-broker:deploymentServer]
# Change the targetUri
targetUri = us1.udmiot.lab:8089
Ajouter la configuration certificat :
$ vi $SPLUNK_HOME/etc/apps/myapp_deploymentserver/local/server.conf
[sslConfig]
sslRootCAPath = $SPLUNK_HOME/etc/auth/my_cert/rootCA.pem
serverCert = $SPLUNK_HOME/etc/auth/my_cert/wildcard_web.udmiot_with_key.pem
requireClientCert = true
sslVerifyServerCert = true
Toujours depuis le client UF, redémarrer Splunk Forwarder pour prendre en compte cette app :
$ sudo systemctl restart SplunkForwarder
Aller sur le Deployment Server pour voir le client apparaître (prend plusieurs minutes).
Dans la GUI, Settings, Forwarder management, Client :
Mise en place de l’écoute en TLS sur les indexers :
Port d’écoute des IDX en TLS : Depuis le Cluster Master, on va reprendre la configuration existante et on l’adaptera :
$ cd /opt/splunk/etc/master-apps
$ vi myappclusteridxcommon/local/inputs.conf
#On commenter le splunktcp :
#[splunktcp://9997]
[splunktcp-ssl://9997]
disabled = false
[SSL]
serverCert = $SPLUNK_HOME/etc/auth/my_cert/wildcard_web.udmiot_with_key.pem
Deployer sur les IDX :
$ /opt/splunk/bin/splunk apply cluster-bundle
Configuration de l’agent UF via de Deployment Server :
Sur le Deployment Server nous avons préparer la configuration de l’agent pour déclarer l’envoie vers les indexers.
Pour cela il faudra en GUI sur Deployment Server :
- Créer un Server Class et y associer l’agent UF
- Associer l’app avec le Server Class
- Déployer
Aller dans le menu ** Settings, Forwarder management, cliquer sur l’onglet **Server Class, puis sur Create One, nous l’appelerons all_uf_base.
Ajoutons le client via le bouton Add Clients et suivre les instructions.
Aller ensuite dans l’onglet Apps, éditer l’app myapp_uf_outputs créé précédement, ajouter la server class que l’on vient de créer et cocher la case Restart Splunkd puis sauvegarder..
Il faut maintenant déployer/mettre à disposition pour les clients :
$ splunk reload deploy-server
Note : attendre que le client effectue son check et effectue la MAJ.
On peut vérifier sur une Search Head, la récupération de logs internes de l’agent UF :
| tstats count where index=_internal by host
TODO : disable replication port non TLS connexion idx / CM en tls ? idx input port TLS UF tls vers IDX SH -> IDX tls