こんにちは、開発部山田です。
今回はセキュリティの観点からポートスキャンについてのお話です。
インターネット通信を支えるプロトコル
コンピュータ同士の通信には「ポート」と呼ばれる送受信口が決められていることをご存知でしょうか。
ポートとは、昨今のインターネットで標準的に使われているTCPやUDPが通信する際に用いられる送受信口であり、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を打たないようにしましょう。
以上、開発部山田でした。