Getting Things Done!

大きな夢は目の前にある1つ1つの小さなことをこなしてこそ達成される

スポンサーサイト

上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。

スポンサー広告 |

さくらVPSを契約したらまずやること ー SSHをよりセキュアにする(ポート変更、rootログイン禁止、鍵認証)

さくらのVPSは月額たった980円でroot権限を使えて容量20GBも使える、しかもさくらインターネットのしっかりした回線でサーバーが運用できるサービスです。初期費用も無料で2週間お試し期間付き。ちょっとしたWebサービスを構築できる技術のある人であればそこに広告を載せてちょっと人を集めればそれで月額費用はすぐに回収できるかと思います。root権限が使えるのでなんでもやり放題ですし、ボタン1つでOSの再インストールも可能なので色々な実験をする場としても最適です。




そんなさくらのVSP。SSHがデフォルトで使えるので何もしなくてもターミナルからSSHでログインができますしFTPソフトからSFTPもできるようになっています、

しかもrootユーザーで(笑)

ですのでこのSSHを少しセキュアにする設定をまず行う必要があります。今回はMacを使っている前提で説明を勧めます。

やることは以下の3点

1. SSHポートの変更。デフォルトポート22を別のポートへ変更。
2. rootでのログインを禁止する。権限の低いユーザーでのログインできるようにする。
3. SSHのパスワード認証をやめ、公開鍵/秘密鍵で認証を行う。

2,3はセキュリティ効果はありますが1は気休めです。なぜなら以下のコマンドでSSHが使われているポートもSSHの種類やバージョンも分かってしまうからです。

nmap -A -v [host名もしくはIPアドレス]

とはいえポート22を不正に接続されることも多いので変えておくと狙われる確率が多少は軽減するかと思います。あくまで気休めですけど(笑)


またさくらのVSPは管理画面上にリモートコンソールが付いているので万が一SSHの設定を誤っても最悪リモートコンソール経由で復旧できますので安心です。

さくらインターネットVPSコントロールパネル


0. まず始めに


まずはMacのターミナルからsshでログインします。最初はrootでログインすることになります。

ssh -p 22 -l root [host名もしくはIPアドレス]


まずユーザーを新規に作成しましょう。新規ユーザーを既存のグループに追加するのであればaddgroupは不要です。ここではdeveloperというグループを作成します。そして新規ユーザーhogehogeを作成してこのユーザーの主グループをdeveloperに設定します。

addgroup developer
adduser -g developer hogehoge


次にsshdの設定を変更するために/etc/ssh/sshd_configを開きます。多くの設定がありますがこれから説明する部分だけを変更すればOKです。ちなみに行の先頭の#はコメントで設定は無視されます。


1. sshポートの変更


Port 22

の行を

Port 8822

のように変更します。ここではポート番号を8822に設定していますが、well-knownポートのレンジを避ければ特になんでも構いません。


2. rootでのログインを禁止する


PermitRootLogin yes

の行を

PermitRootLogin no

に変更します。これでrootユーザーでログインが出来なくなります。

さらに以下の設定をしましょう。

PermitEmptyPassword no
AllowUsers hogehoge

これによってパスワードなしのログインを禁止して、hogehogeユーザーのみがログインできるようになります。


3. sshのパスワード認証をやめ、公開鍵/秘密鍵で認証を行う(SSH設定)


PasswordAuthentication yes

の行を

PasswordAuthentication no

に変更します。これによりパスワード認証によるログインができなくなり、代わりにデフォルトの鍵によるログインが有効になります。

sshdの変更は以上です。ここでsshdを再起動させると変更した設定が有効になります。

/etc/init.d/sshd restart

ただし、この状態ですと現在のSSHのセッションを抜けてしまうとSSHで二度とログインができなくなりますのでまだ再起動しない方法がいいでしょう。

次の鍵の作成と配備を完了させてからsshの再起動を行いましょう。


4. sshのパスワード認証をやめ、公開鍵/秘密鍵で認証を行う(鍵の生成と配備)


