サーバ構築(1) OSインストール
何回かに分けてサーバの構築記録を公開します。まずはOSのインストールから。
ハードはもちろんML115。OSはCentOSの5.1(x86_64)をインストールします。FTP経由でネットワークインストール。手順はRHELのサイトで公開されているので割愛。主なポイントは以下の通りです。
- HDD (80GB * 2)はSoftware RAIDでRAID1を構成。
- インストール時の選択は「Webサーバ」「FTPサーバ」「MySQL」「開発ツール」のみ。
- FireWallは無効。
- SELinuxは無効。
- NICは eth0 を LANに接続、eth1は未使用。
例によって、Xwindowはインストールしません。サーバに必要なパッケージは、その都度 yum コマンドで追加インストールしていく予定。OSのインストールが完了すると、直後の再起動でsetup utilityが走るので、そこで不要なサービスを全て止めておきます。絞った結果がこれ。ここにリストされていないものは全て止めました。
# chkconfig --list | grep 3:on acpid 0:off 1:off 2:off 3:on 4:on 5:on 6:off anacron 0:off 1:off 2:on 3:on 4:on 5:on 6:off atd 0:off 1:off 2:off 3:on 4:on 5:on 6:off cpuspeed 0:off 1:on 2:on 3:on 4:on 5:on 6:off crond 0:off 1:off 2:on 3:on 4:on 5:on 6:off haldaemon 0:off 1:off 2:off 3:on 4:on 5:on 6:off iptables 0:off 1:off 2:on 3:on 4:on 5:on 6:off irqbalance 0:off 1:off 2:on 3:on 4:on 5:on 6:off lvm2-monitor 0:off 1:on 2:on 3:on 4:on 5:on 6:off mdmonitor 0:off 1:off 2:on 3:on 4:on 5:on 6:off messagebus 0:off 1:off 2:off 3:on 4:on 5:on 6:off network 0:off 1:off 2:on 3:on 4:on 5:on 6:off readahead_early 0:off 1:off 2:on 3:on 4:on 5:on 6:off sendmail 0:off 1:off 2:on 3:on 4:on 5:on 6:off smartd 0:off 1:off 2:on 3:on 4:on 5:on 6:off sshd 0:off 1:off 2:on 3:on 4:on 5:on 6:off syslog 0:off 1:off 2:on 3:on 4:on 5:on 6:off yum-updatesd 0:off 1:off 2:off 3:on 4:on 5:on 6:off |
何はともあれ最新の状態までアップデートします。
# yum -y update |
CentOS4以降は RPM-GPG-KEYも勝手に自分でimportするようになったので楽ちん。アップデートが完了したら一度再起動しておきます。
ここでユーザを登録するわけですが、普通に登録するもよし、旧サーバからpasswd、shadow、group、gshadowを持ってくるというのも一つの手ですが、私はスクリプトで一括登録します。まずは1行ごとに「ユーザ名 パスワード ホームディレクトリ ログインシェル UID」の順に記述したファイル user.txt を作成しておき、同じディレクトリでスクリプト user.sh を実行します。スクリプトの内容は以下の通り。
#!/bin/sh
while read USER PASS DIR SH ID
do
useradd $USER -u $ID -s $SH -d $DIR
if [ "$PASS" != "NOPASS" ];then
grep $USER user.txt | awk '{print $2}' | passwd --stdin $USER
fi
done < user.txt
|
続いて、セキュリティ強化のため、デフォルトで許可されているsshdのroot loginとパスワード認証を禁止します。サーバをグローバルにさらすとパスワードアタックがばしばし来ますので、これくらいはやっておいて損はないです。もっとも、うちでは外向けにsshdは開けないんですけどね。
# vi /etc/ssh/sshd_config [/etc/ssh/sshd_config] 39c39 < #PermitRootLogin yes --- > PermitRootLogin no 60c60 < PasswordAuthentication yes --- > PasswordAuthentication no |
この変更によりsshでパスワード認証が通らなくなりますので、リモートログインするために秘密鍵を生成します。これは当然一般ユーザ権限で行います。
$ ssh-keygen -t rsa Generating public/private rsa key pair. Enter file in which to save the key (/home/hoge/.ssh/id_rsa): Created directory '/home/hoge/.ssh'. Enter passphrase (empty for no passphrase): Enter same passphrase again: Your identification has been saved in /home/hoge/.ssh/id_rsa. Your public key has been saved in /home/hoge/.ssh/id_rsa.pub. The key fingerprint is: 46:24:00:cd:59:fb:5d:f8:e0:20:23:41:89:6e:e4:93 hoge@ml115.yomaigoto.jp |
生成されたid_rsa.pubをauthorized_keysにリネームコピーします。id_rsaは秘密鍵としてクライアントに格納します。
$ cd .ssh $ cp id_rsa.pub authorized_keys |
とりあえず、OSをインストールするときは、何はともあれここまで一気にやることにしております。