funini.com 自由研究 mh

mh.sodanの使い方

相談員のメールサーバについて

メールサーバはmhという名前で、本郷にあります。 ネットワーク的には駒場とは別で、IPも独自のものなので、 駒場地区が停電する時でもメールは使えます。

まずはログイン

相談員のサーバー(ruriruri)から
$ ssh mh 
Password:<ログインパスワードを入力>
でリモートログインできます。あるいは、ECCSから
$ ssh [アカウント名]@mh.sodan.ecc.u-tokyo.ac.jp 
Password:<ログインパスワードを入力>
でもOKです。 このパスワードはログイン後、
$ passwd
Changing password for kei
(current) UNIX password:<ログインしたパスワードを入力>
New UNIX password:<新しいパスワードを入力>
Again:<もう一回新しいパスワードを入力>
とすると変更できます。

メール受信用の設定

mhでは、ログインパスワードどメール受信用パスワードは 別のものを設定してください。 メール受信用のパスワードは以下のように設定できます。
$ sudo /usr/sbin/saslpasswd [アカウント名]
Password:<設定したいパスワードを入力>
Again :<設定したいパスワードを入力>
これができたら、 サーバー名:mh.sodan.ecc.u-tokyo.ac.jp ユーザー名:[アカウント名] で使えます。 アクセスは出来ればSSLにして下さい。
(Thunderbirdなら対応してます。おすすめ!? 僕使ってないけど。) pop/imapはお好みで。でもせっかくだからIMAPがお勧め。

メーリングリストについて

アカウントを持ってる人は以下のメーリングリストを 講読することになってるので、手続きよろしくお願いします。 講読するには、 tutors-freetalk-ctl@sodan.ecc.u-tokyo.ac.jp tutors-users-ctl@sodan.ecc.u-tokyo.ac.jp に、講読したいアドレスから、本文が subscribe [名前] のようなメールを送ってみて下さい。 例えば、下のようになります。
To: tutors-freetalk-ctl@sodan.ecc.u-tokyo.ac.jp
From: kei@sodan.ecc.u-tokyo.ac.jp
Subject: hogehoge
---
subscribe Kei TAKAHASHI

WEBメールについて

https://mh.sodan.ecc.u-tokyo.ac.jp/mail/ でWEBメールを使うことができます。旅行先とかで便利です。 ただし、クッキーやブラウザにパスワードが残ることがあるのでご注意。

ともあれ

分からないことがあったら、けい(kei@sodan.ecc.u-tokyo.ac.jp)まで。

管理人修行

はじめに

ユーザー追加

nuさんのアカウントを作ってみます。
# adduser nu
# passwd nu
[パスワード設定]

# cyradm --user kei localhost
[自分のcyrusのパスを入力]
 cm user.nu
# visudo
nu      mh=NOPASSWD: /usr/sbin/saslpasswd nu
を追加。
# su - nu

カーネルアップデート

$ apt-get install kernel-sources kernel-headers kernel-doc
$ cd /usr/src
$ sudo chown kei:kei linux-hoge
$ rm linux
$ ln -s linux-hoge linux
$ cd linux
$ make menuconfig
$ make dep && make clean bzImage modules modules_install
$ sudo mount /boot
$ cp /usr/src/linux/arch/i386/boot/bzImage /boot/bzImage.hoge
$ sudo vi /etc/lilo.conf
$ sudo lilo

rpm

$ apt-get source postfix
$ cd ‾/rpm/SRPMS
$ rpm -ihv postfix-hoge.src.rpm
$ cd ‾/rpm/SPEC
$ vi postfix-hoge.spec
$ rpm -bb postfix.spec
$ cd ‾/rpm/RPMS/i386/
$ rpm -ihv postfix-hoge.i386.rpm

証明書アップデート

あちこちからコピペ。 こんなんでいいのか?
まずはimapdであるcyrusの証明書。
# openssl req -new -x509 -nodes -out /var/imap/server.pem ¥
-keyout /var/imap/server.pem -days 365
サーバー名としてmh.sodan....を入れるのを忘れないこと。 あとは適当でいいです。
次に、apache-sslの証明書。 参考にしたのはここ
# openssl genrsa -des 1024 > /usr/share/ssl/private/key.pem
# openssl rsa -in /usr/share/ssl/private/key.pem -out /usr/share/ssl/private/key.pem
# chmod 600 /usr/share/ssl/private/key.pem
# openssl req -new -days 365 -key /usr/share/ssl/private/key.pem -out /usr/share/ssl/csr.pem
# openssl x509 -in /usr/share/ssl/csr.pem -out /usr/share/ssl/certs/httpsd.pem -req -signkey /usr/share/ssl/private/key.pem -days 365
こっちもmh.sodan...を入れるのを忘れないこと。 二行目の操作は、パスフレーズをなくす、という操作です。 これを本当のcertがやると鍵ファイル盗まれるとピンチ、ですが、今回はまぁいいでしょう。

