20장. 보안 개선 사항
다음 섹션에서는 오버클라우드의 보안을 강화하기 위한 몇 가지 제안 사항을 제공합니다.
20.1. 오버클라우드 방화벽 관리
각 핵심 OpenStack Platform 서비스에는 구성 가능 서비스 템플릿에 방화벽 규칙이 포함되어 있습니다. 이렇게 하면 각 오버클라우드 노드에 대한 기본 방화벽 규칙 세트가 자동으로 생성됩니다.
오버클라우드 Heat 템플릿에는 추가 방화벽 관리에 도움이 되는 매개변수 세트가 포함되어 있습니다.
- ManageFirewall
-
방화벽 규칙을 자동으로 관리할지 여부를 정의합니다. Puppet에서 각 노드에서 방화벽을 자동으로 구성할 수 있도록 하려면
true
로 설정합니다. 방화벽을 수동으로 관리하려면false
로 설정합니다. 기본값은true
입니다. - PurgeFirewallRules
-
새 Linux 방화벽 규칙을 구성하기 전에 기본 Linux 방화벽 규칙을 제거할지 여부를 정의합니다. 기본값은
false
입니다.
ManageFirewall
을 true
로 설정하면 배포에 추가 방화벽 규칙을 생성할 수 있습니다. 오버클라우드의 환경 파일에서 구성 후크를 사용하여 tripleo::firewall::firewall_rules
hieradata를 설정합니다( 4.5절. “Puppet: 역할에 맞는 Hieradata 사용자 정의”참조). 이 hieradata는 방화벽 규칙 이름과 해당 매개 변수를 키로 포함하는 해시이며, 모두 선택 사항입니다.
- port
- 규칙에 연결된 포트입니다.
- dport
- 규칙에 연결된 대상 포트입니다.
- sport
- 규칙과 연결된 소스 포트입니다.
- Proto
-
규칙과 연결된 프로토콜입니다. 기본값은
tcp
입니다. - 작업
-
규칙과 연결된 작업 정책입니다. 기본값은
accept
입니다. - 건너뛰기
-
로 이동할 체인입니다. 있는 경우
작업을
재정의합니다. - 상태
-
규칙과 관련된 상태 배열입니다. 기본값은
['NEW']
입니다. - 소스
- 규칙과 연결된 소스 IP 주소입니다.
- iniface
- 규칙에 연결된 네트워크 인터페이스입니다.
- 체인
-
규칙과 연결된 체인입니다. 기본값은
INPUT
입니다. - 대상
- 규칙에 연결된 대상 CIDR입니다.
다음 예제에서는 방화벽 규칙 형식의 구문을 보여줍니다.
ExtraConfig: tripleo::firewall::firewall_rules: '300 allow custom application 1': port: 999 proto: udp action: accept '301 allow custom application 2': port: 8081 proto: tcp action: accept
이는 ExtraConfig
를 통해 모든 노드에 2개의 추가 방화벽 규칙을 적용합니다.
각 규칙 이름은 해당 iptables
규칙의 주석이 됩니다. 또한 각 규칙 이름은 3자리 접두사로 시작되어 Puppet이 최종 iptables
파일에서 정의된 모든 규칙을 정렬하는 데 도움이 됩니다. 기본 OpenStack Platform 규칙은 000~200 범위의 접두사를 사용합니다.