• このエントリーをはてなブックマークに追加
  • このエントリーをはてなブックマークに追加

こんにちは、開発部山田です。
今回はセキュリティの観点からポートスキャンについてのお話です。

インターネット通信を支えるプロトコル

コンピュータ同士の通信には「ポート」と呼ばれる送受信口が決められていることをご存知でしょうか。

ポートとは、昨今のインターネットで標準的に使われているTCPUDPが通信する際に用いられる送受信口であり、0~65535までの仮想的な番号が振られています。

利用されるポートは通信の内容によって決まっており、例えば、WebサーバがWebブラウザからHTTPを用いて接続を受け付ける際には、通常、TCPの80番ポートを用いる。

その他にも、下記のような例が挙げられます。

  • ウェブサイトの閲覧 -> Port80
  • POP3で電子メールを受信する際には -> Port110
  • SMTPによるメールの送信には -> Port25
  • ftpによるファイル転送(コントロール)には -> Port21
  • ftpによるファイル転送(データ)には -> Port20
  • DNS -> Port53
  • https -> Port443

などが挙げられます。

ポートスキャンとセキュリティ

さてここから本題であるポートスキャンのお話です。

ポートスキャンをする意図としては、利用したいポートが通信可能(OPEN)になっており、利用したくないポートが通信不能(Closed)になっていることを確認するためです。

利用していないポートを空けておくと不正な侵入を許してしまい、システムの脆弱性につながってしまいます。

Nmapを使ったポートスキャン

nmapコマンドを使うとポートスキャンができます。
nmapはオープンソースで開発されている高機能なポートスキャンツールであり、
特定のサーバーの任意のポートの状態を知ることができます。

以下の方法で、インストールしましょう。
今回はMac Book Proで作業しています。

●インストール

$ brew install nmap

●ちなみに、自分(ローカルホスト)のサーバーの
ポートは何が開いているか試しましょう。

$ nmap localhost

Starting Nmap 7.31 ( https://nmap.org ) at 2016-12-13 11:55 JST
Nmap scan report for localhost (127.0.0.1)
Host is up (0.00054s latency).
Other addresses for localhost (not scanned): ::1
Not shown: 966 closed ports, 30 filtered ports
PORT      STATE SERVICE
631/tcp   open  ipp
8080/tcp  open  http-proxy
49152/tcp open  unknown
49153/tcp open  unknown

Nmap done: 1 IP address (1 host up) scanned in 5.57 seconds

それでは、自身で管理されてるサーバーのグローバルIPに向けて、
nmapでポートスキャンを実施していきましょう。

ここで注意したいのが、nmapを見ず知らずのサーバーに打たないことです。
nmapを見ず知らずのサーバーに打つということは外部に攻撃をしかけていると見なされますので、
絶対に、他人のサーバーにnmapを打たないようにしましょう。

以上、開発部山田でした。