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 :

 1 $ mkdir -p $SPLUNK_HOME/etc/deployment-apps/myapp_uf_outputs/local/
 2 
 3 $ vi $SPLUNK_HOME/etc/deployment-apps/myapp_uf_outputs/local/outputs.conf
 4 
 5 [tcpout:primary_indexers]
 6 server = idx1.udmiot.lab:9997, idx2.udmiot.lab:9997,idx3.udmiot.lab:9997,idx4.udmiot.lab:9997
 7 sslCertPath = $SPLUNK_HOME/etc/auth/my_cert/wildcard_web.udmiot_with_key.pem
 8 sslRootCAPath = $SPLUNK_HOME/etc/auth/my_cert/rootCA.pem
 9 
10 [tcpout]
11 defaultGroup = primary_indexers
12 forceTimebasedAutoLB = true
13 autoLBFrequency = 10
14 autoLBVolume = 512000

Sur le client UF créer les certificats :

1 $ 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 :

 1 $  mkdir -p $SPLUNK_HOME/etc/apps/myapp_deploymentserver/local/
 2 
 3 $ vi $SPLUNK_HOME/etc/apps/myapp_deploymentserver/local/deploymentclient.conf
 4 [deployment-client]
 5 # Set the phoneHome at the end of the PS engagement
 6 # 10 minutes
 7 # phoneHomeIntervalInSecs = 600
 8 
 9 [target-broker:deploymentServer]
10 # Change the targetUri
11 targetUri = us1.udmiot.lab:8089

Ajouter la configuration certificat :

1 $ vi $SPLUNK_HOME/etc/apps/myapp_deploymentserver/local/server.conf
2 
3 [sslConfig]
4 sslRootCAPath = $SPLUNK_HOME/etc/auth/my_cert/rootCA.pem
5 serverCert = $SPLUNK_HOME/etc/auth/my_cert/wildcard_web.udmiot_with_key.pem
6 requireClientCert = true
7 sslVerifyServerCert = true

Toujours depuis le client UF, redémarrer Splunk Forwarder pour prendre en compte cette app :

1 $ 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 :
Client sur DS

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 :

 1 $ cd /opt/splunk/etc/master-apps
 2 
 3 $ vi myappclusteridxcommon/local/inputs.conf
 4 #On commenter le splunktcp :
 5 #[splunktcp://9997]
 6 
 7 [splunktcp-ssl://9997]
 8 disabled = false
 9 
10 [SSL]
11 serverCert = $SPLUNK_HOME/etc/auth/my_cert/wildcard_web.udmiot_with_key.pem

Deployer sur les IDX :

1 $ /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 :

1 $ 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 :

1 | 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