yellow と kihada の入れ替えに先立ち,入れ替え後に新 yellow として稼働する kihada に以下のものをインストールする.
以下,特別な断りがないかぎり,kihada で行った作業について記述する.
kihada には CD-R ドライブがない.そのため OS インストールには USB メモリを使用する.ここでは 2nd DNS サーバ再構築の際に作成した USB メモリを再利用した.
kihada の電源が落ちていることを確認する.kihada に 作成した OS インストール用 USB メモリを挿入し,電源を入れる.
F9 キーを押して BIOS 設定画面にし,ブートデバイスの優先順位(のような項目が存在するはず)において USB の優先順位を 1 番にする.
その設定を保持して再起動.
boot menu が表示されるので,graphical install を選択.
言語
Japanese - 日本語 を選択
場所
日本
キーボード配置の選択
日本(106 キー)
ネットワークの設定
eth0 を選択
ネットワークの設定
DHCP の設定が自動で開始されるのでキャンセル ネットワークを手動で設定 IP アドレス 133.87.45.114 ネットマスク 255.255.255.0 ゲートウェイ 133.87.45.1 ネームサーバアドレス 133.87.45.70 133.87.45.66 133.87.1.11 ホスト名 kihada ドメイン名 ep.sci.hokudai.ac.jp
root のパスワード
任意のパスワードを設定
root の本名
あなたの本名
アカウント名
任意のアカウント名
アカウントのパスワード
任意のパスワードを設定
ディスクのパーティショニング
ガイド - ディスク全体を使う
パーティショニングするディスクの選択
sda を選択
パーティショニング機構
全てのファイルを1つのパーティションに(初心者ユーザには推奨)
パーティショニングの終了とディスクへの変更の書き込み
ディスクに変更を書き込みますか?
はい を選択
パッケージマネージャの設定
日本
Debian アーカイブミラー
dennou-h.gfd-dennou.org
HTTP プロキシの情報
空欄にしておく
パッケージマネージャの設定
Debian パッケージ利用調査に参加しますか?
いいえ
インストールするソフトウェアの選択
標準システムユーティリティのみにする
マスターブートレコードに GRUB ブートローダをインストールしますか?
はい(インストール先は sda)
以上でインストール完了.USB メモリを抜き取り,再起動.
$ export LC_ALL=C $ export LANG=C $ export LANGUAGE=C
$ su # apt-get install ssh
以後,遠隔ログインで作業可能.
コアマネとの相談で mondo*を決める(本年度は mondo1 だったので, 以下 mondo1 として記述する)
# adduser --uid 40003 mondo1
# apt-get install sudo # visudo
mondo1 に sudo 権限を追加
以後,mondo1で作業する
/etc/ssh/sshd_config の設定
PermitRootLogin no X11Forwarding no
/etc/hosts.deny の編集
sshd: ALL
を追加.
/etc/hosts.allow の編集
sshd: .ep.sci.hokudai.ac.jp
を追加.
# apt-get install ntpdate
NTPDATE_USE_NTP_CONF=no NTPSERVERS="ntp.hokudai.ac.jp"
と編集
# ntpdate-debian
現在の日付・時刻が表示されることを確認
# crontab -e 00 6 * * * root /etc/network/if-up.d/ntpdate
を追記.編集エディタには nano を用いた.
# apt-get install bind9
# cp /etc/resolv.conf /etc/resolv.conf_bk
resolv.conf を以下のように書き直す. (前の内容は削除した上で書き直す)
search ep.sci.hokudai.ac.jp nameserver 127.0.0.1
$ dig ep.sci.hokudai.ac.jp any
; <<>> DiG 9.9.5-9+deb8u8-Debian <<>> ep.sci.hokudai.ac.jp any ;; global options: +cmd ;; Got answer: ;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 39225 ;; flags: qr rd ra; QUERY: 1, ANSWER: 5, AUTHORITY: 2, ADDITIONAL: 1 ;; OPT PSEUDOSECTION: ; EDNS: version: 0, flags:; udp: 4096 ;; QUESTION SECTION: ;ep.sci.hokudai.ac.jp. IN ANY ;; ANSWER SECTION: ep.sci.hokudai.ac.jp. 86400 IN NS yellow.ep.sci.hokudai.ac.jp. ep.sci.hokudai.ac.jp. 86400 IN NS blue.ep.sci.hokudai.ac.jp. ep.sci.hokudai.ac.jp. 86400 IN MX 20 orange.ep.sci.hokudai.ac.jp. ep.sci.hokudai.ac.jp. 86400 IN MX 10 grey.ep.sci.hokudai.ac.jp. ep.sci.hokudai.ac.jp. 86400 IN SOA yellow.ep.sci.hokudai.ac.jp. postmaster.ep.sci.hokudai.ac.jp. 2016101722 10800 3600 604800 86400 ;; AUTHORITY SECTION: ep.sci.hokudai.ac.jp. 86400 IN NS yellow.ep.sci.hokudai.ac.jp. ep.sci.hokudai.ac.jp. 86400 IN NS blue.ep.sci.hokudai.ac.jp. ;; Query time: 588 msec ;; SERVER: 127.0.0.1#53(127.0.0.1) ;; WHEN: Tue Nov 08 12:39:46 JST 2016 ;; MSG SIZE rcvd: 208
ep.zone local.rev local.zone named.root をblue から持ってくる
# scp hogehoge@blue.ep.sci.hokudai.ac.jp:/var/cache/bind/ファイル名 /var/cache/bind
以下の記述を追加する.
zone "ep.sci.hokudai.ac.jp" { type master; file "/var/cache/bind/ep.zone"; };
bind の restart
# service bind9 restart
/var/log/daemon.log を見る
$ lv /var/log/daemon.log
Nov 8 12:47:04 kihada named[2754]: received control channel command 'stop' Nov 8 12:47:04 kihada named[2754]: shutting down: flushing changes Nov 8 12:47:04 kihada named[2754]: stopping command channel on 127.0.0.1#953 Nov 8 12:47:04 kihada named[2754]: stopping command channel on ::1#953 Nov 8 12:47:04 kihada named[2754]: no longer listening on ::#53 Nov 8 12:47:04 kihada named[2754]: no longer listening on 127.0.0.1#53 Nov 8 12:47:04 kihada named[2754]: no longer listening on 133.87.45.114#53 Nov 8 12:47:04 kihada named[2754]: exiting Nov 8 12:47:04 kihada systemd[1]: Starting BIND Domain Name Server... Nov 8 12:47:04 kihada systemd[1]: Started BIND Domain Name Server. Nov 8 12:47:04 kihada named[2836]: starting BIND 9.9.5-9+deb8u8-Debian -f -u bind Nov 8 12:47:04 kihada named[2836]: command channel listening on 127.0.0.1#953 Nov 8 12:47:04 kihada named[2836]: command channel listening on ::1#953 Nov 8 12:47:04 kihada named[2836]: managed-keys-zone: journal file is out of date : removing journal file Nov 8 12:47:04 kihada named[2836]: managed-keys-zone: loaded serial 2 Nov 8 12:47:04 kihada named[2836]: zone 0.in-addr.arpa/IN: loaded serial 1 Nov 8 12:47:04 kihada named[2836]: zone 127.in-addr.arpa/IN: loaded serial 1 Nov 8 12:47:04 kihada named[2836]: zone 255.in-addr.arpa/IN: loaded serial 1 Nov 8 12:47:04 kihada named[2836]: zone localhost/IN: loaded serial 2 Nov 8 12:47:04 kihada named[2836]: zone ep.sci.hokudai.ac.jp/IN: loaded serial 2016110554 Nov 8 12:47:04 kihada named[2836]: all zones loaded Nov 8 12:47:04 kihada named[2836]: running Nov 8 12:47:04 kihada named[2836]: zone ep.sci.hokudai.ac.jp/IN: sending notifies (serial 2016110554)
search ep.sci.hokudai.ac.jp nameserver 127.0.0.1 nameserver 133.87.45.70 nameserver 133.87.1.11
とする.
以上のパッケージは apt-get install すればよい.
htroff_2.0-1
これは以下の方法で取得
# wget http://www.gfd-dennou.org/arch/cc-env/htroff/htroff_2.0-1_all.deb # dpkg -i htroff_2.0-1_all.deb
# adduser --uid 500 --disabled-password gate
管理者の名前は Administrator of gate-toroku-system とした.
gate グループに gate 管理者を加える.
/etc/group を
gate:x:500:morikawa,mym,odakker,takahisa,michi
と編集.
.shosts 認証を可能にする. /etc/ssh/sshd_config を以下のように編集する.
(変更前) IgnoreRhosts yes HostbasedAuthentication no (変更後) IgnoreRhosts no HostbasedAuthentication yes
ファイル編集後, ssh を再起動する.
# service ssh restart
gate ユーザになる.
$ sudo -u gate -s -H
/home/gate へ移動する.
$ cd /home/gate/
.shosts を作成する. ファイルに以下のように書きこむ.
orange.ep.sci.hokudai.ac.jp gate
.shosts のパーミッションを変更し gate 以外のユーザが見れないようにする.
$ chmod 600 .shosts
/usr/bin/ssh, /usr/bin/ssh-keygen の s ビットを立てる.
.shosts 認証を有効にするため, /etc/ssh/ssh_config を以下のように編集.
HostbasedAuthentication yes PreferredAuthentications hostbased,publickey,password,keyboard-interactive
gate ユーザになる.
$ sudo -u gate -s -H
orange の公開鍵が既に存在しているかを調べる.
$ ssh-keygen -F orange.ep.sci.hokudai.ac.jp
存在しないはずなので,orange の公開鍵を取得する.アドレスはフルドメインで入力する.
$ ssh orange.ep.sci.hokudai.ac.jp
ここで公開鍵を作るかどうかを聞かれるので yes と入力する.
Are you sure you want to continue connecting (yes/no)? > yes
Ctrl + c で出る.
gate ユーザになる.
$ sudo -u gate -s -H
.ssh/known_hosts にローカルホストの公開鍵が存在するかを確認し,あれば削除する.
$ ssh-keygen -F kihada.ep.sci.hokudai.ac.jp
公開鍵を取得する. (アドレスはフルドメインで入力する)
$ ssh kihada.ep.sci.hokudai.ac.jp
ここで公開鍵を作るかどうかを聞かれるので yes と入力する.
Ctrl + c で出る.
$ sudo -u gate -s -H $ cd /home/gate $ scp hogehoge@orange.ep.sci.hokudai.ac.jp:/home/gate/gate-toroku-system.tar.gz ./
$ tar xvfz gate-toroku-system.tar.gz $ cd gate-toroku-system_2014-06-05
/home/gate/gate-toroku-system/include/gate.conf の設定
## 本気モードとデバックモード # $DEBUG_CONFIG = 1; # 0: 本気モード, 1: デバッグモード
となっていることを確認. 入れ替え直前に本気モードに変える.
- ディレクトリ構成の設定 $VAR_NAMED_DIR = '/var/cache/bind';
に編集.
Config.mk の生成
$ exit (一般ユーザに戻る) $ sudo -u gate -s -H $ cd /home/gate/gate-toroku-system_2014-06-05 $ perl ./config.pl
make によるコンパイル
$ make
インストール
$ exit (一般ユーザに戻る) $ sudo -s (root ユーザになる) # cd /home/gate/gate-toroku-system_2014-06-05 # cp include/gate.conf /etc/gate.conf # make install
インストール終了後, プログラムファイル (gate-ip-accept 等)が /usr/local/bin, /usr/local/sbin, /usr/local/lib/gate にインストールされていることを確認する. また, /etc/passwd, /etc/shadow, /etc/group, /etc/sudoers が /ETC に存在していることを確認する.
/etc/gate.conf は
$USE_DAEMON = 1 ;
となっていた.
/etc/inetd.conf に以下の行を追加(1 行で書く)
gate stream tcp nowait root /usr/sbin/tcpd /usr/local/lib/gate/gate-daily -N
gate 用に 8888 番 ポートを割り当てる. /etc/services に以下の行を追加する.
gate 8888/tcp
/etc/inetd を起動する.
# service inetutils-inetd start
gate のポートには登録サーバである orange 以外のホストはアクセスできないようにする. /etc/hosts.deny を以下のように編集して全てのホストに対して gate ポートへのアクセスを禁止する.
gate-daily: ALL [改行]
/etc/hosts.allow を以下のように編集して orange に対して gate ポートへのアクセスを許可する.
gate-daily: orange.ep.sci.hokudai.ac.jp [改行]
# tcpdmatch gate-daily [orange.ep.sci.hokudai.ac.jp 以外のホスト名]
access: denied と表示された.
# tcpdmatch gate-daily orange.ep.sci.hokudai.ac.jp
access: granted と表示された.
# cp /etc/passwd ~/ # cp /etc/shadow ~/ # cp /etc/group ~/ # cp /etc/sudoers ~/ # chmod 400 passwd shadow group sudoers
万一端末が動かなくなった時に作業ができるように root になった端末をもう一つ確保しておく.
テストのため, /etc/gate.conf を一度以下のように書き換える
## 本気モードとデバックモード # $DEBUG_CONFIG = 0; # 0: 本気モード, 1: デバッグモード
!!! www での作業 ここから !!!
www サーバ (orange) から kihada の gate ポートに接続する.
$ telnet kihada.ep.sci.hokudai.ac.jp 8888
!!! www での作業 ここまで !!!
正常に接続できたかを確認するには /etc/passwd, /etc/shadow などのファイルのタイムスタンプを確認すればよい.
しかしここでは, 確認したが更新されていなかった. reboot してから再度接続したら更新された.
また, /etc/passwd/ から umeboshi が消えた(原因は不明)ので, あとで作りなおした.
(各サーバでチェック [www でじゃないよ!!]) $ date (現在時刻の確認) $ ls -l /etc/passwd /etc/shadow
また, /etc/passwd の中身がユーザ ID の順番に並び変えられていればよい.
動作確認終了後/etc/gate.conf の設定を元に戻す
## 本気モードとデバックモード # $DEBUG_CONFIG = 1; # 0: 本気モード, 1: デバッグモード
# apt-get install syslog-ng
# apt-get install logwatch
$ cd /usr/share/logwatch/default.conf # emacs logwatch.conf
emacs がないといわれたのでインストール
# apt-get install emacs
再度編集
# emacs logwatch.conf
log の送信先の設定
# Default person to mail reports to. Can be a local account or a # complete email address. MailTo = root
の部分を
MailTo = hogehoge@ep.sci.hokudai.ac.jp
に変更.
log を取る日程の範囲を設定
# The default time range for the report... # The current choices are All, Today, Yesterday Range = yesterday
を
Range = Today
に変更。(実際はyesterday)
log の詳しさを設定
# The default detail level for the report. # This can either be Low, Med, High or a number. # Low = 0 # Med = 5 # High = 10 Detail = Low
は
Detail = Low
のまま.
メールを送れるようにする
# dpkg-reconfigure exim4-config
メールサーバの設定
メール設定の一般的なタイプ:
"インターネットサイト: メールは SMTP を使って直接送受信される" を選択.
システムメール名:
kihada.ep.sci.hokudai.ac.jp に設定.
入力側 SMTP 接続をリスンする IP アドレス:
空にする.
メールを受け取るその他の宛先:
kihada.ep.sci.hokudai.ac.jp に設定.
メールをリレーするドメイン:
空にする.
メールをリレーするマシン:
空にする.
DNS クエリの数を最小限に留めますか(ダイヤルオンデマンド)?
<いいえ>を選択.
ローカルメールの配送方式:
"ホームディレクトリ内の Maildir 形式" を選択.
設定を小さなファイルに分割しますか?
<いいえ>を選択.
# logwatch --mailto hogehoge@ep.sci.hokudai.ac.jp
すぐに届いた。 試しにメールではなく、画面に出してみる。
# logwatch # logwatch --service sshd ################### Logwatch 7.4.0 (03/01/11) #################### Processing Initiated: Tue Nov 8 16:16:00 2016 Date Range Processed: today ( 2016-Nov-08 ) Period is day. Detail Level of Output: 0 Type of Output/Format: stdout / text Logfiles for Host: kihada ################################################################## --------------------- dpkg status changes Begin ------------------------ Installed: acl:amd64 2.2.52-2 : : : --------------------- Syslog-ng Begin ------------------------ Syslog-ng started: 2 Time(s) Syslog-ng stopped: 1 Time(s) ---------------------- Syslog-ng End ------------------------- --------------------- Disk Space Begin ------------------------ Filesystem Size Used Avail Use% Mounted on /dev/sda1 143G 1.5G 134G 2% / udev 10M 0 10M 0% /dev ---------------------- Disk Space End ------------------------- ###################### Logwatch End #########################
無事出力された.
これだけでは cron でメールが送られないようだったので, /etc/cron.daily/00logwatch を編集
"#execute" の次の行を
/usr/sbin/logwatch --mailto epdns[@]ep.sci.hokudai.ac.jp
とした.
スクリプトファイルを yellow から持ってきて展開する
# scp hogehoge@yellow.ep.sci.hokudai.ac.jp:/etc/cron.local /etc/
cron.local 以下のファイルの実行権限を確認
# ls -l /etc/cron.local/* /etc/cron.local/daily: 合計 16 -rwxr-xr-x 1 root root 75 11月 8 16:25 400_status-disks -rwxr-xr-x 1 root root 281 11月 8 16:25 420_status-network -rwxr-xr-x 1 root root 79 11月 8 16:25 430_status-rwho -rwxr-xr-x 1 root root 944 11月 8 16:25 800_authlog /etc/cron.local/weekly: 合計 4 -rwxr-xr-x 1 root root 149 11月 8 16:25 400_status-apt
権限が無ければ与える必要があるが,今回はあったのでその操作は不要
crontabに以下の記述を追加する
# crontab -e 25 6 * * * root cd /&& run-parts --report /etc/cron.local/daily | mail -s "`hostname -f` daily run outputs" [送り先メールアドレス] 47 6 * * 7 root cd /&& run-parts --report /etc/cron.local/weekly | mail -s "`hostname -f` weekly run outputs" [送り先メールアドレス]
cron デーモンを再起動する
# service cron restart