Beschreibung
Verwendung – Konfigurationsoptionen und zusätzliche Funktionalität
Einschränkungen – Betriebssystemkompatibilität usw.
api
vs. local
Installationsmethoden
Entwicklung – Leitfaden für die Mitarbeit am Modul
Lizenz
Das falcon
Modul installiert, konfiguriert und verwaltet den falcon
Dienst über mehrere Betriebssysteme und Distributionen hinweg.
Hinweis :
puppet-falcon
ist ein Open-Source-Projekt, kein CrowdStrike-Produkt. Als solches enthält es keine formelle Unterstützung, weder ausdrücklich noch stillschweigend.
Alle Parameter für das Falcon-Modul sind in der falcon
-Hauptklasse enthalten. Es gibt viele Optionen, die die Funktionsweise des Moduls ändern. Weitere Einzelheiten finden Sie unter REFERENCE.md.
Nachfolgend sind einige der häufigsten Anwendungsfälle aufgeführt.
Hinweis :
falcon
-Pakete sind nicht öffentlich, daher bietet dieses Modul zwei Optionen zur Installation des Falcon-Sensors. Mit dem Parameterinstall_method
können Sieapi
oderlocal
wählen.api
ist die Standardeinstellung. Weitere Informationen finden Sie unter API vs. lokale Installationsmethoden.
# mit der `api`-Methodeclass {'falcon': client_id => Sensitive('12346'), client_secret => Sensitive('12345'), cid => 'AJKQUI123JFKSDFJK`}
# Verwenden der „lokalen“ Methode$package_options = { 'ensure' => 'present', 'source' => '/tmp/sensor.rpm' # alle anderen Attribute, die für die Paketressource gültig sind}class {'falcon' : install_method => 'local', package_options => $package_options, cid => 'AJKQUI123JFKSDFJK`}
api
Installationsmethode Die api
-Installationsmethoden verwenden die API, um das Sensorpaket herunterzuladen. Die Version des heruntergeladenen Pakets wird durch die an das Modul übergebenen Parameter bestimmt.
Es gibt drei Parameter, die das Verhalten der api
-Installationsmethode ändern. Es kann jeweils nur einer dieser Parameter verwendet werden und sie werden in der unten aufgeführten Reihenfolge ausgewertet.
version
– Lädt das Sensorpaket herunter, das der von Ihnen angegebenen Version entspricht.
update_policy
– Lädt die in der Update-Richtlinie angegebene Version herunter.
version_decrement
– Lädt die n
-te Version vor der aktuellen Version herunter.
Die Nachteile der Verwendung der api
Installationsmethode werden im Abschnitt „API vs. lokale Installationsmethoden“ beschrieben.
Nachfolgend finden Sie jeweils Beispiele. Verwendung des version
Dies hat Vorrang vor update_policy
und version_decrement
.
class { 'falcon': client_id => Sensitive('12346'), client_secret => Sensitive('12345'), version => '1.0.0', cid => 'AJKQUI123JFKSDFJK`}
Verwendung des update_policy
Parameters
Dieser hat Vorrang vor dem Parameter version_decrement
.
class { 'falcon': client_id => Sensitive('12346'), client_secret => Sensitive('12345'), update_policy => 'platform_default', cid => 'AJKQUI123JFKSDFJK`}
Verwendung des Parameters version_decrement
Verwenden Sie version_decrement
, um die nx
-Version herunterzuladen.
Ein Wert von 0
lädt die neueste Version herunter, und ein Wert von 2
lädt die n-2
-Version herunter ( 2
Releases hinter der neuesten Version).
class { 'falcon': client_id => Sensitive('12346'), client_secret => Sensitive('12345'), version_decrement => 2, cid => 'AJKQUI123JFKSDFJK`}
local
Installationsmethode Mit der local
Installationsmethode haben Sie die volle Kontrolle darüber, wie der Sensor installiert wird.
Einige Gründe, warum Sie diese Methode verwenden könnten, sind:
Sie möchten den Sensor aus einer lokalen Datei installieren
Sie verfügen über Ihr eigenes Paketverwaltungssystem
Weitere Informationen zur local
Installationsmethode finden Sie unter API vs. lokale Installationsmethoden.
Wenn Sie die local
Installationsmethode verwenden, ist package_options
erforderlich. Parameter in package_options
werden an die package
übergeben. Sie müssen alle erforderlichen Parameter für die package
angeben, mit Ausnahme des name
. Das Modul wählt den passenden Namen basierend auf dem Betriebssystem aus. Sie können den Namen dennoch überschreiben, indem Sie die name
im package_options
-Hash angeben.
# Verwenden einer lokalen Dateifile {'/tmp/sensor.rpm': secure => 'present', source => 'https://company-filer-server.com/sensor.rpm'}class {'falcon': install_method => 'local', package_options => { 'ensure' => 'present', 'source' => '/tmp/sensor.rpm' }, require => File['/tmp/sensor.rpm'] }
# Verwenden einer http-Quellenklasse {'falcon': install_method => 'local', package_options => { 'ensure' => 'present', 'source' => 'http://example.com/sensor.rpm' } }
# Überschreiben des Namensparameterclass {'falcon': install_method => 'local', package_options => { 'ensure' => 'present', 'source' => '/tmp/sensor.rpm', 'name' => ' Falcon-Sensor' } }
Wenn install_method
api
ist, können Sie den Parameter cleanup_installer
verwenden, um die Installationsdatei nach der Installation zu entfernen.
class { 'falcon': client_id => Sensitive('12346'), client_secret => Sensitive('12345'), cleanup_installer => true, cid => 'AJKQUI123JFKSDFJK`}
Sie können jeden Parameter, der an die package
übergeben wird, mit dem Parameter package_options
überschreiben. Gültige Paketparameter
Dies funktioniert sowohl bei api
als auch bei local
Installationsmethoden gleich.
$package_options = { 'provider' => 'rpm', 'install_options' => '--force', }class { 'falcon': package_options => $package_options}
class {'falcon': package_manage => false # ... andere erforderliche Parameter}
Hinweis Der Windows-Agent kann nur zum Zeitpunkt der Installation konfiguriert werden. Der Linux-Agent wird mit
falconctl
geliefert, das es Puppet ermöglicht, den Agenten nach der Installation zu konfigurieren. Beispiel: Wenn Sie die Eigenschaftcid
in Ihrer Ressource aktualisieren, wird bei der nächsten Ausführung diecid
auf dem Linux-Agenten aktualisiert, nicht jedoch die Windows.
class {'falcon': config_manage => false # ... andere erforderliche Parameter}
class {'falcon': service_manage => false # ... andere erforderliche Parameter}
cid
class {'falcon': cid => 'AJKQUI123JFKSDFJK` # ... andere erforderliche Parameter}
cid
mit einem Bereitstellungstoken Wenn Ihr Unternehmen zum Registrieren eines Agenten ein Bereitstellungstoken benötigt, können Sie den Parameter provisioning_token
verwenden.
class {'falcon': cid => 'AJKQUI123JFKSDFJK`, Provisioning_token => '1234567890' # ... andere erforderliche Parameter}
Sie können die Parameter proxy_host
, proxy_port
und proxy_enabled
verwenden, um Proxy-Einstellungen für Ihren Agenten zu konfigurieren.
Hinweis: Bei Mac-Installationen gibt es keine Proxy-Einstellungen, die speziell für den Agent gelten. Stattdessen werden die Proxy-Einstellungen des Betriebssystems verwendet. Durch die Übergabe von Werten an diese Parameter werden keine Proxy-Einstellungen für Mac konfiguriert.
Klasse {'falcon': cid => 'AJKQUI123JFKSDFJK`, Provisioning_token => '1234567890,' Proxy_host => 'neptune.example.com', Proxy_port => '8080', Proxy_enabled => true
}
Wenn Sie die Agent-Version mithilfe der api
Installationsmethode an eine bestimmte Version anheften möchten, können Sie version_manage
auf true setzen.
In unserem Beispiel unten verwenden wir version_decrement
, aber es funktioniert für alle gleich. Puppet konsultiert die API, um festzustellen, in welche Version version_decrement => 2
aufgelöst wird. Anschließend wird diese Version heruntergeladen und sichergestellt, dass sie installiert ist.
Bei jedem weiteren Lauf wird die API überprüft, um festzustellen, ob die zurückgegebene Version die installierte ist. Wenn beispielsweise eine neue Version veröffentlicht wird, würde dies dazu führen, dass sich die von der Prüfung zurückgegebene Version ändert und der Agent auf die neue n-2
-Version aktualisiert wird.
Warnung : Dies führt dazu, dass das Modul bei jedem Lauf die API konsultiert, um sicherzustellen, dass die von der API zurückgegebene Version die installierte Version ist. Dies könnte bei großen Bereitstellungen zu Problemen mit der Ratenbegrenzung führen. Wenn Sie automatisierte Upgrades/Downgrades wünschen und die
api
Installationsmethode verwenden möchten, wird im Allgemeinen empfohlen,version_manage
auffalse
zu setzen und zuzulassen, dass die CrowdStrike-Update-Richtlinie die Upgrades/Downgrades anstelle von Puppet durchführt.
class {'falcon': version_manage => true client_id => Sensitive('12346'), client_secret => Sensitive('12345'), update_policy => 'platform_default' cid => 'AJKQUI123JFKSDFJK` # ... andere erforderliche Parameter}
Verwenden der install_method
von local
class {'falcon': install_method => 'local', package_options => { 'ensure' => '32.4.3', 'source' => '/tmp/sensor-32.4.3.rpm' } }
api
vs. local
Installationsmethoden Im Allgemeinen ist die api
-Methode für die meisten Anwendungsfälle in Ordnung, wenn version_manage
auf false
gesetzt ist. Wenn version_manage
auf true
gesetzt ist, stoßen Sie möglicherweise auf API-Ratenbeschränkungen.
Sie können local
Installationsmethode verwenden, wenn Sie vollständige Kontrolle wünschen und die API nicht nutzen möchten.
Im Allgemeinen steuern Puppet-Module, die ein Paket verwalten, den gesamten Lebenszyklus dieses Pakets von der Installation bis zur Entfernung. Die Tatsache, dass CrowdStrike-Agentenpakete nicht öffentlich sind, macht dies schwierig.
Wir wollten dennoch eine einfache Möglichkeit bieten, ein Paket schnell zu installieren, also haben wir die api
Installationsmethode erstellt. Für diese Methode müssen Sie API-Anmeldeinformationen angeben. Anschließend laden wir die richtige Paketversion von der CrowdStrike-API herunter. Es gibt Parameter, mit denen Sie das Verhalten steuern können, z. B. die Einstellung update_policy
. Dadurch lädt das Modul die richtige Version herunter, basierend auf den Vorschlägen der Update-Richtlinie. Beispiele von jedem hier.
Da diese Methode jedoch möglicherweise nicht für jeden geeignet ist, wurde die local
Installationsmethode entwickelt, die Ihnen die volle Kontrolle darüber gibt, wie der Sensor installiert wird.
api
InstallationsmethodeDie API-Installationsmethode verwendet die Falcon-API, um die richtige Paketversion herunterzuladen. Die richtige Paketversion hängt davon ab, welche Parameter Sie angeben. Beispiele davon können Sie hier sehen.
Beim ersten Durchlauf ruft Puppet die entsprechenden CrowdStrike-APIs auf, um die zum Herunterladen des Sensorpakets erforderlichen Informationen abzurufen. Anschließend wird das Sensorpaket heruntergeladen. Danach übernehmen die normalen Marionettenressourcen.
Wenn Sie version_manage
auf true
setzen, führt jede Ausführung dazu, dass das Modul die CrowdStrike-API konsultiert, um die entsprechende Paketversion zu erhalten. Anschließend wird festgestellt, ob die installierte Version mit der zurückgegebenen Version übereinstimmt. Wenn sie nicht identisch sind, wird die richtige Paketversion heruntergeladen und die entsprechenden Installations-/Aktualisierungs-/Downgrade-Aktionen ausgeführt.
Wenn Sie version_manage
auf false
setzen, erfolgen API-Aufrufe nur, wenn der CrowdStrike-Sensor nicht installiert ist.
Die Haupteinschränkung der api
Installationsmethode sind API-Ratenbeschränkungen. Wir sind selbst noch nicht darauf gestoßen, aber es kann sein, dass bei großen Installationen eine Ratenbegrenzung auftritt, wenn die api
-Installationsmethode verwendet wird und version_manage
auf true
gesetzt ist.
Jedes Mal, wenn Puppet einen Katalog für einen Knoten kompiliert, verwendet es die API, um zu bestimmen, welche Version des Agenten installiert werden soll. Wenn der Agent bereits über die richtige Version verfügt, werden keine weiteren API-Aufrufe durchgeführt.
Wenn Sie version_manage
auf false
setzen, werden alle API-Aufrufe verhindert, es sei denn, der Agent ist nicht installiert.
Der beste Weg, API-Aufrufe zu reduzieren, besteht darin, version_manage
auf false
zu setzen. Dadurch wird sichergestellt, dass die API nur dann aufgerufen wird, wenn der Agent nicht installiert ist. Dies sollte Probleme mit der API-Ratenbegrenzung verhindern.
Apple-Plattformen erfordern ein Mobile Device Management (MDM)-Profil, um Kernel-Erweiterungen ohne Benutzeraufforderung zu installieren. Aufgrund dieser Einschränkung lädt dieses Modul nur den Falcon Sensor herunter und installiert ihn. Der Mac-Bereitstellungsleitfaden in der CrowdStrike-Dokumentation beschreibt die Schritte, die erforderlich sind, um den Mac-Sensor so zu konfigurieren, dass er mit der Meldung an ein CID
beginnt.
Wenn Sie neue Inhalte entwickeln oder diese Sammlung verbessern möchten, öffnen Sie bitte ein Problem oder erstellen Sie eine Pull-Anfrage. Alle Beiträge sind willkommen!
Weitere Informationen finden Sie in der LIZENZ.