Guide to the Secure Configuration of Red Hat OpenStack Platform 13

This guide presents a catalog of security-relevant configuration settings for Red Hat OpenStack Platform 13. It is a rendering of content structured in the eXtensible Configuration Checklist Description Format (XCCDF) in order to support security automation. The SCAP content is is available in the scap-security-guide package which is developed at https://www.open-scap.org/security-policies/scap-security-guide.

Providing system administrators with such guidance informs them how to securely configure systems under their control in a variety of network roles. Policy makers and baseline creators can use this catalog of settings, with its associated references to higher-level security control catalogs, in order to assist them in security baseline creation. This guide is a catalog, not a checklist, and satisfaction of every item is not likely to be possible or sensible in many operational scenarios. However, the XCCDF format enables granular selection and adjustment of settings, and their association with OVAL and OCIL content provides an automated checking capability. Transformations of this document, and its associated automated checking content, are capable of providing baselines that meet a diverse set of policy objectives. Some example XCCDF Profiles, which are selections of items that form checklists and can be used as baselines, are available with this guide. They can be processed, in an automated fashion, with tools that support the Security Content Automation Protocol (SCAP). The NIST National Checklist Program (NCP), which provides required settings for the United States Government, is one example of a baseline created from this guidance.
Do not attempt to implement any of the settings in this guide without first testing them in a non-operational environment. The creators of this guidance assume no responsibility whatsoever for its use by other parties, and makes no guarantees, expressed or implied, about its quality, reliability, or any other characteristic.
Profile ID(default)

Revision History

Current version: 0.1.42

  • draft (as of 2018-12-11)

Platforms

  • cpe:/a:redhat:openstack:13.0

Table of Contents

  1. Remediation functions used by the SCAP Security Guide Project
  2. OpenStack
    1. Cinder STIG Checklist
    2. Nova STIG Checklist
    3. Keystone STIG Checklist
    4. Neutron STIG Checklist
    5. Horizon STIG Checklist
  3. Introduction
    1. General Principles
    2. How to Use This Guide
  4. OpenShift Settings
    1. OpenShift etcd Settings
    2. Kubernetes Kubelet Settings
    3. OpenShift Controller Settings
    4. OpenShift - Kubernetes - Scheduler Settings
    5. Permissions
    6. OpenShift API Server

Checklist

Remediation functions used by the SCAP Security Guide Project   [ref]group

XCCDF form of the various remediation functions as used by remediation scripts from the SCAP Security Guide Project.

OpenStack   [ref]group

TODO TODO TODO

Cinder STIG Checklist   [ref]group

High level overview of Cinder STIG settings to go here!

Nova STIG Checklist   [ref]group

High level overview of Nova STIG settings to go here!

Keystone STIG Checklist   [ref]group

High level overview of Keystone STIG settings to go here!

Neutron STIG Checklist   [ref]group

High level overview of Neutron STIG settings to go here!

Horizon STIG Checklist   [ref]group

High level overview of Horizon STIG settings to go here!

Introduction   [ref]group

The purpose of this guidance is to provide security configuration recommendations and baselines for Red Hat OpenStack Platform 13. The guide is intended for system and/or application administrators. Readers are assumed to possess basic system administration skills for the application's operating systems, as well as some familiarity with the product's documentation and administration conventions. Some instructions within this guide are complex. All directions should be followed completely and with understanding of their effects in order to avoid serious adverse effects on the system and its security.

General Principles   [ref]group

The following general principles motivate much of the advice in this guide and should also influence any configuration decisions that are not explicitly covered.

Least Privilege   [ref]group

Grant the least privilege necessary for user accounts and software to perform tasks. For example, sudo can be implemented to limit authorization to super user accounts on the system only to designated personnel. Another example is to limit logins on server systems to only those administrators who need to log into them in order to perform administration tasks.

Configure Security Tools to Improve System Robustness   [ref]group

Several tools exist which can be effectively used to improve a system's resistance to and detection of unknown attacks. These tools can improve robustness against attack at the cost of relatively little configuration effort.

Run Different Network Services on Separate Systems   [ref]group

Whenever possible, a server should be dedicated to serving exactly one network service. This limits the number of other services that can be compromised in the event that an attacker is able to successfully exploit a software flaw in one network service.

Encrypt Transmitted Data Whenever Possible   [ref]group

Data transmitted over a network, whether wired or wireless, is susceptible to passive monitoring. Whenever practical solutions for encrypting such data exist, they should be applied. Even if data is expected to be transmitted only over a local network, it should still be encrypted. Encrypting authentication data, such as passwords, is particularly important. Networks of Red Hat OpenStack Platform 13 machines can and should be configured so that no unencrypted authentication data is ever transmitted between machines.

How to Use This Guide   [ref]group

Readers should heed the following points when using the guide.

Formatting Conventions   [ref]group

Commands intended for shell execution, as well as configuration file text, are featured in a monospace font. Italics are used to indicate instances where the system administrator must substitute the appropriate information into a command or configuration file.

Test in Non-Production Environment   [ref]group

This guidance should always be tested in a non-production environment before deployment. This test environment should simulate the setup in which the system will be deployed as closely as possible.

Read Sections Completely and in Order   [ref]group

Each section may build on information and recommendations discussed in prior sections. Each section should be read and understood completely; instructions should never be blindly applied. Relevant discussion may occur after instructions for an action.

Root Shell Environment Assumed   [ref]group

Most of the actions listed in this document are written with the assumption that they will be executed by the root user running the /bin/bash shell. Commands preceded with a hash mark (#) assume that the administrator will execute the commands as root, i.e. apply the command via sudo whenever possible, or use su to gain root privileges if sudo cannot be used. Commands which can be executed as a non-root user are are preceded by a dollar sign ($) prompt.

Reboot Required   [ref]group

A system or service reboot is implicitly required after some actions in order to complete the reconfiguration of the system. In many cases, the changes will not take effect until a reboot is performed. In order to ensure that changes are applied properly and to test functionality, always reboot the system after applying a set of recommendations from this guide.

OpenShift Settings   [ref]group

Contains rules that check correct OpenShift settings.

OpenShift etcd Settings   [ref]group

Contains rules that check correct OpenShift etcd settings.

Kubernetes Kubelet Settings   [ref]group

The Kubernetes Kubelet is an agent that runs on each node in the cluster. It makes sure that containers are running in a pod. The kubelet takes a set of PodSpecs that are provided through various mechanisms and ensures that the containers described in those PodSpecs are running and healthy. The kubelet doesn’t manage containers which were not created by Kubernetes.

OpenShift Controller Settings   [ref]group

This section contains recommendations for the kube-controller-manager configuration

OpenShift - Kubernetes - Scheduler Settings   [ref]group

Contains evaluations for kube-scheduler configuration settings.

Permissions   [ref]group

Traditional security relies heavily on file and directory permissions to prevent unauthorized users from reading or modifying files to which they should not have access.

Verify Permissions on Important Files and Directories   [ref]group

Permissions for many files on a system must be set restrictively to ensure sensitive information is properly protected. This section discusses important permission restrictions which can be verified to ensure that no harmful discrepancies have arisen.

OpenShift API Server   [ref]group

This section contains recommendations for kube-apiserver configuration.

Red Hat and Red Hat Enterprise Linux are either registered trademarks or trademarks of Red Hat, Inc. in the United States and other countries. All other names are registered trademarks or trademarks of their respective companies.