Linux(サーバー)

Linuxのサーバー関連のメモ

メーリングリストの設定

誰かに「相談」されてやることに。
あんたのための時間は作らなければありません。

で、調べてみたらソフトがいくつかあると。知らんかった・・・。

メーリングリスト管理ソフト一覧
http://www.kt.rim.or.jp/~atsato/ml/basic/software.html

この中でも設定方法の載ってるページ見つけたのでmajordomoにすることにする。

メーリングリストの設定と利用
http://ash.jp/env/srv/mlist.htm

Portage

Gentooでのパッケージ管理システムのこと。
使い方が結構めんどくて、ここで書くのもめんどいので他ページにお任せ。
以下を参照のこと。


メールの自動転送

メールサーバーで受け取ったメールを他のアドレスに転送するという設定。

  • メールサーバーの自分のホームディレクトリに「.forward」というファイルを作成する
    • このファイルに転送したいアドレスを書き込むだけ

例)
「user○atwiki.com」宛のメールアドレスを「cs611○wiki.com」に転送し、メールサーバーにメールを残す(○は@)
cs611@wiki.com
\user
上の行は見たとおり転送したいアドレス。他にもあれば複数を改行して並べていけばいい。
下の行はメールサーバーにメールを残すという記述。先頭の「\」(バックスラッシュ)を忘れずに。
これは、「user」だけだと「user」にメールを転送するということになって無限ループしてしまう。
ので、「\」をつけてそれをしないようにする。
もし忘れてもエラーを吐いて止まるらしいが、負荷はかかるし実際どうなるかわからんので気をつけて。

また、使っているソフトや環境で記述方法が若干違う場合があるそうで。

公開鍵設置

サーバーを公開鍵認証にするときに、各ユーザーは公開鍵を自分のホームディレクトリの「.ssh」ディレクトリに配置する必要がある。
このとき、パーミッションをちゃんとしないとクライアントからリモートログインしようとしても「鍵ないで」って言われる。
そこで次のように。

chmod 755 ~/.ssh

chmod 600 ~/.ssh/authorized_keys


計算サーバーnova(OS=Gentoo)でのmonoのインストール

「mono」とはC#のコンパイラのこと。
これをGentooにインストールを試みたところ、すんなりいかなかったので、メモ。


まず、Gentooでのパッケージのインストールには「emerge」を使用する。そこで、
emerge --search mono
で、monoの存在を確認。で、インストール。
emerge mono
が、できず。
emerge: there are no ebuilds built with USE flags to satisfy 
"x11-libs/cairo[X]".
!!! One of the following packages is required to complete your request:
- x11-libs/cairo-1.8.6-r1 (Change USE: +X)
以上のようなメッセージが出る。これを回避するために、
echo "dev-lang/mono minimal" >> /etc/portage/package.use
を、一旦実行。それから再び、
emerge mono
これでインストールが進んだ。


正直、エラーメッセージ回避のために何したかよくわかってないけど、できたからおっけー!?

メールサーバーのSSL認証更新

サーバー係ということでメールサーバの認証期限が切れたらしく、それに伴って作業。
ほぼ1日つぶれたよ(精神的に)…。

デフォルトと違うところとかもあったので、わかりくかったな。

まず、認証書などがあるディレクトリを探す。
これはデフォルトだったが、いろいろあってかなり迷った…。

デフォルトは、
/usr/share/ssl/misc/
らしく、このままのところに存在。

まずは、ディレクトリの中身確認。
ここで重要なのはSSLのスクリプトファイル「CA」。
これを実行できるようにしておかなければならない。これのおかげで作業は半自動的。

まあ、細かい説明は以下参照。
http://www.aconus.com/~oyaji/www/certs_linux.htm

その他ではdemoCAというディレクトリがあることも確認。

ここからは更新作業。

まずは、期限の切れた証明書の失効処理。
上記ページを参照して、ディレクトリの位置を確認。
実行。
このときに、実行コマンドの最後のファイル名をそろえるほうがいい。
保存ディレクトリは、
/usr/share/ssl/misc/demoCA/crl
だが、この中のファイル名は少し変えてあるのでそれにあわせる。
それから、ここにいくつのファイルがあったか・数字がいくつだったかはメモる。(後で必要になる)
更新されてるかは、lessコマンドとかでindex.txt内をチェック。
表示されている行の先頭が「R」になっていれば、失効処理は完了。

次に、新たな証明書の発行を行う。
これは以下のリンクの「認証サーバー証明書の更新」を参照。
http://www.system-act.com/server/openssl.html(ページの中程)

これが終わったら、最初のリンクの「◆CA用秘密鍵(cakey.pem)とCA用証明書(cacert.pem)の作成」から「■メール用証明書の作成」までを実行する。
これらで入力すべき項目がいろいろあるが、これは直接ファイルをlessコマンドなどで閲覧すれば見れるのでそれで確認を。
確認するファイルは、すでにある
/usr/share/ssl/misc/newcert.pem

