さくらのVPS 標準OSの環境構築(1) VPS導入とログイン方法の変更


はじめに

趣味で試そうと初期費用無料時に契約していたさくらのVPSをかなり放置していたのですが、今回ちゃんと使うことになったため、再構築をした際の手順をメモしました。

サーバー構築初心者が書いた備忘録になるため、当方は本記事を参考にセットアップしたことによって被った損害・損失に対し、いかなる場合でも一切の責任を負いませんのでご了承ください。
あくまでも自己責任でお願いします。

作業環境

  • ローカル
    • OS X Yosemite 10.10.5 標準ターミナル
  • サーバー

設定に入る前に

ホスト名の設定はネームサーバ利用申請方法DNS逆引きレコードを変更するなどを参照し、事前に設定しておきましょう。

また、今回はさくらのVPS 標準OSで構築していくため、OSセットアップ情報を確認します。
標準OSでは日本語のグループパッケージなどのインストールや簡単な設定がされているため、今回の環境構築ではタイムゾーンやNTPの設定は飛ばします。

契約直後ならそのまま、OSを再インストールするならコントロールパネルから標準OSインストールを実行してから次に進みましょう。

VPSにログイン

ローカルのターミナルからsshコマンドで、rootユーザーでログインします。
サーバーのIPアドレス、管理ユーザーの初期パスワードは仮登録完了のお知らせメールに記載されています。

ローカルで実行します
ssh [email protected]

xxx.xxx.xxx.xxxの部分をサーバーのIPアドレスに差し替えてください。
以降のサーバーのIPアドレスの表記はxxx.xxx.xxx.xxxに統一します。

実行結果
The authenticity of host 'xxx.xxx.xxx.xxx (xxx.xxx.xxx.xxx)' can't be established.
RSA key fingerprint is xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx.
Are you sure you want to continue connecting (yes/no)? <- yesを入力しEnter
Warning: Permanently added 'xxx.xxx.xxx.xxx' (RSA) to the list of known hosts.
[email protected]'s password: 

SAKURA Internet [Virtual Private Server SERVICE]

[[email protected] ~]#

以降の作業はログイン方法の変更が完了するまで、このログイン状態のままで進めていきます。
別のユーザーやローカルでの作業が必要な場合、別ウィンドウまたは別タブで作業を行うようにしましょう。

パッケージとシステムのアップデート

インストールされている全てのパッケージのアップデート、およびシステムのアップグレードを実行します。
実行前にキャッシュの削除を挟みます。

yum clean all && \
yum -y update && \
yum clean all && \
yum -y upgrade && \
yum clean all

Tips
上記のように&&で連結することでコマンドを連続実行できます。
またコマンド入力中に\を入力後Enterを押すとコマンド入力を改行することができます。

システムのバージョン確認

現在のシステムのバージョンを確認します。

cat /etc/redhat-release

実行結果
CentOS release 6.7 (Final)

システムの日本語化

システムの言語設定を行います。
言語グループは初期状態でインストール済みのため、設定のみ行います。
LANGを下記に変更し、SUPPORTEDを追記します。

vi /etc/sysconfig/i18n

/etc/sysconfig/i18n
- LANG="C"
+ LANG="ja_JP.UTF-8"
+ SUPPORTED="ja_JP.UTF-8:ja_JP:ja"

設定を保存したら、設定ファイルをsourceコマンドで一度実行します。

source /etc/sysconfig/i18n

これで再起動しなくても言語設定が適用されます

管理ユーザーのパスワード変更

初期パスワードから変更しておきましょう。
今回の自分のようにOSを再インストールした場合は、新しいパスワードを入力したはずなので飛ばします。

passwd

実行結果
ユーザー root のパスワードを変更。
新しいパスワード: <- パスワードを入力
新しいパスワードを再入力してください: <- パスワードを再入力
passwd: 全ての認証トークンが正しく更新できました。

ログイン用ユーザーの作成と設定

rootユーザーの代わりにログインするための新規ユーザーを作成します。
ユーザーグループはwheelを指定します。
あわせて新規ユーザーのパスワードも設定します。

useradd LOGIN_USER -G wheel && \
passwd LOGIN_USER

LOGIN_USERの部分を任意のユーザー名に差し替えてください。
以降のログイン用ユーザーの表記はLOGIN_USERに統一します。

実行結果
ユーザー LOGIN_USER のパスワードを変更。
新しいパスワード: <- パスワードを入力
新しいパスワードを再入力してください: <- パスワードを再入力
passwd: 全ての認証トークンが正しく更新できました。

ユーザーグループ権限の設定

管理者権限を利用できるユーザーグループを設定します。
wheelグループに属するユーザーのみ管理者権限を扱えるようになります。

visudo

下記sudoers.tmpは、直接viコマンドで編集するのではなくvisudoコマンドを使用して編集します。
保存時に設定の文法チェックを行い、エラーがあった場合は再編集させてくれます。

/etc/sudoers.tmp
- # %wheel ALL=(ALL) ALL
+ %wheel ALL=(ALL) ALL

SSH鍵ペアの作成と設置

