学校である程度知識もついたので、学んだことを実践してみようと思いSSHを実際に使って見ようと思いました。
サーバーはconohaで一番安いプランのVPSをレンタルしました。
#公開鍵と秘密鍵を作る
SSHは暗号化を行う事により盗聴されても大丈夫なようにして、遠隔操作を行うためのプロトコルだという認識です。
Teratermで公開鍵と秘密鍵を作成し、公開鍵の方をサーバーに渡し、.ssh/authorized_keysへ移動。
公開鍵で暗号化した物は秘密鍵でしか復号できず、秘密鍵で暗号化した物は公開鍵でしか復号できない。このおかげでクライアントとサーバーの通信は盗聴されても複合出来ない、安全である…という認識です。
書いてて思っちゃったんですけど、これ公開鍵をサーバーに渡した際に誰かに盗聴されてて公開鍵を取られてた場合、クライアント側で暗号化した文を復号されちゃうんですかね。最初にユーザーログインしてから公開鍵を渡したからパスワードで暗号化されてたりするんでしょうか、やはりまだ勉強が足りないですね。
#sshdのコンフィグを弄る
sshdのコンフィグを弄ってsshでのrootログインを禁止して、パスワードでのログインも禁止に設定しました。
sshの外部からログイン出来る性質上、なんでも出来るroot権限を万一にでも奪取されたらまずい、というのがrootログイン禁止の理由、辞書攻撃やブルートフォース攻撃によって突破されたらいけない、というのがパスワードでのログインを禁止する理由らしいです。
そういえばちょっとここで詰まってしまいました。sshでログインしようとしてもTeratermの反応がなくなってしまう事態が発生しました。最初からやり直したら解決したのですが、どうやらauthorized_keysのパーミッションの設定を忘れていたのが原因のようです。
パーミッションというのはアクセス権の事らしいですね、書き込み読み込み実行の権限が無かったせいで止まっていた、という感じなのでしょうか。
#FWの設定を変える
なんやかんやで無事SSHでのログインは出来るようになったのですが、ウェルノンポート番号のままだと攻撃を非常に受けやすいとのことなので、sshのポート番号を変更することにしました。
残念ながらココらへんのコマンドは半分くらいしか理解できませんでした。iptablesというのは昔聞いたことがあったのですがfirewalldというのを使うようになったみたいですね。
恐らくですが、sshのウェルノンポート番号を塞ぎ、適当なポート番号をssh用に開く、という処理を行ったようです。そのうち完全に理解できるようになりたい。
#感想
linuxを触るの自体あまり経験がなかったので、今回のはいい経験になりました。応用情報取得で学んだだけの知識を少しは実際に使えるようになれたと思います。qiita自体もあまり馴染みが無いのですが、アウトプットはしっかり出来るようになっていたほうがいいとの事なので…書ける内容も記事の質も少しずつ良く出来るようにこれからも精進していこうと思います。