Créer son propre serveur de mise à jour Active Update

Formation Stormshield Network Security

Tutorial Thumbnail

Dans la configuration par dĂ©faut, les pares-feux Stormshield tĂ©lĂ©chargent leurs mises Ă  jour depuis les serveurs de Stormshield. Cependant, il existe des situations oĂč vous devrez peut-ĂȘtre tĂ©lĂ©charger ces fichiers Ă  partir d’un serveur de mise Ă  jour interne (par exemple, pour les rĂ©seaux isolĂ©s d’Internet...).


C'est dans cette procédure de réalisation que nous allons pouvoir mettre en place un tel systÚme afin de permettre aux pares-feux SNS de récupérer leurs mises à jours sans Internet et communiquer ainsi via le serveur Active Update local. Ce dernier doit par contre obtenir un accÚs Internet réglementé afin de récupérer les fichiers nécessaires.


Contexte

Un serveur de mise à jour Active Update est en fait un simple serveur Web HTTP avec une structure de répertoires spécifique et quelques fichiers spécifiques. Il est assez simple de configurer un tel serveur.


Ce serveur Web peut ĂȘtre soit Apache, Nginx ou un Windows Server IIS. Le pare-feu Stormshield Network Security va en effet rĂ©cupĂ©rer les fichiers de mises Ă  jour pour les transmettre ensuite aux pares-feux SNS.


Installation du serveur Web

Dans l'installation du serveur Active Update Stormshield, nous rĂ©aliseront la procĂ©dure sous un serveur Linux avec Nginx. Une procĂ©dure d'installation et de configuration est disponible juste ici ! 😉


Récupération du script Active Update

Afin de télécharger les sources, il est nécessaire de récupérer le script .sh proposé par Stormshield sur son portail client.


Téléchargement du script

Sur le portail client MyStormshield, il est nĂ©cessaire de s'y connecter afin de rĂ©cupĂ©rer le script Bash qui permets de tĂ©lĂ©charger les sources depuis les serveurs officiels Active Update de Stormshield. Pour cela, rendez-vous dans TÉLÉCHGARGEMENTS > STORMSHIELD NETWORK SECURITY > TOOLS, puis dans la section STORMSHIELD NETWORK SECURITY - TOOLS - V 2.1. Cliquez sur le lien surlignĂ© en jaune afin de tĂ©lĂ©charger le fichier "Active Update mirroring script" (fichier ActiveUpdate_mirroring_script_v2.1.sh - 6.7K).


Si vous ne disposez pas d'un accÚs à MyStormshield, vous pouvez directement télécharger le script mis à jour depuis le lien suivant : https://www.vemotech.fr/downloads/public/SNSMakeYourOwnActiveUpdateServer/activeupdate_updater.sh.

Pour information, j'ai adapté le script afin de télécharger les métadonnées correspondant aux objets des Services Web (pour les Objets > Services Web), obtenir la version 2 des données IP (IPData_v2) et la récupération du nouveau moteur antiviral Bitdefender (remplace Kaspersky). Le script actuel ne supporte pas pour le moment le téléchargement des sources...


Renommez ensuite le fichier en un nom plus simple tel que par exemple activeupdate_updater.sh. Pour ma part, je l'ai placé dans le dossier /var/prod :

cd /var/prod
mv activeupdate_mirroring_script_v2.1.sh activeupdate_updater.sh


Édition des paramùtres du fichier

Éditez le script et modifiez les constantes TEMP_DIRECTORY et WEB_DIRECTORY afin de tĂ©lĂ©charger les fichiers dans le rĂ©pertoire du serveur spĂ©cifiques (dans mon cas /var/prod/www pour le chemin du dossier Nginx) :



Enfin, on n'oublie pas d'effectuer un chmod afin de rendre ce fichier exécutable et on lance ensuite celui-ci :

chmod +x activeupdate_updater.sh


Vous pouvez lancer le script soit avec l'argument all ou alors une famille spécifique parmi les valeurs suivantes :



Suite à un récent changement, le moteur antiviral n'est plus sur Kaspersky mais maintenant sur Bitdefender. Il est nécessaire alors d'ajouter en plus la catégorie "advancedAV" (Bitdefender Advanced Antivirus database).

Téléchargement des sources Active Update

L'utilisation du script s'effectue de la maniĂšre suivante :

./activeupdate_updater.sh <upgrade family name>


