ウェブブラウザで簡単サーバー操作!Webminをインストール!

Mailサーバを構築していくうちに、サーバーを「Webmin」で管理するとかどうとか耳にしました。
。。。「Webmin」???

ようはウェブブラウザ上で、GUIによるサーバ管理ができるアプリケーションみたいだったので、サーバ初心者の
自分は、とりあえず構築しとこってことで、今回構築してみようと思います。

Webminとは

WebminはLinuxやUnixなどのシステムをGUI上(ウェブブラウザ)で管理設定ができるツールです。
例えば、ユーザーアカウントの設定、管理やApacheなどのオープンソースのアプリケーションの変更、制御、
RAIDなどのハードウェアの設定などが可能です。

また、Webブラウザがフロントエンドのため、WindowsやMacOSで動作しているパソコンからも操作が可能となっています。
※外部からのアクセスを許可する場合はWebminで設定する必要があります。

Webminダウンロード

最新のパッケージをダウンロードしてください。
常にパッケージは更新されていきますので、上記のサイトへ行き最新のパッケージを確認後、以下のようにwgetでパッケージをダウンロードすることをお勧めします。

$ wget http://download.webmin.com/download/yum/webmin-1.670-1.noarch.rpm
--2014-02-13 18:33:44--  http://download.webmin.com/download/yum/webmin-1.670-1.noarch.rpm
download.webmin.com をDNSに問いあわせています... 108.60.199.115
download.webmin.com|108.60.199.115|:80 に接続しています... 接続しました。
HTTP による接続要求を送信しました、応答を待っています... 200 OK
長さ: 22155445 (21M) [application/octet-stream]
`webmin-1.670-1.noarch.rpm' に保存中

100%[=================================================================================================================================>] 22,155,445  2.18M/s 時間 11s

2014-02-13 18:33:57 (1.91 MB/s) - `webmin-1.670-1.noarch.rpm' へ保存完了 [22155445/22155445]

パッケージをインストールします

ここではrmpコマンドを使用したパッケージのインストールを実施します。
rpmでもそうですが引数をまだまだうまく使えません。。。
ここらへんも勉強していくのみだな。

$ rpm -Uvh webmin-1.670-1.noarch.rpm
警告: webmin-1.670-1.noarch.rpm: ヘッダ V3 DSA/SHA1 Signature, key ID 11f63c51: NOKEY
準備中...                ########################################### [100%]
Operating system is CentOS Linux
   1:webmin                 ########################################### [100%]
Webmin install complete. You can now login to https://t-bobo011:10000/
as root with your root password.

インストール後の設定

最終行にアクセスを許可するIPを追記します。
セキュリティ面からしてもアクセス許可は大切です。今回はとりあえず設定することにこだわったので、最終行への許可IPアドレスの追記はしませんでした。

$ cat /etc/webmin/miniserv.conf
port=10000
root=/usr/libexec/webmin
mimetypes=/usr/libexec/webmin/mime.types
addtype_cgi=internal/cgi
realm=Webmin Server
logfile=/var/webmin/miniserv.log
errorlog=/var/webmin/miniserv.error
pidfile=/var/webmin/miniserv.pid
logtime=168
ppath=
ssl=0
env_WEBMIN_CONFIG=/etc/webmin
env_WEBMIN_VAR=/var/webmin
atboot=1
logout=/etc/webmin/logout-flag
listen=10000
denyfile=\.pl$
log=1
blockhost_failures=5
blockhost_time=60
syslog=1
session=1
premodules=WebminCore
server=MiniServ/1.670
userfile=/etc/webmin/miniserv.users
keyfile=/etc/webmin/miniserv.pem
passwd_file=/etc/shadow
passwd_uindex=0
passwd_pindex=1
passwd_cindex=2
passwd_mindex=4
passwd_mode=0
preroot=gray-theme
passdelay=1
allow=127.0.0.1		#ここへ追記(今回は何もしない←すべて許可)

必要なPerlモジュールをインストール。(Perlモジュールがないとき)

せっかくWebminをインストールしてもPerlがない為、うまく動作しなかった場合は以下のように関連するPerlもインストールしちゃいます。
ちなみにWebminはPerlスクリプトで動いているそうです。(みればわかるか。)

$ yum -y install perl-Net-SSLeay
Loaded plugins: fastestmirror, refresh-packagekit, security
Loading mirror speeds from cached hostfile
 * base: ftp.iij.ad.jp
 * extras: ftp.iij.ad.jp
 * updates: ftp.iij.ad.jp
Setting up Install Process
Resolving Dependencies
--> Running transaction check
---> Package perl-Net-SSLeay.x86_64 0:1.35-9.el6 will be installed
--> Finished Dependency Resolution

~省略~

Installed:
  perl-Net-SSLeay.x86_64 0:1.35-9.el6

Complete!

それではWebminにログインしてみよう

ブラウザで

「https://(ホスト名またはIPアドレス):10000/」

へアクセスするとログイン画面が表示されるので、 root ユーザーでログインします。

Web0

