2020-04-28

Webmin を使ってみた

Webmin は、Linux などの Unix 系 OS 向けのウェブブラウザベースのシステム管理ツールで、主に Perl で記述されています。 ユーザーやディスク使用上限、サービス、設定ファイル等といった OS 内部の設定および変更だけでなく、Apache や PHP、MySQL などといったオープンソースのアプリケーションの設定や制御もできます。

Webmin はオーストラリア人の Jamie Cameron 氏を中心に開発されており、BSD ライセンスで配布されています。

Wikipedia より引用・編集
Webmin のダッシュボード画面(例)

動機

自宅の LAN は、某ケーブルテレビのインテーネットサービスを利用しています。その家庭内 LAN の内側にさらに実験用の LAN を作って、この LAN 向けに DHCP サーバを設定しました [1]。某ケーブルテレビからレンタルしているブロードバンドルータで利用できる設定ツール(右図)のように、DHCP クライアントの情報をインターネットブラウザ上で見たいと思ったことが動機です。

Red Hat 系 Linux ディストロでは Cockpit [2] という高機能な Web ベースの管理ツールが利用できますが、残念ながら DHCP サーバについては期待する機能がありません。

経験的に、どのブロードバンドルータも似たような設定ツールを備えているので、きっとオープンソースの世界でも同じようなツールがあるだろうと期待して探してみましたが、意外とこれぞというツールがみつかりません。

そんな中で Glass [3] という ISC-DHCP 向けの管理ツールを見つけ、まさにぴったりだったのですが、Red Hat 系 Linux ディストロでインストールに成功したという記事を見つけられませんでした。とりあえず、あとでゆっくり取り組もうと試すのを保留にしました。

インストールの成功率が高そうなパッケージがないかさらに探し続けたところ、Webmin [4] が DHCP クライアントの一覧を表示できることが判りました。rpm パッケージも公開されていて簡単に試せそうです。ずいぶん前にインストールしてみた記憶が微かにありますが、あらためて試してみました。

Webmin のインストール

使用している OS(および webmin)は以下の通りです。

CentOS Linux release 8.1.1911 (Core) x86_64
webmin-1.941-1.noarch.rpm

Webmin のサイト [3] の左側のメニュー最初の rpm をクリックすると、最新の rpm パッケージをダウンロードできます。ダウンロードしたパッケージを次のようにしてインストールします。

bitwalk@cnction ダウンロード]$ sudo dnf install webmin-1.941-1.noarch.rpm
...
(途中省略)
...
依存関係が解決しました。
================================================================================
 パッケージ              Arch        バージョン         リポジトリー      サイズ
================================================================================
インストール:
 webmin                  noarch      1.941-1            @commandline       22 M
依存関係のインストール:
 perl-Encode-Detect      x86_64      1.01-28.el8        AppStream          90 k

トランザクションの概要
================================================================================
インストール  2 パッケージ

合計サイズ: 22 M
ダウンロードサイズの合計: 90 k
インストール済みのサイズ: 79 M
これでよろしいですか? [y/N]: y
パッケージのダウンロード:
...
(途中省略)
...
完了しました!
[bitwalk@cnction ダウンロード]$ 

ローカルで動作確認

Webmin は、ポート 10000 を使いますので、インターネットブラウザを起動し、URL に https://local:10000 と入力します。

最初の https://local:10000 へのアクセス

「警告:潜在的なセキュリティリスクあり」の表示が出るので、詳細... ボタンをクリックして、さらに 危険を承知で続行 をクリックします(Firefox の場合)。

するとログイン画面が表示されます。

Webmin のログイン画面

root でログインします。Webmin のダッシュボードが表示されます。

Webmin のダッシュボード(英語)

表示言語を変更するには、左側メニューで WebadminChange Language and Theme を選択して、言語を選択します。ここではシステムの言語と同じ Japanese (JA_JP.UTF-8) を選択しました。

表示言語とテーマ設定画面

あらためてダッシュボードを表示すると、日本語で表示されていることを確認できます。

Webmin のダッシュボード(日本語)

左側メニューから、サーバ → DHCP サーバ を選択し、DHCPサーバの画面を表示させます。

DHCP サーバの画面

DHCP サーバを動かしているネットワークのサブネット 192.168.2.0 をクリックします。

DHCP のサブネットの編集画面

画面右下にある リースリスト をクリックすると、IP アドレスを割り当てている(リースしている)クライアントのリストが表示されます。

DHCP リース画面

一台しかクライアントがありませんが、期待していた機能を確認できました。

ネットワーク内の他の PC からアクセス

ポート番号 10000 がファイアウォールを通るように(ソーン internal に対して)設定して、ネットワーク越しにアクセスできるかどうか確認します。

[bitwalk@cnction ~]$ sudo firewall-cmd --permanent --zone=internal --add-port=10000/tcp
[sudo] bitwalk のパスワード:
success
[bitwalk@cnction ~]$ sudo firewall-cmd --reload
Warning: ZONE_ALREADY_SET: 'enp2s0' already bound to 'internal'
success
[bitwalk@cnction ~]$

このネットワークに接続している Windows PC から確認した例です。

Webmin のダッシュボード画面(例)

雑感

動機が、DHCP で IP アドレスをリースしているクライアント一覧を見ることだったので、Webmin の機能のほんの一部しか使っておらず、ややもったいない気がします。それでは、他の機能を含めて積極的にシステム管理ツールとして使うかといえば微妙です。このところ Cockpit を使うことに慣れてしまっています。システム管理に使うのであれば、特に SeLinux のアクセスコントロールエラーの監視や Web 上で端末エミュレータを使える Cockpit と同等な機能がなければ切り替えられません。

まあ、管理ツールが一つでなければならない、ということは無いので、DHCP サーバーに特化して Webmin を使いながら、最初に見つけた Glass のインストールに挑戦したり、あるいはいっそ自分で作ってみようかとも思っています。

ちなみに、和書で Webmin を扱っている書籍を調べてみると 2003 年まで遡る必要がありますが、今でも継続的にバージョンアップを重ねている開発中のソフトウェアです。

参考サイト

  1. bitWalk's: [CentOS 8] DHCP サーバの設定 [2020-04-27]
  2. Cockpit Project — Cockpit Project
  3. Akkadius/glass-isc-dhcp: Glass - ISC DHCP Server Interface
  4. Webmin

ブログランキング・にほんブログ村へ
にほんブログ村

0 件のコメント: