さくらVPS(その3:セキュリティ設定)

さくらVPS(その3:セキュリティ設定)

Posted at January 22,2013 12:33 AM
Tag:[sakura, VPS]

「さくらVPS」のサーバにセキュリティを設定する方法について紹介します。

この記事は「さくらVPS」環境設定シリーズの3回目です。

本エントリーの実施内容を先にまとめておきます。

  • 新しいユーザーを追加し、追加したユーザーが
    • 公開鍵をつかってsshログインできるようにする
    • root権限になれるようにする(=sudoコマンドを利用可能にする)
  • rootのパスワード変更
  • rootでssh経由のログインができないようにする
  • パスワード認証によるsshログイン禁止
  • パスワードなしsshログイン禁止

このエントリーで解説する作業はすべてrootアカウントで実施してください。

1.ユーザーの作成

TeraTermなどからログインするためのユーザーを作成します(後の作業でrootで直接ログインできないようにします)。

ユーザーを作成するのは「adduser」コマンドです。「adduser ユーザー名」でユーザーを作成し、「passwd 作成したユーザー名」でユーザーのパスワードを設定します。

# adduser hoge ←ユーザーの作成
# passwd hoge ←作成したユーザーのパスワード設定
Changing password for user hoge.
New password: ←パスワードを入力(入力文字は表示されません)
Retype new password: ←パスワードを再入力(入力文字は表示されません)
passwd: all authentication tokens updated successfully.

実際の画面
ユーザーの作成

「adduser -D」は、どのようなユーザーが作成できるかを確認するためのコマンドです。

# adduser -D
GROUP=100
HOME=/home
INACTIVE=-1
EXPIRE=
SHELL=/bin/bash
SKEL=/etc/skel
CREATE_MAIL_SPOOL=yes

2.ユーザーをwheelグループに追加

作成したユーザーがrootになれるよう、「usermod -G wheel ユーザー名」でwheelグループに追加します。

# usermod -G wheel hoge

「wheel」とは、Linuxでrootになることのできるユーザーが属するグループの名称です。

3.wheelグループにroot権限を付与

root権限で「visudo」と入力して、/etc/sudoersファイルを編集します。

# visudo

デフォルトエディタとしてviが開きます。viはクセがあるので不要なキーを叩かないように気をつけましょう。

ファイルが開いたら、カーソルキーで一番下の方にある、

# %wheel  ALL=(ALL)       ALL

という行の先頭の「#」に移動して、「x」キーを2回押下し、

%wheel  ALL=(ALL)       ALL

に変更します。「x」キーは文字を削除するキーです。

実際の画面(変更前)
変更前

実際の画面(変更後)
変更後

削除したら「:wq」と入力し、ファイルを保存します。

編集で訳が分からなくなったら「Esc」キーのあとに「:q!」と入力すれば保存せずに終了できるはずなので、もう一度最初からやり直してください。

新しいTeraTermを開いて、作成したユーザーでログインし、sudoコマンドが実行できればOKです。

sudoコマンドはrootしか実行することのできないコマンドの使用権限を一般ユーザーに与えることができるものです。

例えば、root権限でしか編集できない/etc/ssh/sshd_configの編集を行う場合、次のようにします。

% sudo vi /etc/ssh/sshd_config

実行時に自分のパスワード(rootのパスワードではない)を入力します。

実際の画面
sudo

本エントリーの設定が終わったあと、root権限が必要なコマンドは、suコマンドでrootに切り替えて実行しても構いませんが、そのたびにrootのパスワードを入力しなければならないので、一般ユーザーからsudoコマンドで実施するようにしましょう。

4.rootのパスワード変更

契約時に発行されたrootのパスワードを変更します。パスワードを変更するにはターミナルから「passwd」コマンドを入力します。

# passwd
Changing password for user root.
New password: ←新しいパスワードを入力(入力文字は表示されません)
Retype new password: ←新しいパスワードを再入力(入力文字は表示されません)
passwd: all authentication tokens updated successfully.

