13장. 보안 기능 개선
다음 섹션에서는 오버클라우드 보안을 강화하기 위한 몇 가지 제안 사항을 제공합니다.
13.1. 오버클라우드 방화벽 관리
각 핵심 OpenStack Platform 서비스에는 해당 구성 가능 서비스 템플릿에 방화벽 규칙이 포함되어 있습니다. 이렇게 하면 각 오버클라우드 노드에 대한 기본 방화벽 규칙 세트가 자동으로 생성됩니다.
오버클라우드 Heat 템플릿에는 추가 방화벽 관리에 도움이 되는 매개변수 세트가 포함되어 있습니다.
- ManageFirewall
-
방화벽 규칙을 자동으로 관리할지 여부를 정의합니다. Puppet에서 각 노드에서 방화벽을 자동으로 구성할 수 있도록 하려면
true
로 설정합니다. 방화벽을 수동으로 관리하려면false
로 설정합니다. 기본값은true
입니다. - PurgeFirewallRules
-
새 규칙을 구성하기 전에 기본 Linux 방화벽 규칙을 제거할지 여부를 정의합니다. 기본값은
false
입니다.
ManageFirewall
이 true
로 설정된 경우 배포에 대한 추가 방화벽 규칙을 생성할 수 있습니다. 오버클라우드 환경 파일에서 구성 후크를 사용하여 tripleo::firewall::firewall_rules
hieradata를 설정합니다. 4.5절. “Puppet: 역할에 대한 Hieradata 사용자 지정” 이 hieradata는 방화벽 규칙 이름과 해당 매개변수를 키로 포함하는 해시이며, 모두 선택 사항입니다.
- port
- 규칙과 연결된 포트입니다.
- dport
- 규칙과 연결된 대상 포트입니다.
- 요류
- 규칙과 연결된 소스 포트입니다.
- proto
-
규칙과 연결된 프로토콜입니다. 기본값은
tcp
입니다. - 작업
-
규칙과 관련된 작업 정책입니다. 기본값은
accept
입니다. - jump
-
이동할 체인입니다. 있는 경우
작업을
덮어씁니다. - 상태
-
규칙과 연결된 상태 배열입니다. 기본값은
[NEW']
입니다. - 소스
- 규칙과 연결된 소스 IP 주소입니다.
- iniface
- 규칙과 연결된 네트워크 인터페이스입니다.
- chain
-
규칙과 연결된 체인입니다. 기본값은
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
를 통해 모든 노드에 두 개의 추가 방화벽 규칙이 적용됩니다.
각 규칙 이름은 해당 iptables
규칙에 대한 주석이 됩니다. 또한 각 규칙 이름은 최종 iptables
파일에서 정의된 모든 규칙을 Puppet에 정렬하는 데 도움이 되도록 세 자리 접두사로 시작합니다. 기본 OpenStack Platform 규칙은 000~200 범위의 접두사를 사용합니다.