ServersMan@VPSのCentOS 5で最初にする設定

2010-04-29 12:00 | tag: ,

webサーバとして利用するために、DTIが提供するVPSサービス ServersMan@VPS を契約しました。メモリ256MB、ディスク10GBのVPSが月額490円という低価格で利用できるサービスです。

低価格のレンタルサーバとしては、さくらインターネットが月額500円で提供する さくらのレンタルサーバ スタンダード が有名です。容量10GBで複数のバーチャルホストの運用を行うことができ、sshも解放されているなど高機能なレンタルサーバです。

今回ServersMan@VPSを利用することにしたのは、root権限を渡してもらえるサーバが欲しかったためです。現在考えている用途は静的なHTMLで構成されたwebサイトの公開ですのでさくらインターネットのサービスでも問題なく目的をはたせるのですが、サーバへのソフトウェアのインストールや設定変更が自分の責任で自由に行うことができるServersMan@VPSを使うことにしました。

以下、ServersMan@VPSを使い始めるために最初に行った設定の記録です。

初期状態

起動するサービス

runlevel 3で起動するサービスの一覧です。DTI独自のserversman、最近あまり使った記憶がないxinetdが起動しているのが気になります。

# /sbin/chkconfig --list | grep "3:on"
crond           0:off   1:off   2:on    3:on    4:on    5:on    6:off
httpd           0:off   1:off   2:off   3:on    4:off   5:off   6:off
iptables        0:off   1:off   2:on    3:on    4:on    5:on    6:off
network         0:off   1:off   2:on    3:on    4:on    5:on    6:off
saslauthd       0:off   1:off   2:off   3:on    4:off   5:off   6:off
serversman      0:off   1:off   2:off   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
xinetd          0:off   1:off   2:off   3:on    4:on    5:on    6:off

開いているポート

80/tcp(http)、22/tcp(ssh)が開いています。

# netstat -nl
Active Internet connections (only servers)
Proto Recv-Q Send-Q Local Address               Foreign Address             State      
tcp        0      0 :::80                       :::*                        LISTEN      
tcp        0      0 :::22                       :::*                        LISTEN      
Active UNIX domain sockets (only servers)
Proto RefCnt Flags       Type       State         I-Node Path
unix  2      [ ACC ]     STREAM     LISTENING     15739603 /var/run/saslauthd/mux

実行中プロセスの一覧

# ps ax
  PID TTY      STAT   TIME COMMAND
    1 ?        Ss     0:01 init [3]      
15540 ?        S<s    0:00 /sbin/udevd -d
18055 ?        Ss     0:00 syslogd -m 0
19998 ?        Ss     0:00 /usr/sbin/sshd
20007 ?        Ss     0:00 xinetd -stayalive -pidfile /var/run/xinetd.pid
20027 ?        Ss     0:00 /usr/sbin/httpd
20030 ?        S      0:00 /usr/sbin/httpd
20040 ?        Ss     0:00 crond
20053 ?        Ss     0:00 /usr/sbin/saslauthd -m /var/run/saslauthd -a pam -n 2
20175 ?        Rs     0:00 sshd: root@pts/0 
20437 ?        S      0:00 /usr/sbin/saslauthd -m /var/run/saslauthd -a pam -n 2
23600 pts/0    Ss     0:00 -bash
29736 pts/0    R+     0:00 ps ax
30132 ?        S      0:00 /usr/sbin/httpd

メモリの空き状況

# free -m
             total       used       free     shared    buffers     cached
Mem:           256         17        238          0          0          0
-/+ buffers/cache:         17        238
Swap:            0          0          0

ディスクの空き状況

# df -h
Filesystem            Size  Used Avail Use% Mounted on
/dev/simfs            9.8G  502M  9.3G   6% /
none                  128M  4.0K  128M   1% /dev

設定変更

ssh公開鍵認証の設定

パスワード認証によるsshのログインを禁止してセキュリティを強化するために、まずは公開鍵認証でログインできるよう設定します。

# mkdir ~/.ssh
# cat 作成済み公開鍵ファイル名 >> ~/.ssh/authorized_keys

※クライアントから ssh -i 秘密鍵ファイル名 user@hostでパスワード入力なしでログインできることを確認。

sshdでパスワード認証を禁止

公開鍵認証でログインできる状態になったらパスワード認証によるログインを禁止します。

/etc/ssh/sshd_config:

PasswordAuthentication no

設定後、sshdを再起動してください。

# /etc/init.d/sshd restart

ホスト名の設定

デフォルトでは dti-vps-srv07 などのようなホスト名が設定されています。適切なホスト名に変更します。

/etc/sysconfig/network:
次のような行を追加する。

HOSTNAME=host.example.jp

ロケールをja_JP.utf-8に変更

ロケールを en_US.UTF-8 から ja_JP.utf-8 に変更します。英語ロケールのままだと日本語を扱うソフトウェアで問題が発生することがあります。例えば、svnコマンドで日本語のファイル名を扱うことができません

/etc/sysconfig/i18n:

LANG="ja_JP.utf-8"

使わないサービスの停止

自動起動するサービスのうち、当面使う予定のないサービスを停止しておきます。また自動起動もしなよう設定します。

# /etc/init.d/saslauthd stop
# /etc/init.d/inetd stop
# /sbin/chkconfig saslauthd off
# /sbin/chkconfig xinetd off

ServersManの削除

ServersMan@VPSにはオンラインストレージ機能を実現するためのServersManというソフトウェアが導入されていますが、webサーバとして運用するには不要ですので削除します。

# yum erase smadmin serversman
# /etc/init.d/httpd restart

MTAのインストール

cronの実行結果等がメールで届くよう、MTAをインストールします。

メールを受けるのではなく送るだけであれば、Potfixの設定はデフォルトのままで問題ありません。

# yum install postfix
# /sbin/chkconfig postfix on
# /etc/init.d/postfix start

Postfix導入後、/etc/aliasesの"root:"で始まる行を更新し、root宛のメールを受け取るアドレスを設定します。

/etc/aliases:

root:           kanrisha@example.jp

/etc/aliasesを更新したら、忘れずにnewaliasesを実行して/etc/aliases.dbも更新する。

# newaliases

パッケージのアップデート

導入済みのパッケージを最新のものにアップデートします。

# yum update