さくらのVPSでSSHの設定を行ない、Webサーバをリモート操作できるようにします。
(1) 秘密鍵と公開鍵の作成と設置
(2) rootのログイン禁止
(3) パスワード方式のログイン禁止
(4) 鍵認証方式のログインOK
(5) SSHのポート番号変更
(6) denyhostsのインストール
●SSHとは?
Secure Shell - Wikipedia
Secure Shell(セキュアシェル、SSH)は、暗号や認証の技術を利用して、安全にリモートコンピュータと通信するためのプロトコル。パスワードなどの認証部分を含むすべてのネットワーク上の通信が暗号化される。
(参考) さくらVPSのsshによる鍵認証の設定
↑コチラの説明が図入りで分かりやすいので、同じ作業を行なえばOKです。\(結論)/
●ローカルPC上で「鍵」データを作成
・Windowsユーザー → PuTTYgenを使って鍵ペア(公開鍵と秘密鍵)を作ります。
・秘密鍵のファイル名:「vps-rsa-key.ppk」等で保存
・公開鍵のファイル名:「vps-rsa-key.pub」等で保存
●公開鍵をサーバに設置
cd /home/sakura ← (ユーザーディレクトリに移動)
mkdir ~/.ssh ← (.sshディレクトリを作成)
chmod 700 ~/.ssh ← (.sshディレクトリの権限を所有者だけに限定)
chown -R sakura:sakura .ssh ← (所有者をrootからユーザに変更)
vi ~/.ssh/authorized_keys ← (公開鍵ファイルを作成、編集)
先ほどローカルPC上で作った公開鍵の文字列をコピペして保存する。
ssh-rsa ABCDEFGtesttestABCDEFGAAAIBaXhogevzZASBtv1234Vd
7Y5678e3MX1234CvLw5678ymoaHXcZF3SuiopJy/3zXrbBhjlkluu+8
uuIHDvbmnJ4Qy3R4i75rtyiug8rvLt9FztMCghkjrkPis6p46KoChEf
DVa5PI9FvoasdfErEBqwerrkpNYBnzhogehogeZZZ== vps-rsa-key
・公開鍵のデータは、上記のような文字列になっています。
(表示の都合上、改行を入れていますが、1行の長い文字列です。)
・公開鍵のコピペが間違っていると、後でログインできないので注意!
=「ssh-rsa」が「sh-rsa」(=「s」が一文字足りない)になっているだけ等でもダメ!
=途中で改行が入って、2行以上の文字列になってもダメ!
=先頭の「ssh-rsa」と「ABCD…」の間に半角スペースが1文字入ってます。
=末尾の「…ZZZ==」と「vps-rsa-key」の間に半角スペースが1文字入ってます。
公開鍵は、所有者(作業ユーザー)だけが利用できるように、パーミッションを変更しておきます。
chmod 600 ~/.ssh/authorized_keys
●SSHのアクセス制限を設定
(参考) SSHのアクセスポリシー
http://www.studio-kingdom.com/centos/486
http://akabeko.sakura.ne.jp/blog/2010/09/%E3%81%95%E3%81%8F%E3%82%89%E3%81%AEvps-%E3%82%92%E4%BD%BF%E3%81%84%E3%81%AF%E3%81%98%E3%82%81%E3%82%8B-2/
ここでは、以下のように設定してみます。
cd /etc/ssh/
sudo vi /etc/ssh/sshd_config
#Port 22
Port 12345 ← SSHのポート番号を変更(=入口を分かりにくくする。1024~65535の値で。)
#PermitRootLogin yes
PermitRootLogin no ← rootのログイン禁止(=rootは狙われやすいので)
#RSAAuthentication yes
RSAAuthentication yes ← RSA鍵方式のログインOK(=秘密鍵を持ってる人のみOK)
#PubkeyAuthentication yes
PubkeyAuthentication yes ← 公開鍵方式のログインOK(=秘密鍵を持ってる人のみOK)
#AuthorizedKeysFile .ssh/authorized_keys
AuthorizedKeysFile .ssh/authorized_keys ← 公開鍵の置き場
#RhostsRSAAuthentication no
RhostsRSAAuthentication no ← リモートホスト(信頼できるホスト名とユーザー名のリスト)によるログイン禁止
#PasswordAuthentication yes
PasswordAuthentication no ← パスワード方式のログイン禁止(=総当りの阻止)
#PermitEmptyPasswords no
PermitEmptyPasswords no ← 空のパスワード禁止
#UsePAM yes
UsePAM no ← PAM(一括認証)の禁止
(参考) ポート番号 - Wikipedia
WELL KNOWN PORT NUMBERS 0番 - 1023番 一般的なポート番号
REGISTERED PORT NUMBERS 1024番 - 49151番 登録済みポート番号
DYNAMIC AND/OR PRIVATE PORTS 49152番 - 65535番 自由に使用できるポート番号
・ポートはデータの出入口であり、Linuxは65535個のポートを用意しています。
・1023番までは各種プログラムで使われるので、1024番以降から好きな番号を割り当てます。
(参考) PAM(一括認証)とは?
http://kazmax.zpp.jp/linux/lin_pam.html
http://www.geocities.co.jp/sugachan1973/doc/funto47.html
●SSH再起動
viで編集後、保存して、SSHを再起動します。
sudo /etc/init.d/sshd restart
SSHの接続テスト
SSHクライアントソフトで、SSHによるリモート操作ができるかテストしてみます。
Windowsユーザーの場合、「Poderosa」「WinSCP」の使用をオススメします。
http://ja.wikipedia.org/wiki/Poderosa
http://ja.wikipedia.org/wiki/WinSCP
さきほどPuTTyで秘密鍵を作りましたが、Poderosaで使う場合は、鍵の形式を変換する作業が必要です。
(参考)鍵の保存形式を変換(OpenSSH形式から、ssh.com形式へ変換)
http://animemo.seesaa.net/article/119488771.html
http://d.hatena.ne.jp/ablabo/20070725/1185291299
http://blog.livedoor.jp/sasata299/archives/51173838.html
denyhosts
SSHによる不正アクセス防止のために、「denyhosts」をインストールしてみます。
http://epidemic.jp/2010/09/25/denyhosts-on-sakura-vps/
denyhostsいわゆるSSHの総当り攻撃を防御するためのソフトウェアです。
メカニズムとしてはデーモンとして常駐しながら/var/log/secureというアクセスログを監視します。
その後一定回数以上のアクセス失敗があったら自動的に/etc/hosts.denyに接続を失敗したIPアドレスの書き込みを行います。
yum -y install denyhosts
/etc/init.d/denyhosts start
chkconfig denyhosts on
chkconfig --list denyhosts
以上で、SSHの設定は終わりです。
次は、ファイヤーウォールを設定しましょう。
独習Linux 小林 準 翔泳社 2007-01-25 売り上げランキング : 152999 Amazonで詳しく見る by G-Tools |
実践CentOSサーバルート養成講座 田鍬 享 秀和システム 2009-06 売り上げランキング : 253219 Amazonで詳しく見る by G-Tools |
さくらのVPS インストールまとめ - 浜村拓夫の世界
- 関連記事
-
- UbuntuでKVMを有効にする方法
- ハイパフォーマンスHTTPサーバ Nginx入門
- さくらのVPS 不要デーモンの停止
- さくらのVPS DNSとバーチャルホストの設定
- さくらのVPS Apacheの設定
- さくらのVPS ファイヤーウォールの設定
- さくらのVPS OSのアップデートとシステムの日本語化
- さくらのVPS SSHの設定
- さくらのVPS サーバー設定の基礎知識
- さくらのVPS ユーザーの設定
- さくらのVPS コントロールパネルでOSを選択
- さくらのVPS インストールまとめ
- 実践CentOSサーバルート養成講座
- さくらのVPS 設定ガイドリンク集 厳選140 \(初心者歓迎)/
- Linux逆引き大全600の極意