自分用のさくらVPS設定メモ

さくらVPSを使い始めた。さくらVPSは一種のレンタルサーバだが、サーバのリソースは抽象的に分割されており、通常のレンタルサーバと違ってroot権限(何でもできる権限)を持つことができる。そしてサーバを1台丸ごと借りるより安い。vps.sakura.ad.jp

サーバを用意したかった理由としては以下の2点がある。

  • 開示資料の保管と分析用に自分用のサーバがあると便利
    • タスクを定時実行したり複数のPCからデータを参照したりするときにサーバがあると便利
  • Linuxに触れてみたかった(これが大きい)

公式の初期設定ガイドを参照しつつ設定したことをこちらの記事にまとめることにする。
さくらのVPS サーバの初期設定ガイド|さくらインターネット公式サポートサイト

参考knowledge.sakura.ad.jp

ユーザー情報の設定

rootパスワードの変更

ログインしたら、まずはrootユーザのパスワードを変更する。
passwdコマンドでパスワードの変更が可能となる。
f:id:hqac:20151121151405p:plain

作業用ユーザの作成

rootユーザは非常に強力な権限を持っているため、通常時はroot以外のユーザでサーバ上の作業を行う。
useraddコマンドで新規のユーザを追加でき、passwd ユーザ名でユーザのパスワードを設定できる。ここでは「hoge」という名前のユーザを追加し、パスワードを設定している。
f:id:hqac:20151121151728p:plain

作業用ユーザの権限設定

上記で追加した作業用ユーザの権限設定を行う。このユーザは必要に応じてパスワードを入力することでroot権限を持つことができるものとする。ユーザの管理を行う際は、複数のユーザを1つのグループにまとめ、グループに対して権限を設定する。

wheelグループは全てのコマンドを実行できる。visudoコマンドで設定の編集ができる。 %wheelに#(コメントアウト)がついている場合は外せばよい。visudoコマンドについての詳しい説明はman visudoコマンドで参照可能。

## Allows people in group wheel to run all commands
%wheel  ALL=(ALL)       ALL

wheelグループにユーザを追加するには、usermod -G グループ名 ユーザ名を実行する。

usermod -G wheel hoge

wheelグループにユーザが追加されたかを確認したい場合は、以下のコマンドを実行する。

getent group wheel

パスワードの入力をすっ飛ばしたい場合は、visudoコマンドを実行し、下記の部分の%wheelについているコメントアウトを外せばよい。

## Same thing without a password
%wheel        ALL=(ALL)       NOPASSWD: ALL

rootログインの禁止

rootユーザでログインできてしまうと危険なので、それができないように設定を変更する。
/etcディレクトリにあるsshd_configファイルを編集する(これにはroot権限が必要)。/etcは設定ファイルを格納するディレクトリで、ホスト名とIPアドレスの対応に関する情報を記載するhostsファイルもここに保存することになる。

vim /etc/ssh/sshd_config

42行目の#PermitRootLogin yesについている#コメントアウトなので、これを外せばよい。

# Authentication:

#LoginGraceTime 2m
PermitRootLogin no
#StrictModes yes
#MaxAuthTries 6
#MaxSessions 10

sshサーバを再起動すると、上記の設定が有効になる。

service sshd restart

f:id:hqac:20151121165856p:plain

SSH公開鍵認証の設定

公開鍵認証について

公開鍵認証とは、公開鍵と秘密鍵を利用した認証方法で、公開鍵をサーバに配置し、ローカルに保存した秘密鍵を使って認証を行う。公開鍵と秘密鍵は同時にペアで作られ、片方から片方を生成することはできないと言われている。
参考: 共通鍵暗号と公開鍵暗号の解説とSSHでの認証手順 - VPSサービスの使い方

SSH公開鍵認証における公開鍵と秘密鍵の違い
  • 公開鍵
    • 一般公開されても大丈夫
    • SSHでログインする先のサーバに登録して利用
  • 秘密鍵
    • 厳重に管理し絶対に公開してはならない
    • SSHコマンド実行時に指定することにより、対応する公開鍵を登録したサーバへのログインに利用

鍵の生成

ssh-keygen -t rsa

鍵の配置

scp -i 秘密鍵 コピーしたいファイルパス 受取先パス

SSHサーバにおける公開鍵の設定

まずは/etc/ssh/sshd_configを開く(権限が必要な場合がある)。

vim /etc/ssh/sshd_config

次に、PubkeyAuthentication yesについているコメントアウトを外し、AuthorizedKeysFileに公開鍵のパスを記述する(ここでは公開鍵をログインユーザのhome/.sshに配置した上で、ファイル名をauthorized_keysに変更している)。

#RSAAuthentication yes
PubkeyAuthentication yes
AuthorizedKeysFile      .ssh/authorized_keys
#AuthorizedKeysCommand none
#AuthorizedKeysCommandRunAs nobody

以下のコマンドでsshdを再起動する(etc/ssh/sshd_configの設定を反映するには再起動が必要)。

service sshd restart

接続できない場合は、ログインユーザのhome/.sshに公開鍵が配置されているか、パーミッションが適切に設定されているか、鍵の所有者がログインユーザとなっているかどうか、等を確認するとよい。

パスワード認証の無効化

/etc/ssh/sshd_configを開き、PasswordAuthentication yesをコメントアウトし、PasswordAuthentication noのコメントアウトを外す。終わったらsshdを再起動する。

# To disable tunneled clear text passwords, change to no here!
#PasswordAuthentication yes
#PermitEmptyPasswords no
PasswordAuthentication no

Apacheの設定

Apacheのインストール

下記のコマンドを実行し、質問には全てyで答える。

yum install httpd

下記のコマンドを実行してからブラウザにVPSのIPアドレスを入れるとApacheのテストページが表示される。

service httpd start

f:id:hqac:20151123111359p:plain

サーバ再起動時に自動でApacheを起動するための設定

デフォルトの状態だとサーバが再起動したときにApacheは自動的に起動しない。下記のコマンドを実行することで、サーバの再起動時にApacheが自動的に起動するようになる。

chkconfig httpd on