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

$ 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