3.7. Red Hat Ceph Storage의 방화벽 설정
Red Hat Ceph Storage는 firewalld
서비스를 사용합니다. firewalld
서비스에는 각 데몬의 포트 목록이 포함되어 있습니다.
Ceph 모니터 데몬은 Ceph 스토리지 클러스터 내에서의 통신에 포트 3300
및 6789
를 사용합니다.
각 Ceph OSD 노드에서 OSD 데몬은 범위 6800-7300
의 여러 포트를 사용합니다.
- 클라이언트와 통신하고 공용 네트워크를 통해 모니터링하기 위한 하나
- 클러스터 네트워크를 통해 다른 OSD로 데이터를 전송하는 방법(사용 가능한 경우), 공용 네트워크를 통해 데이터 전송
- 클러스터 네트워크를 통해 하트비트 패킷의 교환, 사용 가능한 경우; 그렇지 않으면 공용 네트워크를 통해
Ceph Manager(ceph-mgr
) 데몬은 범위 6800-7300
의 포트를 사용합니다. 동일한 노드에서 Ceph Monitors를 사용하여 ceph-mgr
데몬을 조정하는 것이 좋습니다.
Ceph Metadata Server 노드(ceph-mds
)는 포트 범위 6800-7300
을 사용합니다.
Ceph Object Gateway 노드는 기본적으로 포트 8080
을 사용하도록 Ansible에서 구성합니다. 그러나 기본 포트(예: 포트 80
)를 변경할 수 있습니다.
SSL/TLS 서비스를 사용하려면 포트 443
을 엽니다.
firewalld
가 활성화된 경우 다음 단계는 선택 사항입니다. 기본적으로 ceph-ansible
에는 group_vars/all.yml
의 아래 설정이 포함되어 있으며 해당 포트가 자동으로 열립니다.
configure_firewall: True
사전 요구 사항
- 네트워크 하드웨어가 연결되어 있습니다.
-
스토리지 클러스터의 모든 노드에
root
또는sudo
액세스 권한을 부여합니다.
절차
스토리지 클러스터의 모든 노드에서
firewalld
서비스를 시작합니다. 부팅 시 실행되도록 활성화하고 실행 중인지 확인합니다.# systemctl enable firewalld # systemctl start firewalld # systemctl status firewalld
모든 모니터 노드에서 공용 네트워크에서 포트
3300
및6789
를 엽니다.[root@monitor ~]# firewall-cmd --zone=public --add-port=3300/tcp [root@monitor ~]# firewall-cmd --zone=public --add-port=3300/tcp --permanent [root@monitor ~]# firewall-cmd --zone=public --add-port=6789/tcp [root@monitor ~]# firewall-cmd --zone=public --add-port=6789/tcp --permanent [root@monitor ~]# firewall-cmd --permanent --add-service=ceph-mon [root@monitor ~]# firewall-cmd --add-service=ceph-mon
소스 주소를 기반으로 액세스를 제한하려면 다음을 수행합니다.
firewall-cmd --zone=public --add-rich-rule='rule family=ipv4 \ source address=IP_ADDRESS/NETMASK_PREFIX port protocol=tcp \ port=6789 accept' --permanent
- 대체 버전
- 모니터 노드의 네트워크 주소가 있는 IP_ADDRESS.
CIDR 표기법의 넷마스크가 포함된 NETMASK_PREFIX
예제
[root@monitor ~]# firewall-cmd --zone=public --add-rich-rule='rule family=ipv4 \ source address=192.168.0.11/24 port protocol=tcp \ port=6789 accept' --permanent
모든 OSD 노드에서 공용 네트워크에서 포트
6800-7300
을 엽니다.[root@osd ~]# firewall-cmd --zone=public --add-port=6800-7300/tcp [root@osd ~]# firewall-cmd --zone=public --add-port=6800-7300/tcp --permanent [root@osd ~]# firewall-cmd --permanent --add-service=ceph [root@osd ~]# firewall-cmd --add-service=ceph
별도의 클러스터 네트워크가 있는 경우 적절한 영역을 사용하여 명령을 반복합니다.
모든 Ceph Manager(
ceph-mgr
) 노드에서 공용 네트워크에서 포트6800-7300
을 엽니다.[root@monitor ~]# firewall-cmd --zone=public --add-port=6800-7300/tcp [root@monitor ~]# firewall-cmd --zone=public --add-port=6800-7300/tcp --permanent
별도의 클러스터 네트워크가 있는 경우 적절한 영역을 사용하여 명령을 반복합니다.
모든 Ceph Metadata Server(
ceph-mds
) 노드에서 공용 네트워크에서 포트6800-7300
을 엽니다.[root@monitor ~]# firewall-cmd --zone=public --add-port=6800-7300/tcp [root@monitor ~]# firewall-cmd --zone=public --add-port=6800-7300/tcp --permanent
별도의 클러스터 네트워크가 있는 경우 적절한 영역을 사용하여 명령을 반복합니다.
모든 Ceph Object Gateway 노드에서 공용 네트워크에서 관련 포트 또는 포트를 엽니다.
기본 Ansible 구성 포트
8080
을 시작하려면 다음을 수행합니다.[root@gateway ~]# firewall-cmd --zone=public --add-port=8080/tcp [root@gateway ~]# firewall-cmd --zone=public --add-port=8080/tcp --permanent
소스 주소를 기반으로 액세스를 제한하려면 다음을 수행합니다.
firewall-cmd --zone=public --add-rich-rule="rule family="ipv4" \ source address="IP_ADDRESS/NETMASK_PREFIX" port protocol="tcp" \ port="8080" accept"
firewall-cmd --zone=public --add-rich-rule="rule family="ipv4" \ source address="IP_ADDRESS/NETMASK_PREFIX" port protocol="tcp" \ port="8080" accept" --permanent
- 대체 버전
- 모니터 노드의 네트워크 주소가 있는 IP_ADDRESS.
CIDR 표기법의 넷마스크가 포함된 NETMASK_PREFIX
예제
[root@gateway ~]# firewall-cmd --zone=public --add-rich-rule="rule family="ipv4" \ source address="192.168.0.31/24" port protocol="tcp" \ port="8080" accept"
[root@gateway ~]# firewall-cmd --zone=public --add-rich-rule="rule family="ipv4" \ source address="192.168.0.31/24" port protocol="tcp" \ port="8080" accept" --permanent
선택적으로 Ansible을 사용하여 Ceph Object Gateway를 설치하고 Ansible이
8080
에서 포트80
으로 사용할 Ceph Object Gateway를 구성하는 기본 포트를 변경한 경우, 이 포트를 엽니다.[root@gateway ~]# firewall-cmd --zone=public --add-port=80/tcp [root@gateway ~]# firewall-cmd --zone=public --add-port=80/tcp --permanent
소스 주소에 따라 액세스를 제한하려면 다음 명령을 실행합니다.
firewall-cmd --zone=public --add-rich-rule="rule family="ipv4" \ source address="IP_ADDRESS/NETMASK_PREFIX" port protocol="tcp" \ port="80" accept"
firewall-cmd --zone=public --add-rich-rule="rule family="ipv4" \ source address="IP_ADDRESS/NETMASK_PREFIX" port protocol="tcp" \ port="80" accept" --permanent
- 대체 버전
- 모니터 노드의 네트워크 주소가 있는 IP_ADDRESS.
- CIDR 표기법의 넷마스크가 포함된 NETMASK_PREFIX
예제
[root@gateway ~]# firewall-cmd --zone=public --add-rich-rule="rule family="ipv4" \ source address="192.168.0.31/24" port protocol="tcp" \ port="80" accept"
[root@gateway ~]# firewall-cmd --zone=public --add-rich-rule="rule family="ipv4" \ source address="192.168.0.31/24" port protocol="tcp" \ port="80" accept" --permanent
선택 사항: SSL/TLS를 사용하려면 포트
443
을 엽니다.[root@gateway ~]# firewall-cmd --zone=public --add-port=443/tcp [root@gateway ~]# firewall-cmd --zone=public --add-port=443/tcp --permanent
소스 주소에 따라 액세스를 제한하려면 다음 명령을 실행합니다.
firewall-cmd --zone=public --add-rich-rule="rule family="ipv4" \ source address="IP_ADDRESS/NETMASK_PREFIX" port protocol="tcp" \ port="443" accept"
firewall-cmd --zone=public --add-rich-rule="rule family="ipv4" \ source address="IP_ADDRESS/NETMASK_PREFIX" port protocol="tcp" \ port="443" accept" --permanent
- 대체 버전
- 모니터 노드의 네트워크 주소가 있는 IP_ADDRESS.
- CIDR 표기법의 넷마스크가 포함된 NETMASK_PREFIX
예제
[root@gateway ~]# firewall-cmd --zone=public --add-rich-rule="rule family="ipv4" \ source address="192.168.0.31/24" port protocol="tcp" \ port="443" accept" [root@gateway ~]# firewall-cmd --zone=public --add-rich-rule="rule family="ipv4" \ source address="192.168.0.31/24" port protocol="tcp" \ port="443" accept" --permanent
추가 리소스
- 공용 및 클러스터 네트워크에 대한 자세한 내용은 Red Hat Ceph Storage의 네트워크 구성 확인을 참조하십시오.
-
firewalld
에 대한 자세한 내용은 Red Hat Enterprise Linux 8용 네트워크 보안 가이드의 방화벽 사용 및 구성 장을 참조하십시오.