Description
Utilisation - Options de configuration et fonctionnalités supplémentaires
Limitations - compatibilité du système d'exploitation, etc.
api
vs méthodes d'installation local
Développement - Guide pour contribuer au module
Licence
Le module falcon
installe, configure et gère le service falcon
sur plusieurs systèmes d'exploitation et distributions.
Remarque :
puppet-falcon
est un projet open source, pas un produit CrowdStrike. En tant que tel, il ne comporte aucun soutien formel, exprimé ou implicite.
Tous les paramètres du module Falcon sont contenus dans la classe principale falcon
. Il existe de nombreuses options qui modifieront ce que fait le module. Reportez-vous à REFERENCE.md pour plus de détails.
Vous trouverez ci-dessous quelques-uns des cas d'utilisation courants.
Remarque : les packages
falcon
ne sont pas publics, ce module propose donc deux options pour installer le capteur Falcon. En utilisant le paramètreinstall_method
vous pouvez choisirapi
oulocal
.api
est la valeur par défaut. Plus d’informations sont décrites dans Méthodes d’installation API vs Local.
# en utilisant la classe de méthodes `api` {'falcon' : client_id => Sensitive('12346'), client_secret => Sensitive('12345'), cid => 'AJKQUI123JFKSDFJK`}
# en utilisant la méthode `local`$package_options = { 'ensure' => 'present', 'source' => '/tmp/sensor.rpm' # tout autre attribut valide pour la ressource du package}class {'falcon' : install_method => 'local', package_options => $package_options, cid => 'AJKQUI123JFKSDFJK`}
api
Les méthodes d'installation api
utilisent l'API pour télécharger le package du capteur. La version du package téléchargé est déterminée par les paramètres transmis au module.
Trois paramètres modifient le comportement de la méthode d'installation api
. Un seul de ces paramètres peut être utilisé à la fois et ils sont évalués dans l’ordre indiqué ci-dessous.
version
: téléchargera le package de capteur correspondant à la version que vous spécifiez.
update_policy
- Télécharge la version spécifiée par la politique de mise à jour.
version_decrement
- Télécharge la n
ème version avant la version actuelle.
Les inconvénients de l’utilisation de la méthode d’installation api
sont décrits dans Méthodes d’installation API vs Local.
Des exemples pour chacun sont ci-dessous. Utilisation du paramètre version
Ceci est prioritaire sur update_policy
et version_decrement
.
classe { 'falcon' : client_id => Sensitive('12346'), client_secret => Sensitive('12345'), version => '1.0.0', cid => 'AJKQUI123JFKSDFJK`}
Utilisation du paramètre update_policy
Ceci est prioritaire sur le paramètre version_decrement
.
class { 'falcon' : client_id => Sensitive('12346'), client_secret => Sensitive('12345'), update_policy => 'platform_default', cid => 'AJKQUI123JFKSDFJK`}
Utilisation du paramètre version_decrement
Utilisez version_decrement
pour télécharger la version nx
.
Une valeur de 0
téléchargera la dernière version et une valeur de 2
téléchargera la version n-2
( 2
versions en retard sur la dernière).
class { 'falcon' : client_id => Sensitive('12346'), client_secret => Sensitive('12345'), version_decrement => 2, cid => 'AJKQUI123JFKSDFJK`}
local
La méthode d'installation local
vous donne un contrôle total sur la façon dont le capteur est installé.
Voici quelques raisons pour lesquelles vous pouvez utiliser cette méthode :
Vous souhaitez installer le capteur à partir d'un fichier local
Vous disposez de votre propre système de gestion de paquets
Vous pouvez en savoir plus sur la méthode d'installation local
dans Méthodes d'installation API vs Local.
Lorsque vous utilisez la méthode d'installation local
, package_options
est requis. Les paramètres dans package_options
sont transmis à la ressource package
. Vous devez fournir tous les paramètres requis pour la ressource package
à l'exception du paramètre name
. Le module choisira le nom approprié en fonction du système d'exploitation. Vous pouvez toujours remplacer le nom en spécifiant la propriété name
dans le hachage package_options
.
# Utilisation d'un fichier localfile {'/tmp/sensor.rpm' : Ensure => 'present', source => 'https://company-filer-server.com/sensor.rpm'}class {'falcon': install_method => 'local', package_options => { 'ensure' => 'present', 'source' => '/tmp/sensor.rpm' }, require => Fichier['/tmp/sensor.rpm'] }
# Utilisation d'une classe source http {'falcon' : install_method => 'local', package_options => { 'ensure' => 'present', 'source' => 'http://example.com/sensor.rpm' } }
# Remplacement du nom de classe de paramètres {'falcon' : install_method => 'local', package_options => { 'ensure' => 'present', 'source' => '/tmp/sensor.rpm', 'name' => ' capteur-faucon' } }
Lorsque install_method
est api
vous pouvez utiliser le paramètre cleanup_installer
pour supprimer le fichier d'installation après l'installation.
class { 'falcon' : client_id => Sensitive('12346'), client_secret => Sensitive('12345'), cleanup_installer => true, cid => 'AJKQUI123JFKSDFJK`}
Vous pouvez remplacer n'importe quel paramètre transmis à la ressource package
à l'aide du paramètre package_options
. Paramètres de package valides
Cela fonctionne de la même manière dans les méthodes d'installation api
et local
.
$package_options = { 'provider' => 'rpm', 'install_options' => '--force', }classe { 'faucon' : package_options => $package_options}
class {'falcon': package_manage => false # ... autres paramètres requis}
Remarque L'agent Windows ne peut être configuré qu'au moment de l'installation. L'agent Linux est livré avec
falconctl
qui permet à Puppet de configurer l'agent après l'installation. Par exemple : la mise à jour de la propriétécid
dans votre ressource mettra à jour lecid
sur l'agent Linux lors de la prochaine exécution, mais pas sur Windows.
class {'falcon': config_manage => false # ... autres paramètres requis}
class {'falcon': service_manage => false # ... autres paramètres requis}
cid
class {'falcon': cid => 'AJKQUI123JFKSDFJK` # ... autres paramètres requis}
cid
avec un jeton de provisionnement Si votre entreprise a besoin d'un jeton de provisionnement pour enregistrer un agent, vous pouvez utiliser le paramètre provisioning_token
.
class {'falcon': cid => 'AJKQUI123JFKSDFJK`, provisioning_token => '1234567890' # ... autres paramètres requis}
Vous pouvez utiliser les paramètres proxy_host
, proxy_port
et proxy_enabled
pour configurer les paramètres de proxy pour votre agent.
Remarque Les installations Mac n'ont pas de paramètres de proxy spécifiques à l'agent. Au lieu de cela, il utilise les paramètres proxy du système d'exploitation. La transmission de valeurs à ces paramètres ne configurera aucun paramètre de proxy pour Mac.
class {'falcon' : cid => 'AJKQUI123JFKSDFJK`, provisioning_token => '1234567890', proxy_host => 'neptune.example.com', proxy_port => '8080', proxy_enabled => true
}
Si vous souhaitez épingler la version de l'agent à une version spécifique à l'aide de la méthode d'installation api
, vous pouvez définir version_manage
sur true.
Dans notre exemple ci-dessous, nous utilisons version_decrement
, mais cela fonctionne de la même manière pour tous. Puppet consultera l'API pour déterminer à quelle version version_decrement => 2
résout. Il téléchargera ensuite cette version et s’assurera qu’elle est installée.
À chaque exécution ultérieure, il vérifiera l'API pour voir si la version renvoyée est celle installée. Si, par exemple, une nouvelle version est publiée, la version renvoyée par la vérification changera, ce qui entraînera la mise à niveau de l'agent vers la nouvelle version n-2
.
avertissement : cela amène le module à consulter l'API à chaque exécution pour s'assurer que la version renvoyée par l'API est la version installée. Cela pourrait entraîner des problèmes de limite de débit pour les déploiements importants. Si vous souhaitez bénéficier de mises à niveau/rétrogradations automatisées et utiliser la méthode d'installation
api
, il est généralement suggéré de définirversion_manage
surfalse
et d'autoriser la politique de mise à jour CrowdStrike à effectuer les mises à niveau/rétrogradations au lieu de Puppet.
class {'falcon' : version_manage => true client_id => Sensitive('12346'), client_secret => Sensitive('12345'), update_policy => 'platform_default' cid => 'AJKQUI123JFKSDFJK` # ... autres paramètres requis}
Utilisation de la install_method
de local
class {'falcon' : install_method => 'local', package_options => { 'ensure' => '32.4.3', 'source' => '/tmp/sensor-32.4.3.rpm' } }
api
vs méthodes d'installation local
Généralement, la méthode api
conviendra à la plupart des cas d'utilisation si version_manage
est défini sur false
. Si version_manage
est défini sur true
vous risquez de rencontrer des limites de débit API.
Vous pouvez utiliser la méthode d'installation local
si vous souhaitez un contrôle total et ne souhaitez pas exploiter l'API.
Généralement, les modules Puppet qui gèrent un package contrôlent le cycle de vie complet de ce package, de l'installation à la suppression. Le fait que les packages d’agents CrowdStrike ne soient pas publics rend la tâche difficile.
Nous voulions toujours offrir un moyen pratique d'installer rapidement un package, nous avons donc créé la méthode d'installation api
. Cette méthode vous demandera de fournir les informations d'identification de l'API, puis nous téléchargerons la version correcte du package à partir de l'API CrowdStrike. Il existe des paramètres qui vous permettent de contrôler le comportement, comme la définition update_policy
. Cela amènera le module à télécharger la version correcte en fonction de ce que suggère la politique de mise à jour. Des exemples de chacun ici.
Cependant, cette méthode peut ne pas convenir à tout le monde, c'est pourquoi la méthode d'installation local
a été créée pour vous donner un contrôle total sur la façon dont le capteur est installé.
api
La méthode d'installation de l'API utilisera l'API Falcon pour télécharger la version correcte du package. La version correcte du package dépend des paramètres que vous fournissez. Vous pouvez voir des exemples de chacun ici.
La première exécution amènera Puppet à appeler les API CrowdStrike appropriées pour obtenir les informations nécessaires au téléchargement du package de capteurs. Il téléchargera ensuite le package du capteur. Après cela, les ressources normales des marionnettes prennent le relais.
Si vous définissez version_manage
sur true
chaque exécution obligera le module à consulter l'API CrowdStrike pour obtenir la version appropriée du package. Ensuite, il déterminera si la version installée est la même que la version renvoyée. S'ils ne sont pas identiques, il téléchargera la version correcte du package et effectuera les actions d'installation/mise à jour/rétrogradation appropriées.
Si vous définissez version_manage
sur false
, les appels d'API n'auront lieu que lorsque le capteur CrowdStrike n'est pas installé.
La principale limitation de la méthode d’installation api
réside dans les limites de débit de l’API. Nous ne les avons pas atteints nous-mêmes, mais il est possible que les grandes installations atteignent une limite de débit lors de l'utilisation de la méthode d'installation api
avec version_manage
défini sur true
.
Chaque fois que Puppet compile un catalogue pour un nœud, il utilise l'API pour déterminer quelle version de l'agent doit être installée. Si l'agent utilise déjà la bonne version, aucun autre appel d'API n'est effectué.
La définition version_manage
sur false
empêchera tout appel d’API à moins que l’agent ne soit installé.
La meilleure façon de réduire les appels d'API est de définir version_manage
sur false
. Cela garantira que l’API n’est appelée que lorsque l’agent n’est pas installé. Cela devrait éviter les problèmes de limite de débit API.
Les plates-formes Apple nécessitent un profil MDM (Mobile Device Management) pour installer les extensions du noyau sans invite de l'utilisateur. En raison de cette limitation, ce module téléchargera et installera uniquement le capteur Falcon. Le guide de déploiement Mac dans la documentation CrowdStrike décrit les étapes requises pour configurer le capteur Mac afin de commencer à signaler à un CID
.
Si vous souhaitez développer du nouveau contenu ou améliorer cette collection, veuillez ouvrir un ticket ou créer une pull request. Toutes les contributions sont les bienvenues !
Voir la LICENCE pour plus d'informations.