実際の画面
rootのパスワード変更

設定後、一般ユーザーからsuコマンドを実行し、設定したパスワードでrootに切り替わることを確認してください。

5.公開鍵でログインできるようにする

まず、「公開鍵認証でサーバにログインする方法(サーバで鍵生成)」を参照して作業を実施してください。

設定後、さくらVPSでこの設定を有効にするため、/etc/ssh/sshd_configを編集します。

# vi /etc/ssh/sshd_config

ファイルを開いたら、

#PubkeyAuthentication yes

という行の先頭の「#」を削除して、

PubkeyAuthentication yes

にします(「no」になっていたら「yes」にしてください)。

保存後、変更を有効にするため、sshdを再起動します。

# /etc/init.d/sshd restart

他の記事で、「RSAAuthentication」や「AuthorizedKeysFile」を設定するように記載されているものもありましたが、試してみたところ、上記の修正でログインできることを確認しています。

6.rootのsshログインを禁止する

サーバを乗っ取られないようにするため、ssh経由でrootにログインできないようにします。この設定を行う前に5項の設定を完了させてください。

5項と同様、/etc/ssh/sshd_configを編集します。6~7項で同じファイル「sshd_config」を編集するので、まとめて編集してもかまいません。

# vi /etc/ssh/sshd_config

ファイルが開いたら、

#PermitRootLogin yes

という行の先頭の「#」を削除し、さらに「yes」を「no」に変更して、

PermitRootLogin no

に変更します。

実際の画面(変更前)
変更前

実際の画面(変更後)
変更後

viで文字を書き換えるときには「i」キーを押下すれば文字の挿入や削除が行えるようになり、大体通常のテキストエディタのキー操作で編集できるようになります。ただし、DeleteキーはBackspaceキーの動作になるので気をつけてください。

編集が終わって保存するときは「Esc」キーを押下してから「:wq」と入力してください。

保存後、変更を有効にするため、sshdを再起動します。

# /etc/init.d/sshd restart

実際の画面
sshd再起動

この画面は終了させず(設定を失敗したときに使えるため)、新しいTeraTermの画面を開き、rootでログインできなければ設定完了です。

7.パスワード認証禁止とパスワードなしログインの禁止

前項同様、/etc/ssh/sshd_configを編集し、以下のようにパスワード認証禁止とパスワードなしログインの禁止の設定を行います。

PermitEmptyPasswords no         # パスワードなしログイン禁止
PasswordAuthentication no       # パスワード認証禁止

保存後、変更を有効にするため、sshdを再起動します。

# /etc/init.d/sshd restart

8.システムの更新

システムを最新の状態に保つため、「yum update」コマンドを定期的に実施してください。

# yum update

以上です。

セキュリティの設定はここに挙げているもの以外に、sshのポート変更やiptablesの設定などがあります。必要に応じて設定するとよいでしょう。

認識誤りや「これも行った方がいい」という項目があればどこかでつぶやいてください。

関連記事
zenback
人気エントリー
トラックバックURL


コメントする
greeting

*必須

*必須(非表示)


ご質問のコメントの回答については、内容あるいは多忙の場合、1週間以上かかる場合があります。また、すべてのご質問にはお答えできない可能性があります。予めご了承ください。

太字イタリックアンダーラインハイパーリンク引用
[サインインしない場合はここにCAPTCHAを表示します]

コメント投稿後にScript Errorや500エラーが表示された場合は、すぐに再送信せず、ブラウザの「戻る」ボタンで一旦エントリーのページに戻り(プレビュー画面で投稿した場合は、投稿内容をマウスコピーしてからエントリーのページに戻り)、ブラウザをリロードして投稿コメントが反映されていることを確認してください。

コメント欄に(X)HTMLタグやMTタグを記述される場合、「<」は「&lt;」、「>」は「&gt;」と入力してください。例えば「<$MTBlogURL$>」は「&lt;$MTBlogURL$&gt;」となります(全て半角文字)