2010年7月19日月曜日

Rackspace Cloud導入記その5(サーバー起動後にやる10の事)

前回までのエントリでサーバー起動、Server Imageの作成、サーバー停止という一連の動作を確認する事が出来ました。
今回はRackspace Cloudの具体的な操作ではなく、サーバーを起動させた後にまず行うべき事を簡単にまとめておきたいと思います。
サーバーを起動させたは良いものの、起動させたサーバーがクラックとかされたら大変ですからね。

  1. ロケールの変更
    起動直後は"en_US.UTF-8"になっているので"ja_JP.utf-8"に変更
    # vi /etc/sysconfig/i18n
    1 #LANG="en_US.UTF-8"
    2 LANG="ja_JP.utf-8"
    3 SYSFONT="latarcyrheb-sun16"

  2. タイムゾーンの変更
    起動直後はアメリカ時間になっているので日本時間に変更しましょう
    障害時に日本時間の方が分かりやすいです
    # cp /usr/share/zoneinfo/Japan /etc/localtime
    cp: overwrite `/etc/localtime'? y
    # date

  3. 外部NTPサーバーと時刻同期をする
    Rackspace CloudはホストOSと時刻同期はしてくれないようです
    サーバーがアメリカなので同期先もアメリカのサーバーにしました
    今回は米国標準技術局と同期しています
    # yum install -y ntp
    # crontab -e
    1 MAILTO=""
    2
    3 */5 * * * * /usr/sbin/ntpdate time-nw.nist.gov && /sbin/clock -w

  4. ユーザーディレクトリのひな形を作成
    これ以降作成するユーザーのホームディレクトリのひな形を作ります
    # mkdir -m 700 /etc/skel/.ssh
    # touch /etc/skel/.ssh/authorized_keys
    # chmod 600 /etc/skel/.ssh/authorized_keys

  5. 一般ユーザーの作成(例:oko_chang)
    なんでもrootで作業するのはやめましょう(自戒の念を込めて)
    # useradd oko_chang
    # passwd oko_chang
    Changing password for user oko_chang.
    New UNIX password:
    Retype new UNIX password:
    passwd: all authentication tokens updated successfully.

  6. ssh公開鍵と秘密鍵のペアを作成し、公開鍵を登録
    【Mac OS Xでssh公開鍵と秘密鍵のペアを作成する方法】
    $ ssh-keygen
    Generating public/private rsa key pair.
    Enter file in which to save the key :
    Enter passphrase (empty for no passphrase):
    Enter same passphrase again:

    秘密鍵「id_rsa」と、公開鍵「id_rsa.pub」が作成されます。
    デフォルトでは.ssh/以下に作成されます。

    公開鍵の中身をコピーして一般ユーザーのauthorized_keysに登録。

  7. rootユーザーのパスワード変更
    デフォルトのパスワードを使用するのはやめましょう
    # passwd
    Changing password for user root.
    New UNIX password:
    Retype new UNIX password:
    passwd: all authentication tokens updated successfully.

  8. sshdの設定を変更する
    root接続禁止、パスワード認証無効化、公開鍵認証方式の有効化
    # vi /etc/ssh/sshd_config
    39 PermitRootLogin no
    44 PubkeyAuthentication yes
    45 AuthorizedKeysFile .ssh/authorized_keys
    60 PasswordAuthentication no
    # /etc/rc.d/init.d/sshd restart

  9. iptablesの設定
    Rackspace Cloudはサーバー毎でF/Wを設定する必要があります
    sshの接続元IPが固定されている場合は他は拒否してしまいましょう
    # iptables -D RH-Firewall-1-INPUT -p tcp -m state --state NEW -m tcp --dport 22 -j ACCEPT
    # iptables -I RH-Firewall-1-INPUT 9 -p tcp -m state --state NEW -m tcp -s xxx.xxx.xxx.xxx --dport 22 -j ACCEPT
    # /etc/rc.d/init.d/iptables save

  10. ソフトウェアのアップデートの実行
    # yum update -y

以上、簡単に思いつくものを記載しました。
Rackspace CloudのCentOSは最小構成となっているので必要なソフトウェアは随時インストールして下さい。
新しいサーバーソフトウェアをインストールした場合はiptablesの設定を確認する事もお忘れなく!