チェックリスト

Check-Neutron-01: 設定ファイルのユーザー/グループの所有権が root/neutron に設定されていますか?

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.

以下のコマンドを実行します。

$ 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"

成功: これらのすべての設定ファイルのユーザーおよびグループ所有者がそれぞれ root と neutron に設定されている場合。上のコマンドは root neutron を表示します。

失敗: 上のコマンドが、ユーザー所有者とグループ所有者として何も返さない場合。ユーザーが root 以外に、グループが neutron 以外に設定されている可能性があります。

Check-Neutron-02: Networking の設定ファイルに厳しいパーミッションが設定されていますか?

前のチェックと同じように、そのような設定ファイルに厳しいアクセス権限を設定することを推奨します。

以下のコマンドを実行します。

$ 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: 設定ファイルのユーザー/グループの所有権が root/neutron に設定されていますか? 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           ---

失敗: パーミッションが 640 より緩くなっている場合。

Check-Neutron-03: 認証に keystone を使用していますか?

注釈

This item only applies to OpenStack releases Rocky and before as auth_strategy was deprecated in Stein.

OpenStack supports various authentication strategies like noauth, keystone etc. If the 'noauth' strategy is used then the users could interact with OpenStack services without any authentication. This could be a potential risk since an attacker might gain unauthorized access to the OpenStack components. Thus it is strongly recommended that all services must be authenticated with keystone using their service accounts.

成功: /etc/neutron/neutron.conf[DEFAULT] にある auth_strategykeystone に設定されている場合。

失敗: [DEFAULT] にある auth_strategy パラメーターの値が noauth または noauth2 に設定されている場合。

Check-Neutron-04: 認証にセキュアなプロトコルを使用していますか?

OpenStack のコンポーネントは、さまざまなプロトコルを使用して、相互に通信しています。通信が重要な秘密情報を取り扱っているかもしれません。攻撃者は、秘密情報にアクセスするために、通信経路を盗聴しようとしているかもしれません。そのため、すべてのコンポーネントが、安全な通信プロトコルを使用して、相互に通信する必要があります。

Pass: If value of parameter www_authenticate_uri under [keystone_authtoken] section in /etc/neutron/neutron.conf is set to Identity API endpoint starting with https:// and value of parameter insecure under the same [keystone_authtoken] section in the same /etc/neutron/neutron.conf is set to False.

Fail: If value of parameter www_authenticate_uri under [keystone_authtoken] section in /etc/neutron/neutron.conf is not set to Identity API endpoint starting with https:// or value of parameter insecure under the same [keystone_authtoken] section in the same /etc/neutron/neutron.conf is set to True.

Check-Neutron-05: Neutron API サーバーにおいて TLS を有効化していますか?

前のチェックと同じように、API サーバーにおいてセキュアな通信を有効化することが推奨されます。

成功: /etc/neutron/neutron.conf[DEFAULT] にある use_sslTrue に設定されている場合。

失敗: /etc/neutron/neutron.conf[DEFAULT] にある use_sslFalse に設定されている場合。