パンダのメモ帳

技術系のネタをゆるゆると

CentOS 5.4にUserminを導入する

CentOS 5.4に Usermin を導入し、一般ユーザがWebブラウザからパスワードを変更できるようにする。

1. 要件

今回の要件は以下の通り。

  • Userminから行うことができるオペレーションはパスワードの変更のみとする。
  • Userminから変更したパスワードはLDAPに反映される様にする。

2. インストール

Userminの実行には以下のPerlモジュールが必要になる

  • Net::SSLeay
  • Authen::PAM

インストールされていない場合はyumからインストールしておく。yumからインストールする場合はrpmforgeの導入が必要なので注意。

[root@localhost ~]# yum -y install perl-Authen-PAM perl-Net-SSLeay

Userminをyumで導入するために、webmin.comをyumリポジトリに追加する。

[root@localhost ~]# rpm --import http://www.webmin.com/jcameron-key.asc
[root@localhost ~]# vim /etc/yum.repos.d/webmin.repo
[Webmin]
name=Webmin Distribution Neutral
baseurl=http://download.webmin.com/download/yum
enabled=1

yumでインストールを行う。

[root@localhost ~]# yum -y install usermin

3. 設定

Userminの設定ファイル(/etc/usermin/config)を開き、以下の記述を追加する。

lang=ja_JP.euc
denyusers=root
  • lang には "ja_JP.UTF-8" も指定できるが、eucの方が何故か翻訳が進んでいるので、そちらを使用する。
  • denyusers には Usermin を利用させないユーザーを指定できる。rootに使用させる必要はない。

次に /etc/usermin/webmin.acl を以下の通り設定する。念のため、オリジナルファイルのバックアップも取っておく。

[root@localhost ~]# cd /etc/usermin
[root@localhost usermin]# cp webmin.acl webmin.acl.orig
[root@localhost usermin]# vim webmin.acl
user: changepass

さらに /etc/usermin/changepass/config を開き、以下の行を編集する。値が空に見えるのはtypoではなく、空に設定する必要がある。

passwd_cmd=file
↓
passwd_cmd=

最後に /etc/pam.d/usermin を以下の通り設定する。念のため、オリジナルファイルのバックアップも取っておく。

[root@localhost ~]# cp /etc/pam.d/usermin /etc/pam.d/usermin.orig
[root@localhost ~]# vim /etc/pam.d/usermin
#%PAM-1.0
auth     required pam_stack.so service=system-auth
account  required pam_stack.so service=system-auth
password required pam_stack.so service=system-auth
session  required pam_stack.so service=system-auth

4. 証明書のインストール

Userminの通信はHTTPSで行われるため、専用のSSL証明書をプライベートCAから発行し、インストールする。

[root@localhost ~]# openssl genrsa 2048 > /etc/pki/tls/private/usermin.key
(省略)
[root@localhost ~]# chmod 400 /etc/pki/tls/private/usermin.key
[root@localhost ~]# cd /etc/pki/tls/certs
[root@localhost certs]# openssl req -new -key ../private/usermin.key > usermin.csr
(省略)
[root@localhost certs]# openssl ca -config /etc/pki/myCA/ca.conf -in usermin.csr > usermin.crt
(省略)

秘密鍵と証明書をUserminの設定ディレクトリにコピーする。

[root@localhost ~]# cd /etc/usermin
[root@localhost usermin]# cp miniserv.pem miniserv.pem.orig
[root@localhost usermin]# cd /etc/pki/tls
[root@localhost tls]# cat certs/usermin.crt private/usermin.key > /etc/usermin/miniserv.pem

ここまでやったらUserminを起動する。また、次回から自動的に起動する様に設定する。

[root@localhost ~]# service usermin start
[root@localhost ~]# chkconfig usermin on