raid復旧

mhではraid0(ミラーリング)を使っています。 hda(Maxtorの100GB)のパーティーション一つとhdb(IBMの80GB)のパーティーション一つで 一つのraidドライブを構成しています。 例えば、/dev/md1 (ブートドライブ)は、/dev/hda1と/dev/hdb1から構成されています。
ハートーディスクの情報は以下のようにして見ることができます。
[root@mh root]# hdparm -i /dev/hda

/dev/hda:
 Model=Maxtor 4W100H6, FwRev=AAH01310, SerialNo=W6H1Z35C
...

[root@mh root]# hdparm -i /dev/hdb

/dev/hdb:
 Model=IBM-DTLA-307075, FwRev=TXAOA5AA, SerialNo=YSDYSFM4698
...
raidの設定は/etc/raidtabにあります。将来規模を増やす時には変えましょう。
# md1 is the /boot array
raiddev                 /dev/md1
raid-level              1
nr-raid-disks           2
chunk-size              8
nr-spare-disks          0
persistent-superblock   1
device                  /dev/hdb1
raid-disk               0
#
device                  /dev/hda1
raid-disk               1
...
今のところ、/dev/hda?と/dev/hdb?で/dev/md?を構成しています。

raidのエラーへの気づき方ですが、僕はroot当てのLogWatcherのメールで気づきました。 あるいは、なんかおかしいな?と思ったら、/proc/mdstatを見ましょう。
md1 : active raid1 hda1[2] hdb1[0]
      4200896 blocks [2/2] [UU]
が正常な状態です。
md1 : active raid1 hdb1[0]
      4200896 blocks [2/1] [U_]
みたいになってたら、hda1が落ちてます。(Uが一つしかない) ディスクを調達して、復旧しましょう。
ディスクを復旧するときは、まずパーティーションを切ります。 二つのディスクは必ずしも同じ構成でなくてもいいようですが、まあ同じにして悪いことはないでしょう。 パーティーション情報はfdisk で p して見るのがいいと思います。 今のhdbはこうなっています。
ディスク /dev/hdb: ヘッド 255, セクタ 63, シリンダ 9345
ユニット = シリンダ数 of 16065 * 512 バイト

 デバイス ブート   始点      終点  ブロック   ID  システム
/dev/hdb1   *         1        17    136521   fd  Linux raid 自動検出
/dev/hdb2            18      9345  74927160    5  拡張領域
/dev/hdb5            18      1062   8393931   fd  Linux raid 自動検出
/dev/hdb6          1063      1585   4200966   fd  Linux raid 自動検出
/dev/hdb7          1586      1847   2104483+  fd  Linux raid 自動検出
/dev/hdb8          1848      1880    265041   82  Linux スワップ
/dev/hdb9          1881      2800   7389868+  fd  Linux raid 自動検出
/dev/hdb10         2801      9345  52572681   fd  Linux raid 自動検出
これに合わせて、新しいディスクのパーティーションを切ります。 まずは基本領域を1-17で作って、拡張領域18-9345を作り、そこに論理領域を作ります。 fdiskでnを使って作ります。 あと、パーティーションタイプをfd(Linux raid autodetect)にします。
これが終わったら、以下のコマンドで同期します。フォーマットやコピーをする必要はありません。
# raidhotadd /dev/md5 /dev/hda5
/proc/mdstatで同期中である様子がわかります 。
md1 : active raid1 hda1[1] hdb1[0]
      136448 blocks [2/2] [UU]

md5 : active raid1 hda5[2] hdb5[0]
      8393856 blocks [2/1] [U_]
      [================>....]  recovery = 80.9% (6797376/8393856) finish=2.2min speed=11948K/sec
md6 : active raid1 hdb6[0]
      4200896 blocks [2/1] [U_
[UU]になったら完了です。