Red Hat ブログ
Red Hat Enterprise Linux (RHEL) Web コンソールは、システムを管理および監視する Web ベースのグラフィカル・インタフェースを提供します。Web コンソールは、ストレージ、ユーザー、ファイアウォールの管理、パフォーマンスメトリクスの監視、ログファイルの確認、システム更新のインストールなど、さまざまなタスクの実行に使用できます。詳細は、RHEL 9 Web コンソールを使用したシステムの管理 を参照してください。
重要: Web コンソールの設定が、組織のセキュリティ要件を満たしていることを確認してください。
Web コンソールへのアクセス方法
Web コンソールには、主に 2 つの方法でアクセスできます。
-
SSH 接続を使用して Web コンソールにアクセスする方法。
-
各 RHEL ホストで Cockpit Web サーバーを実行し、HTTPS 接続経由 (デフォルトは ポート9090) で接続する方法。
この連載ブログの パート 1 では、SSH 接続を使用して Web コンソールにアクセスする方法について説明しました。今回は、各 RHEL ホストで Cockpit Web サーバーを実行する方法について説明します。
各 RHEL ホストにおける Cockpit Web サーバーの実行についての概要
各ホストで Cockpit Web サーバーを実行するには、cockpit-ws (Cockpit Web サーバー) パッケージをインストールし、systemctl enable --now cockpit.socket などのコマンドを使用して cockpit.socket systemd ユニットを開始/有効化し、ファイアウォールで cockpit サービスを開く必要があります。その後、システムは TCP ポート (デフォルトはポート 9090) で接続をリッスンします。
すべてのホストで Cockpit Web サーバーを実行する方法にはデメリットがあります。まず、システム上でポートを開放すると、例外なく攻撃対象領域が増加します。Web コンソールはデフォルトで自己署名証明書を使用するため、中間者攻撃につながる可能性もあります。当然ながら、Web コンソールでは署名済み TLS 証明書の使用もサポートされていますが、ご使用の環境に Web コンソールを実装し、維持するために必要な時間と作業も増加します。
各 RHEL ホストにおける Cockpit Web サーバーの実行
前述のとおり、各ホストで Cockpit Web サーバーを実行する方法よりも、この連載ブログのパート 1 で説明した SSH 接続を使用するいずれかの方法が推奨されています。
各ホストで Cockpit Web サーバーを使用する場合は、ドキュメント で説明されているとおり、cockpit-ws パッケージをインストールし、cockpit.socket systemd ユニットを起動して有効にし、cockpit サービスに対してファイアウォールが開かれていることを確認する必要があります。
デフォルトでは、Cockpit は自己署名証明書を使用しますが、これはさまざまなセキュリティ上の理由からは推奨されません。各ホストで署名付き TLS 証明書を設定することが推奨されます。署名付き TLS 証明書を使用した Web コンソールの設定について、詳しくは Using signed SSL certificates in Cockpit を参照してください。Cockpit と Certificate RHEL システムロールを併せて使用することで、Web コンソールで使用する署名付き証明書の発行プロセスを自動化することもできます。詳細は、Automate RHEL web console deployments with the Cockpit and certificate RHEL system roles を参照してください。
デフォルトでは、Web コンソールは、root アカウントを含むすべてのユーザーによる接続を許可します。ただし、複数の異なるユーザーが root アカウントとしてログインした場合、システムで何を行ったかを把握することは困難です。root ユーザー名は、システム侵害を試みるユーザーが標的とすることの多い既知のユーザー名でもあります。そのため、多くの組織は root のリモートログインを許可しないように SSH サーバーを設定します。Web コンソールで root ログインを許可しないようにシステムを設定することも可能です。詳細は、How to limit user access to the Cockpit service and GUI with PAM modules を参照してください。
RHEL ファイアウォールは、すべてのリモートホストのファイアウォールで cockpit サービスを開くのではなく、cockpit サービスへのアクセスを特定の信頼できる IP アドレスまたはネットワークに制限するよう設定できます。詳細は、ファイアウォールおよびパケットフィルターの設定 を参照してください。
システムに複数のネットワーク・インタフェース (管理ネットワーク・インタフェースやアプリケーション・ネットワーク・インタフェースなど) がある場合、cockpit.socket が (すべてのインタフェースをリッスンする代わりに) 特定のインタフェースのみをリッスンするように設定できます。詳細は、How to make cockpit listen only on one interface を参照してください。
RHEL 8 および RHEL 9 では、Web コンソールはシステム全体用の暗号化ポリシーで設定された GnuTLS 設定を使用するため、システム全体用の暗号化ポリシーを適切に設定することが重要です。詳細は How to configure allowed ciphers and TLS versions in Cockpit を参照してください。
cockpit.conf 設定ファイルでは、ログインバナー や 非アクティブユーザーをログアウトする アイドルタイムアウト (パスワードを使用してログインしたユーザーのみに適用) など、多くのセキュリティ関連項目を設定できます。MaxStartups オプションを設定して、同時ログイン試行の最大許可数を指定することもお勧めします。詳細は、cockpit.conf の man ページを参照してください。
このスクリーンショットは、ログイン画面に「Authorized users only!」のメッセージを示す ログインバナー が設定されている場合の例を示しています。

このスクリーンショットは、アイドルタイムアウト が設定されており、非アクティブ状態によるタイムアウトが発生しそうな場合にどうなるか示しています (注: パスワードを使用してログインしたユーザーにのみ適用されます)。

Web コンソールでのスマートカードの使用
スマートカードを使用して Web コンソールに対する認証を行うこともできます。詳しくは、集中管理ユーザー向けに Web コンソールを使用したスマートカード認証の設定 を参照してください。
スマートカードを使用する場合、スマートカードを使用してパスワードレス sudo を指定したり SSH 経由でリモートホストに接続したりできるように、システムを設定することも可能です。詳細は、スマートカードユーザー向けパスワードレス sudo の有効化 を参照してください。
詳細情報
Web コンソールは、RHEL 環境を効果的に管理できる優れた方法ですが、セキュリティ要件やニーズを満たす方法で Web コンソールを実装する必要がある点に留意してください。RHEL Web コンソールの使用に慣れておらず、実際に使用して詳細を確認したい場合は、Red Hat Enterprise Linux Self-Paced Labs を参照してください。Web コンソール関連のラボに加え、多くの実践的なラボを使用できます。
About the author
Brian Smith is a Product Manager at Red Hat focused on RHEL automation and management. He has been at Red Hat since 2018, previously working with Public Sector customers as a Technical Account Manager (TAM).