Voici le résultat de la commande effectuée de la commande ./activeupdate_updater.sh all. Le téléchargement se lance bien :

./activeupdate_updater.sh all




...et les sources sont bien copiés à la racine du site Web :


N'oubliez pas d'autoriser l'accÚs aux serveurs Active Update de Stormshield en créant une rÚgle de filtrage pour les adresses URL : update1-sns.stormshieldcs.eu, update2-sns.stormshieldcs.eu, update3-sns.stormshieldcs.eu, update4-sns.stormshieldcs.eu (les serveurs 2/3/4 si dans le script l'appel au serveur est aléatoire afin de réduire la surcharge réseau des serveurs de Stormshield) sur le port HTTP.

Activer le chiffrement TLS sur le serveur Active Update

Dans certains cas, sur les versions supĂ©rieures Ă  4.0 de SNS, il peut ĂȘtre intĂ©ressant de chiffrer les communications TCP/IP sur le port 443, autrement dit avec le protocole HTTPS. C'est pour cela que nous allons crĂ©er dans un premier temps, sur un pare-feu SNS, une PKI (une CA) qui sera dĂ©diĂ©e dans notre cas au serveur Active Update.


Cette autoritĂ© de certification (CA) se nommera "VemoTech Cloud Services CA". Un certificat pour le serveur Web Nginx doit ĂȘtre crĂ©Ă© et doit ĂȘtre placĂ© sur le serveur Web avec sa clĂ© publique et sa clĂ© privĂ©e.


Enfin, il sera nécessaire d'exporter la clé publique de l'autorité de certification "VemoTech Cloud Services CA" sur le pare-feu devant recevoir les mises à jour Active Update et communiquer ainsi en HTTPS.


Manipulation de la PKI Stormshield

Ce passage n'est pas obligatoire et est tout Ă  fait optionnel si vous ne souhaitez pas que votre serveur Active Update et les pares-feux SNS communiquent en HTTPS. MĂȘme chose si vous disposez dĂ©jĂ  d'une CA ou d'un certificat TLS issu de votre organisation par exemple.


Création de l'autorité de certification sur Stormshield

Afin de créer cette nouvelle autorité de certification, dans CONFIGURATION > OBJETS > Certificats et PKI, cliquez sur le bouton Ajouter, puis Autorité racine afin de lancer l'assistant de création d'une nouvelle autorité de certification racine.




Renseignez ensuite les informations demandées tel que le nom et les attributs de l'autorité de certification :




Renseignez ensuite un mot de passe Ă  garder prĂ©cieusement dans le cas oĂč vous souhaitez crĂ©er de nouveaux certificats et Ă©ventuellement supprimer l'autoritĂ©. SĂ©lectionnez ensuite la durĂ©e de validitĂ© de l'organisation, une adresse E-mail, le type et la taille de clĂ© :



Vous pouvez si vous le souhaitez ajouter des points de distributions de CRL, puis un résumé des informations de la CA. Valider Terminer pour créer l'autorité. Celle-ci a bien été créée :


Création d'un certificat machine

Un certificat machine doit ĂȘtre crĂ©Ă© pour le serveur Web. SĂ©lectionner la CA souhaitĂ©e en cliquant dessus et cliquer ensuite sur le bouton Ajouter, puis IdentitĂ© serveur. On demande ensuite de spĂ©cifier le nom de domaine (FQDN).




On sélectionne, l'autorité de certification parente et les attributs de l'organisation se remplissent automatiquement :




Renseignez les valeurs du certificat tel que la durée de validité du certificat (par défaut : 1an), le type et la taille de la clé (par défaut : RSA, 2048) :




Enfin, renseignez les adresse URI ou les adresses IP qui doivent matcher avec le certificat afin que certificat soit bien associé (dans notre cas, le domaine activeupdate.vemo.tech sera "trusté") :




Une fois les informations résumées, le certificat machine est créé. Il sera disponible sous l'autorité de certificat créée.



Exporter le certificat pour le serveur Web

Afin d'utiliser ce certificat, il est nécessaire d'exporter l'identité du certificat, c'est-à-dire la clé publique et la clé privé.


Exporter l'identité du certificat

Pour cela, sélectionnez le certificat en question et cliquez sur Télécharger > Identité > Au format P12. Spécifier ensuite un mot de passe afin de protéger le fichier .p12 et cliquez sur le lien de téléchargement.