次に鍵を作成します。鍵を作成するにはログインするユーザーとして作業する必要があるので先ほど作成したhogehogeユーザーに切り替えます。

su - hogehoge

次に秘密鍵、公開鍵を作成します。暗号化方式にはRSAを使用します。他にもDSAを選択できます。

ssh-keygen -t rsa

するといくつかの入力項目があるのでそれぞれ入力します。

Generating public/private rsa key pair.
Enter file in which to save the key (/home/hogehoge/.ssh/id_rsa):
 デフォルトの場所でいいのでenterを押す。
Enter passphrase (empty for no passphrase):
 鍵を開くパスワードを入力(ログインのパスワードではありません)
Enter same passphrase again:
 再度確認のため同じパスワードを入力
Your identification has been saved in /home/hogehoge/.ssh/id_rsa.
Your public key has been saved in /home/hogehoge/.ssh/id_rsa.pub.
The key fingerprint is:
....

「Enter file in which to save the key」はデフォルトの場所でいいのでenterキーを押します。
「passphrase」は秘密鍵を使う際のパスワードです。ログイン用のパスワードではないのでお間違いなく。そもそも鍵による認証は秘密鍵が公開されないということでセキュティが高くなっているのでpassphrase自体は不要だと考えています。万が一秘密鍵が誰かの手に渡ってしまったときにpassphraseがあればより安全になりますが人の手に渡ってしまった場合にはセキュリティレベルはかなり下がってしまいpassphraseが解読されるのは時間の問題となりますので。

ls -la ~/.ssh

を実行して2つのファイルが作成されていることを確認します。以下の2つのファイルが作成されていると思います。

id_rsa.pub (公開鍵)
id_rsa (秘密鍵)

sshdが認証時に公開鍵を参照する際の公開鍵のフィアル名は「authorized_keys」となりますのでid_rsa.pubのファイル名を変更します。

cd ~/.ssh
mv ./id_rsa.pub ./authorized_keys

さらにアクセス権限も変更します。

chmod 400 ./authorized_keys


次に秘密鍵をクライアント側にコピーします。この時点ではまだsshdを再起動していないのでパスワード認証によるSFTPを利用可能です。CyberDuckなどさまざまなFTPソフトがありますが今回はFileZillaを前提に説明します。

ホスト:さくらVPSのIPアドレスもしくはホスト名
ユーザー名:root
パスワード:xxxxxx
ポート:22
でクイック接続します。

そして先ほど作ったid_rsa(秘密鍵)をローカル(Mac側)にコピーします。ユーザーディレクトリの ~/.ssh/配下にコピーします。

なおMac側でもアクセス権限を変更しないと利用できませんというエラーメッセージがログイン時に出てしまいログインできなくなるので以下のようにアクセス権限の設定をしておきます。

chmod 400 ~/.ssh/id_rsa


これでクライアント側の設定も完了です。

そしてサーバー側でsshdを再起動すれば完了です。

尚、サーバー上のid_rsa(秘密鍵)は不要なので以下のようにして必ず削除しましょう。

rm ~/.ssh/id_rsa



これで秘密鍵を持っているhogehogeユーザーからのみSSHのログインが可能となります。注意点は秘密鍵が配備されている端末からのみSSHでログインが可能になるので端末が変わった場合には再度同じ秘密鍵の配備をしない限りSSHでログインができない、ということです。当然といえば当然ですが僕は出先で端末が変わったときにアクセスできないことに気づいて慌てたことがありましたので(笑)

ちなみにFileZillaでも鍵認証でのSFTPをするために設定が必要です。特に難しいことはないのですがそれはまた機会があれば説明します。






関連記事
スポンサーサイト

コンピュータ | コメント:0 | トラックバック:0 |
<<散歩コースの黒川東観光農園が雪ですごいことに | HOME | Mac上でリッピングしたDVDを字幕付きでiPhone/iPadやAppleTVでみる方法 ー HandBrakeを使う>>

この記事のコメント

コメントの投稿















コメント非公開の場合はチェック

この記事のトラックバック

| HOME |
上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。