#概要
SSHの設定方法は結構たくさん記事にされているのですが、「LANで使えるようになって終わり」とか、「SSHの設定は別の人を見てDDNSの設定方法を教えます」みたいな細々したものばかりなので、それらのURLをまとめ、UbuntuでSSHを設定してWANを介して通信できるまでの一連の流れを、一つにしてみました。
ほとんどURLを張り付けただけの自分用のメモです。
#行うことについて
最初にUbuntuのSSHDを起動して、SSHサーバを立ち上げ、LAN内でWindowsからSSHサーバへの接続を行います。
その後、公開鍵認証の設定やセキュリティの確認を行った後に、WANを介するためのDDNSやポートの設定を行います。
WANを介して接続する際は、スマホにいれたJuiceSSHを用いて、外からSSHサーバに接続できることを確認します。
最後に立ち上げたSSHサーバを閉じます。
#IPアドレスの設定
サーバーのIPが変わらないようにIPを固定します。
IPを固定する前にDHCPサーバーに自分のIPアドレスをリースしてもらうように設定します。
こうしないと、固定したIPアドレスが別の端末に勝手に使われてしまいます。
IPアドレスのリースの設定はルータごとに異なるため、型番などで調べること。
先ほどリースしたIPアドレスをサーバー側に設定します。
#SSHの設定
以下のURLではECDSA-521の公開鍵認証を使い、SSHサーバの構築からWindowsを用いての接続を行っています。
Windows10からLinuxへのSSHに安全性の高いSSH公開鍵認証を設定
#設定するとよいセキュリティの設定
sshの設定の段階で十分なセキュリティが確保されているのですが、さらに強固にする方法をいくつか紹介します。
###ポート番号の変更
攻撃者は22番ポートを集中的に攻撃するので、ポート番号を変えて、攻撃者の数を減らすことで、事実上、安全性をあげることができます。
ただし、その他の設定で穴があれば、安全性は0に等しいので、本質的には安全性は変わりません。
###ログイン失敗回数の制限
ログインを失敗した回数が一定以上を超えた場合に、一旦すべての接続を遮断するような設定もあります。
#セキュリティホールはありませんか?
この後にポートを開けるのですが、とても危険な行為なので、セキュリティの設定をちゃんと行えているかを再度確認してもらうため、わざと、章に分けなくていい部分を分けました。
以下のうち1つでも達成できないものがあれば、もう一度sshの設定に戻って設定をよく確認してください。
- このリストにあるような安直なものを設定していない。
- Lan内のクライアントから、パスワードを入力せずにログインはできない。
- 秘密鍵の設定をせずに、ログインはできない。
- SSHのポート番号を別のソフトが使用していない。(コマンドで調べてた後に、wikipediaのリストにもなければ問題ないはずです。)
#WANを介して接続できるようにする
まずは、家庭内のルーターの設定を行いポート開放を行います。
ルーターによって、設定の方法が変わるため、「型番 ポート開放」などで調べてください。
「NO-IP」を用いてDDNSの設定を行います。
JuiceSSHの設定を行って、SSHサーバへ接続してみます。
この時、接続ができない場合はスマートフォンのWi-Fiを切っておきます。
#不正なログインがないか確認
ログを確認する方法。
想定外の人がアクセスしてくることは稀ですが、週に1回は確認しておくことをお勧めします。
#片付け
もし、もうSSHは必要なくなったという時のため、片付けを行う方法も書いておきます。
ここまで、ちゃんと設定すれば不正なログインはされないと思いますが、「SSHに脆弱性があった」何てことはいつも使って意識していないと気付かないものなので、使わなくなったら、片付けは忘れず行いましょう。
最初に、家庭内のルーターでポート開放するために行った設定を削除します。
次にSSHDを起動しないように「 /etc/init/ssh.conf」のに書き込まている「start on filesystem」をコメントアウトし、再起動を行えばSSHDが起動していないはずです。
再度、起動させたい場合は「#start on filesystem」をアンコメントしてSSHDを起動した後に、家庭内のルーターのポート開放を行うだけです。