Générer la clé publique et la clé privé issu du fichier P12

Maintenant que nous avons notre fichier P12, exécutez les commandes suivantes afin d'extraire les deux fichiers avec OpenSSL :

Extraire le certificat : openssl pkcs12 -in activeupdate.vemo.tech.p12 -nodes -nokeys -out activeupdate.vemo.tech.crt
Extraire la clé privé : openssl pkcs12 -in activeupdate.vemo.tech.p12 -nodes -certs -out activeupdate.vemo.tech.crt


Nos deux fichiers sont maintenant disponibles. Il est nécessaire maintenant de les ajouter sur notre serveur Web Nginx.


Ajout d'une configuration TLS sur Nginx

Les deux fichiers sont nĂ©cessaires afin d'activer le HTTPS sur le serveur. Afin de configurer celui-ci, voici un article qui explique comment activer le HTTPS sur un serveur Nginx 🎉


La partie est similaire à l'ajout de certificat auto-signés, sauf qu'il faudra remplacer les bons fichiers par ceux générés précédemment et leur attribuer un nom tel que activeupdate.vemo.tech.crt (pour la clé publique du certificat) et activeupdate.vemo.tech.crt (clé privée).


Exporter la CA pour le serveur Active Update

Pour utiliser notre propre serveur local Active Update, il est nécessaire d'exporter la clé publique de l'autorité de certification "VemoTech Cloud Services CA". Sur l'interface de SNS, on exporte la clé publique de l'autorité, dans CONFIGURATION > OBJETS > Certificats et PKI, sélectionner la CA, puis cliquez sur Télécharger > Certificat > Au format PEM.



Le fichier est alors tĂ©lĂ©chargĂ© sur votre ordinateur. Ce fichier au format PEM sera nĂ©cessaire afin d'utiliser le serveur Active Update en HTTPS. Rappelons que l'autoritĂ© de certification exportĂ©e correspond Ă  celle qui a signĂ©e le certificat du serveur Web Nginx 😉


Modifier le serveur de mise Ă  jour sur les SNS

Maintenant que notre serveur Active Update est opérationnel et recense ainsi l'ensemble des sources Stormshield Network Security, il est maintenant nécessaire de configurer les pares-feux à chercher les mises à jour sur notre serveur Active Update local.


Effectuer l'action manuellement

Si vous ne disposez que de trÚs peu de pare-feu SNS dans votre réseau, vous pouvez effectuer cette manipulation depuis le menu CONFIGURATION > Active Update. C'est à cet endroit que nous allons gérer les différents serveurs de mise à jour :




Serveur en HTTP

Supprimez tous les serveurs par dĂ©faut et ajoutez ensuite, dans la section "SERVEURS DE MISE À JOUR", l'adresse ou les adresses URL/IP du serveur Active Update local. Si il s'agit d'un serveur en HTTP, aucune CA ne sera demandĂ©e :




Serveur en HTTPS

Contrairement en HTTPS oĂč il faudra dans un premier temps importer la CA du serveur Web Active Update sur le pare-feu pour effectuer ensuite la rĂ©cupĂ©ration des diffĂ©rentes mises Ă  jour.


Le fichier .pem que nous avons précédemment exporté correspond à la clé publique de l'autorité de certification du serveur Web. il est donc nécessaire d'importer la CA du serveur Web Active Update sur le pare-feu en question afin effectuer la récupération des différentes mises à jour depuis le serveur local en HTTPS.


Dans CONFIGURATION > OBJETS > Certificats et PKI, cliquez sur le menu déroulant Ajouter > Importer un fichier. Comme fichier à importer, prenez le fichier .pem de la CA et sélectionnez comme format de fichier : "PEM" :




La CA correspond donc au certificat de l'autorité de certification "VemoTech Cloud Services CA" qui a été exporté précédemment. Celui-ci a donc été importé sur le pare-feu qui souhaite se rattacher au serveur Active Update local.



Valider ensuite les modifications qui ont été effectuées.


En CLI ou avec Stormshield Management Center

Stormshield Management Center (SMC), est un outil commercialisĂ© par l'entreprise qui permets d'administrer de maniĂšre centralisĂ©e et sĂ©curisĂ©e les diffĂ©rents pares-feux Stormshield Network Security (SNS). SMC permet d’optimiser les tĂąches de supervision, de configuration et de maintenance afin de regrouper efficacement l'administration des politiques de sĂ©curitĂ©s tels que les rĂšgles de filtrages ou la configurations des accĂšs VPN entre-autre.


