1,000円を切る低価格で登場、「さくらのVPS」をチェック――サーバー構築編 3ページ

作業用ユーザーの作成

 SSHでのログインに成功したら、続いて作業用として使用するユーザーアカウントを作成する(リスト2)。ここでは例として作業ユーザー用のグループ「staff」を作成し、「staff」に所属するユーザー「foobar」を作成しているが、これらはユーザーの環境に合わせて適当に変更してほしい。

リスト2 作業用アカウントの作成

# groupadd staff
# useradd -d /home/foobar -m -g staff foobar
# passwd foobar
Changing password for user foobar.
New UNIX password:   ←foobarのパスワードを入力
Retype new UNIX password:   ←同じパスワードを再入力
passwd: all authentication tokens updated successfully.

 VPSに限ることではないが、UNIX/Linuxサーバーを運用する場合、普段の作業は一般ユーザーで行い、root権限が必要な各種設定やソフトウェアのインストールなどの作業を行う場合はその都度root権限を取得して操作を行う、という方式が一般的だ。root権限の取得には「su」コマンドを用いる方法と、「sudo」コマンドを用いる方法の2通りがあるが、操作がログに記録されるsudoコマンドの利用が推奨されることが多い。

 なお、sudoコマンドについて詳しくは「ユーザの実行権限を柔軟に割り当てるsudoのリスクとメリット」で説明されているので、興味のある方はこちらをご参照いただきたい。

 作成したユーザーでsudoコマンドを実行できるようにするには、root権限で「visudo」コマンドを実行し、設定を行っておく必要がある(リスト3)。visudoコマンドを実行するとVimが起動するので、「root ALL=(ALL) ALL」という行の下に「<ユーザー名> ALL=(ALL) ALL」という行を追加し、保存して終了する。

リスト3 ユーザー「foobar」でsudoを利用できるようにする場合の設定例

# visudo
 :
(Vimが起動するので、下記の個所までスクロールする)
 :
 :
## Allow root to run any commands anywhere
root    ALL=(ALL)       ALL
foobar   ALL=(ALL)       ALL  ←この1行を追加
 :
 :

 以上の設定が完了したらいったんログアウトし、作成したユーザーでログインやsudoコマンドが実行できるかどうか確認しておこう。

SSHの設定

 さくらのVPSでのデフォルト設定では、rootユーザーを含むすべてのユーザーでSSHログインが許可されている。しかし、外部からrootユーザーでのログインを許可するのは危険であり、禁止しておくことが推奨される。sshdの設定は、「/etc/ssh/sshd_config」ファイルで行う。root権限でこのファイルを編集して設定を行おう。

$ sudo vi /etc/ssh/sshd_config

 変更すべき個所はリスト4のとおりだ。

リスト4 sshd_config内で変更すべき個所

 :
 :
# Authentication:

#LoginGraceTime 2m
#PermitRootLogin yes
PermitRootLogin no    ←この行を追加(rootでのログインを禁止)
#StrictModes yes
#MaxAuthTries 6
 :
 :

 変更を行ったら、/sbin/serviceコマンドでsshdサービスを再起動する。もしここで再起動に失敗した場合は、再度sshd_configファイルを確認してほしい。

$ sudo /sbin/service sshd restart
Stopping sshd:                                             [  OK  ]
Starting sshd:                                             [  OK  ]
公開鍵認証でのみログインできるようにする

 よりSSHのセキュリティを強固にしたいなら、sshd_configファイルのリスト5の個所を修正してパスワード認証を無効にし、公開鍵認証でのみログインできるようにする設定をお勧めする。

リスト5 チャレンジ&レスポンス認証を無効にする

# To disable tunneled clear text passwords, change to no here!
PasswordAuthentication no    ←パスワード認証を無効に(「no」に設定)

 この場合、あらかじめ公開鍵をアップロードして設定しておいたユーザーでしかログインできなくなる。自由度は若干減るものの、パスワード総当たり攻撃などによる認証の突破を防ぐことが可能だ。

 なお、公開鍵は各ユーザーの.sshディレクトリ以下、「authorized_keys」ファイルとして格納しておく(リスト6)。

リスト6 クライアントがUNIX系OSの場合の公開鍵設定

$ scp .ssh/id_rsa.pub foobar@***.***.***.***:  ←公開鍵をアップロード
id_rsa.pub                                    100%  395     0.4KB/s   00:00
$ ssh foobar@***.***.***.***
 :
 :
$ cd ‾/
$ mkdir -m 770 .ssh
$ cat id_rsa.pub > .ssh/authorized_keys  ←公開鍵を.ssh/authorized_keysファイルに格納
$ chmod 600 .ssh/authorized_keys  ←設定ファイルのパーミッションを変更しておく
$ cat .ssh/authorized_keys
ssh-rsa AAAAB3NzaC1yc2EAAAABIwAAAQEAyWEI5pUYY4wM654xHdo3FV...
 :
 :