公開鍵を設置するための.sshディレクトリをユーザーLOGIN_USERのホームディレクトリに作成します。
また作成した.sshディレクトリのパーミッションを700に変更し、所有者もLOGIN_USERに変更します。

mkdir /home/LOGIN_USER/.ssh && \
chmod 0700 /home/LOGIN_USER/.ssh && \
chown LOGIN_USER:LOGIN_USER /home/LOGIN_USER/.ssh

次はローカル側でsshの鍵ペアを作成します。(別ウィンドウまたは別タブを開きます。)
パスフレーズの入力は、入力しても空EnterでもOKです。
入力した場合、初接続時にパスフレーズの入力が発生します。
鍵ペア作成後、秘密鍵id_rsaのパーミッションを0600に変更します。

HOST_NAMEの部分はホスト名に設定したドメイン名に差し替えてください。
以降のホスト名の表記はHOST_NAMEに統一します。

ローカルで実行します
mkdir -p ~/.ssh/HOST_NAME && \
ssh-keygen -t rsa -f ~/.ssh/HOST_NAME/id_rsa && \
chmod 0600 ~/.ssh/HOST_NAME/id_rsa

実行結果
Generating public/private rsa key pair.
Enter passphrase (empty for no passphrase): <- パスフレーズを入力(空Enter可)
Enter same passphrase again: <- パスフレーズを再入力(空Enterした場合、再度空Enter)
Your identification has been saved in /Users/user/.ssh/HOST_NAME/id_rsa.
Your public key has been saved in /Users/user/.ssh/HOST_NAME/id_rsa.pub.
The key fingerprint is:
xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx [email protected]
The key's randomart image is:
+--[ RSA 2048]----+
|                 |
|                 |
|                 |
|                 |
|                 | <- 例
|                 |
|                 |
|                 |
|                 |
+-----------------+

scpコマンドで、上述で作成した公開鍵id_rsa.pubをサーバーにauthorized_keysとしてコピーします。

ローカルで実行します
scp ~/.ssh/HOST_NAME/id_rsa.pub [email protected]:~/.ssh/authorized_keys

サーバーにコピーされた公開鍵authorized_keysのパーミッションを0600に変更します。

chmod 0600 /home/LOGIN_USER/.ssh/authorized_keys

SSHのポート番号とログイン方法の変更

SSHの設定を変更します。
この設定の作業時は、ログイン中のrootユーザーは絶対にログアウトさせてはいけません。
設定に誤りがあった場合、ログインできなくなり取り返しがつかなくなります。(最悪OSを再インストールすることになります。)
接続確認は必ず別ウィンドウまたは別タブで行いましょう。

vi /etc/ssh/sshd_config

まず、SSHのポート番号が標準の22番のままでは不正アクセスされやすいので変更します。
ポート番号は0〜65535から選べますが、0〜1023WELL KNOWN PORT NUMBERSに含まれ、1024~49512は登録ポートと呼ばれ既存のサービスと被る可能性がありますので、なるべく49513〜65535から選びましょう。

SSH_PORTの部分を任意のポート番号に差し替えてください。
以降のSSHのポート番号の表記はSSH_PORTに統一します。

/etc/ssh/sshd_config
- #Port 22
+ Port SSH_PORT

次に、rootユーザーでの直接ログインを禁止します。

/etc/ssh/sshd_config
- #PermitRootLogin yes
+ PermitRootLogin no

次に、公開鍵認証を有効化します。

/etc/ssh/sshd_config
- #RSAAuthentication yes
- #PubkeyAuthentication yes
- #AuthorizedKeysFile .ssh/authorized_keys
+ RSAAuthentication yes
+ PubkeyAuthentication yes
+ AuthorizedKeysFile .ssh/authorized_keys

最後に、パスワード認証を禁止します。

/etc/ssh/sshd_config
- PasswordAuthentication yes
+ PasswordAuthentication no

設定を保存したら、sshdを再起動します。

service sshd restart

これで、ローカル側から公開鍵認証が行えるようになりました。
ターミナルを別ウィンドウまたは別タブで開き、接続確認をします。

ローカルで実行します
ssh [email protected] -i ~/.ssh/HOST_NAME/id_rsa -p SSH_PORT

  • 上記sshコマンドでログインが成功する
  • suコマンドおよびsudoコマンドが使用できる

この2点が確認できたらrootユーザーをログアウトしても大丈夫です。
これでログイン方法の設定は完了になります。

簡単にSSHへログインするための設定

ローカル側の~/.ssh/configに後述の設定することでHOST_NAMEのみでログインできるようになります。

ローカルで実行します
vi ~/.ssh/config

下記の設定を追記します。

~/.ssh/config
+ Host HOST_NAME
+     HostName xxx.xxx.xxx.xxx
+     Port SSH_PORT
+     User LOGIN_USER
+     IdentityFile ~/.ssh/HOST_NAME/id_rsa

これでHOST_NAMEのみでログインできるようになりました。

ローカルで実行します
ssh HOST_NAME

次回

さくらのVPS 標準OSの環境構築(2) ファイアウォールとシステムの設定