Ubuntu18.04 LTSにSSHしてセキュリティ設定をしよう!

みなさんこんにちは!UbuntuにSSHしたいなと思ったことはありませんか?また、SSHはできたけど設定などいまいちわからず適当にやってしまったなんてことはないですか?

UbuntuにSSHするときは基本的にデフォルトではセキュリティはめちゃめちゃ低いです。適当に設定していてはいつ破られるかわかりませんね。そこで本日は、

  • sshとは
  • 実際にSSHする方法
  • 最低限のセキュリティ対策

ということを初心者の方でもわかりやすいよう、丁寧に解説していきますので、UbuntuのSSHを考えている方は是非参考にしていただければ幸いです!

sshとは

それではまずは、簡単にSSHとはということについてみていきましょう。sshとはSecure Shellの略で、安全にリモートコンピュータと通信するためのプロトコルです。

もっとわかりやすくいうと、遠隔でサーバやマシンにアクセスするときにより安全に行うための通信方法です。

実際の開発現場や、個人の開発でもSSHすることは非常に多く、SSHのスキルはエンジニアとしてほぼ必須といえるので必ずマスターしておきましょう。

マシンの説明

実際にSSHする前に、今回使うマシンの説明をしておきます。今回はSSHする側にMacOS、SSHされる側に、Ubuntu18.04LTSを用いていきます。

また、Ubuntu環境はVirtualBoxにて構築していますが、実機にて構築している方も大きく変わるところはありませんので、気にせず進めていただけたら幸いです。

余談ですが、新たにUbuntuを導入したいという方は迷わず18.04LTSを使いましょう。最新でかつ5年間のサポートがついているので今導入するならこちらを選んでおけば間違いありませんね。

導入方法は以下の記事で説明しているので参考にしてみてください。

「Ubuntu Desktop日本語Remix」をVirtualBoxにインストールする方法
更新日 : 2019年4月30日

SSHできるようにしよう!

さて、それでは、ここから実際にSSHするまでの方法を見ていきます。

SSH Serverを導入しよう

SSHは名前から見てわかる通りShellの一種なので、SSHするには専用のServerをインストールする必要があります。今回はopenssh-serverというものをインストールしていきます。なのでUbuntu側でターミナルを開き、

このように

sudo apt-get install openssh-server

としてやりましょう。本来はこの段階で、IPアドレスを確認すればSSHできるようになります。しかし、今回はVirtulBoxを使っているのでそっちの方を設定していきます。

VirtualBoxを使ってない方は飛ばして、次次章SSHするから参照してください。

VirtualBoxをSSHできるように設定しよう

画像のように、設定、ネットワーク、高度な設定、ポートフォワーディングを選択しましょう。

画像のように、右側の追加から適宜設定しましょう。

SSHする

VirtulaBoxの設定が終わったところでMacの方でSSHしていきます。今回SSHに使う情報としては、

  • Ubuntuの名前: kai
  • IPアドレス: localhost
  • ポート: 3434

なので、「ssh 名前@IPアドレス -p ポート」として各自適切なものを挿入して、SSHしていきます。

kai:~ kai$ ssh [email protected] -p 3434
The authenticity of host '[localhost]:3434 ([127.0.0.1]:3434)' can't be established.
ECDSA key fingerprint is SHA256:y+409QUogpukLnBDEe0RUAVSHIl0m6GgY9WiWuJg21k.
Are you sure you want to continue connecting (yes/no)? yes

yes,noを聞かれるので、yesとしてエンターを押します。また、VirtualBoxを使っていない方は、ポートはまだ設定していないと思うのでなくて大丈夫です。すると、パスワードをもとめられ、

このように、SSHできています。

セキュアな設定をしよう

さて、実際にSSHしてみましたが、現在の状態ではセキュリティがかなり低いです。VirtualBox以外の場合はポートも設定していませんからね。最低限やるセキュリティ対策は以下の4つです。

  • ポートの設定
  • rootログインの禁止
  • 鍵認証のための鍵作成
  • パスワードログインの禁止

ポートの設定は、VirtualBoxであればすでに終わっていますが、それ以外の方のために説明していきます。

ポートの設定

ポートの設定は「/etc/ssh/sshd_config」にて行います。Ubuntuにて、「vi /etc/ssh/sshd_config」として、編集していきましょう。

このように、# Port 22となっているところがあるので、コメントアウトして、1-65535の中で好きなものを設定しましょう。とはいえ、1-1023番はウェルノンポートと言って、主要なプロトコルが登録されています。

また、1024~49151番は登録ポートと言って、他アプリケーションが登録していることもあるので競合を避けるためにも、1-1023、1024~49151番は使わないほうが良いでしょう。

今回はテスト用で他アプリケーションなどは使っていないので利用していますが、本番環境では49152-65535番を利用するようにしましょう。

rootログインの禁止

rootは全ての権限を持っていて危険なので、「vi /etc/ssh/sshd_config」の後に「/root」と打つと、検索できるので、

PermitRootLoginをコメントアウトし、noにしましょう。

鍵認証

次に鍵認証を行なっていきます。手順的には、Macの側で秘密鍵を作成し、Ubuntu側に公開鍵を渡します。それによってMac側の鍵とUbuntu側の鍵が一致してログインできるようになります。

実際の鍵の作り方は以下の記事で書かれているので参考にしてみてください。

【Linux】SSHとは?Ubuntu Serverに接続してみよう
更新日 : 2019年5月6日

パスワードログインの禁止

さて、最後に鍵認証ができるようになった今、パスワードでログインする必要はないので塞いでしまいましょう。同じように、「vi /etc/ssh/sshd_config」の後に「/Pass」と打つと、検索できるので、

PasswordAuthenticationをコメントアウトしnoにしましょう。

まとめ

いかがでしたか。ubuntuへのSSHから、最低限のセキュリティ設定まで詳しく見てきました。ローカルでの運用ではなく、本運用する場合は必ずセキュリティ設定を行っておきましょう!それでは!!

「プログラミング、右も左もわからない…」という方にオススメ

当プログラミングスクール「侍エンジニア塾」では、これまで6000人以上のエンジニアを輩出してきました。

その経験を通してプログラミング学習に成功する人は、「目的目標が明確でそれに合わせた学習プランがあること」「常に相談できる人がそばにいること」「自己解決能力が身につくこと」この3つが根付いている傾向を発見しました。

侍エンジニア塾は上記3つの成功ポイントを満たすようなサービス設計に磨きをかけております。

cta_under_bnr

「自分のスタイルや目的に合わせて学習を進めたいな」とお考えの方は、ぜひチェックしてみてください。

書いた人

かい

日向徹かこよすぎか

[email protected]

おすすめコンテンツ

まずはここから!初心者でも1から学べるプログラミング入門カリキュラム

転職成功で受講料0円!あなたもプログラミングを学んでエンジニアデビュー