Ubuntu 26.04 の Cockpit は、サーバー状態、ログ、サービス、ストレージ、ネットワークなどを Web UI から確認できる管理ツールです。SSH を置き換えるものではなく、日常確認や初動調査を補助する管理入口として扱うと使いやすくなります。
この記事では、Cockpit のインストール、cockpit.socket の起動、ログインユーザーと sudo 権限、待ち受けポート、TLS、ログ確認の基本をまとめます。
- Cockpit のインストールと socket 起動
- Web UI へログインできるユーザーと sudo 権限
- 待ち受けポートとアクセス経路の確認
- TLS とリバースプロキシ利用時の考え方
- ログインできない場合のログ確認
| 対象 OS | Ubuntu 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 numberednftables で制御している環境では、既存の 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 100SSH と使い分ける
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 で行えるようにしておくと、管理経路として無理のない構成になります。

