3.7. Red Hat Ceph Storage のファイアウォールの設定
Red Hat CephStorage は、firewalld
サービスを使用します。Firewalld
サービスには、各デーモンのポートのリストが含まれています。
Ceph Monitor デーモンは、Ceph ストレージクラスター内の通信にポート 3300
および 6789
を使用します。
各 Ceph OSD ノードで、OSD デーモンは範囲 6800-7300
内の複数のポートを使用します。
- パブリックネットワークを介してクライアントおよびモニターと通信するための 1 つ
- クラスターネットワーク上で他の OSD にデータを送信する 1 つ (利用可能な場合)。それ以外の場合は、パブリックネットワーク経由でデータを送信します。
- 可能な場合は、クラスターネットワークを介してハートビートパケットを交換するための 1 つ。それ以外の場合は、パブリックネットワーク経由
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
を開きます。
firewalld
が有効な場合には、以下の手順は任意です。デフォルトでは、ceph-ansible
には group_vars/all.yml
に以下の設定が含まれ、これにより適切なポートが自動的に開きます。
configure_firewall: True
前提条件
- ネットワークハードウェアが接続されている。
-
ストレージクラスター内のすべてのノードへの
root
またはsudo
アクセスがある。
手順
ストレージクラスター内のすべてのノードで
firewalld
サービスを起動します。これを有効にして、システムの起動時に実行し、実行していることを確認します。# systemctl enable firewalld # systemctl start firewalld # systemctl status firewalld
すべての Monitor ノードで、パブリックネットワークの
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 は、Monitor ノードのネットワークアドレスに置き換えます。
NETMASK_PREFIX は、CIDR 表記のネットマスクに置き換えます。
例
[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 は、Monitor ノードのネットワークアドレスに置き換えます。
NETMASK_PREFIX は、CIDR 表記のネットマスクに置き換えます。
例
[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 をインストールし、使用する Ceph Object Gateway を Ansible が設定するデフォルトのポートを
8080
からポート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
- 置き換え
- IP_ADDRESS は、Monitor ノードのネットワークアドレスに置き換えます。
- NETMASK_PREFIX は、CIDR 表記のネットマスクに置き換えます。
例
[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 は、Monitor ノードのネットワークアドレスに置き換えます。
- NETMASK_PREFIX は、CIDR 表記のネットマスクに置き換えます。
例
[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 のネットワークのセキュリティー保護の firewalld の使用および設定 の章を参照してください。