ポートの様子を見よう

ポートとは?

ネットワークにつながったコンピュータが、ポートを通して外部のネットワークとの間で通信を行っていることは、試練の中でもご紹介しました。そして、ポートには使用されていないものもあり、それを開けたままにしておくと外部から侵入される脆弱性に成り得ることも説明しました。それでは、実際のポートの使用状況は、どのように調べればよいのでしょうか。
それを知るために利用できる手法の一つが「ポートスキャン」です。
ポートスキャンは、コンピュータのポート一つ一つの状態を調べられるので、自分のコンピュータのポート管理に脆弱性が無いか確認するには有効です。ところがサイバー攻撃を行う目的で、他人のサーバーに不正に侵入するための入り口となる閉め忘れたポートを探すために悪用されることがあるのです。
そのため、他人が管理しているコンピュータに無断でポートスキャンを実施すると、通信をシャットアウトされたり、場合によってはサイバー防衛隊や警察に通報されてしまうことがあります。
そんなことにならないように、他人が管理しているコンピュータに無断でポートスキャンを実施することは、絶対に止めましょう。

ポートを開閉するには

コンピュータのポートは、ユーザーが自分で開いたり閉じたりすることができます。

ここでは、Windows10でWindowsファイアウォールを使用している場合を例にとって解説します。

まず、画面左下の「スタート」ボタン(Windowsのマーク)をクリックします。すると、その上にいくつかのボタンが表示されます。その中にある、歯車の形をした「設定」ボタンをクリックします。

画面下の歯車ボタン

次に、「ネットワークとインターネット」を選択します。

ネットワークとインターネット

右側に「状態」と表示されているところの下のほうにある、「Windows ファイアウォール」という青い文字をクリックします。

Windowsファイアウォール

表示されたダイアログウィンドウの右側「ファイアウォールとネットワーク保護」の下のほうにある、「詳細設定」という青い文字をクリックします。

詳細設定

「このアプリがデバイスに変更を加えることを許可しますか?」という警告画面が出たら、「はい」をクリックします。そして、「セキュリティが強化されたWindows Defender ファイアウォール」というウィンドウが表示されたら、左上の部分に「受信の規則」と「送信の規則」があることを確認してください。受信の際のポートの開閉を管理するなら「受信の規則」を、送信の際の管理をするなら「送信の規則」をクリックしてください。そのあとは、右上の「新しい規則」をクリックしてください。

通信の規則

「プログラム」「ポート」「事前定義」「カスタム」の中から、「ポート」を選んで「次へ」をクリックします。

「TCPとUDPのどちらにこの規則を適用しますか?」は「TCP」を、「すべてのローカルポートと特定のローカルポートのどちらを対象にこの規則を適用するかを選択してください」は「特定のローカルポート」を選択します。そして、「特定のローカルポート」の横にあるボックスに、開閉を管理したいポート番号を入力して、「次へ」をクリックします。

「接続を許可する」「セキュリティで保護されている場合のみ接続を許可する」「接続をブロックする」の三つの選択肢がありますが、これは上から、ポートを「開く」「条件付きで開く」「閉じる」という意味になります。いずれかを選択して「次へ」をクリックします。あとは、この規則をいつ適用するかを選択し、この規則に任意の名前を付けて保存します。これで、特定のポートの開閉の管理を手動で設定することができました。

ポートスキャンのツール

でも、自分のコンピュータにポートスキャンを行い、ポートの管理がうまく設定できているか確認することは問題ありません。そこで、ポートスキャンをするためのツールをご紹介しましょう。
ポートスキャンを体験できるツールは、いろいろインターネットで公開されており、無料で利用することができます。
自分が管理するコンピュータのドメイン名やIPアドレスを入力すれば、ポートの状況が表示されるので、ポートの設定が適切に行われているかどうかを調べることができます。

手軽に体験できるのが、アメリカのGRC社が提供している「Shields Up!!」です。
アプリのインストールは不要で、Webブラウザだけで実行できます。このツールですが、これは自分のコンピュータがリクエストして、外部のサーバーからポートスキャンをかけてもらう、というものです。
操作も簡単で、下記のURLにアクセスするだけです。
https://www.grc.com/x/ne.dll?rh1dkyd2

WiFiでインターネットに接続したWindows10のノートパソコンから実行してみました。使用したブラウザはGoogle Chromeです。なお、このWebツールはスマホからも利用可能です。
サイトを開くと、自動的にこのパソコンが接続しているネットワークを管理するコンピュータ(これをゲートウェイサーバと言います)のIPアドレスを調べて表示してくれます。

全部英語だと分かりにくいですね。そこで、Google Chromeの自動翻訳をオンにします。
すると…

これなら分かりそうですね!
スクロールして結果を表示してみると…このノートパソコンが接続されているゲートウェイサーバーは、使わないポートはほとんど閉めてあるようです(青「閉まっている」)。Telnet(テルネット)だけはポートが開いているけれど、今は誰も接続していないことがわかりました(緑「ステルス」)。

同じサイトにある別の方法で調べてみましょう。以下のURLを開いてください。
https://www.grc.com/x/ne.dll?rh1dkyd2

今度は、このゲートウェイサーバーのポートのうち、最初の1,056個のポートの状態を確認した結果です。
一番上の緑色の四角がTelnetでした。

どうやら、このゲートウェイサーバーの情報セキュリティ管理は十分のようです。

比較するために、同じ場所からスマホで接続してみました。ただしWiFiには接続しないで、とあるキャリアの回線につないでいます。
すると、このキャリアのゲートウェイサーバーは、ほとんどのポートが開かれていることが分かりました。情報セキュリティ的には、脆弱性がある状態ですね。

さて、みなさんの環境ではどうなるでしょうか?ちゃんと設定されているかな。

でも「自分はインターネットは動画を見たりゲームしか使わないからポートとか関係ないや!」と考えた人はいませんか。
ネットワークゲームをする場合、インターネットに接続するゲートウェイサーバーの特定のポートが閉められていると、うまく接続できないことがあります。なので、同じパソコンを使っているのに、自宅からは接続できるのに外からつながらないことがあるんだ…なんて経験のある人は、試しにポートを確認してみてはいかがですか。

ポートの適切な設定とは

ポートがきちんと設定されている状態とは、開いておくべきポートが開いていて、閉めておくべきポートが閉じられている状態となります。具体的にどのポートを開閉すべきかは、環境や使用方法によって異なりますが、通常、一般のユーザーが使用するパソコンの場合は、次のようにするとよいでしょう。

開けるポート:DNS、HTTP、HTTPS、NTP
閉めるポート:DHCP、finger、login、netbios、NNTP、SSH

前にもどる