このような画面が出てきたでしょうか。出てくればまずは成功ですができない方は、いったん“https”を”http”へ変更してアクセスしてみてください。

“http”でアクセスできた場合はSSLの設定ができていないかもしれないので以下で設定していきましょう。

ブラウザでWebminへアクセスできない場合

とりあえず、WebminをインストールしているサーバーのIPテーブルを確認してみます。

$ iptables -nvL
Chain INPUT (policy ACCEPT 0 packets, 0 bytes)
 pkts bytes target     prot opt in     out     source               destination
27923   37M ACCEPT     all  --  *      *       0.0.0.0/0            0.0.0.0/0           state RELATED,ESTABLISHED
    2   120 ACCEPT     icmp --  *      *       0.0.0.0/0            0.0.0.0/0
    7   420 ACCEPT     all  --  lo     *       0.0.0.0/0            0.0.0.0/0
    1    60 ACCEPT     tcp  --  *      *       0.0.0.0/0            0.0.0.0/0           state NEW tcp dpt:22
   31  1860 ACCEPT     tcp  --  *      *       0.0.0.0/0            0.0.0.0/0           state NEW tcp dpt:80
  139  9391 REJECT     all  --  *      *       0.0.0.0/0            0.0.0.0/0           reject-with icmp-host-prohibited

Chain FORWARD (policy ACCEPT 0 packets, 0 bytes)
 pkts bytes target     prot opt in     out     source               destination
    0     0 REJECT     all  --  *      *       0.0.0.0/0            0.0.0.0/0           reject-with icmp-host-prohibited

Chain OUTPUT (policy ACCEPT 16231 packets, 1182K bytes)

IPテーブルを確認した際、Webminでデフォルトで設定されているport 10000が許可されていないので追記します。

$ vi /etc/sysconfig/iptables

# Firewall configuration written by system-config-firewall
# Manual customization of this file is not recommended.
*filter
:INPUT ACCEPT [0:0]
:FORWARD ACCEPT [0:0]
:OUTPUT ACCEPT [0:0]
-A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
-A INPUT -p icmp -j ACCEPT
-A INPUT -i lo -j ACCEPT
-A INPUT -m state --state NEW -m tcp -p tcp --dport 22 -j ACCEPT
-A INPUT -m state --state NEW -m tcp -p tcp --dport 80 -j ACCEPT
-A INPUT -m state --state NEW -m tcp -p tcp --dport 10000 -j ACCEPT  #Port10000を追記
-A INPUT -j REJECT --reject-with icmp-host-prohibited
-A FORWARD -j REJECT --reject-with icmp-host-prohibited
COMMIT

設定を反映するため再起動を実施

IPテーブルを変更しても、そのままでは反映されないので一度以下のように該当のファイルを再起動させます。

$ service iptables restart
iptables: ファイアウォールルールを消去中:                  [  OK  ]
iptables: チェインをポリシー ACCEPT へ設定中filter         [  OK  ]
iptables: モジュールを取り外し中:                          [  OK  ]
iptables: ファイアウォールルールを適用中:                  [  OK  ]

再度iptablesを確認します。設定は反映されてIPテーブルに追加されているでしょうか。。。

$ iptables -nvL
Chain INPUT (policy ACCEPT 0 packets, 0 bytes)
 pkts bytes target     prot opt in     out     source               destination
   33  2484 ACCEPT     all  --  *      *       0.0.0.0/0            0.0.0.0/0           state RELATED,ESTABLISHED
    0     0 ACCEPT     icmp --  *      *       0.0.0.0/0            0.0.0.0/0
    0     0 ACCEPT     all  --  lo     *       0.0.0.0/0            0.0.0.0/0
    0     0 ACCEPT     tcp  --  *      *       0.0.0.0/0            0.0.0.0/0           state NEW tcp dpt:22
    0     0 ACCEPT     tcp  --  *      *       0.0.0.0/0            0.0.0.0/0           state NEW tcp dpt:80
    0     0 ACCEPT     tcp  --  *      *       0.0.0.0/0            0.0.0.0/0           state NEW tcp dpt:10000
    0     0 REJECT     all  --  *      *       0.0.0.0/0            0.0.0.0/0           reject-with icmp-host-prohibited

よし!Port10000が許可されてテーブルにも反映されていますね!
ていうか、俺はサーバーネットワークの技術をもっと磨かなけれないけないのでは。。。

それでもブラウザからいけない場合

#とりあえず、先ほども書いたように

https://(ホスト名またはIPアドレス):10000/

で行けたのでSSLが動いていない(httpsではログインできない)ことが判明しました。
つーことでついでにSSLのインストールと設定もしていきます。

SSLを起動(インストール)する

SSLのインストールと設定は別途、次回細かく書いていこうと思います。今回はWebmin側からも設定をすることで簡単にSSLを動かすことができるのでその設定で実施します。

mod_sslをインストール

今回はSSLを動作させるために“mod_ssl”を導入します。
opensslとの違いはまだまだ私にはわからないのでここでは一旦、説明を割愛致します。

$ yum -y install mod_ssl

