IT pass HikiWiki - [Memo2017][ITPASS]gate-toroku-system のインストールと設定 Diff
- Added parts are displayed like this.
- Deleted parts are displayed
like this.
{{toc}}
[((<ITPASSサーバ構築・運用ドキュメント>)) へ戻る]
#= 概要
#神戸大学 惑星学専攻/学科 ITPASS サーバのユーザ管理には gate-toroku-system (神戸 ITPASS サーバ用) を用いる.
#このソフトウェアは元々北大理学の EP計算機ネットワーク技術支援グループ で開発されたユーザ管理用ソフトウェアで,
#ITPASS サーバではこれを ITPASS サーバ用に修正を行って導入している (修正したものを以下では神戸版 gate と呼ぶ).
#なお, 現在の gate-toroku-system 最新版は電脳サーバで管理されている.
#また神戸版 gate は, old の gate_toroku_system を当該年度の初版として cvs で管理している.
#ここでは, 神戸版 gate のインストールおよび設定を行う.
#cvs 管理のための準備は((<[ITPASS2014] gate-toroku-system の開発・メンテナンスのための準備>))を参照.
#なお, サーバ運用中の gate の開発やメンテナンスについて ((<[ITPASS2012]gate-toroku-systemの開発とメンテナンス>))にも目を通しておくこと.
= 作業用アカウントの作成
* gate-toroku-system 管理用アカウント: gate を作成した.
ユーザ ID は 500 にした.
#(1 -- 999 の間 (システムユーザ領域) であれば他の番号でもよい).
# adduser --uid 500 --disabled-password gate
登録の際, フルネームは「Administrator of gate-toroku-system」とした.
* gate グループに gate 管理者を加えた.
# gate 管理者は, ((<[ITPASS2015]gate-toroku-systemの開発とメンテナンス>))に書かれている開発メンバーと, gate のインストールを行うメンバーとする.
#以下は 2016 年度の例.
# vigr
gate:x:500:murashin,noda,daisuke,nobesaka,mmiyuki,ikedaryo,rin
# vigr -s
gate:!::murashin,noda,daisuke,nobesaka,mmiyuki,ikedaryo,rin
= 必要なソフトウェアのインストール
gate に必要なパッケージをインストールした.
== パッケージの確認
dpkg コマンドを用いて, 必要なパッケージがインストールされていることを確認した.
#(((<[ITPASS2014]debianパッケージの引き継ぎ>)) でインストール済みのはずである).
#以下に示す実行例の "hoge" をパッケージ名に読み替えて実行する.
# # dpkg -l | grep hoge
#* 必要なパッケージ: rsync, wget, htroff, cvs, libjcode-pm-perl, libcrypt-passwdmd5-perl, libdatetime-perl, libdatetime-format-strptime-perl
# dpkg -l | grep rsync
# dpkg -l | grep wget
# dpkg -l | grep cvs
# dpkg -l | grep libjcode-pm-perl
# dpkg -l | grep libcrypt-passwdmd5-perl
# dpkg -l | grep libdatetime-perl
# dpkg -l | grep libdatetime-format-strptime-perl
#* htroff は apt-get でインストールできないため, ((<地球流体電脳倶楽部|URL:http://www.gfd-dennou.org/arch/cc-env/htroff/SIGEN.htm>))から
以下の4つのファイルを取得してインストールした.
htroff_2.0-1.dsc
htroff_2.0-1.tar.gz
htroff_2.0-1_all.deb
htroff_2.0-1_i386.changes
# wget http://www.gfd-dennou.org/arch/cc-env/htroff/htroff_2.0-1.dsc
# wget http://www.gfd-dennou.org/arch/cc-env/htroff/htroff_2.0-1.tar.gz
# wget http://www.gfd-dennou.org/arch/cc-env/htroff/htroff_2.0-1_all.deb
# wget http://www.gfd-dennou.org/arch/cc-env/htroff/htroff_2.0-1_i386.changes
# dpkg -i htroff_2.0-1_all.deb
# dpkg -l | grep htroff
= gate ユーザ宛のメールを転送する
* /home/gate/.qmail に管理者のメールアドレスを書き込んだ.
# vi /home/gate/.qmail
&itpadmin
= gate-toroku-system のソースの取得と展開
ika-itpass の /home/gate から gate-toroku-system のソース(gate-toroku-system.tar.gz)
を tako-itpass の /home/gate にコピーし, 展開した. 展開は以下のコマンドで実行した.
# tar xvfz gate-toroku-system.tar.gz
= 設定ファイルの編集
== gate.conf
ika-itpass の /etc/gate/ の下から gate.conf をコピーし tako-itpass の /etc/gate/ の下に置いた.
# cd /etc
# mkdir gate
gate.conf 内の$DBSERVER を以下のように編集した.
$DBSERVER = “tako-itpass.scitec.kobe-u.ac.jp";
また, %DB_SHARE_HOSTS が以下のようになっていることを確認した.
%DB_SHARE_HOSTS = (
'ika-itpass.scitec.kobe-u.ac.jp','wheel:itpadmin'
# 'dennou-k.kugi.kyoto-u.ac.jp','wheel:dcstaff',
# 'dennou-h.ees.hokudai.ac.jp','wheel:dcstaff',
# 'dennou-q.geo.kyushu-u.ac.jp','wheel:dcstaff'
);
== gate-user.conf
同様にして gate-user.conf をコピーし /etc/gate に置き, $WHEELUSER が 'itpadmin' になっているか確認した.
$WHEELUSER = 'itpadmin';
= gate-toroku-system CGI を動作させるための apache2 設定
CGI の動作に関して, apache2 の設定を確認した.
* apache を動作させるユーザ, グループ
* apache がどのユーザ, グループの権限で動作するかは /usr/local/apache2/conf/httpd.conf 内の「 User 」 と「 Group 」で指定される.
User www-data
Group www-data
となっていた.
* 「 User 」,「 Group 」に指定されているユーザやグループが gate.conf の
$CGIUSER に指定されているユーザと一致していることを確認した.
$CGIUSER = "www-data”;
* /usr/local/apache2/cgi-bin/ の CGI が動作するために /usr/local/apache2/conf/httpd.conf で下記の記述があることを確認した.
</IfModule>
<IfModule cgid_module>
#
# ScriptSock: On threaded servers, designate the path to the UNIX
# socket used to communicate with the CGI daemon of mod_cgid.
#
Scriptsock cgisock
</IfModule>
#
# "/usr/local/apache2/cgi-bin" should be changed to whatever your ScriptAliased
# CGI directory exists, if you have that configured.
#
<Directory "/usr/local/apache2/cgi-bin/">
AllowOverride AuthConfig Limit
Options +ExecCGI +FollowSymLinks +IncludesNoExec
Require all granted
</Directory>
* さらに, /usr/local/apache2/conf/httpd.conf において, LoadModule ... が羅列してある部分の末行に以下の行を追記した.
LoadModule cgid_module modules/mod_cgi.so
= make とインストール
make とインストールを行う.
# su gate
$ cd ~gate/gate-toroku-system/
$ perl ./config.pl
$ make
$ exit
$ mkdir /usr/local/gate/
$ mkdir /usr/local/gate/bin
$ sudo -s
# cd ~gate/gate-toroku-system
# make install
#make したときに
# make[1]: Entering directory '/home/gate/gate-toroku-system/if_sndr_from'
# install if_sndr_from.pl /usr/local/gate/bin/if_sndr_from.pl
# install: 通常ファイル `/usr/local/gate/bin/if_sndr_from.pl' を削除できません: 許可がありません
# Makefile:15: recipe for target 'install' failed
# make[1]: *** [install] Error 1
#というエラーが出るのは仕様である. make install 時のエラーも同様に仕様である.
#make した後に /usr/local/gate/bin を手動で作り make install すればよい.
#実行ファイルや man 用ファイル, HTML ファイルは /usr/local/gate 以下にインストールされる.
#(IP 管理用の設定ファイルも同様の場所に gate-ip.confとしてインストールされる).
== cgi のシンボリックリンク作成
/usr/local/gate/lib/cgi-bin 以下にインストールされる cgi のシンボリックリンクを /usr/local/apache2/cgi-bin 以下に作成した.
# cd /usr/local/apache2/cgi-bin
# ln -s ../../gate/lib/cgi-bin/gate-*.cgi .
== gate-db-to-sudoers の編集
* /usr/local/gate/sbin/gate-db-to-sudoers の Defaults で始まる部分に以下を追加した.
# This is /etc/sudoers file, generated by gate-db-to-sudoers.
# If you are to edit this file, do not edit it directly.
Defaults env_reset
Defaults mail_badpass
Defaults secure_path="/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin"
Defaults mailfrom=root <--追記
root ALL=(ALL:ALL) ALL
* visudo を実行して上の追記箇所を追加した.
= 実行ファイルへのパスの設定
インストールした gate-toroku-system の実行ファイル群へパスを通した.
#((<[ITPASS2016]パスの設定>)) の ((* <一般ユーザ用コマンドのパス> *)) に #((*/usr/local/gate/bin*)) を,
#((* <システム管理用コマンドのパス> *)) に ((*/usr/local/gate/sbin*)) を追加する.
* 具体的には, 以下のようにした.
* /etc/bash.bashrc の冒頭に
# add PATH for local installed softwares
PATH="${PATH}:/usr/local/gate/bin"
# add PATH for local installed softwares (for root)
if [ "`id -u`" -eq 0 ]; then
PATH="${PATH}:/usr/local/gate/sbin"
fi
export PATH
を追加した.
* /etc/csh.cshrc の冒頭に
# add PATH for local installed softwares
set path = ($path /usr/local/bin /usr/bin /bin /usr/local/gate/bin)
# add PATH for local installed softwares (for root)
if ( "`id -u`" == 0 ) then
set path = ($path /usr/local/sbin /usr/sbin /sbin /usr/local/gate/sbin)
endif
を追加した.
* /etc/zsh/zshenv に
# add PATH for local installed softwares
export PATH="$PATH:/usr/local/gate/bin"
# add PATH for local installed softwares (for root)
if [ "`id -u`" -eq 0 ]; then
export PATH="$PATH:/usr/local/gate/sbin"
fi
の記述を追加した.
= マニュアルへのパスの設定
#((<[ITPASS2016]パスの設定#man 関連のパスの設定>)) を参照し, /etc/manpath.config に以下の行を追加した.
MANDATORY_MANPATH /usr/local/gate/man/ja
MANPATH_MAP /usr/local/gate/bin /usr/local/gate/man/ja
MANPATH_MAP /usr/local/gate/sbin /usr/local/gate/man/ja
MANDB_MAP /usr/local/gate/man/ja /usr/local/gate/man/ja
= Web インターフェースのチェック
* https://tako-itpass.scitec.kobe-u.ac.jp/~gate/ にアクセスし, gate 登録システムのインデックスページが見えるか確認した.
* 上記のページからリンクされている個人申請(https://tako-itpass.scitec.kobe-u.ac.jp/cgi-bin/gate-user-apply.cgi)
#など
に移動し, CGI が動作しているかチェックした.
# * 「サーバ 版 gate-toroku-system について」のリンクが切れているが後ほどリンクを作成するので問題ない.
= ユーザの作成
== root ログインの準備
#以下の作業では ika から tako へ root ログインする必要がある.
#そのため,
root ログイン用の鍵の生成・設置と root ログインの許可を行った.
=== 鍵の生成と設置
root ログイン用の鍵を作成・設置した.
マニュアル通りに進めば root ログイン用の鍵はこの段階で作成・設置するはずであるが, 構築作業の何らかの段階で既に鍵を設置している場合は
以下の手順の確認のみ行う.
* ika に残った, 再構築前の tako の情報を削除
* ika の /root/.ssh/known_hosts の中の new の情報を削除した.
# cd /root/.ssh
# ssh-keygen -R tako-itpsass.scitec.kobe-u.ac.jp
で削除を行った.
* ((*ika*)) で 鍵を生成した
* 鍵の置き場とファイル名は, デフォルトの /root/.ssh/id_rsa とした
* パスフレーズは空にした
ika-itpass# cd /root/.ssh
ika-itpass# mv id_rsa id_rsa_bk
ika-itpass# ssh-keygen -t rsa
# * 鍵の上書きをするかという確認が出たので上書きを許可する.
* 公開鍵の設置
# ika で作成した公開鍵 ika:/root/.ssh/id_rsa.pub を tako:/root/.ssh/authorized_keys にコピーする. その際改行していないかに気を付けること.
tako の /root/.ssh/authorized_keys のパーミッションを変更した.
tako-itpass# chmod 600 /root/.ssh/authorized_keys
=== root ログインの許可
#* ((<[ITPASS2016]sshのインストールと設定#パスワード認証の拒否と root ログインの拒否設定>)) を参考に ((*tako への*))
root ログインの許可を設定した.
tako-itpass# vi /etc/ssh/sshd_config
PermitRootLogin yes
:
PasswordAuthentication no
:
UsePAM no
ssh デーモンを再起動した.
# systemctl restart ssh
== ユーザデータベースのコピー
ika の /home/gate/userdb を tako の /home/gate/userdb にコピーする.
* まず, -n オプションを付けて rsync の動作チェックを行った.
# いきなり rsync コマンドを実行すると予期せぬ間違い (転送元と転送先の設定を間違って, 転送先のファイルを全て消してしまう等) が起こりうるため,
# まずは rsync コマンドに -n オプションをつけて実行すること.
# -n オプションをつけて実行すると, 実際のファイル操作は行わずに, 操作されるはずのファイルのリストが出力される.
ika-itpass# rsync -n -av -e ssh --delete /home/gate/userdb/ tako-itpass.scitec.kobe-u.ac.jp:/home/gate/userdb/
* 実際にコピーを行った.
ika-itpass# rsync -av -e ssh --delete /home/gate/userdb/ tako-itpass.scitec.kobe-u.ac.jp:/home/gate/userdb/
== root ログインの設定を戻す
tako への root ログインを不許可に設定し直した.
tako-itpass# vi /etc/ssh/sshd_config
PermitRootLogin no
:
PasswordAuthentication no
:
UsePAM no
ssh デーモンを再起動した.
tako-itpass# /etc/init.d/ssh restart
* ika から tako への ssh ができなくなったことを確認した.
== /etc/shadow のコピー
#gate-toroku-system では, /etc/shadow に存在しないユーザがデータベース (/home/gate/userd) に居た場合, 初めてユーザを作成したと認識して
#保証人にメールを送信するようになっている.
#/home 領域を old からコピーする際 (後日に行う) にこの理由によって大量のメールが送信されないよう, 先に old の /etc/shadow の一部を new の
#/etc/shadow にコピーしておく.
* old の /etc/shadow のうち UID 1000 ~ 29999 の gate-toroku-system で管理されるユーザーについて, そのアカウント名の行をコピーして new の/etc/shadow のファイルに追加した. 各ユーザに対する uid は /etc/passwd に書かれているものを確認した.
# lv /etc/passwd
# root:x:0:0:root:/root:/bin/bash
# daemon:x:1:1:daemon:/usr/sbin:/bin/sh
# bin:x:2:2:bin:/bin:/bin/sh
# sys:x:3:3:sys:/dev:/bin/sh
# ^ ここが uid
== 最初の保証人ユーザ作成
#* ユーザ登録申請時にメーリスが流れるので予めアナウンスすること.
* 個人申請
(https://new-itpass.scitec.kobe-u.ac.jp/cgi-bin/gate-user-apply.cgi) にアクセスし, ユーザ登録申請を行った.
# (テスト用なので適当なユーザーでよい)
* 保証人は先に作ったユーザ "gate" とした
# * ((*作業完了後にユーザーは削除するのでパスワードを覚えておくこと*))
* 登録申請後, /home/gate/userdb/pending の下に申請者の (申請ログイン名がついたファイル) が生成されているか確認した.
* 承認を行うために保証人 "gate" の登録システム用パスワードを設定した
* gate ユーザに成り代わり, 登録システム用パスワードを設定した
# su gate
$ cd
$ htpasswd -cd ~gate/.gate gate
* ここで設定したパスワードを使い, "gate" ユーザとして登録申請中のテストユーザを承認した
# * https://new-itpass.scitec.kobe-u.ac.jp/cgi-bin/gate-user-accept.cgi にアクセスして行う
* その後, 承認したテストユーザのデータベースファイルが /home/gate/userdb/stable へ移動していることを確認した
= アカウント生成
#/home/gate/userdb の中にあるデータベースファイルをシステムに反映させるために, root 権限で /usr/local/gate/lib/gate-daily を実行した
* gate-daily は /etc/gate/gate.conf を参照するため, 起動前に gate.conf内の 'old-itpass' を 'new-itpass' と書き換えた(二ヵ所)
* その後以下を実行した
# perl /usr/local/gate/lib/gate-daily
すると
No filesystems with quota detected
と表示されたがこれは quota の設定がまだのためである.
* /etc/{passwd, group, shadow} に, 登録したユーザの情報が新たに書き込まれていることを確認した.
また /home に /home/gate/userdb 以下に存在するユーザのディレクトリができていることを確認した.
= bind の所有グループの変更
#((<[ITPASS2016]bindのインストールと設定#編集したファイルのパーミッション設定>)) にあるように,
bind 関連のファイルの所有グループを itpadmin に変更した.
root@new:/usr/local/bind/etc# chgrp -R itpadmin .
* 所有者やパーミッションが以下のように設定されていることを確認した.
root@new:/usr/local/bind/etc# chmod 640 rndc.conf
root@new:/usr/local/bind/etc# chown bind namedb/named.conf
root@new:/usr/local/bind/etc# chmod 640 namedb/named.conf
= /etc/aliases の変更
#/etc/aliases の root に対応するユーザは, インストール時に作ったユーザになっているはずである.
#test という名前のユーザを作った場合は, 以下の行が存在するはずである.
/etc/aliases の中の
root: test
これを itpadmin に書き換える.
root: itpadmin
設定を反映するため,
# newaliases
を実行した.
ここで許可がないというメッセージが出たが,
/usr/bin/newaliases は /usr/sbin/exim4 のシンボリックリンクであり,
exim4 に実行権限が付与されていないためである.
#ここでは MTA に exim4 ではなく qmail を使うため,
#実行権限を付与する必要はない.
#/etc/aliases を書き換えると newaliases コマンドを実行するのは
#一般的な操作であるため, ここではあえてマニュアルに残しておく.
= デーモンモードでの運用
ユーザ, ホストのデータベースをシステムに反映させるため, デーモンモードでの運用の設定を行う.
* gate-sys.conf の設定
/etc/gate/gate-sys.conf 中の $USE_DAEMON 変数が 1 であることを確かめた.
$USE_DAEMON = 1;
* gate-toroku-system 用のポートの作成
/etc/inetd.conf に以下の一行を付け足した.
gate stream tcp nowait root /usr/sbin/tcpd /usr/local/gate/lib/gate-daily -N
* ポート番号の設定
/etc/services に以下の行を付け足した.
gate 8888/tcp # gate-toroku-system
* TCP wrapper によるセキュリティ強化
# gate ポートは, 登録サーバからのアクセスさえ受け付けられればその役目を果たす.
# そのため, TCP wrapper を使用してアクセスを登録サーバからのものに限定する.
# ITPASS サーバは 1 台での運用なので, 自身からのアクセスのみ許可する.
* /etc/hosts.deny の編集
まず, 全てのホストからの gate ポートへのアクセスを拒否するよう /etc/hosts.deny に以下の一行を追加した.
gate-daily: ALL
* /etc/hosts.allow の編集
登録サーバ自身 (new) からのアクセスは許可するよう, /etc/hosts.allow に以下の一行を追加した.
gate-daily: 127.0.0.1
* 登録サーバ以外のホストからのアクセスが拒否されるか確認した.
google.com で試した
root@new-itpass:/home/gate# tcpdmatch gate-daily google.com
client: hostname kix06s02-in-f14.1e100.net
client: address 216.58.197.14
server: process gate-daily
access: denied
client: hostname del01s06-in-x07.1e100.net
client: address 2404:6800:400a:804::200e
server: process gate-daily
access: denied
# denied とあれば拒否されている.
次に, 登録サーバ自身からのアクセスが許可されているか確認した.
root@new-itpass:/home/gate# tcpdmatch gate-daily localhost
client: hostname localhost
client: address ::1
server: process gate-daily
access: denied
client: hostname localhost
client: address 127.0.0.1
server: process gate-daily
access: granted
# granted とあれば許可されている.
* inetd を再起動した
# /etc/init.d/openbsd-inetd restart
[ ok ] Restarting openbsd-inetd (via systemctl): openbsd-inetd.service.
* 確認
CGI から適当なユーザの申請および認証を行う. 認証して数分後に /etc 以下のシステムファイル(passwd ファイルと shadow ファイル)が更新されていることを確認した.
= gate-toroku-system ソースの移動
ソースのバックアップを残した.
* 以下のように名前を変更してコピーした
# cp -r gate-toroku-system gate-toroku-system_2017_11_22
= doc ディレクトリのシンボリックリンク作成
/usr/local/gate/ にある doc ディレクトリのシンボリックリンクを/home/gate/public_html/ に作成した.
# cd /home/gate/public_html/
# ln -s /usr/local/gate/doc
# ls -l
root@ner-itpass:/home/gate/public_html# ls -l
合計 64
lrwxrwxrwx 1 root root 19 2010-10-15 19:40 doc -> /usr/local/gate/doc
= gate-db-to-ezmlm の設定
root になりかわり, /usr/local/gate/bin/gate-db-to-ezmlm の「0. 実行ファイル, ドメインの指定」の項目を以下のように変更した.
変更前
$domainname='gfd-dennou.org';
$ezmlmlist='$EZMLMDIR/ezmlm-list';
$ezmlmsub='$EZMLMDIR/ezmlm-sub';
$ezmlmunsub='$EZMLMDIR/ezmlm-unsub';
変更後
$domainname='itpass.scitec.kobe-u.ac.jp';
$ezmlmlist='/usr/local/ezmlm/bin/ezmlm-list';
$ezmlmsub='/usr/local/ezmlm/bin/ezmlm-sub';
$ezmlmunsub='/usr/local/ezmlm/bin/ezmlm-unsub';
= 動作確認
#== 概要
#((<ITPASS サーバユーザ登録システム|URL:https://itpass.scitec.kobe-u.ac.jp/~gate/>))
#は, 情報の更新時に
#設定ファイルである gate.conf, gate-user.conf などをもとに
#/etc/sudoers を書き換える.
#設定ファイルに間違いがあると
#itpadmin グループ所属ユーザでさえ root になれなくなる.
#問題の詳細については
#((<[Memo2010][ITPASS] gate 設定ファイル修正ログ>))#
#を参照されたい.
#本稼動時にこれが起こるのを防ぐため,
#予め動作確認を行い, 設定ファイルの修正を行う.
#* 仕様?なのかインストール前に設定ファイルを正しく設定しても, インストール後に設定ファイルが書き換わってしまうようである
# * ((<[Memo2010][ITPASS] gate 設定ファイル修正ログ>))にそって設定をし直す
* /etc/gate/gate.conf の中に以下のような記述があった.
# データベースを共有するホストのリスト
#
# 奇数個目の文字列がホスト名、その次の文字列がホストに対する
# オプションをあらわす。複数のオプションは空白で区切られる。
# %yellow yellow グループのメンバだけにアカウント作成を限定
# wheel:green $WHEELUSER の設定にかかわらず green グループメンバが
# スーパーユーザに sudo できるようにする
%DB_SHARE_HOSTS = (
'ika-itpass.scitec.kobe-u.ac.jp','wheel:itpadm'
^^^^^^
「itpadm」となっていたので「itpadmin」と修正した.
* /etc/gate/gate-user.conf の中に以下のような記述があった.
# wheel 法人ユーザ. /etc/sudoers 生成時に特別扱いを行う
# ホスト毎に変更可能なので %DB_SHARE_HOSTS の説明も参照せよ
# $WHEELUSER = 'wheel';
$WHEELUSER = 'epaadmin';
^^^
「epaadmin」となっていたので「itpadmin」と修正した.
== 確認作業
((<ITPASS サーバユーザ登録システム|URL:https://new-itpass.scitec.kobe-
u.ac.jp/~gate/>))のページから登録情報の更新をした.
その後 /var/log/syslog を見て gate が作動したことを確認した.
#更新をした時刻に以下のような行があるはずである.
Nov 22 16:56:24 tako-itpass gate-daily[2958]: connect from 127.0.0.1 (127.0.0.1)
また, 同時刻に sudoers ファイルが書き換えられているか確認した.
$ ls -la /etc/sudoers
-r--r----- 1 root root 766 Nov 22 16:56 /etc/sudoers
sudoers ファイルに以下の行があることを確認した.
$ sudo less /etc/sudoers
(省略)
%itpadmin ALL=(ALL) ALL
(省略
念のため, itpadmin グループのユーザが実際に root になれることを確認した.
#もし失敗する場合は ((<URL:#設定ファイルの編集>)) の部分の
#設定を見直すこと.
すべての作業が完了したらテストユーザのアカウントを削除する.
== gate-touoku-system の html ファイルおよび pl ファイルの修正
* 専攻/学科名を変更するために /home/gate/public_html 以下のファイル:
index.html
index-user.html
user-koumoku.html
および /usr/local/gate/lib 以下の
gate-local.pl
を修正した.
* 次にリンク切れの Web ページを修正するため, /home/gate/public_html 以下の
user-authkey.html
を修正した.
* 来年度以降, gate-toroku-system のインストール時に上の修正箇所が反映されるように新しく gate-toroku-system.tgz を用意し, /home/gate/ 以下に置いた. その際, 今年度の作業時に扱ったファイルおよびディレクトリ,
gate-toroku-system.tar.gz
gate-toroku-system
gate-toroku-system_2017_11_22
を新しく /home/gate/ 以下に用意したディレクトリ, old_files/ 以下に格納した.
== 参考文献
* ((<[ITPASS2015]gate-toroku-system のインストールと設定>))
* ((<man gate-conf(5)|URL:https://itpass.scitec.kobe-u.ac.jp/~gate/doc/gate-conf.htm>))
[((<ITPASSサーバ構築・運用ドキュメント>)) へ戻る]
[((<ITPASSサーバ構築・運用ドキュメント>)) へ戻る]
#= 概要
#神戸大学 惑星学専攻/学科 ITPASS サーバのユーザ管理には gate-toroku-system (神戸 ITPASS サーバ用) を用いる.
#このソフトウェアは元々北大理学の EP計算機ネットワーク技術支援グループ で開発されたユーザ管理用ソフトウェアで,
#ITPASS サーバではこれを ITPASS サーバ用に修正を行って導入している (修正したものを以下では神戸版 gate と呼ぶ).
#なお, 現在の gate-toroku-system 最新版は電脳サーバで管理されている.
#また神戸版 gate は, old の gate_toroku_system を当該年度の初版として cvs で管理している.
#ここでは, 神戸版 gate のインストールおよび設定を行う.
#cvs 管理のための準備は((<[ITPASS2014] gate-toroku-system の開発・メンテナンスのための準備>))を参照.
#なお, サーバ運用中の gate の開発やメンテナンスについて ((<[ITPASS2012]gate-toroku-systemの開発とメンテナンス>))にも目を通しておくこと.
= 作業用アカウントの作成
* gate-toroku-system 管理用アカウント: gate を作成した.
ユーザ ID は 500 にした.
#(1 -- 999 の間 (システムユーザ領域) であれば他の番号でもよい).
# adduser --uid 500 --disabled-password gate
登録の際, フルネームは「Administrator of gate-toroku-system」とした.
* gate グループに gate 管理者を加えた.
# gate 管理者は, ((<[ITPASS2015]gate-toroku-systemの開発とメンテナンス>))に書かれている開発メンバーと, gate のインストールを行うメンバーとする.
#以下は 2016 年度の例.
# vigr
gate:x:500:murashin,noda,daisuke,nobesaka,mmiyuki,ikedaryo,rin
# vigr -s
gate:!::murashin,noda,daisuke,nobesaka,mmiyuki,ikedaryo,rin
= 必要なソフトウェアのインストール
gate に必要なパッケージをインストールした.
== パッケージの確認
dpkg コマンドを用いて, 必要なパッケージがインストールされていることを確認した.
#(((<[ITPASS2014]debianパッケージの引き継ぎ>)) でインストール済みのはずである).
#以下に示す実行例の "hoge" をパッケージ名に読み替えて実行する.
# # dpkg -l | grep hoge
#* 必要なパッケージ: rsync, wget, htroff, cvs, libjcode-pm-perl, libcrypt-passwdmd5-perl, libdatetime-perl, libdatetime-format-strptime-perl
# dpkg -l | grep rsync
# dpkg -l | grep wget
# dpkg -l | grep cvs
# dpkg -l | grep libjcode-pm-perl
# dpkg -l | grep libcrypt-passwdmd5-perl
# dpkg -l | grep libdatetime-perl
# dpkg -l | grep libdatetime-format-strptime-perl
#* htroff は apt-get でインストールできないため, ((<地球流体電脳倶楽部|URL:http://www.gfd-dennou.org/arch/cc-env/htroff/SIGEN.htm>))から
以下の4つのファイルを取得してインストールした.
htroff_2.0-1.dsc
htroff_2.0-1.tar.gz
htroff_2.0-1_all.deb
htroff_2.0-1_i386.changes
# wget http://www.gfd-dennou.org/arch/cc-env/htroff/htroff_2.0-1.dsc
# wget http://www.gfd-dennou.org/arch/cc-env/htroff/htroff_2.0-1.tar.gz
# wget http://www.gfd-dennou.org/arch/cc-env/htroff/htroff_2.0-1_all.deb
# wget http://www.gfd-dennou.org/arch/cc-env/htroff/htroff_2.0-1_i386.changes
# dpkg -i htroff_2.0-1_all.deb
# dpkg -l | grep htroff
= gate ユーザ宛のメールを転送する
* /home/gate/.qmail に管理者のメールアドレスを書き込んだ.
# vi /home/gate/.qmail
&itpadmin
= gate-toroku-system のソースの取得と展開
ika-itpass の /home/gate から gate-toroku-system のソース(gate-toroku-system.tar.gz)
を tako-itpass の /home/gate にコピーし, 展開した. 展開は以下のコマンドで実行した.
# tar xvfz gate-toroku-system.tar.gz
= 設定ファイルの編集
== gate.conf
ika-itpass の /etc/gate/ の下から gate.conf をコピーし tako-itpass の /etc/gate/ の下に置いた.
# cd /etc
# mkdir gate
gate.conf 内の$DBSERVER を以下のように編集した.
$DBSERVER = “tako-itpass.scitec.kobe-u.ac.jp";
また, %DB_SHARE_HOSTS が以下のようになっていることを確認した.
%DB_SHARE_HOSTS = (
'ika-itpass.scitec.kobe-u.ac.jp','wheel:itpadmin'
# 'dennou-k.kugi.kyoto-u.ac.jp','wheel:dcstaff',
# 'dennou-h.ees.hokudai.ac.jp','wheel:dcstaff',
# 'dennou-q.geo.kyushu-u.ac.jp','wheel:dcstaff'
);
== gate-user.conf
同様にして gate-user.conf をコピーし /etc/gate に置き, $WHEELUSER が 'itpadmin' になっているか確認した.
$WHEELUSER = 'itpadmin';
= gate-toroku-system CGI を動作させるための apache2 設定
CGI の動作に関して, apache2 の設定を確認した.
* apache を動作させるユーザ, グループ
* apache がどのユーザ, グループの権限で動作するかは /usr/local/apache2/conf/httpd.conf 内の「 User 」 と「 Group 」で指定される.
User www-data
Group www-data
となっていた.
* 「 User 」,「 Group 」に指定されているユーザやグループが gate.conf の
$CGIUSER に指定されているユーザと一致していることを確認した.
$CGIUSER = "www-data”;
* /usr/local/apache2/cgi-bin/ の CGI が動作するために /usr/local/apache2/conf/httpd.conf で下記の記述があることを確認した.
</IfModule>
<IfModule cgid_module>
#
# ScriptSock: On threaded servers, designate the path to the UNIX
# socket used to communicate with the CGI daemon of mod_cgid.
#
Scriptsock cgisock
</IfModule>
#
# "/usr/local/apache2/cgi-bin" should be changed to whatever your ScriptAliased
# CGI directory exists, if you have that configured.
#
<Directory "/usr/local/apache2/cgi-bin/">
AllowOverride AuthConfig Limit
Options +ExecCGI +FollowSymLinks +IncludesNoExec
Require all granted
</Directory>
* さらに, /usr/local/apache2/conf/httpd.conf において, LoadModule ... が羅列してある部分の末行に以下の行を追記した.
LoadModule cgid_module modules/mod_cgi.so
= make とインストール
make とインストールを行う.
# su gate
$ cd ~gate/gate-toroku-system/
$ perl ./config.pl
$ make
$ exit
$ mkdir /usr/local/gate/
$ mkdir /usr/local/gate/bin
$ sudo -s
# cd ~gate/gate-toroku-system
# make install
#make したときに
# make[1]: Entering directory '/home/gate/gate-toroku-system/if_sndr_from'
# install if_sndr_from.pl /usr/local/gate/bin/if_sndr_from.pl
# install: 通常ファイル `/usr/local/gate/bin/if_sndr_from.pl' を削除できません: 許可がありません
# Makefile:15: recipe for target 'install' failed
# make[1]: *** [install] Error 1
#というエラーが出るのは仕様である. make install 時のエラーも同様に仕様である.
#make した後に /usr/local/gate/bin を手動で作り make install すればよい.
#実行ファイルや man 用ファイル, HTML ファイルは /usr/local/gate 以下にインストールされる.
#(IP 管理用の設定ファイルも同様の場所に gate-ip.confとしてインストールされる).
== cgi のシンボリックリンク作成
/usr/local/gate/lib/cgi-bin 以下にインストールされる cgi のシンボリックリンクを /usr/local/apache2/cgi-bin 以下に作成した.
# cd /usr/local/apache2/cgi-bin
# ln -s ../../gate/lib/cgi-bin/gate-*.cgi .
== gate-db-to-sudoers の編集
* /usr/local/gate/sbin/gate-db-to-sudoers の Defaults で始まる部分に以下を追加した.
# This is /etc/sudoers file, generated by gate-db-to-sudoers.
# If you are to edit this file, do not edit it directly.
Defaults env_reset
Defaults mail_badpass
Defaults secure_path="/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin"
Defaults mailfrom=root <--追記
root ALL=(ALL:ALL) ALL
* visudo を実行して上の追記箇所を追加した.
= 実行ファイルへのパスの設定
インストールした gate-toroku-system の実行ファイル群へパスを通した.
#((<[ITPASS2016]パスの設定>)) の ((* <一般ユーザ用コマンドのパス> *)) に #((*/usr/local/gate/bin*)) を,
#((* <システム管理用コマンドのパス> *)) に ((*/usr/local/gate/sbin*)) を追加する.
* 具体的には, 以下のようにした.
* /etc/bash.bashrc の冒頭に
# add PATH for local installed softwares
PATH="${PATH}:/usr/local/gate/bin"
# add PATH for local installed softwares (for root)
if [ "`id -u`" -eq 0 ]; then
PATH="${PATH}:/usr/local/gate/sbin"
fi
export PATH
を追加した.
* /etc/csh.cshrc の冒頭に
# add PATH for local installed softwares
set path = ($path /usr/local/bin /usr/bin /bin /usr/local/gate/bin)
# add PATH for local installed softwares (for root)
if ( "`id -u`" == 0 ) then
set path = ($path /usr/local/sbin /usr/sbin /sbin /usr/local/gate/sbin)
endif
を追加した.
* /etc/zsh/zshenv に
# add PATH for local installed softwares
export PATH="$PATH:/usr/local/gate/bin"
# add PATH for local installed softwares (for root)
if [ "`id -u`" -eq 0 ]; then
export PATH="$PATH:/usr/local/gate/sbin"
fi
の記述を追加した.
= マニュアルへのパスの設定
#((<[ITPASS2016]パスの設定#man 関連のパスの設定>)) を参照し, /etc/manpath.config に以下の行を追加した.
MANDATORY_MANPATH /usr/local/gate/man/ja
MANPATH_MAP /usr/local/gate/bin /usr/local/gate/man/ja
MANPATH_MAP /usr/local/gate/sbin /usr/local/gate/man/ja
MANDB_MAP /usr/local/gate/man/ja /usr/local/gate/man/ja
= Web インターフェースのチェック
* https://tako-itpass.scitec.kobe-u.ac.jp/~gate/ にアクセスし, gate 登録システムのインデックスページが見えるか確認した.
* 上記のページからリンクされている個人申請(https://tako-itpass.scitec.kobe-u.ac.jp/cgi-bin/gate-user-apply.cgi)
#など
に移動し, CGI が動作しているかチェックした.
# * 「サーバ 版 gate-toroku-system について」のリンクが切れているが後ほどリンクを作成するので問題ない.
= ユーザの作成
== root ログインの準備
#以下の作業では ika から tako へ root ログインする必要がある.
#そのため,
root ログイン用の鍵の生成・設置と root ログインの許可を行った.
=== 鍵の生成と設置
root ログイン用の鍵を作成・設置した.
マニュアル通りに進めば root ログイン用の鍵はこの段階で作成・設置するはずであるが, 構築作業の何らかの段階で既に鍵を設置している場合は
以下の手順の確認のみ行う.
* ika に残った, 再構築前の tako の情報を削除
* ika の /root/.ssh/known_hosts の中の new の情報を削除した.
# cd /root/.ssh
# ssh-keygen -R tako-itpsass.scitec.kobe-u.ac.jp
で削除を行った.
* ((*ika*)) で 鍵を生成した
* 鍵の置き場とファイル名は, デフォルトの /root/.ssh/id_rsa とした
* パスフレーズは空にした
ika-itpass# cd /root/.ssh
ika-itpass# mv id_rsa id_rsa_bk
ika-itpass# ssh-keygen -t rsa
# * 鍵の上書きをするかという確認が出たので上書きを許可する.
* 公開鍵の設置
# ika で作成した公開鍵 ika:/root/.ssh/id_rsa.pub を tako:/root/.ssh/authorized_keys にコピーする. その際改行していないかに気を付けること.
tako の /root/.ssh/authorized_keys のパーミッションを変更した.
tako-itpass# chmod 600 /root/.ssh/authorized_keys
=== root ログインの許可
#* ((<[ITPASS2016]sshのインストールと設定#パスワード認証の拒否と root ログインの拒否設定>)) を参考に ((*tako への*))
root ログインの許可を設定した.
tako-itpass# vi /etc/ssh/sshd_config
PermitRootLogin yes
:
PasswordAuthentication no
:
UsePAM no
ssh デーモンを再起動した.
# systemctl restart ssh
== ユーザデータベースのコピー
ika の /home/gate/userdb を tako の /home/gate/userdb にコピーする.
* まず, -n オプションを付けて rsync の動作チェックを行った.
# いきなり rsync コマンドを実行すると予期せぬ間違い (転送元と転送先の設定を間違って, 転送先のファイルを全て消してしまう等) が起こりうるため,
# まずは rsync コマンドに -n オプションをつけて実行すること.
# -n オプションをつけて実行すると, 実際のファイル操作は行わずに, 操作されるはずのファイルのリストが出力される.
ika-itpass# rsync -n -av -e ssh --delete /home/gate/userdb/ tako-itpass.scitec.kobe-u.ac.jp:/home/gate/userdb/
* 実際にコピーを行った.
ika-itpass# rsync -av -e ssh --delete /home/gate/userdb/ tako-itpass.scitec.kobe-u.ac.jp:/home/gate/userdb/
== root ログインの設定を戻す
tako への root ログインを不許可に設定し直した.
tako-itpass# vi /etc/ssh/sshd_config
PermitRootLogin no
:
PasswordAuthentication no
:
UsePAM no
ssh デーモンを再起動した.
tako-itpass# /etc/init.d/ssh restart
* ika から tako への ssh ができなくなったことを確認した.
== /etc/shadow のコピー
#gate-toroku-system では, /etc/shadow に存在しないユーザがデータベース (/home/gate/userd) に居た場合, 初めてユーザを作成したと認識して
#保証人にメールを送信するようになっている.
#/home 領域を old からコピーする際 (後日に行う) にこの理由によって大量のメールが送信されないよう, 先に old の /etc/shadow の一部を new の
#/etc/shadow にコピーしておく.
* old の /etc/shadow のうち UID 1000 ~ 29999 の gate-toroku-system で管理されるユーザーについて, そのアカウント名の行をコピーして new の/etc/shadow のファイルに追加した. 各ユーザに対する uid は /etc/passwd に書かれているものを確認した.
# lv /etc/passwd
# root:x:0:0:root:/root:/bin/bash
# daemon:x:1:1:daemon:/usr/sbin:/bin/sh
# bin:x:2:2:bin:/bin:/bin/sh
# sys:x:3:3:sys:/dev:/bin/sh
# ^ ここが uid
== 最初の保証人ユーザ作成
#* ユーザ登録申請時にメーリスが流れるので予めアナウンスすること.
* 個人申請
(https://new-itpass.scitec.kobe-u.ac.jp/cgi-bin/gate-user-apply.cgi) にアクセスし, ユーザ登録申請を行った.
# (テスト用なので適当なユーザーでよい)
* 保証人は先に作ったユーザ "gate" とした
# * ((*作業完了後にユーザーは削除するのでパスワードを覚えておくこと*))
* 登録申請後, /home/gate/userdb/pending の下に申請者の (申請ログイン名がついたファイル) が生成されているか確認した.
* 承認を行うために保証人 "gate" の登録システム用パスワードを設定した
* gate ユーザに成り代わり, 登録システム用パスワードを設定した
# su gate
$ cd
$ htpasswd -cd ~gate/.gate gate
* ここで設定したパスワードを使い, "gate" ユーザとして登録申請中のテストユーザを承認した
# * https://new-itpass.scitec.kobe-u.ac.jp/cgi-bin/gate-user-accept.cgi にアクセスして行う
* その後, 承認したテストユーザのデータベースファイルが /home/gate/userdb/stable へ移動していることを確認した
= アカウント生成
#/home/gate/userdb の中にあるデータベースファイルをシステムに反映させるために, root 権限で /usr/local/gate/lib/gate-daily を実行した
* gate-daily は /etc/gate/gate.conf を参照するため, 起動前に gate.conf内の 'old-itpass' を 'new-itpass' と書き換えた(二ヵ所)
* その後以下を実行した
# perl /usr/local/gate/lib/gate-daily
すると
No filesystems with quota detected
と表示されたがこれは quota の設定がまだのためである.
* /etc/{passwd, group, shadow} に, 登録したユーザの情報が新たに書き込まれていることを確認した.
また /home に /home/gate/userdb 以下に存在するユーザのディレクトリができていることを確認した.
= bind の所有グループの変更
#((<[ITPASS2016]bindのインストールと設定#編集したファイルのパーミッション設定>)) にあるように,
bind 関連のファイルの所有グループを itpadmin に変更した.
root@new:/usr/local/bind/etc# chgrp -R itpadmin .
* 所有者やパーミッションが以下のように設定されていることを確認した.
root@new:/usr/local/bind/etc# chmod 640 rndc.conf
root@new:/usr/local/bind/etc# chown bind namedb/named.conf
root@new:/usr/local/bind/etc# chmod 640 namedb/named.conf
= /etc/aliases の変更
#/etc/aliases の root に対応するユーザは, インストール時に作ったユーザになっているはずである.
#test という名前のユーザを作った場合は, 以下の行が存在するはずである.
/etc/aliases の中の
root: test
これを itpadmin に書き換える.
root: itpadmin
設定を反映するため,
# newaliases
を実行した.
ここで許可がないというメッセージが出たが,
/usr/bin/newaliases は /usr/sbin/exim4 のシンボリックリンクであり,
exim4 に実行権限が付与されていないためである.
#ここでは MTA に exim4 ではなく qmail を使うため,
#実行権限を付与する必要はない.
#/etc/aliases を書き換えると newaliases コマンドを実行するのは
#一般的な操作であるため, ここではあえてマニュアルに残しておく.
= デーモンモードでの運用
ユーザ, ホストのデータベースをシステムに反映させるため, デーモンモードでの運用の設定を行う.
* gate-sys.conf の設定
/etc/gate/gate-sys.conf 中の $USE_DAEMON 変数が 1 であることを確かめた.
$USE_DAEMON = 1;
* gate-toroku-system 用のポートの作成
/etc/inetd.conf に以下の一行を付け足した.
gate stream tcp nowait root /usr/sbin/tcpd /usr/local/gate/lib/gate-daily -N
* ポート番号の設定
/etc/services に以下の行を付け足した.
gate 8888/tcp # gate-toroku-system
* TCP wrapper によるセキュリティ強化
# gate ポートは, 登録サーバからのアクセスさえ受け付けられればその役目を果たす.
# そのため, TCP wrapper を使用してアクセスを登録サーバからのものに限定する.
# ITPASS サーバは 1 台での運用なので, 自身からのアクセスのみ許可する.
* /etc/hosts.deny の編集
まず, 全てのホストからの gate ポートへのアクセスを拒否するよう /etc/hosts.deny に以下の一行を追加した.
gate-daily: ALL
* /etc/hosts.allow の編集
登録サーバ自身 (new) からのアクセスは許可するよう, /etc/hosts.allow に以下の一行を追加した.
gate-daily: 127.0.0.1
* 登録サーバ以外のホストからのアクセスが拒否されるか確認した.
google.com で試した
root@new-itpass:/home/gate# tcpdmatch gate-daily google.com
client: hostname kix06s02-in-f14.1e100.net
client: address 216.58.197.14
server: process gate-daily
access: denied
client: hostname del01s06-in-x07.1e100.net
client: address 2404:6800:400a:804::200e
server: process gate-daily
access: denied
# denied とあれば拒否されている.
次に, 登録サーバ自身からのアクセスが許可されているか確認した.
root@new-itpass:/home/gate# tcpdmatch gate-daily localhost
client: hostname localhost
client: address ::1
server: process gate-daily
access: denied
client: hostname localhost
client: address 127.0.0.1
server: process gate-daily
access: granted
# granted とあれば許可されている.
* inetd を再起動した
# /etc/init.d/openbsd-inetd restart
[ ok ] Restarting openbsd-inetd (via systemctl): openbsd-inetd.service.
* 確認
CGI から適当なユーザの申請および認証を行う. 認証して数分後に /etc 以下のシステムファイル(passwd ファイルと shadow ファイル)が更新されていることを確認した.
= gate-toroku-system ソースの移動
ソースのバックアップを残した.
* 以下のように名前を変更してコピーした
# cp -r gate-toroku-system gate-toroku-system_2017_11_22
= doc ディレクトリのシンボリックリンク作成
/usr/local/gate/ にある doc ディレクトリのシンボリックリンクを/home/gate/public_html/ に作成した.
# cd /home/gate/public_html/
# ln -s /usr/local/gate/doc
# ls -l
root@ner-itpass:/home/gate/public_html# ls -l
合計 64
lrwxrwxrwx 1 root root 19 2010-10-15 19:40 doc -> /usr/local/gate/doc
= gate-db-to-ezmlm の設定
root になりかわり, /usr/local/gate/bin/gate-db-to-ezmlm の「0. 実行ファイル, ドメインの指定」の項目を以下のように変更した.
変更前
$domainname='gfd-dennou.org';
$ezmlmlist='$EZMLMDIR/ezmlm-list';
$ezmlmsub='$EZMLMDIR/ezmlm-sub';
$ezmlmunsub='$EZMLMDIR/ezmlm-unsub';
変更後
$domainname='itpass.scitec.kobe-u.ac.jp';
$ezmlmlist='/usr/local/ezmlm/bin/ezmlm-list';
$ezmlmsub='/usr/local/ezmlm/bin/ezmlm-sub';
$ezmlmunsub='/usr/local/ezmlm/bin/ezmlm-unsub';
= 動作確認
#== 概要
#((<ITPASS サーバユーザ登録システム|URL:https://itpass.scitec.kobe-u.ac.jp/~gate/>))
#は, 情報の更新時に
#設定ファイルである gate.conf, gate-user.conf などをもとに
#/etc/sudoers を書き換える.
#設定ファイルに間違いがあると
#itpadmin グループ所属ユーザでさえ root になれなくなる.
#問題の詳細については
#((<[Memo2010][ITPASS] gate 設定ファイル修正ログ>))#
#を参照されたい.
#本稼動時にこれが起こるのを防ぐため,
#予め動作確認を行い, 設定ファイルの修正を行う.
#* 仕様?なのかインストール前に設定ファイルを正しく設定しても, インストール後に設定ファイルが書き換わってしまうようである
# * ((<[Memo2010][ITPASS] gate 設定ファイル修正ログ>))にそって設定をし直す
* /etc/gate/gate.conf の中に以下のような記述があった.
# データベースを共有するホストのリスト
#
# 奇数個目の文字列がホスト名、その次の文字列がホストに対する
# オプションをあらわす。複数のオプションは空白で区切られる。
# %yellow yellow グループのメンバだけにアカウント作成を限定
# wheel:green $WHEELUSER の設定にかかわらず green グループメンバが
# スーパーユーザに sudo できるようにする
%DB_SHARE_HOSTS = (
'ika-itpass.scitec.kobe-u.ac.jp','wheel:itpadm'
^^^^^^
「itpadm」となっていたので「itpadmin」と修正した.
* /etc/gate/gate-user.conf の中に以下のような記述があった.
# wheel 法人ユーザ. /etc/sudoers 生成時に特別扱いを行う
# ホスト毎に変更可能なので %DB_SHARE_HOSTS の説明も参照せよ
# $WHEELUSER = 'wheel';
$WHEELUSER = 'epaadmin';
^^^
「epaadmin」となっていたので「itpadmin」と修正した.
== 確認作業
((<ITPASS サーバユーザ登録システム|URL:https://new-itpass.scitec.kobe-
u.ac.jp/~gate/>))のページから登録情報の更新をした.
その後 /var/log/syslog を見て gate が作動したことを確認した.
#更新をした時刻に以下のような行があるはずである.
Nov 22 16:56:24 tako-itpass gate-daily[2958]: connect from 127.0.0.1 (127.0.0.1)
また, 同時刻に sudoers ファイルが書き換えられているか確認した.
$ ls -la /etc/sudoers
-r--r----- 1 root root 766 Nov 22 16:56 /etc/sudoers
sudoers ファイルに以下の行があることを確認した.
$ sudo less /etc/sudoers
(省略)
%itpadmin ALL=(ALL) ALL
(省略
念のため, itpadmin グループのユーザが実際に root になれることを確認した.
#もし失敗する場合は ((<URL:#設定ファイルの編集>)) の部分の
#設定を見直すこと.
すべての作業が完了したらテストユーザのアカウントを削除する.
== gate-touoku-system の html ファイルおよび pl ファイルの修正
* 専攻/学科名を変更するために /home/gate/public_html 以下のファイル:
index.html
index-user.html
user-koumoku.html
および /usr/local/gate/lib 以下の
gate-local.pl
を修正した.
* 次にリンク切れの Web ページを修正するため, /home/gate/public_html 以下の
user-authkey.html
を修正した.
* 来年度以降, gate-toroku-system のインストール時に上の修正箇所が反映されるように新しく gate-toroku-system.tgz を用意し, /home/gate/ 以下に置いた. その際, 今年度の作業時に扱ったファイルおよびディレクトリ,
gate-toroku-system.tar.gz
gate-toroku-system
gate-toroku-system_2017_11_22
を新しく /home/gate/ 以下に用意したディレクトリ, old_files/ 以下に格納した.
== 参考文献
* ((<[ITPASS2015]gate-toroku-system のインストールと設定>))
* ((<man gate-conf(5)|URL:https://itpass.scitec.kobe-u.ac.jp/~gate/doc/gate-conf.htm>))
[((<ITPASSサーバ構築・運用ドキュメント>)) へ戻る]