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
configure_firewall: True
사전 요구 사항
- 네트워크 하드웨어가 연결되어 있습니다.
-
스토리지 클러스터의 모든 노드에
root
또는sudo
액세스 권한을 부여합니다.
절차
스토리지 클러스터의 모든 노드에서
firewalld
서비스를 시작합니다. 부팅 시 실행되도록 활성화하고 실행 중인지 확인합니다.systemctl enable firewalld systemctl start firewalld systemctl status firewalld
# systemctl enable firewalld # systemctl start firewalld # systemctl status firewalld
Copy to Clipboard Copied! 모든 모니터 노드에서 공용 네트워크에서 포트
3300
및6789
를 엽니다.firewall-cmd --zone=public --add-port=3300/tcp firewall-cmd --zone=public --add-port=3300/tcp --permanent firewall-cmd --zone=public --add-port=6789/tcp firewall-cmd --zone=public --add-port=6789/tcp --permanent firewall-cmd --permanent --add-service=ceph-mon firewall-cmd --add-service=ceph-mon
[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
Copy to Clipboard Copied! 소스 주소를 기반으로 액세스를 제한하려면 다음을 수행합니다.
firewall-cmd --zone=public --add-rich-rule='rule family=ipv4 \ source address=IP_ADDRESS/NETMASK_PREFIX port protocol=tcp \ port=6789 accept' --permanent
firewall-cmd --zone=public --add-rich-rule='rule family=ipv4 \ source address=IP_ADDRESS/NETMASK_PREFIX port protocol=tcp \ port=6789 accept' --permanent
Copy to Clipboard Copied! - 대체 버전
- 모니터 노드의 네트워크 주소가 있는 IP_ADDRESS.
CIDR 표기법의 넷마스크가 포함된 NETMASK_PREFIX
예제
firewall-cmd --zone=public --add-rich-rule='rule family=ipv4 \ source address=192.168.0.11/24 port protocol=tcp \ port=6789 accept' --permanent
[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
Copy to Clipboard Copied!
모든 OSD 노드에서 공용 네트워크에서 포트
6800-7300
을 엽니다.firewall-cmd --zone=public --add-port=6800-7300/tcp firewall-cmd --zone=public --add-port=6800-7300/tcp --permanent firewall-cmd --permanent --add-service=ceph firewall-cmd --add-service=ceph
[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
Copy to Clipboard Copied! 별도의 클러스터 네트워크가 있는 경우 적절한 영역을 사용하여 명령을 반복합니다.
모든 Ceph Manager(
ceph-mgr
) 노드에서 공용 네트워크에서 포트6800-7300
을 엽니다.firewall-cmd --zone=public --add-port=6800-7300/tcp firewall-cmd --zone=public --add-port=6800-7300/tcp --permanent
[root@monitor ~]# firewall-cmd --zone=public --add-port=6800-7300/tcp [root@monitor ~]# firewall-cmd --zone=public --add-port=6800-7300/tcp --permanent
Copy to Clipboard Copied! 별도의 클러스터 네트워크가 있는 경우 적절한 영역을 사용하여 명령을 반복합니다.
모든 Ceph Metadata Server(
ceph-mds
) 노드에서 공용 네트워크에서 포트6800-7300
을 엽니다.firewall-cmd --zone=public --add-port=6800-7300/tcp firewall-cmd --zone=public --add-port=6800-7300/tcp --permanent
[root@monitor ~]# firewall-cmd --zone=public --add-port=6800-7300/tcp [root@monitor ~]# firewall-cmd --zone=public --add-port=6800-7300/tcp --permanent
Copy to Clipboard Copied! 별도의 클러스터 네트워크가 있는 경우 적절한 영역을 사용하여 명령을 반복합니다.
모든 Ceph Object Gateway 노드에서 공용 네트워크에서 관련 포트 또는 포트를 엽니다.
기본 Ansible 구성 포트
8080
을 시작하려면 다음을 수행합니다.firewall-cmd --zone=public --add-port=8080/tcp firewall-cmd --zone=public --add-port=8080/tcp --permanent
[root@gateway ~]# firewall-cmd --zone=public --add-port=8080/tcp [root@gateway ~]# firewall-cmd --zone=public --add-port=8080/tcp --permanent
Copy to Clipboard Copied! 소스 주소를 기반으로 액세스를 제한하려면 다음을 수행합니다.
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"
Copy to Clipboard Copied! firewall-cmd --zone=public --add-rich-rule="rule family="ipv4" \ source address="IP_ADDRESS/NETMASK_PREFIX" port protocol="tcp" \ port="8080" accept" --permanent
firewall-cmd --zone=public --add-rich-rule="rule family="ipv4" \ source address="IP_ADDRESS/NETMASK_PREFIX" port protocol="tcp" \ port="8080" accept" --permanent
Copy to Clipboard Copied! - 대체 버전
- 모니터 노드의 네트워크 주소가 있는 IP_ADDRESS.
CIDR 표기법의 넷마스크가 포함된 NETMASK_PREFIX
예제
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"
Copy to Clipboard Copied! firewall-cmd --zone=public --add-rich-rule="rule family="ipv4" \ source address="192.168.0.31/24" port protocol="tcp" \ port="8080" accept" --permanent
[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
Copy to Clipboard Copied!
선택적으로 Ansible을 사용하여 Ceph Object Gateway를 설치하고 Ansible이
8080
에서 포트80
으로 사용할 Ceph Object Gateway를 구성하는 기본 포트를 변경한 경우, 이 포트를 엽니다.firewall-cmd --zone=public --add-port=80/tcp firewall-cmd --zone=public --add-port=80/tcp --permanent
[root@gateway ~]# firewall-cmd --zone=public --add-port=80/tcp [root@gateway ~]# firewall-cmd --zone=public --add-port=80/tcp --permanent
Copy to Clipboard Copied! 소스 주소에 따라 액세스를 제한하려면 다음 명령을 실행합니다.
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"
Copy to Clipboard Copied! firewall-cmd --zone=public --add-rich-rule="rule family="ipv4" \ source address="IP_ADDRESS/NETMASK_PREFIX" port protocol="tcp" \ port="80" accept" --permanent
firewall-cmd --zone=public --add-rich-rule="rule family="ipv4" \ source address="IP_ADDRESS/NETMASK_PREFIX" port protocol="tcp" \ port="80" accept" --permanent
Copy to Clipboard Copied! - 대체 버전
- 모니터 노드의 네트워크 주소가 있는 IP_ADDRESS.
- CIDR 표기법의 넷마스크가 포함된 NETMASK_PREFIX
예제
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"
Copy to Clipboard Copied! firewall-cmd --zone=public --add-rich-rule="rule family="ipv4" \ source address="192.168.0.31/24" port protocol="tcp" \ port="80" accept" --permanent
[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
Copy to Clipboard Copied! 선택 사항: SSL/TLS를 사용하려면 포트
443
을 엽니다.firewall-cmd --zone=public --add-port=443/tcp firewall-cmd --zone=public --add-port=443/tcp --permanent
[root@gateway ~]# firewall-cmd --zone=public --add-port=443/tcp [root@gateway ~]# firewall-cmd --zone=public --add-port=443/tcp --permanent
Copy to Clipboard Copied! 소스 주소에 따라 액세스를 제한하려면 다음 명령을 실행합니다.
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"
Copy to Clipboard Copied! firewall-cmd --zone=public --add-rich-rule="rule family="ipv4" \ source address="IP_ADDRESS/NETMASK_PREFIX" port protocol="tcp" \ port="443" accept" --permanent
firewall-cmd --zone=public --add-rich-rule="rule family="ipv4" \ source address="IP_ADDRESS/NETMASK_PREFIX" port protocol="tcp" \ port="443" accept" --permanent
Copy to Clipboard Copied! - 대체 버전
- 모니터 노드의 네트워크 주소가 있는 IP_ADDRESS.
- CIDR 표기법의 넷마스크가 포함된 NETMASK_PREFIX
예제
firewall-cmd --zone=public --add-rich-rule="rule family="ipv4" \ source address="192.168.0.31/24" port protocol="tcp" \ port="443" accept" firewall-cmd --zone=public --add-rich-rule="rule family="ipv4" \ source address="192.168.0.31/24" port protocol="tcp" \ port="443" accept" --permanent
[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
Copy to Clipboard Copied!
추가 리소스
- 공용 및 클러스터 네트워크에 대한 자세한 내용은 Red Hat Ceph Storage의 네트워크 구성 확인을 참조하십시오.
-
firewalld
에 대한 자세한 내용은 Red Hat Enterprise Linux 8용 네트워크 보안 가이드의 방화벽 사용 및 구성 장을 참조하십시오.