#サーバーSSL設定
まずは以下のように該当ディレクトリへ移動します。

$ cd /etc/pki/tls/certs/

#サーバー用証明書有効期限を1年⇒10年へ変更します。

$ sed -i 's/365/3650/g' Makefile

#サーバー用秘密鍵・証明書作成します。

$ make server.crt
umask 77 ; \
/usr/bin/openssl genrsa -aes128 2048 > server.key
Generating RSA private key, 2048 bit long modulus
....................+++
..........................................................+++
e is 65537 (0x10001)
Enter pass phrase:          #パスワード
Verifying - Enter pass phrase:    #再度パスワード
umask 77 ; \
/usr/bin/openssl req -utf8 -new -key server.key -x509 -days 3650 -out server.crt -set_serial 0
Enter pass phrase for server.key:  #先ほどのパスワードをもう一度打ちます。
You are about to be asked to enter information that will be incorporated
into your certificate request.
What you are about to enter is what is called a Distinguished Name or a DN.
There are quite a few fields but you can leave some blank
For some fields there will be a default value,
If you enter '.', the field will be left blank.
-----
Country Name (2 letter code) [XX]:JP   #国を設定(2文字で書けということなので、我が国日本は”JP”で)
State or Province Name (full name) []:fukuoka   #地域
Locality Name (eg, city) [Default City]:fukuoka  #町
Organization Name (eg, company) [Default Company Ltd]:bobo.com  #会社なんでまぁ適当に
Organizational Unit Name (eg, section) []:    #何も書かないでEnterでOK
Common Name (eg, your name or your server's hostname) []:bobo.com   #ここも適当に
Email Address []:webmaster@bobo.com   #メールもこんな感じでいんじゃね。

#Webサーバー起動時にパスワードを要求されないようにする為、パスワードを削除します。

$ openssl rsa -in server.key -out server.key
Enter pass phrase for server.key:    #先ほど設定したパスワードを打ちます。
writing RSA key

#SSLを設定

$ vi /etc/httpd/conf.d/ssl.conf

# General setup for the virtual host, inherited from global configuration
DocumentRoot "/var/www/html" ←#を削除する

# Server Certificate:
# Point SSLCertificateFile at a PEM encoded certificate. If
# the certificate is encrypted, then you will be prompted for a
# pass phrase. Note that a kill -HUP will prompt again. A new
# certificate can be generated using the genkey(1) command.
SSLCertificateFile /etc/pki/tls/certs/sever.crt
# Server Private Key:
# If the key is not combined with the certificate, use this
# directive to point at the key file. Keep in mind that if
# you've both a RSA and a DSA private key you can configure
# both in parallel (to also allow the use of DSA ciphers, etc.)
SSLCertificateKeyFile /etc/pki/tls/certs/server.key ←/certs/server.keyへ修正

#SSLのコンフィグファイルを編集したので、Apacheへ設定を反映します。

$ service httpd restart
httpd を停止中: [ OK ]
httpd を起動中: httpd: Could not reliably determine the server's fully qualified domain name, using 192.168.10.94 for ServerName
[ OK ]

WebminからSSLで簡単設定しましょう!

  1. とりあえず、httpでWebminへアクセスして「Webmin設定」から「SSL暗号化」を選択します。
    SSL1
  2. 後は、SSLサポート画面で、SSLを使用可能にするかで”はい”を選択し、”保存”を押すだけです。
    SSL2

これで再度

https://(ホスト名またはIPアドレス):10000/

アクセスすればいけるはずです!

日本語化しよう!

  1. Webmin configurationを選択
    Web1日本語
  2. Webmin configuration設定画面からLanguageを選択
    Web2日本語
  3. Lanuage設定画面で”Japanese(JA_JP.UTF-8)”を選択し、保存
    Web3日本語
  4. こんな感じで日本語表記になります。
    Web4日本語

まずは使いやすくするために日本語にすることで管理、操作も楽になるのでお勧めです。

まとめ

Webminはサーバーを管理するツールとしてはかなり便利なものなのでぜひ導入することをおすすめします。
自分も今はコマンドを打つよりGUIでさらっと設定管理ができるので使いやすさはかなりあります。

でも、サーバーコマンドを覚えることが自分にとってはかなり重要なのだが。。。

以上です。




エンジニアのオンライン学習

ITエンジニアにおすすめの教材、オンラインスクールです。
無料からエンジニアの学習ができる教材などまとめているので参考にしてください。

おすすめオンライン教材
自宅で学習ができるオンラインスクール

ITエンジニアの開発・検証・学習としてインターネット上で専用のサーバ(VPS)を利用しましょう!
実務経験はVPSで学べます。



コメントを残す

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

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

ABOUT US
げんき☆ひろき
インターネット関連のSEをやっています。 ネットワーク、サーバー、ストレージ、仮想基盤まで幅広く手を出しており、MVNOの構築経験もあります。 現在は、Pythonを使ったプログラミングの開発をしネットワークの自動化ツールを作成しています! Pythonの入門書も作成しているので、ぜひ参考にしてください!