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