[[Computer and Network/Account and Project]]

* 2016 年分アカウント作業のメモ (2016-09-07 ほぼ完) [#tc90a5bc]

** アカウント作成手順 [#o4904ea7]
- 概要
-- スクリプト一覧 (ms1 がマスタ)
  /local/admin/2016/
    00_ms1_create_pwDBs.sh
    10_create_accdata.sh
    20_create_homedir.sh
    25_1s_prep_obstable.sh
    30_create_project.sh
    40_ms1_vncpasswd.sh
    50_mx3_vnc_xinetd.sh
  
    common.inc
    config.inc
    siteinfo.inc
  
    gen_one_passwd
    do_account_test

-- ユーザのホーム以下に置く、 rc ファイルのひな形
  /home/common/etc/
    bashrc.common
    bashrc.template    -- .bashrc
    cshrc.csh
    cshrc.template
    sample.Xresources
    sample.eggrc
    prep_user_rc_files.sh -- アカウントの rc ファイルの初期設置 (旧名 sample_cp.sh)


-- ユーザのプロジェクトファイル作成コマンド
  /home/common/naoj/bin/create_project.sh

-- 作業対象マシン
  ms1 1s as1 ss1 (LDAP アカウント登録 / ホームやプロジェクトの作成)
  gw (ゲートウェイアカウント登録 (パスワードファイル) / ホームの作成)

-- 2016変更点ほか

--- uid_base (config.inc) は 16000 とした (近い年と被らない事)
--- 制御機 (1c,mt1,rt1) には、観測アカウントを作らない事になった
--- Solaris 機 (v1c,c1c) が残っているが、以前から観測アカウントは無く、Solaris機作業は無くなった
--- aste-gw アカウントの 2016 年度 prefix は "acc"  (近い年と被らない事)
--- aste-gw にて、解析済データのアップロードが不要になった (sftp 停止)
--- 初期登録件数は 100 件、プロジェクト数は 3 つ
--- LDAP の DN 名をサイト間で統一した (まだ繋げていない)


-- 以下、特記の無い場合は各作業ホストの admin ユーザとなり、 /local/admin/2016 に移動 (chdir) して作業する。
  aste-xxx{admin}: cd /local/admin/2016



** アカウント情報ファイル作成 (aste-ms1 にて一度だけ) [#z979aa4b]
- アカウント名、 UID 、生成したパスワードなどをまとめたファイルが作られる。
- 同時に pw/lock という空ファイルが作られて、再実行を防止する。
(再実行するとパスワードを作り直してしまう)
  aste-ms1{admin}: cd /local/admin/2016
  aste-ms1{admin}: ./00_ms1_create_pwDBs.sh
  
  =>
    pw/pwdb_crypt_2016.csv
    pw/pwdb_secret_2016.csv
    pw/pwdb_secret_2016_vnc.csv
    pw/lock

- パスワードの再作成が本当に必要な場合にはいったん削除する事が必要。
  aste-ms1{admin}: rm pw/lock ; ./00_ms1_create_pwDBs.sh

- pwdb_secret_*.csv には生成した生のパスワード文字列そのものが含まれているので、
生成後に秘密のディレクトリに移動しておく。
  aste-ms1{root}# mv pwdb_secret_2016.csv  /local/admin/secret/
  aste-ms1{root}# mv pwdb_secret_2016_vnc.csv  /lcoal/admin/secret/
  aste-ms1{root}# chown root /local/admin/secret
  aste-ms1{root}# chmod 700  /local/admin/secret

-- PI にアカウントを割り当てた際にこのパスワードを通知する
-- 不用意に消さないよう owner=root, perm=700 とする / 適宜バックアップ
-- 後の VNC パスワード設定が済んだら生パスワードをオンラインに置いておく必要は無い

- pwdb_crypt_2016.csv には暗号化(ハッシュ化)済のパスワードが含まれており、
アカウント作業を行うホストにツール一式とともにコピーして使用する。
  aste-ms1{admin}: cd /local/admin
  aste-ms1{admin}: rsync -auvzH 2016 aste-xxx:/local/admin/



** アカウント登録 (LDAP サーバ, aste-gw) [#dff0a2da]
- 各ホストで作業用データを生成し、それを使ってアカウントを登録する。
  aste-xxx{admin}: cd /local/admin/2016
  aste-xxx{admin}: ./10_create_accdata.sh
  
  =>
    xxx.out/ldapvi.add
    xxx.out/useradd.run

- aste-gw では root にて useradd.run を実行すれば、必要なアカウントやホームディレクトリが作られて作業完了
  aste-gw{admin}: cd /local/admin/2016/gw.out
  aste-gw{admin}: su
  password: xxxxxxxx (root になります)
  
  aste-gw{root}# ./useradd.run
  
  =>  /home/acc000 ... /home/acc099

- LDAP サーバ (aste-gw 以外) では ldapvi を使用して、アカウントを登録。
(この段階ではホームディレクトリは作らない)
  aste-srv{admin}: /usr/bin/ldapvi -h ldaps://localhost/ -b dc=aste,dc=naoj -D cn=root,dc=aste,dc=naoj
-- パスワードを聞かれるので LDAP DB の管理パスワードを入力 (!= root user password)
-- ldapvi を実行するユーザが root ユーザである必要は特にない
-- vi で開かれるデータの末尾に ldapvi.add の内容を追加して vi を終了、修正をコミット(対話指示あり)
-- LDAP クライアント (サーバ自身も含む) では、 autofs のリスタートが必要

- 2016年は以下のホストで作業した。 (2016-09-02)
  ms1, 1s, as1, ss1
  gw



** ホームディレクトリの作成 (ファイルサーバ機 : 現在は LDAP サーバ機と同一) [#ad16bc66]

- スクリプト実行前の事前準備

-- ユーザ情報が引ける事を確認する (スクリプト中でファイルオーナーの設定などのために使うので、 'su' できる事を確認する)
  % id a16000
  uid=16000(a16000) gid=9600(astgrp) groups=9600(astgrp)
  % echo ~a16000
  /home/a16000
  % su a16000 .... 

-- ファイルサーバ機上のホームディレクトリの実パスを決める。
  2016 年:
  
  ms1 as1  --  /raid11/home_cu2016 (/a16000 ... /a16099)
  ss1 1s   --  /disk06/home_cu2016 (/a16000 ... /a16099)


-- 実パスを NFS4 export 位置 (/export/home_cu2016) にマウント
  /etc/fstab:
  
  /raid11/home_cu2016     /export/home_cu2016     none bind 0 0
    or
  /disk06/home_cu2016     /export/home_cu2016     none bind 0 0
  
  # mkdir /export/home_cu2016
  # mount /export/home_cu2016

-- /export を NFS4 export (この設定は毎年変える必要は無い)
  /etc/exports:
  
  /export aste-xxx(rw,fsid=0,crossmnt,no_root_squash)

-- クライアントからは /home/a16xxx で参照される (参考)
  ldap auto.home:
  
  cn=a16000,nisMapName=auto.home,dc=aste,dc=naoj
  objectClass: nisObject
  cn: a16000
  nisMapName: auto.home
  nisMapEntry: disk_h:/home_cu2016/a16000

-- 必要に応じて /home/common/etc を各サーバに同期する (.bashrc などのひな形)
  /home/common/etc:
  
  aste-ms1{admin}: rsync -auvzH /home/common/etc/ aste-srv:/home/common/etc/ 

- aste-ms1 から /local/admin/2016 をコピーのうえ root にてコマンド実行
  aste-srv{admin}: cd /local/admin/2016
  aste-srv{admin}: su
  password: xxxxxxxx (root になります)
  
  aste-srv{root}# ./20_create_homedir.sh

-- このスクリプトは、 home_cu2016 以下にホームディレクトリを作成 (mkdir) し、外部スクリプト /home/common/etc/sample_cp.sh を呼んで、 .bashrc などのひな型をコピーする

- 2016年は以下のホストで作業した。 (2016-09-02)
  ms1, 1s, as1, ss1


** cosmos3 へのプロジェクト登録準備 (aste-1s: /export/obstable/a16xxx) [#u45299f5]
- aste-ms1 から /local/admin/2016 をコピーのうえ root にてコマンド実行
  aste-1s{admin}: cd /local/admin/2016
  aste-1s{admin}: su
  password: xxxxxxxx (root になります)
  
  aste-obstab{root}# ./25_1s_prep_obstable.sh

- 山頂制御機 (aste-1c) が参照する /cosmos3/aste/obstable の実体を提供するホストのみ (aste-1s) で作業が必要。
-- /export/obstable/a16xxx のディレクトリを作成する (個別プロジェクト登録は次で)

- 2016年は aste-1s (のみ) で作業した。 (2016-09-06)


** プロジェクトの登録 (ユーザのホーム以下、および aste-1s: /export/obstable) [#y67c78a8]
- aste-ms1 から /local/admin/2016 をコピーのうえ root にてコマンド実行
  aste-obstab{admin}: cd /local/admin/2016
  aste-obstab{admin}: su
  password: xxxxxxxx (root になります)
  
  aste-obstab{root}# ./30_create_project.sh

- すべての観測アカウントについて、外部スクリプト /home/common/naoj/bin/create_projects.sh を呼びだす。
-- create_project.sh スクリプトは、観測アカウントのホーム以下にプロジェクトのひな型を作成する。
-- aste-1s では同じく /export/obstable/a16xxx/ 以下にもプロジェクトのツリーが作られる。 (この部分は、将来は aobs に任せたい)

- 2016年は以下のホストで作業した。(2016-09-06)
  ms1, 1s, as1, ss1



** 指示書作成VNCサーバ機 (aste-mx3) 準備 [#x80db58d]
- aste-ms1 の /local/admin/2016 にて、 root にてコマンド実行
  aste-ms1{admin}: cd /local/admin/2016
  aste-ms1{admin}: su
  password: xxxxxxxx (root になる)
  
  aste-ms1{root}# ./40_ms1_vncpasswd.sh
  
  =>  /home/[user]/.vnc/vncpasswd

-- 指示書作成 VNC サーバ aste-mx3 では、観測アカウント毎に個別の VNC サーバを動かす。
-- 各アカウント毎の専用VNCパスワードを設定する。
-- mx3 は ms1 のホームを共有するので、現在この作業は ms1 で行っている。
- 各アカウントのホームの下にパスワードが格納される。 (~a16000/.vnc/passwd)

- 観測アカウント毎の VNC サーバの起動設定を行う (こちらは mx3 にて行う)
  aste-mx3{admin}: cd /local/admin/2016
  aste-mx3{admin}: su
  password: xxxxxxxx (root になる)
  
  aste-mx3{root}# ./50_mx3_vnc_xinetd.sh
  
  =>
    mx3.out/aste-gdm.conf
    mx3.out/services.add
    mx3.out/xinetd-aste.d/
        aste-vnc-5900 ... aste-vnc-5999

-- aste-gdm.conf を /etc/security 以下に配置する。 (前年の定義と置き換える)
-- services.add を /etc/services に追記する。 (すでに追記されている場合もある)
-- xinetd-aste.d 以下のツリーを /etc 以下に配置する。(cp -a など)
-- xinetd を再起動する
  aste-mx3{root}# service xinetd restart

- 作業完 (2016-09-06)

** 遠隔観測VNCサーバ(aste-mx1)の準備 [#q47bf6c3]
- aste-ms1 から /local/admin/2016 をコピーのうえ root にてコマンド実行
-- 遠隔観測用アカウントasterobsとVNCサーバを用意する
-- asterobs (遠隔観測時の asteobs 相当) のパスワード (pwdb_secret_2016.csv) を設定する
-- 遠隔観測実行用VNCサーバにパスワード (pwdb_secret_2016_vnc.csv) を設定する
-- 観測用 VNC サーバのインスタンスは一つであり、これらは、すべての観測者で共有される

- root でログインして作業
  aste-mx1{root}# sudo -u asterobs passwd
  Changing password for user asterobs.
  Current Password: yyyyyyyy
  New password: xxxxxxxx
  Retype new password: xxxxxxxx
  passwd: all authentication tokens updated successfully.
  
  aste-mx1{root}# /usr/bin/vncpasswd /etc/vncpasswd
  Password: yyyyyyyy
  Verify: yyyyyyyy
  aste-mx1{root}# /bin/chown root.astctl /etc/vncpasswd
  aste-mx1{root}# /bin/chmod 440 /etc/vncpasswd

- /etc/vncpasswd ファイルにパスワードが格納される
  aste-mx1{root}# ls -l /etc/vncpasswd
  -r--r----- 1 root astctl 8 Apr  6 05:45 /etc/vncpasswd

- 作業完 (2016-09-06)


* 2016 アカウント作業確認点 [#ee532e33]

- ASTE ホスト (aste-gw を除く)
-- id 情報を引ける事 (getent passwd a160xx) - do_account_test - ok 2016-09-06
 a16000 - ms1 mx1 mx3 1x 1s ax1 as1 ss1
 a16099 - ms1 mx1 mx3 1x 1s ax1 as1 ss1
 acc000 - gw
 acc099 - gw
-- ホームにアクセス可能なこと (ls /home/a160xx) - do_account_test - ok 2016-09-06
 a16000 - ms1 mx1 mx3 1x 1s ax1 as1 ss1
 a16099 - ms1 mx1 mx3 1x 1s ax1 as1 ss1
 acc000 - gw
 acc099 - gw
-- パスワード変更が可能なこと (ldap config のチェック - パスワードは戻しておく) - ok 2016-09-06
 a16000 - ms1 mx1 mx3 1x 1s ax1 as1 ss1
-- パスワードログイン (ssh) が可能なこと - ok 2016-09-06
 a16000 - ms1 mx1 mx3 ax1 as1 1x 1s ss1
-- パスワードログイン (X11 console) が可能なこと - mx3 のみ ?
 a16000 - mx1 mx3 ax1 1x
 asteobs - mx1


- aste-gw
-- aste-gw のASTE室からのアクセス (acc000 でテスト)
--- aste201 から port=22  (asteobs@ms1 -> acc000@gw)
  pw ログイン可能 - ok 2016-09-06
  sftp 不可 - ok 2016-09-06
    ("Request for subsystem 'sftp' failed on channel 0")
--- aste201 から port=10022  (asteobs@ms1 -> acc000@gw)
  pubkey ログイン可 (sshd122.conf) - ok 2016-09-06
  pw ログイン不可 - ok 2016-09-06
    ("Permission denied (publickey,gssapi-keyex,gssapi-with-mic).")
  sftp 不可 - ok 2016-09-06
    ("Request for subsystem 'sftp' failed on channel 0")


-- aste-gw の台外アクセスチェック (sshd122.conf や pubkey 準備が必要)
--- 台外ホストから port=22
  ssh コマンドで到達不可 - ok 2016-09-06
    (ssh -v や telnet 22 で確認)
--- 台外ホストから port=10022 (sshd122.conf を調整しながらテスト)
  pw ログイン不可 - ok 2016-09-06
    (pubkey 設置なしで "Permission denied (publickey,gssapi-keyex,gssapi-with-mic).")
  sshd122.conf 許可で pubkey ログイン可 - ok 2016-09-06
  sshd122.conf 不許可で pubkey ログイン不可 - ok 2016-09-06
    ("Connection closed by 133.40.7.130")
  sftp アクセス不可 - ok 2016-09-06
    ("subsystem request failed on channel 0")


-- パーミッション目視確認 (700) - ok 2016-09-06
  ls -ld /home/acc???


-- VNC アクセス確認
--- 指示書作成 VNC サーバアクセス確認 (gw -> mx3) - ok 2016-09-06
  acc000@gw -> a16000-VNC on mx3
  接続後の画面で a16000 としてログインできること
--- 観測 VNC サーバアクセス確認 (gw -> mx1) - ok 2016-09-06
  acc000@gw -> VNC on mx1
  接続後の画面で asterobs としてログインできること


* 計算機アカウント作成後の作業 (作業移管にあたり、2017-04 追記) [#e51c6d98]

- 計算機アカウントをプロポーザル ID と関連づける
-- PI さんへの通知情報の作成
-- obslog-wiki への一覧ページの作成 (遠隔アクセス許可やデータ配布などの記録を行う)
- アカウント名、初期パスワードとともに PI さんに通知
-- 計算機担当がアカウント情報を作成し、内田さんがメール通知する
- aste-gw を経由した台外からの利用
-- 指示書作成や観測は台外からの遠隔利用を認めているので、通知後には希望する人から aste-admin 宛にメールが届く (アクセス元 IP, 公開キーが添付されている)
-- 上で示す計算機アカウント作成処理において、「台外 -> aste-gw」を除く仕掛けはすべて一括して準備ができている
-- 送ってもらった公開キーを aste-gw に設置
-- アクセス元 IP アドレス (アドレス範囲) を aste-gw に登録 (/etc/security/sshd.conf)
--- アクセス元 IP の制限は NRO が運用していた時代から
-- 参考
--- aste-gw では二つのポートで sshd を動かしているが、このうち外部からのアクセスを許しているのは TCP 10022 番ポート、こちらは公開キーアクセスのみを許している
--- aste-gw では 2012 年まで 20022 で sftp を動かしていたが現在使用していない (解析済データのアップロード用の名残)


* 旧アカウントに関する作業 [#x01f0e0c]

- 観測アカウント、ホーム
-- Linux ldap サーバからのアカウント削除 - done 2016-09-07
 ms1 (2015のみ残す)
 as1+1s (2013,2014,2015すべて削除)
-- ユーザホームディレクトリ - 
 2015年分のみ mx2 -> ms1 にコピーして残す
 それ以前は、指示書 (~account/proj?/obstable) のみ nrodb に当面保存

- aste-gw
-- 2013,2014,2015 年度アカウント停止
-- 2016 年度前半の tescam ssh ログイン (10022) 停止

- 指示書 VNCアクセス停止 (mx3)
 /etc/xinetd-aste.d/ 情報削除 (2015年分停止、2016年分に入れ替えた)


* メモ、反省点など [#n44d7eb7]

- aste-gw での sftp の扱いについて、まだ頭の中で混乱している。後で変えるかも。
- aste-gw -> aste201 への ssh アクセスを、立ち上げ測定の段階では一部許した。これは台外の開発者がチリにいる時に、三鷹のログを見たいという要求から。
- aste-gw -> aste201 の共同利用での ssh アクセスは、まだ躊躇している。
-- 現在は pubkey と VNC pw の壁があり、外から中向けの自動アクセスはほぼできないはずだが、可能になりそう。
-- リモート観測で cosmos GUI を X11 で外に出される (X11 転送を禁止しても阻止できない) と、状況をサポート担当が見られなくなる。時には連絡が取れず、 GUI を kill する事態が発生しそう。いいのかな。 ?

- newstar 関連のファイルがなくなり、「プロジェクト」のサイズが激減した (30MB/project -> ディレクトリのみ) 。これにより観測アカウントを余分に作っておく事が難しくなくなった。
- Linux 化を機に、プロポーザル番号をアカウント名として使えないかと考えたが、cosmos3の仕様としてアカウント名は八文字が最大値の様なのでプロポーザル番号に八文字制限を付けることになる。また、8文字アカウントの例は無くもない (eg.astecntl) が、文字列のnul終端などでトラブルが出そうなので、当面は止めておくこととした。

- nrodb でのバックアップに関して、詳細に詰めてない。きちんと書いてない。

- XXX 手戻りした場合の再テストを完全に実施していない。
- XXX as1, 1x の X11 ログインをテストして無い。


Front page   Edit Diff History Attach Copy Rename Reload   New Page list Search Recent changes   Help   RSS of recent changes