手当たり次第に書くんだ

飽きっぽいのは本能

Ubuntu 26.04 Cockpit の基本設定 – Web UI の管理入口を安全に使う

関連する記事

Ubuntu 26.04 の Cockpit は、サーバー状態、ログ、サービス、ストレージ、ネットワークなどを Web UI から確認できる管理ツールです。SSH を置き換えるものではなく、日常確認や初動調査を補助する管理入口として扱うと使いやすくなります。

この記事では、Cockpit のインストール、cockpit.socket の起動、ログインユーザーと sudo 権限、待ち受けポート、TLS、ログ確認の基本をまとめます。

この記事で扱うこと
  • Cockpit のインストールと socket 起動
  • Web UI へログインできるユーザーと sudo 権限
  • 待ち受けポートとアクセス経路の確認
  • TLS とリバースプロキシ利用時の考え方
  • ログインできない場合のログ確認
対象 OSUbuntu 26.04 Server
パッケージcockpit
サービスcockpit.socket
既定ポート9090/tcp
認証Linux ユーザーと PAM

Cockpit で決めること

Cockpit を使う前に、誰がログインできるか、どのネットワークから接続できるか、TLS をどこで終端するか、SSH とどのように使い分けるかを決めます。管理 UI なので、外部へ広く公開しない前提で考えます。

  • ログインできる Linux ユーザーを限定する
  • 管理作業に必要な sudo 権限を確認する
  • 9090/tcp をどこから到達可能にするか決める
  • 公開する場合は TLS とアクセス制御を用意する
  • SSH を復旧経路として残す

Cockpit をインストールする

まず Cockpit をインストールし、socket を有効化します。Cockpit は常時プロセスを起動するのではなく、socket activation で要求時に起動します。

sudo apt update
sudo apt install -y cockpit
sudo systemctl enable --now cockpit.socket
systemctl status cockpit.socket --no-pager
systemctl status cockpit.service --no-pager

待ち受けを確認する

cockpit.socket が有効になると、既定では 9090/tcp で待ち受けます。サーバー内から待ち受け状態を確認します。

ss -ltnp | grep ':9090'
systemctl cat cockpit.socket
curl -kI https://127.0.0.1:9090/

ログインユーザーと sudo 権限を確認する

Cockpit は Linux ユーザーでログインします。管理操作には、そのユーザーの sudo 権限が関係します。Web UI 用の特別な共有ユーザーを作るのではなく、誰が操作したか分かる管理ユーザーで運用します。

id myadmin
groups myadmin
sudo -l -U myadmin
getent group sudo

アクセス経路を確認する

管理ネットワークから直接接続する場合は、ファイアウォールや経路で 9090/tcp が到達できることを確認します。UFW を使っている環境では、管理元を絞って許可します。

sudo ufw status verbose
sudo ufw allow from 192.0.2.0/24 to any port 9090 proto tcp
sudo ufw status numbered

nftables で制御している環境では、既存の OS firewall 方針に合わせて管理元からの 9090/tcp だけを許可します。

sudo nft list ruleset
ss -ltnp | grep ':9090'
curl -kI https://server01.example.local:9090/

TLS と公開範囲を確認する

Cockpit を管理ネットワークの外から使う場合は、TLS、接続元制限、監査ログを合わせて考えます。リバースプロキシを使う場合も、Cockpit を広く公開するのではなく、管理経路として範囲を限定します。

openssl s_client -connect server01.example.local:9090 -servername server01.example.local -verify_return_error
curl -kI https://server01.example.local:9090/
journalctl -u cockpit.socket --no-pager -n 100
journalctl -u cockpit.service --no-pager -n 100

ログインできない場合の確認

ログインできない場合は、Cockpit 側だけでなく、PAM、sudo、サービス状態、待ち受け、ネットワーク到達性を分けて確認します。

systemctl status cockpit.socket --no-pager
systemctl status cockpit.service --no-pager
journalctl -u cockpit.service --no-pager -n 100
journalctl -u cockpit.socket --no-pager -n 100
journalctl -p warning --no-pager -n 100

SSH と使い分ける

Cockpit は状態確認や一部操作を分かりやすくしますが、復旧作業や細かな設定変更では SSH が必要です。Cockpit を入れた後も、SSH の公開鍵認証、sudo 権限、ログ確認の経路を残しておきます。

ssh myadmin@server01.example.local
sudo systemctl status cockpit.socket --no-pager
sudo journalctl -u cockpit.service --no-pager -n 50

公開前の確認ポイント

  • cockpit.socket が有効化されている
  • 9090/tcp の到達範囲を限定している
  • ログインユーザーと sudo 権限を確認している
  • TLS と接続元制限の方針を決めている
  • ログイン失敗時の journal を確認できる
  • SSH を復旧経路として残している

まとめ

Ubuntu 26.04 の Cockpit は、サーバー管理を Web UI で補助する便利な入口です。ただし、管理 UI である以上、ログインユーザー、sudo 権限、待ち受け範囲、TLS、ログ確認をセットで考える必要があります。

Cockpit を導入しても SSH は必要です。Web UI で見やすく確認し、必要な作業や復旧は SSH で行えるようにしておくと、管理経路として無理のない構成になります。

関連する記事
Ubuntu 26.04 Cockpit の基本設定 – Web UI の管理入口を安全に使う

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

日本語が含まれない投稿は無視されますのでご注意ください。(スパム対策)

トップへ戻る