Checkliste

Check-Neutron-01: Ist User/Group Besitz von Konfigurationsdateien auf root/neutron gesetzt?

Configuration files contain critical parameters and information required for smooth functioning of the component. If an unprivileged user, either intentionally or accidentally modifies or deletes any of the parameters or the file itself then it would cause severe availability issues causing a denial of service to the other end users. Thus user ownership of such critical configuration files must be set to root and group ownership must be set to neutron. Additionally, the containing directory should have the same ownership to ensure that new files are owned correctly.

Führen Sie die folgenden Befehle aus:

$ stat -L -c "%U %G" /etc/neutron/neutron.conf | egrep "root neutron"
$ stat -L -c "%U %G" /etc/neutron/api-paste.ini | egrep "root neutron"
$ stat -L -c "%U %G" /etc/neutron/policy.json | egrep "root neutron"
$ stat -L -c "%U %G" /etc/neutron/rootwrap.conf | egrep "root neutron"
$ stat -L -c "%U %G" /etc/neutron | egrep "root neutron"

Pass: Wenn Benutzer- und Gruppenbesitz aller dieser Konfigurationsdateien auf root und neutron gesetzt ist. Die obigen Befehle zeigen die Ausgabe von root neutron.

Fail: Wenn die oben genannten Befehle keine Ausgabe zurückgeben, da die Benutzer- und Gruppeneigentümer möglicherweise auf einen anderen Benutzer als root oder eine andere Gruppe als neutron eingestellt sind.

Check-Neutron-02: Sind strenge Berechtigungen für Konfigurationsdateien festgelegt?

Ähnlich wie bei der vorherigen Prüfung empfiehlt es sich, strenge Zugriffsberechtigungen für solche Konfigurationsdateien festzulegen.

Führen Sie die folgenden Befehle aus:

$ stat -L -c "%a" /etc/neutron/neutron.conf
$ stat -L -c "%a" /etc/neutron/api-paste.ini
$ stat -L -c "%a" /etc/neutron/policy.json
$ stat -L -c "%a" /etc/neutron/rootwrap.conf
$ stat -L -c "%a" /etc/neutron

A broader restriction is also possible: if the containing directory is set to 750, the guarantee is made that newly created files inside this directory would have the desired permissions.

Pass: If permissions are set to 640 or stricter, or the containing directory is set to 750. The permissions of 640 translates into owner r/w, group r, and no rights to others i.e. „u=rw,g=r,o=“.

Note that with Check-Neutron-01: Ist User/Group Besitz von Konfigurationsdateien auf root/neutron gesetzt? and permissions set to 640, root has read/write access and neutron has read access to these configuration files. The access rights can also be validated using the following command. This command will only be available on your system if it supports ACLs.

$ getfacl --tabular -a /etc/neutron/neutron.conf
getfacl: Removing leading '/' from absolute path names
# file: etc/neutron/neutron.conf
USER   root     rw-
GROUP  neutron  r--
mask            r--
other           ---

Fail: Wenn die Berechtigungen nicht auf mindestens 640 festgelegt sind.

Check-Neutron-03: Ist Keystone für die Authentifizierung verwendet?

Bemerkung

Dieser Punkt ist nur gültig für die OpenStack Releases Rocky und früher da auth_strategy in Stein als veraltet erklärt wurde.

OpenStack unterstützt verschiedene Authentifizierungsstrategien wie noauth, keystone etc. Wenn die ‚noauth‘-Strategie verwendet wird, können die Benutzer mit OpenStack-Diensten ohne Authentifizierung interagieren. Dies könnte ein potentielles Risiko darstellen, da ein Angreifer einen unbefugten Zugriff auf die OpenStack-Komponenten erhalten könnte. So wird dringend empfohlen, dass alle Dienste mit Keystone mit ihren Servicekonten authentifiziert werden müssen.

Pass: Wenn der Wert des Parameters ``auth_strategy``unter `` [DEFAULT] ``Abschnitt in ``/etc/neutron/neutron.conf``auf `` keystone` gesetzt ist.

Fail: Wenn der Wert des Parameters ``auth_strategy``unter `` [DEFAULT] ``Abschnitt auf ``noauth``oder ``noauth2``gesetzt ist.

Check-Neutron-04: Ist sicheres Protokoll für die Authentifizierung verwendet?

OpenStack Kompponenten kommunizieren miteinander über verschiedene Protokolle und die Kommunikation kann sensitive/vertrauliche Daten beinhalten. Ein Angreifer kann versuchen den Kanal abzuhören, um auf sensitive Informationen zuzugreifen. Daher müssen alle Komponenten untereinander Daten über ein gesichertes Kommunikationsprotokoll austauschen.

Pass: Wenn der Wert des Parameters ww_authenticate_uri``unter `` [keystone_authtoken]``Abschnitt in ``/etc/neutron/neutron.conf``auf  Identity API Endpoint beginnend mit ``https:// ``und der Wert des Parameters ``insecure``unter demselben ``[keystone_authtoken] ``Abschnitt  in der gleichen ``/etc/neutron/neutron.conf auf ``False``gesetzt ist.

Fail: Wenn der Wert des Parameters www_authenticate_uri``unter `` [keystone_authtoken]``Abschnitt in ``/etc/neutron/neutron.conf nicht auf Identity API Endpoint gesetzt ist, nicht mit https:// `` beginnt oder Wert des Parameters ``insecure unter demselben `` [keystone_authtoken]``Abschnitt in der gleichen /etc/neutron/ neutron.conf auf ``True``gesetzt ist.

Check-Neutron-05: Ist TLS auf Neutron API Server aktiviert?

Ähnlich wie bei der vorherigen Prüfung wird empfohlen, eine sichere Kommunikation auf dem API-Server zu ermöglichen.

Pass: Wenn der Wert des Parameters ``use_ssl``unter ``[DEFAULT] `` Abschnitt in ``/etc/neutron/neutron.conf``auf ``True``gesetzt ist.

Fail: Wenn der Wert des Parameters ``use_ssl``unter ``[DEFAULT] `` Abschnitt in ``/etc/neutron/neutron.conf``auf ``False``gesetzt ist.