さくらVPSが月額980円スペックそれなりでお得だったので、借りてみました。デュラララチャットやXOOPSのサービスの実験用に使うには高くもなく丁度よさそうです。レンタルサーバと違いVPSはサーバまるごと借りる形です。なので、サーバの設定は自分でやらないといけません。これはVPSのメリットでもありデメリットでもありますね。レンタルサーバだと、設定はサーバ屋さんがやってくれていますが、そのかわりVPSより自由がありません。今回はSSHの設定を備忘録がてら書こうと思います。さくらVPSコントロールパネルのリモートコンソールから設定しました。
まず、自分を追加しよう
個人のVPSといっても、SSHにrootで直接ログインするのは嫌なので、自分アカウントを追加します。suinを追加して、パスワードも設定しちゃいます。
adduser suin passwd suin
sshd_configでSSHの設定をしよう
sshd_configがあるディレクトリに行って、sshd_config(SSHデーモンの設定ファイル)を開いて設定を編集します。(viというエディターを使って編集しますが、viの使い方は省略します。)
cd /etc/ssh/ vi sshd_config
セキュリティが最も気になるので、SSHのセキュリティを高めるためのハウツーを参考に、設定してみました。
SSHが接続を待ち受けるポートの変更
ポートは1024以上にするといいらしいです。1024以上はポートスキャンされることが少ないらしいです。あくまで攻撃者の傾向がそうなだけなので、ポートを変えることで絶対安全とは言い切れませんが、せめてSSHポート発見までの時間を多少遅らせることが期待されます。とりあえず、私は適当に四桁にしてみました。
Port 3459
SSHプロトコル2のみを許可する
さくらVPSではデフォルトでSSH2だけ有効になっているようなので、そのままでも良さそうです。
Protocol 2
SSH経由のログインを特定のユーザにだけ許可する
rootログインは重大なセキュリティリスクになります。rootでログインできないように設定します。
PermitRootLogin no
ここで一旦、保存してSSHDを再起動します。
# /etc/init.d/sshd restart Stopping sshd: [ OK ] Starting sshd: [ OK ]
SSHの接続メッセージを変更する
これはあんまり意味がなさそうなのでスルー
公開鍵認証を使用する
パスワード認証だと、辞書攻撃(辞書に載ってる単語をかたっぱしからためしてパスワードを見破る攻撃)にさらされるので、公開鍵認証にしておきます。まず、自分のパソコン(MacOSX)でカギを生成します。ターミナルを立ち上げて、ssh-keygenと打って実行。
$ ssh-keygen Generating public/private rsa key pair. Enter file in which to save the key (/Users/suin/.ssh/id_rsa): [Enter押す] Enter passphrase (empty for no passphrase): [お好きなパスワードを入力] Enter same passphrase again: [お好きなパスワードを再入力] Your identification has been saved in /Users/suin/.ssh/id_rsa. Your public key has been saved in /Users/suin/.ssh/id_rsa.pub.
ホームディレクトリに、id_rsaとid_rsa.pubというファイルが出来ました。id_rsa.pubをさくらVPSに転送します。
scp id_rsa.pub sakura:~/
再度サーバにログインして、公開鍵を使えるように設定します。
# .sshディレクトリがなかったので作る mkdir .ssh # 今作ったディレクトリのPermissionを変更 chmod 700 .ssh # 鍵ファイルを.sshに移動 mv id_rsa.pub .ssh/ cd .ssh/ # authorized_keysファイルを作成 touch authorized_keys # カギの中身をauthorized_keysに写す cat id_rsa.pub >> authorized_keys # Permissionを自分だけが読めるように chmod 600 authorized_keys
sshd_configを再度編集して、鍵認証を有効化、パスワード認証を無効化します。
RSAAuthentication yes PubkeyAuthentication yes AuthorizedKeysFile .ssh/authorized_keys PasswordAuthentication no
SSHDを再起動します。
# /etc/init.d/sshd restart Stopping sshd: [ OK ] Starting sshd: [ OK ]
これで、パスワード認証でログインしようとすると、Permission denied (publickey,gssapi-with-mic).と言われ拒否されます。
あとはMacの場合、/Users/(ユーザ名)/.ssh/configにSSHのログイン情報を設定しておくと便利です。
Host sakura HostName 59.106.173.151 User suin Port 3459 IdentityFile ~/.ssh/sakura/id_rsa
これでssh sakuraで簡単にログインできます。