b-shock. Fortress

FreeBSDでUserminをセットアップ(リバースプロキシを利用)

以前、Userminに関する記事を書いたが、その後別のサーバにセットアップした。
20000/tcpを直接晒すのではなく、リバースプロキシを通して普通に443で公開したかったので、手順を修正。

以下、 usermin.example.com にUserminをセットアップする例。
全てroot権限で行う。

パッケージインストール

1
2
pkg install usermin
sysrc usermin_enable="YES"

セットアップスクリプト

1
2
cd /usr/local/lib/usermin
./setup.sh

対話形式で設問に回答すると、 /usr/local/etc/usermin が作成される。

設定ファイルを編集

/usr/local/etc/usermin/miniserv.conf に、以下の項目の更新・追記が必要。

1
2
3
4
log=0
syslog=1
denyusers=root
allow=127.0.0.1 localhost
  • rootアカウントの利用は許可するべきではない。
  • localhostのみ許可しているのは、リバースプロキシを通じた利用だから。
  • 通常ログを止めてsyslogにしているのは、単なる好みw お好みに合わせて。

/usr/local/etc/usermin/config にも要追記。

1
referers=localhost usermin.example.com

usermin.example.com は実際には、ユーザーから見たドメイン名。
証明書のコモンネームと合わせておけば間違いないと思う。

許可するモジュールの選択

そのまま /usr/local/etc/usermin で、以下実行。

1
echo 'user: changepass' > webmin.acl
  • パスワード変更機能だけ必要。以前の記事では procmail も入れてたが、 結局使わなかったので削除。

Apacheにリバースプロキシを設定

1
2
3
4
5
6
7
8
<VirtualHost *:443>
ServerName usermin.example.com
SSLEngine on
SSLCertificateFile /usr/local/etc/letsencrypt/live/usermin.example.com/fullchain.pem
SSLCertificateKeyFile /usr/local/etc/letsencrypt/live/usermin.example.com/privkey.pem
ProxyPass / http://localhost:20000/
ProxyPassReverse / http://localhost:20000/
</VirtualHost>

certbot(Let’s Encrypt)の使い方については省略。
nginxの場合も、似たような感じで。

変更を反映

1
2
service usermin restart
service apache24 restart