v2 サーバーでは、スタンドアローンの FreeBSD サーバーと同様 root 権限での利用が可能です。これによりユーザーには、強大なパワーと自由度が与えられますが、これは同時に、ユーザーの責任の拡大も意味します。特にサーバー管理とセキュリティーには十分な注意を払う必要があります。
他の Unix 系サーバーと同様に VPS v2 のセキュリティーを高める上で一番大切なことは root ユーザー (スーパーユーザー) 権限への不正なアクセスをできなくすることです。ここでは、root ユーザー権限への SSH 等でのアクセスの安全性を高める方法に付いて記述しています。
この対策では、root ユーザーでのネットワーク経由の shell ログインを不能にします。root ユーザーでの shell アクセスは (wheel group に属する) 管理ユーザーでログインした後 'su' あるいは 'sudo' を実行する方法を取ることになります。
1. /etc/group ファイルで管理ユーザー権限を設定する
wheel group に所属するユーザーは shell 上で 'su' あるいは 'sudo' を実行し root ユーザー権限を取得することができます。 VPS v2 ではデフォルトで管理ユーザーは wheel group に所属しています。そのため以下は、管理ユーザーを追加する場合のみ行ってください。
root ユーザー権限で /etc/group ファイルを編集し、管理ユーザーに追加したいユーザー名を wheel group に追加します。以下の例では、larry, moe, curly が管理ユーザーです。
wheel:*:0:root,larry,moe,curly
2. sshd でネットワーク経由の root ログインを不能に設定する
root ユーザー権限で 以下を実行します。( VPS v2 のオーダー時期によっては、デフォルトで設定済みです)
- /etc/ssh/sshd_config ファイルを編集し、PermitRootLogin 行を以下の様に設定します。
PermitRootLogin no
- sshd サーバーを再起動します。以下のコマンドで可能です。
kill -HUP `cat /var/run/sshd.pid`
上記が完了すると、管理ユーザーでログインし 'su' コマンドを実行し、root のパスワードを入力することで、root ユーザー権限を獲得できます。以下のようにして確認してください。
admin$ su
Password:
root# id
uid=0(root) gid=0(wheel) groups=0(wheel), 2(kmem), 3(sys), \
4(tty), 5(operator), 20(staff), 31(guest)
wheel group に追加するユーザーは、root ユーザー権限を与えるユーザーに限定してください。
su プログラムは、root ユーザー権限を与えるか与えないかのみを行ないます。また、root ユーザーのパスワードも要求されます。VPS v2 にデフォルトでインストール済みの、sudo プログラムでは、よりきめ細かなことが可能です。sudo では管理ユーザーが使えるコマンドは限定されますが、root ユーザーのパスワードは必要ありません。sudo では、管理ユーザーは予め決められたコマンドのみを、root ユーザー権限で実行できるのです。
VPS v2 の sudo デフォルト設定では権限を 2 クラスにわけています。設定ファイルは /usr/local/etc/sudoers です。
管理ユーザー (group wheel): vadduser や edquota 等のサーバー管理コマンドが実行できます。
web 管理ユーザー (group webadmin): restart_apache や apachectl 等の web サーバー管理に限定されたコマンドが実行できます。
管理ユーザーが vadduser コマンドを実行する場合は以下のようにします。
admin$ sudo vadduser
上記により、root ユーザーにならなくても、直接 vadduser コマンドを実行できます。
詳細情報は、/usr/local/etc/sudoers.sample ファイル、あるいは以下のマニュアルページを参照ください。
sudo(8), sudoers(8), visudo(8)
安全強化策 2: SSH 認証キーでアクセスする
このアクセス方法では、ssh によるネットワーク経由の root ログインは可能ですが、パスワードによる認証ではなく公開鍵・秘密鍵による認証となります。
この方法を取るとパスワードによるネットワーク経由の root ログインはできなくなりますが、安全強化策 1 のアクセス方法は併用できます。
以下の手順に従ってください。
1. 公開鍵・秘密鍵を作成する
先ず、公開鍵・秘密鍵のセットを作成します。ここでは FreeBSD のデフォルトである OpenSSH を使って鍵のセットを作成しています。
SecureCRT のような Windows 版の SSH クライアントも鍵のセットを作成できます。詳細はクライアントプログラムのマニュアルを参照してください。
以下のコマンドを実行します。これは root 権限は必要ありません。
> ssh-keygen -t dsa
このコマンドの実行により、公開鍵 (.pub) と秘密鍵の二つのファイルが作成できます。
FreeBSD 上の OpenSSH によるデフォルトは以下の名称です。
id_dsa ---- 秘密鍵
id_dsa.pub ---- 公開鍵
鍵の作成中にパスフレーズの入力要求があります。これは公開鍵が不正に使われることを防ぐためです。
パスフレーズはパスワードと同様に強固なものでなければなりません。
パスフレーズを強固にする方法は以下ページを参照してください。
http://www.speedex.ne.jp/support/vps/basic/admin/users/passwords.html
2. 秘密鍵をクライアント側に保管する
秘密鍵は外部からはアクセスできず、ssh クライアントプログラムがアクセスできる場所に保管する必要があります。従ってその位置は、ssh クライアントプログラムによって異なります。クライアントプログラムのマニュアルで位置を確認してください。
FreeBSD で作成された秘密鍵は、デフォルトでは $HOME/.ssh/id_dsa にあります。
3. 公開鍵を VPS v2 にコピーする
次に、公開鍵を VPS v2 にコピーします。root ユーザー権限で以下のファイルを編集します。
ファイルディレクトリーが存在しない場合は作成してください。
/root/.ssh/authorized_keys
公開鍵ファイルの内容を authorized_keys ファイルにコピーペーストします。
公開鍵は 1 行でなければなりません。改行されていると正しく機能しません。
authorized_keys ファイルには 1 行 1 公開鍵で、複数の公開鍵を登録できます。
4. sshd root ユーザーのパスワードによるアクセスを不能にする
root ユーザー権限で /etc/ssh/sshd_config ファイルを編集し PermitRootLogin の指定を以下のようにします。
PermitRootLogin without-password
sshd を再起動します
特に記載されている以外の上記作業及びアクセスのテストは全て root ユーザー権限で行なう必要があります。root ユーザーであることを確認のうえ作業してください。
設定が正しく行われると、公開鍵が root の authorized_keys ファイルに登録されているユーザーはパスワードではなく鍵を作成したときに決めたパスフレーズで VPS v2 に ssh でログインできます。
VPS間で、SSH 認証キーを使ってアクセスする場合
上記「安全強化策 2」に加えて以下を行なってください。
1. アクセスするサーバー側での作業
以下のようにして、アクセスするサーバー側の公開鍵を、アクセスするサーバー側の authorized_keys ファイルに追加します。
cat ~/.ssh/id_dsa.pub >> ~/.ssh/authorized_keys
2. アクセスされるサーバー側での作業
/etc/ssh/sshd_config ファイルに以下変更を行います。(コメントアウトされている場合は # を外します。
Protocol 2,1
PermitRootLogin without-password
RSAAuthentication yes
PubkeyAuthentication yes
AuthorizedKeysFile .ssh/authorized_keys
ChallengeResponseAuthentication yes
#ChallengeResponseAuthentication no
3. passphrase の入力を不要にする
アクセスするサーバー側で以下を実行します。
/> eval `ssh-agent`
Agent pid ******
/> ssh-add /home/account_name/.ssh/id_dsa
Enter passphrase for /home/account_name/.ssh/id_dsa:
Identity added: /home/account_name/.ssh/id_dsa (/home/rms2/.ssh/id_dsa)
上記により、以降、以下のように passphrase 入力なしでログインできます。
/> ssh -2 root@server_name
Last login: Mon Nov 22 10:56:07 2004 from client_server_name.
Copyright (c) 1980, 1983, 1986, 1988, 1990, 1991, 1993, 1994
The Regents of the University of California. All rights reserved.
FreeBSD 4.7-RELEASE-p27 (VKERN) #38: Thu Aug 26 17:44:26 MDT 2004
server_name ~#
SPEEDEX サポートポリシー
Copyright @ Cyber Vision Hosting Co., Ltd. All rights reserved.
Email: support@speedex.ne.jp
株式会社サイバービジョンホスティング提供サービス一覧
再販売用レンタルサーバーのSPEEDEX | VPS(仮想専用サーバー) | 共用サーバー | 独自ドメイン取得・運用 | SSLサーバー証明書 | ワイルドカードサーバー証明書 | SEO | Google Apps(TM) | クリエイティブワークの検索エンジン