Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Red Hat Enterprise Linux 8 の Web Console を守る技術

Red Hat Enterprise Linux 8 の Web Console を守る技術

RHELのWeb Consoleの安全性を高める工夫や、関連した情報をおしらせします。

Kazuo Moriwaka

August 05, 2019
Tweet

More Decks by Kazuo Moriwaka

Other Decks in Technology

Transcript

  1. 1
    Red Hat Enterprise Linux 8 の
    Web Console を守る技術
    森若 和雄
    Solution Architect
    2019-11-19

    View Slide

  2. 2
    Copyright Red Hat K.K. All rights reserved.
    このスライドの位置付けと目的
    ● 対象
    ● RHELのWeb Console(cockpit)に興味があるがセキュリティに
    不安がある人
    ● 目的
    ● cockpitがどのように実装されているかの情報提供

    View Slide

  3. 3
    Copyright Red Hat K.K. All rights reserved.
    概要

    Web Console(cockpit)
    ● ログイン時の動作
    ● TCPポートの制限
    ● Identity Managementとの統合

    View Slide

  4. 4
    Copyright Red Hat K.K. All rights reserved.
    Web Console
    サーバ管理用のWeb UIを提供
    ● サービス管理
    ● アカウント管理
    ● ネットワーク管理
    ● ファイアウォール管理
    ● ログ閲覧
    ● 仮想マシン管理
    ● 仮想端末 などの管理機能を提供
    https://cockpit-project.org/

    View Slide

  5. 5
    Copyright Red Hat K.K. All rights reserved.
    インストール
    ● パッケージ導入

    yum install -y cockpit
    ● ファイアウォール設定

    firewall-cmd --add-service=cockpit --permanent

    firewall-cmd --reload
    ● サーバ証明書配置
    ● /etc/cockpit/ws-certs.d/に証明書を配置(なければ自己署名証明書を自動生成)
    ● 起動設定

    systemctl enable --now cockpit.socket
    ● ブラウザで接続

    firefox https://example.com:9090/

    View Slide

  6. 6
    Copyright Red Hat K.K. All rights reserved.
    よくある(?)「Webコンソール」のイメージ(偏見)
    ● 外部コマンド実行
    やファイル変更を
    root権限で実施
    ● 「root権限で何で
    もできるプロセ
    ス」を実行
    ● 独自の権限管理設
    定やDBが必要
    root権限で
    何でもできる
    プロセス
    httpd 権限
    管理
    外部プロセス
    外部プロセス
    ファイル
    UI
    DB

    View Slide

  7. 7
    Copyright Red Hat K.K. All rights reserved.
    cockpitは?
    ● ログインしたユーザの権限で実施
    ● root権限はセッション開始のみ
    ● OSの権限管理をそのまま使う
    cockpit-session
    root権限で動作
    ログイン処理
    外部プロセス
    外部プロセス
    ファイル
    UI
    cockpit-bridge
    ユーザの
    権限で
    何でもやる
    cockpit-ws
    ログインと
    接続
    pam
    GSSAPI
    OSの
    権限管理
    生成
    認証情報
    リクエスト

    View Slide

  8. 8
    Copyright Red Hat K.K. All rights reserved.
    ログイン時の動作
    1. cockpit-wsがログイン
    画面を表示
    2. 認証情報を送付
    • ID+Password
    • GSSAPI
    3. cockpit-sessionを実行
    4. PAMで認証
    5. 認証ユーザでcockpit-bridgeを実行
    6. 以下チェックのある場合pkexecで
    root権限のcockpit-bridgeを起動
    cockpit-session
    root権限で動作
    ログイン処理
    cockpit-bridge
    ユーザの
    権限で
    何でもやる
    cockpit-ws
    ログインと
    接続
    pam
    GSSAPI
    生成
    リクエスト
    PolicyKit経由でroot権限で実行する
    デフォルト設定ではwheelグループの
    ユーザのみ成功
    cockpit-bridge
    --privilege
    rootユーザの
    権限で
    何でもやる


    認証情報

    View Slide

  9. 9
    Copyright Red Hat K.K. All rights reserved.
    ログイン後
    ● ブラウザ上のjavascriptとcockpit-bridge(およびcockpit-bridge --privilege)が通信
    ● cockpit-bridge本体と、packageと呼ばれるプラグインがdbus, REST API, プロセス
    実行など各種の操作を実施。通常のユーザ権限管理をそのまま利用。
    cockpit-session
    セッション管理
    だけ
    外部プロセス
    外部プロセス
    ファイル
    UI
    cockpit-bridge
    ユーザの
    権限で
    何でもやる
    cockpit-ws
    ログインと
    接続
    OSの
    権限管理

    View Slide

  10. 10
    Copyright Red Hat K.K. All rights reserved.
    ログイン関連について
    ● 権限を必要最小限に制限したプロセスに分割
    ● cockpit-wsプロセスはcockpit-wsユーザで待ちうけと接続、cockpit-session
    の起動とcockpit-bridgeとの通信を実行
    ● cockpit-sessionは認証を行いセッションを開始。ユーザ自身の権限(指定
    によりroot権限も)で動作するcockpit-bridgeを起動するだけ
    ● SELinuxのポリシーも準備されている
    ● enforcingで使うことでcockpit-wsやcockpit-sessionに未知の脆弱性がある
    場合にも任意プロセス実行などを予防
    ● 自己署名証明書の利用はお勧めしません
    ● ブラウザとcockpit-ws間の通信路が信頼できてはじめて安全

    View Slide

  11. 11
    Copyright Red Hat K.K. All rights reserved.
    TCPポートを制限したい
    ● Cockpitは通常9090番ポートをlisten
    ● Cockpit同士でsshによる通信を行う
    ● cockpit-wsはssh経由で他サーバのcockpit-bridgeを起動・通信
    ● 踏み台サーバからsshで数珠繋ぎにすることで直接通信できない
    サーバを管理
    HTTPS
    port 9090
    SSH
    port 22
    踏み台サーバ 管理対象サーバ
    cockpit cockpit

    View Slide

  12. 12
    Copyright Red Hat K.K. All rights reserved.
    Identity Managementとの統合
    ● RHEL同梱のRed Hat Identity Managementと統合されています
    ● IdMが管理するドメインにサーバが参加していれば以下が可能
    ● Web Consoleを含めたシングルサインオン(SSO)
    ● Web Consoleで利用するサーバ証明書を自動発行
    ● ドメイン内ではsshの鍵配布が不要になるため、sshを経由し
    て他サーバを参照する場合に準備が不要

    View Slide

  13. 13
    Copyright Red Hat K.K. All rights reserved.
    まとめ
    ● RHELの管理を簡単にするWeb Consoleは、簡単に利用
    できるだけでなくセキュリティにも配慮して開発され
    ています
    ● ログイン時に最小の特権だけを利用
    ● 長期間に渡る実績があるPolicyKitなど枯れた技術を活用
    ● ネットワーク接続ポートを増やせない場合はsshのみ許
    可されていれば踏み台から接続可能
    ● Identity Managementと統合されています

    View Slide

  14. 14
    Copyright Red Hat K.K. All rights reserved.
    ● RHEL8ドキュメント「Web コンソールを使用したシステムの管理」

    https://bit.ly/rhel8-webconsole-ja2
    ● Cockpitプロジェクトblog「Is Cockpit Secure?」

    https://cockpit-project.org/blog/is-cockpit-secure.html
    ● Cockpitプロジェクトドキュメント「Single Sign On」

    https://cockpit-project.org/guide/latest/sso.html
    See also

    View Slide

  15. 15
    Copyright Red Hat K.K. All rights reserved.
    Thank You

    View Slide