suin.io

さくらVPS+CentOS:SSHの設定

suin2010年10月11日

さくら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で簡単にログインできます。

RELATED POSTS