Webmin は、Linux などの Unix 系 OS 向けのウェブブラウザベースのシステム管理ツールで、主に Perl で記述されています。 ユーザーやディスク使用上限、サービス、設定ファイル等といった OS 内部の設定および変更だけでなく、Apache や PHP、MySQL などといったオープンソースのアプリケーションの設定や制御もできます。
Webmin はオーストラリア人の Jamie Cameron 氏を中心に開発されており、BSD ライセンスで配布されています。
動機
自宅の 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 と入力します。
「警告:潜在的なセキュリティリスクあり」の表示が出るので、詳細... ボタンをクリックして、さらに 危険を承知で続行 をクリックします(Firefox の場合)。
するとログイン画面が表示されます。
root でログインします。Webmin のダッシュボードが表示されます。
表示言語を変更するには、左側メニューで Webadmin → Change Language and Theme を選択して、言語を選択します。ここではシステムの言語と同じ Japanese (JA_JP.UTF-8) を選択しました。
あらためてダッシュボードを表示すると、日本語で表示されていることを確認できます。
左側メニューから、サーバ → DHCP サーバ を選択し、DHCPサーバの画面を表示させます。
DHCP サーバを動かしているネットワークのサブネット 192.168.2.0 をクリックします。
画面右下にある リースリスト をクリックすると、IP アドレスを割り当てている(リースしている)クライアントのリストが表示されます。
一台しかクライアントがありませんが、期待していた機能を確認できました。
ネットワーク内の他の 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 から確認した例です。
雑感
動機が、DHCP で IP アドレスをリースしているクライアント一覧を見ることだったので、Webmin の機能のほんの一部しか使っておらず、ややもったいない気がします。それでは、他の機能を含めて積極的にシステム管理ツールとして使うかといえば微妙です。このところ Cockpit を使うことに慣れてしまっています。システム管理に使うのであれば、特に SeLinux のアクセスコントロールエラーの監視や Web 上で端末エミュレータを使える Cockpit と同等な機能がなければ切り替えられません。
まあ、管理ツールが一つでなければならない、ということは無いので、DHCP サーバーに特化して Webmin を使いながら、最初に見つけた Glass のインストールに挑戦したり、あるいはいっそ自分で作ってみようかとも思っています。
ちなみに、和書で Webmin を扱っている書籍を調べてみると 2003 年まで遡る必要がありますが、今でも継続的にバージョンアップを重ねている開発中のソフトウェアです。
参考サイト
- bitWalk's: [CentOS 8] DHCP サーバの設定 [2020-04-27]
- Cockpit Project — Cockpit Project
- Akkadius/glass-isc-dhcp: Glass - ISC DHCP Server Interface
- Webmin
にほんブログ村
0 件のコメント:
コメントを投稿