anthcourtney.cis-amazon-linux
anthcourtney.cis-amazon-linux
=========
Build Status
Branch | Status |
---|---|
Master | |
Build |
Entwicklung
Wir werden den "master"-Zweig nur für vollständig getestete Änderungen verwenden.
Bitte senden Sie Ihre Pull-Requests in den "build"-Zweig.
Wir benötigen mehr Unterstützung aus der Community, um Änderungen vorzunehmen und vor allem, um diese zu testen und zu überprüfen. Wenn Sie teilnehmen möchten, senden Sie bitte eine Nachricht an Anth oder Chandan.
Die wichtigen Arbeiten, die noch zu erledigen sind:
- CIS Benchmark v2.2.0
- Ansible 2.5 und höher
- Amazon Linux 2 LTS
Einführung
Dieses Ansible-Rolle wendet die Version v2.0.0 des CIS Amazon Linux Benchmarks an. https://benchmarks.cisecurity.org/tools2/linux/CIS_Amazon_Linux_Benchmark_v2.0.0.pdf
Die Rolle wurde gegen Amazon Linux 2016.03 entwickelt und getestet. Sie wurde auch erfolgreich gegen Amazon Linux 2016.09 getestet.
Warum sollte ich diese Rolle verwenden?
Wenn Sie Compliance mit einem in der Branche anerkannten Sicherheitsstandard, wie PCI DSS, APRA oder ISO 27001, erreichen möchten, müssen Sie nachweisen, dass Sie dokumentierte Härtungsstandards auf alle Systeme innerhalb des Prüfungsbereichs angewendet haben.
Wenn Sie Amazon Linux verwenden, versucht diese Rolle, ein Teil der Lösung für das Compliance-Puzzle bereitzustellen.
Hier gibt es Gefahren!
Wenn Sie überlegen, diese Rolle auf Server anzuwenden, sollten Sie mit dem CIS Benchmark (oder ähnlichen Benchmarks) vertraut sein und die Auswirkungen, die es auf ein System haben kann, verstehen.
Bitte nehmen Sie sich die Zeit, um mit dem Standard und den konfigurierbaren Standardwerten vertraut zu werden und schließen Sie alle Punkte aus, bevor Sie sie auf ein System anwenden.
Einige Punkte, die sofort für eine Ausnahme (oder zumindest für eine Modifikation der damit verbundenen Standardwerte) in Betracht gezogen werden sollten:
3.4.2
und3.4.3
, die standardmäßig den Zugriff auf den Host (einschließlich ssh) auf localhost beschränken.
Amazon Linux und SE Linux
SElinux ist standardmäßig in Amazon Linux über Grub deaktiviert.
Um es zu aktivieren, bearbeiten Sie:
/boot/grub/menu.lst
Ändern Sie selinux=0 zu selinux=1
touch /etc/selinux/config
Installieren Sie auch das folgende Paket, damit das Ansible SElinux-Modul auf dem Host funktioniert.
yum install libselinux-python
Ein Neustart ist erforderlich, damit die Änderungen wirksam werden.
Beispiel-Playbook
Ein Beispiel-Playbook, das diese Rolle verwendet, sieht folgendermaßen aus:
---
- hosts: localhost
connection: local
gather_facts: true
become: yes
roles:
- anthcourtney.cis-amazon-linux
Ein fortgeschrittenes Beispiel, das Änderungen an den verwendeten Standardwerten sowie den Ausschluss einiger Punkte im Benchmark, die für eine fiktive Umgebung als unnötig erachtet werden, ist wie folgt:
---
- hosts: localhost
connection: local
gather_facts: true
become: yes
vars:
cis_level_1_exclusions:
- 5.4.4
- 3.4.2
- 3.4.3
- 6.2.13
cis_pass_max_days: 45
cis_umask_default: 002
roles:
- anthcourtney.cis-amazon-linux
Beachten Sie, dass die Verwendung von become: yes
erforderlich ist, da 99% der Aufgaben privilegierten Zugriff benötigen.
Rollenvariablen
Siehe defaults/main.yml
für Variablen, die entsprechend den Vorlieben überschrieben werden können.
Optionen
Tags (und Kombinationen davon) können verwendet werden, um ein bestimmtes Niveau des CIS-Standards, einen Abschnitt oder eine einzelne Empfehlung auszuführen. Zum Beispiel:
- Führen Sie nur Level 1 Aufgaben aus
ansible-playbook playbook.yml -t level-1
- Führen Sie nur Abschnitt 3 Aufgaben aus
ansible-playbook playbook.yml -t section-3
- Führen Sie nur die Aufgaben 1.3.1 und 2.2.10 aus
ansible-playbook playbook.yml -t 1.3.1,2.2.10
- Führen Sie nur bewertete Aufgaben aus
ansible-playbook playbook.yml -t scored
Einschränkungen
Derzeit sind nur die Level 1 Punkte des Benchmarks implementiert. Level 2 Punkte werden hinzugefügt, wenn es die Zeit erlaubt.
Die folgenden Prüfungen wurden nicht implementiert:
- 3.6.2. Firewall-Regelsätze sind umgebungsspezifisch.
- 3.6.3. Firewall-Regelsätze sind umgebungsspezifisch.
- 3.6.4. Firewall-Regelsätze sind umgebungsspezifisch.
- 3.6.5. Firewall-Regelsätze sind umgebungsspezifisch.
- 4.2.1.2. Die Bestimmung, was protokolliert werden soll und das Ziel der Nachrichten ist umgebungsspezifisch.
- 4.2.2.2. Die Bestimmung, was protokolliert werden soll und das Ziel der Nachrichten ist umgebungsspezifisch.
- 4.2.2.3. Das Inline-Bearbeiten der syslog-ng-Konfigurationsdatei wird als zu ungenau angesehen und sollte am besten durch eine bereitgestellte Konfigurationsdatei gelöst werden, die dies und andere verwandte Anforderungen berücksichtigt.
- 4.2.2.4. Das Inline-Bearbeiten der syslog-ng-Konfigurationsdatei wird als zu ungenau angesehen und sollte am besten durch eine bereitgestellte Konfigurationsdatei gelöst werden, die dies und andere verwandte Anforderungen berücksichtigt.
- 4.2.2.5. Das Inline-Bearbeiten der syslog-ng-Konfigurationsdatei wird als zu ungenau angesehen und sollte am besten durch eine bereitgestellte Konfigurationsdatei gelöst werden, die dies und andere verwandte Anforderungen berücksichtigt.
- 4.3. Die Konfiguration von logrotate ist standortspezifisch.
- 5.3.2. Die Bearbeitung mehrerer Zeilen in PAM-Konfigurationsdateien wird als zu ungenau und gefährlich angesehen und sollte am besten durch eine bereitgestellte Konfigurationsdatei gelöst werden, die dies und andere verwandte Anforderungen berücksichtigt.
- 5.3.3. Die Bearbeitung mehrerer Zeilen in PAM-Konfigurationsdateien wird als zu ungenau und gefährlich angesehen und sollte am besten durch eine bereitgestellte Konfigurationsdatei gelöst werden, die dies und andere verwandte Anforderungen berücksichtigt.
Kompatibilität
Diese Rolle ist kompatibel mit folgenden Versionen von Ansible:
- 2.3
- 2.4
- 2.5
- 2.6
- 2.7
Diese Rolle wurde gegen keine anderen Versionen von Ansible getestet.
Testen
Die folgenden Testprozesse werden vom Entwickler dieser Rolle angewendet:
- Die Syntax der Rolle wird überprüft. Siehe
make syntax
. ansible-review
wird gegen die Rolle ausgeführt und alle Warnungen, die als angemessen erachtet werden, werden behoben. Siehemake review
.- Die Rolle wird gegen einen Docker-Container sowohl mit Ansible v2.1.3 als auch mit Ansible v2.2 angewendet. Siehe
make test
.
Die folgenden Tests wurden gekennzeichnet, sind aber noch nicht implementiert:
- Testanwendung der Rolle gegen das Vagrant
mvbcoding/awslinux
-Image mit dem Ansible-Provisionierer.
Lint
Bitte führen Sie make lint
aus, um sicherzustellen, dass wir die Ansible-Standards einhalten.
Lizenz
MIT.
Autoreninformation
Diese Rolle wurde von Anth Courtney entwickelt.
Alle Rückmeldungen, Probleme und Pull-Requests sind willkommen und werden geschätzt.
ansible-galaxy install anthcourtney.cis-amazon-linux