サーバ構築(1) OSインストール

Pocket

何回かに分けてサーバの構築記録を公開します。まずは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をインストールするときは、何はともあれここまで一気にやることにしております。

この記事にコメントする

Powered by WordPress, WP Theme designed by WSC Project. ログイン