Red Hat Training

A Red Hat training course is available for Red Hat Ceph Storage

2.9. Red Hat Ceph Storage 방화벽 설정

RHCS(Red Hat Ceph Storage)는 firewalld 서비스를 사용합니다.

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

각 Ceph OSD 노드에서 OSD 데몬은 6800-7300 범위의 여러 포트를 사용합니다.

  • 하나는 클라이언트와 통신하고 공용 네트워크를 통해 모니터링합니다.
  • 사용 가능한 경우 클러스터 네트워크를 통해 다른 OSD로 데이터를 전송하는 방법
  • 사용 가능한 경우 클러스터 네트워크에서 하트비트 패킷을 교환하는 방법

Ceph Manager(ceph-mgr) 데몬은 6800-7300 범위의 포트를 사용합니다. 동일한 노드에서 Ceph Monitor를 사용하여 ceph-mgr 데몬을 공동 배치하는 것이 좋습니다.

Ceph Metadata Server 노드(ceph-mds)는 6800-7300 범위의 포트를 사용합니다.

Ceph Object Gateway 노드는 기본적으로 포트 8080 을 사용하도록 Ansible에서 구성합니다. 그러나 기본 포트(예: 포트 80 )를 변경할 수 있습니다.

SSL/TLS 서비스를 사용하려면 포트 443 을 엽니다.

사전 요구 사항

  • 네트워크 하드웨어가 연결되어 있습니다.

절차

root 사용자로 다음 명령을 실행합니다.

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

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

    [root@monitor ~]# firewall-cmd --zone=public --add-port=6789/tcp
    [root@monitor ~]# firewall-cmd --zone=public --add-port=6789/tcp --permanent

    소스 주소를 기반으로 액세스를 제한하려면 다음을 수행합니다.

    firewall-cmd --zone=public --add-rich-rule="rule family="ipv4" \
    source address="IP_address/netmask_prefix" port protocol="tcp" \
    port="6789" accept"
    firewall-cmd --zone=public --add-rich-rule="rule family="ipv4" \
    source address="IP_address/netmask_prefix" port protocol="tcp" \
    port="6789" accept" --permanent
    replace
    • Monitor 노드의 네트워크 주소가 있는 ip _address 입니다.
    • CIDR 표기법으로 넷마스크가 있는 넷마스크 _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"

    [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

    별도의 클러스터 네트워크가 있는 경우 해당 영역에서 명령을 반복합니다.

  4. 모든 Ceph Manager(ceph-mgr) 노드(일반적으로 Monitor와 동일한 노드)에서 공용 네트워크에서 포트 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 메타데이터 서버(ceph-mds) 노드에서 공용 네트워크에서 포트 6800 을 엽니다.

    [root@monitor ~]# firewall-cmd --zone=public --add-port=6800/tcp
    [root@monitor ~]# firewall-cmd --zone=public --add-port=6800/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
      replace
      • 오브젝트 게이트웨이 노드의 네트워크 주소가 있는 ip _address.
      • CIDR 표기법으로 넷마스크가 있는 넷마스크 _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 에서 사용하도록 Ceph Object Gateway를 구성하는 기본 포트를 변경된 경우 포트 80 으로 이 포트를 엽니다.

      [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
      replace
      • 오브젝트 게이트웨이 노드의 네트워크 주소가 있는 ip _address.
      • CIDR 표기법으로 넷마스크가 있는 넷마스크 _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
      replace
      • 오브젝트 게이트웨이 노드의 네트워크 주소가 있는 ip _address.
      • CIDR 표기법으로 넷마스크가 있는 넷마스크 _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

추가 리소스

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