次のコマンドを行うときには、おそらくserialがどうのというエラーが出るかもしれない
CA -sign
これは、各更新時にシリアルナンバーが更新されなければならない、からのようだ。
そこで、それがどこにあるかというと、
/usr/share/ssl/misc/demoCA/serial
というファイルである。このserialには数字のみが打ち込まれていてこれを変更することがシリアルナンバーの更新になるようだ。
そこで、思い出さなければならないのは、失効処理のときにあったディレクトリcrlの中にあったファイルの数字だ。
これがシリアルナンバーで揃えられていたようで、初期値は01であり、index.txtの行数に一致する。
ので、結局serialの数字は
crl内のファイルの数字+1(=index.txtの行数+1)
とすればよい。

このあとに上記の
CA -sign
を行い、指示にしたがって更新を続ける。
このときindex.txtの最後の行に更新処理が反映され、更新を終了することができる。

その他詳しいことは、内部wikiを参照。

Error: Transaction Check Error: installing package ???


通常サーバーの状態はlogwatchによって毎日メールが送られてくるのだが、この程Cronから以下のようなエラーメールが送られて来ていた。

差出人:Cron Deamon
本文
 /etc/cron.daily/yum.cron:

Error: Transaction Check Error:   installing package kernel-smp-2.6.9-89.0.19.EL needs 154KB on the /boot filesystem
  installing package kernel-devel-2.6.9-89.0.19.EL needs 154KB on the /boot filesystem
  installing package tzdata-2009u-1.el4 needs 154KB on the /boot filesystem

これはLinuxのカーネルをCronによって自動アップデートを行うときに、/bootの空き容量がなくなりアップデートできないことを示すものだそうで。
ってことは、空き容量を作ってやればよくて、それには古いカーネルを消してやればよくて、そんなことしてくれるコマンドがあるらしい。

package-cleanup

yum-utilのユーティリティで提供されているコマンド。
これにオプション「--oldkernels」をつけることで古いカーネルイメージの削除が可能。

詳しくは、コマンドマニュアルを参照のこと。
また当たり前だが、yum-utilがない場合にはインストールする必要がある。

今回実際に実行したコマンドは以下。

yum search yum-util   :yum-utilのインストール状況を確認
man package-cleanup   :コマンドとオプションの確認
package-cleanup --oldkernels  :実行

X Window System

計算サーバーであるGentooにXを導入することに。

GentooでのXはXorgを使うことになっていた。
まずは前処理で/etc/make.confに次を追加。
INPUT_DEVICES="keyboard mouse"
VIDEO_CARDS="nvidia"

マニュアルにのっとって、
emerge xorg-x11
とする。

次にインストールが終了したら、環境設定をする。
環境設定ファイルを次のコマンドで自動生成
Xorg -configure
これで/root/xorg.conf.newというファイルができあがる。
この中身をサーバーに合わせてカスタマイズするのだが、よくわからんかったw
とりあえず、無難な感じでカスタマイズ。意味があったかはわからんが。

設定が終わったら、これをテストする。
X -config /root/xorg.conf.new
しかし、ここでエラーが出てきた。

Xはウィンドウシステムということで、ビデオカードの設定が必要ということだ。
前述したが、今回のサーバーではnvidiaのビデオーカードを使用している。
それが、エラーメッセージではバージョンがあわないとかなんとか言われていた。

とりあえず次のようにして、調べる
emerge --search nvidia
ドライバは入っている。が、その上にnvidia-setteingsというのがある。バージョンがエラーメッセージに表示されていたものと一致している。
一応調べてみたが、入れてみるとよさそうなので入れてみることに。
emerge nvidia-settings
これでnvidia関連のエラーは消えた。

他のエラーは出ていた。それはモジュールの"dri"が見つからないといったものだ。
設定ファイルのModules部分の
Load "dri"
を消しても出てくるので、意味不明‥。今回は放置することに。

(追記)
driに関するエラーはバージョンの変更とともにxorg.confの仕様変更があったらしい。
Load "dri"
の部分をコメントアウト・削除するのを、以下のようにする
Disable "dri"
これでエラーは出なくなった。

だが、ここまでで起動しなかったが、一つだけたりないことがあったらしい。
それがsshの設定だった。

/etc/ssh/sshd_configファイルを開き、
X11Forwarding yes
とする。

これでXは動くらしい。
最後のsshの設定は自分でやってないからよくわからん。
勉強が足りんらしい。
足りることなんてあんのか?



最終更新:2010年08月09日 22:59
ツールボックス

下から選んでください:

新しいページを作成する
ヘルプ / FAQ もご覧ください。