Cet outil permets notamment, avec la notion des déploiements de configuration sur les SNS, d'injecter des scripts NSRPC.


Script d'importation de la CA

Afin d'Ă©viter toute erreur de dĂ©ploiement, il est nĂ©cessaire d'importer dans un premier temps l'autoritĂ© de certification de notre serveur Active Update. CrĂ©er un fichier en .script (exemple : SNS_CLI_ImportCA_AutoUpdate_Servers.script) oĂč nous allons inscrire les instructions NSRPC. Ce fichier doit contenir les instructions suivantes :


# Importation de la CA
PKI IMPORT format=pem type=ca $FROM_DATA_FILE("Corporate_Demo_CA.crt")

Enregistrez le fichier au format .script sur votre poste.


Script de modification du serveur Active Update sur les firewalls

Il est nĂ©cessaire ensuite de modifier les serveurs de mise Ă  jour du firewall par notre propre serveur. CrĂ©er un fichier en .script (exemple : SNS_CLI_Custom_AutoUpdate_Servers.script) oĂč nous allons inscrire les instructions NSRPC. Ce fichier doit contenir les instructions suivantes :


Dans un premier temps, nous allons crĂ©er l'objet correspondant au serveur de mise Ă  jour en CLI oĂč le nom est "sns-activeupdate.domain.local", suivi de l'adresse IP. L'objet doit ĂȘtre en rĂ©solution dynamique si le nom de l'objet est un domaine :

CONFIG OBJECT HOST NEW name=sns-activeupdate.domain.local ip=<YOUR_IP_ADDRESS> resolve=dynamic update=1
CONFIG OBJECT ACTIVATE


On ajoute Ă  la suite du fichier l'adresse URL en HTTPS de notre serveur Active Update (disponible dans la WebUI dans CONFIGURATION > SYSTÈME > Active Update) suivi de l'autoritĂ© de certification qui doit ĂȘtre la mĂȘme que celle du serveur Web du serveur Active Update :

CONFIG AUTOUPDATE SERVER url=https://sns-activeupdate.domain.local CA="C=FR ST=HAUTS-DE-FRANCE L=LILLE O=VemoTech emailAddress=demo@example.com" state=on
CONFIG AUTOUPDATE SERVER state=0 update=CustomPatterns
CONFIG AUTOUPDATE ACTIVATE


On lance ensuite la mise Ă  jour des signatures en CLI NSRCP :

MONITOR AUTOUPDATE update=on force=1


Enregistrer les scripts sur SMC

Enregistrez ce fichier et rendez-vous sur l'interface d'administration de Stormshield Management Center (SMC), puis dans le module DÉPLOIEMENTS > Scripts CLI SNS. Cliquer sur le bouton "+" afin d'importer le script :




Importez également le fichier .crt de l'autorité de certification, exporté au préalable en tant que "PiÚces jointes liées aux scripts" :



Le script est maintenant importé :


DĂ©ploiement des scripts

Sélectionnez un script dans le volet supérieur afin de téléverser celui-ci sur un ou plusieurs firewalls en simultané. Pour cela, sélectionnez les pares-feux désirés, puis cliquez sur "Exécuter le script" :



Forcer la mise Ă  jour Auto Update

Une fois les serveurs Active Update opérationnels, connectez-vous soit en console ou en SSH sur le pare-feu et effectuez la commande AutoUpdate afin de forcer la mise à jour des signatures du SNS si nécessaire :

autoupdate -f -v 2



Et voilĂ , laissez la magie opĂ©rĂ©e. Le dĂ©roulĂ© des mises Ă  jour affiche gĂ©nĂ©ralement des informations (avec le tag [INFO]). Si des tags [ERRORS] surviennent, investiguez... soit il manque des dĂ©pendances sur le serveur local Active Update et dans ce cas relancez le script ou sinon, vĂ©rifiez la date et la capacitĂ© de la maintenance de l'Ă©quipement 😉


Et voilĂ , vous avez maintenant un serveur Active Update local totalement opĂ©rationnel ! 😎

Niveau Intermédiaire

Technologie utilisée :

Proposer une modification
Antoine
Par Antoine
Rédigé le Vendredi 23 Septembre 2022