3.7. Red Hat Ceph Storage의 방화벽 설정

Red Hat Ceph Storage는 firewalld 서비스를 사용합니다. firewalld 서비스에는 각 데몬의 포트 목록이 포함되어 있습니다.

Ceph 모니터 데몬은 Ceph 스토리지 클러스터 내에서의 통신에 포트 33006789 를 사용합니다.

각 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 액세스 권한을 부여합니다.

절차

  1. 스토리지 클러스터의 모든 노드에서 firewalld 서비스를 시작합니다. 부팅 시 실행되도록 활성화하고 실행 중인지 확인합니다.

    # systemctl enable firewalld
    # systemctl start firewalld
    # systemctl status firewalld
  2. 모든 모니터 노드에서 공용 네트워크에서 포트 33006789 를 엽니다.

    [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

  3. 모든 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

    별도의 클러스터 네트워크가 있는 경우 적절한 영역을 사용하여 명령을 반복합니다.

  4. 모든 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

    별도의 클러스터 네트워크가 있는 경우 적절한 영역을 사용하여 명령을 반복합니다.

  5. 모든 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

    별도의 클러스터 네트워크가 있는 경우 적절한 영역을 사용하여 명령을 반복합니다.

  6. 모든 Ceph Object Gateway 노드에서 공용 네트워크에서 관련 포트 또는 포트를 엽니다.

    1. 기본 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
    2. 선택적으로 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
    3. 선택 사항: 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

추가 리소스

요구 사항 체크리스트로 돌아가기