2016年5月6日金曜日

外部からsshでログインその1

せっかくLinuxマシンを準備しても、外出先から利用できないともったいない。
(常に電源を入れておくのは電気代がもったいない、という意見もあるけど…)
そこで今度は、外部(The Internet)側からsshログイン出来るように設定しよう。

但し、気をつけないといけないことがある。
The Internet側からログイン可能になる、ということは、悪意を持った人物からもそのマシンが利用されてしまう可能性がある、ということだ。
よくここで「大したデータも入ってないから、別に何かあっても問題ないよ」という人がいるが、それは大きな間違いだ。
悪意をもった人物は、個人の、大して面白くもないデータには興味が無い。重要なのは、そのマシンを踏み台にして、別のサーバ(企業のサーバ等)を攻撃する可能性がある、ということだ。
ある企業がネット攻撃を受け、その攻撃元を調べてみたら、実は自分のマシンだった!なんてことがあった場合、自分は被害者ではなく加害者になってしまうのだ。場合によっては損害賠償請求をうけることにもなりかねない。

つまり、The Internet側からのアクセスを許可する、ということは、それ相応の設定・運用を施しておく必要があり、またきちんとチェックしていく必要がある、ということでもある。
上記を踏まえて、ある程度セキュリティレベルを高めておいて、それでいてThe Internet側からのアクセスが可能になるように考える必要がある。

さて、まずはThe Internet側からLinuxマシンへのアクセスだが、これには前提条件が2つほどある。
  1. ルータの(外側の)IPアドレスが、グローバルアドレスであること
    これは、各自ルータの設定画面を見てもらえばわかると思う。製品によって、表示させる方法が異なるため、ここでは省略する。
  2. 外部からのアクセスをプロバイダ側がシャットアウトしていないこと
    プロバイダによっては、セキュリティ維持を目的として、外部からのアクセスを厳しく制限しているところがあるらしい。
    恐らく、プロバイダの規約等に記載されているはずなので、よく確認してみて欲しい。
これらの条件がクリアできていたら、The InternetからLinuxマシンへのアクセス設定だ。これはルータの機能で実現可能だ。
ルータによって(多分)表現は異なるが、「ポート変換」とか「ポート転送」、「ポートフォワーディング」といった名称で、その機能が用意されているはずだ。詳しくは各自のルータのマニュアルを参照してもらいたい。
簡単なイメージを下に記載する。

ルータ側で特定のTCPポートをOpenしておき、そこにアクセスが来たら、そのパケットをLinuxのsshdポート(22番)へ転送する、という設定だ。

単にこれだけで、The Internet側からのsshアクセスが可能になる。(teraterm等でログインする時に、ブロードバンドルータのIPアドレスとOpenしたポートを指定すること。また、内側からは指定してもログイン出来ないと思う。ノートPC等をポータブルWiFiルータ等に繋いで試してみよう。)
さて、じゃぁ「特定のTCPポート」って何番よ?ということなんだが…。正直なところ、何番でもいい。
「どうせ、Linuxマシンの22番に転送されるんだから、外側も22番にしておいた方が覚えやすくていいや。sshってデフォルト22番だし。」という考えも間違いではない。
ただ、できれば若い番号(1024番以下)は避けたほうがいい。1024番以下は、特にポートスキャンされやすい番号だからだ。
特に22番は、悪意を持っている人物からは、「sshポート開けてるヤツいねぇかな?」ということで、定期的にスキャンされていると思っておいた方がいい。
そのため、開けておくとすぐに「お、22番開けてるヤツいるじゃねぇか。どれ、辞書攻撃でも仕掛けてみるか。突破できれば儲けもの。」と大量のアクセスが来る可能性がある。
1024番より大きな番号であっても、安心できるわけではないが、多少はマシだ。
とは言え、10022とか、22000とか推測されそうな番号はピンポイントでスキャンされると思うから、それも避けよう。

じゃぁ何番がいいんだよ?ってことだけど…。正直なところ、「覚えていられれば何番でもいい」という結論しか出せない。
例えば「10000 + 西暦生年 + (生まれ月 * 生まれ日)」とか。
2000年12月18日生まれだとしたら、10000 + 2000 + (12 * 18) = 12216だ。
こんな感じで決めてしまっていいと思う。

実際に設定が終わったら、アクセス出来ることを確認しておきたいが、もう一つ重要な点を書いておく。

今のsshdは、公開鍵認証方式だけではなく、パスワード認証方式も有効になっているはずだ。
ということは、The Internet側からも、ユーザIDとパスワードの組み合わせでログイン出来てしまう。

ユーザIDとパスワードの組み合わせというのは、結構簡単に突破されてしまう。従って、セキュリティレベルとしては結構低いと考えたほうがいい。

次回は、sshdを「The Intenet側からは公開鍵認証のみ(パスワード認証は禁止)」、「家の中からは、鍵認証もパスワード認証も両方可能」な設定に変更する。

できれば、その設定が終わるまでは、ルータ側のポート転送を停止しておいて欲しい。

以上。

0 件のコメント:

コメントを投稿