Nmapとは"Network Mapper"の略で、フリーのネットワーク検知・セキュリティ検査ツールです。
ネットワークが影響してアプリが表示されないときや、接続がうまくいっていないときに利用します。
サーバー内部からポートの開放状態を確認するには過去記事にあります。
Centos7 でポートを開放する方法:コマンドとファイル書き込み
今回は、内部からでなく外部からポート検査する方法を書き溜めます。
概要
Nmapで外部からポートの開閉状況・利用状況を確認する
Nmapを使う際の注意事項
まずこの記事を読み進める前に下記を一読してください。
Nmapはポートスキャンが実行可能なツールなため、
対象のホストに対してネットワーク負荷をかけます。
Nmapを使用する対象は、自身の管理するホストに対してのみ実行するようにしてください。
Nmapのインストール方法
CentOS7では、Nmapをyumでインストールできます。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 |
$ sudo yum install -y nmap 読み込んだプラグイン:fastestmirror Determining fastest mirrors epel/x86_64/metalink | 7.8 kB 00:00:00 * base: ty1.mirror.newmediaexpress.com * epel: ftp.riken.jp * extras: ty1.mirror.newmediaexpress.com * updates: ty1.mirror.newmediaexpress.com base | 3.6 kB 00:00:00 epel | 5.4 kB 00:00:00 extras | 2.9 kB 00:00:00 updates | 2.9 kB 00:00:00 (1/3): epel/x86_64/updateinfo | 1.0 MB 00:00:00 (2/3): epel/x86_64/primary_db | 6.9 MB 00:00:00 (3/3): updates/7/x86_64/primary_db | 5.8 MB 00:00:00 依存性の解決をしています --> トランザクションの確認を実行しています。 ---> パッケージ nmap.x86_64 2:6.40-19.el7 を インストール --> 依存性の処理をしています: nmap-ncat = 2:6.40-19.el7 のパッケージ: 2:nmap-6.40-19.el7.x86_64 --> 依存性の処理をしています: libpcap.so.1()(64bit) のパッケージ: 2:nmap-6.40-19.el7.x86_64 --> トランザクションの確認を実行しています。 ---> パッケージ libpcap.x86_64 14:1.5.3-11.el7 を インストール ---> パッケージ nmap-ncat.x86_64 2:6.40-19.el7 を インストール --> 依存性解決を終了しました。 依存性を解決しました ================================================================================================================================================================================================= Package アーキテクチャー バージョン リポジトリー 容量 ================================================================================================================================================================================================= インストール中: nmap x86_64 2:6.40-19.el7 base 3.9 M 依存性関連でのインストールをします: libpcap x86_64 14:1.5.3-11.el7 base 138 k nmap-ncat x86_64 2:6.40-19.el7 base 206 k トランザクションの要約 ================================================================================================================================================================================================= インストール 1 パッケージ (+2 個の依存関係のパッケージ) 総ダウンロード容量: 4.3 M インストール容量: 17 M Downloading packages: (1/3): libpcap-1.5.3-11.el7.x86_64.rpm | 138 kB 00:00:00 (2/3): nmap-ncat-6.40-19.el7.x86_64.rpm | 206 kB 00:00:00 (3/3): nmap-6.40-19.el7.x86_64.rpm | 3.9 MB 00:00:00 ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- 合計 16 MB/s | 4.3 MB 00:00:00 Running transaction check Running transaction test Transaction test succeeded Running transaction インストール中 : 14:libpcap-1.5.3-11.el7.x86_64 1/3 インストール中 : 2:nmap-ncat-6.40-19.el7.x86_64 2/3 インストール中 : 2:nmap-6.40-19.el7.x86_64 3/3 検証中 : 2:nmap-ncat-6.40-19.el7.x86_64 1/3 検証中 : 14:libpcap-1.5.3-11.el7.x86_64 2/3 検証中 : 2:nmap-6.40-19.el7.x86_64 3/3 インストール: nmap.x86_64 2:6.40-19.el7 依存性関連をインストールしました: libpcap.x86_64 14:1.5.3-11.el7 nmap-ncat.x86_64 2:6.40-19.el7 完了しました! |
yumで入るのは、バージョン 6.40あたりだと思う。
1 2 |
$ nmap -v Starting Nmap 6.40 ( http://nmap.org ) at 2019-12-14 00:02 UTC |
Nmapの使い方、Nmap結果の見方
Nmap結果の見方
Namp実行で出力される6つの状態はそれぞれ下記のようになっています。
- open
- closed
- filtered
- unfiltered
- open|filtered
- closed|filtered
アプリケーションがTCPコネクションやUDPパケットをアクティブに受け入れている状態。いわゆるポートが開放されており、アプリケーションが稼働している状態。
アクセス可能(Nmapのプローブパケットを受信したり応答したりする)だが、そこで受信待機しているアプリケーションがない状態。アプリケーションが停止している場合に多い。
パケットフィルタされているため、開閉状況をNmapで取得判別できない状態。詳細をみるにはルーターやファイアウォールを確認する。
ポートにはアクセスできるが、そのポートの開閉状況をNmapで取得判別できない状態。ACKスキャン利用時のみ。
ポートが開いているかフィルタ処理されているかを判別できない状態。openポートからの応答がないタイプのスキャンには、こうしたケースが発生する。
ポートが閉じているかフィルタ処理されているかを、Nmapで取得判別できない状態。IPID Idleスキャン利用時のみ。
基本的に、open, closed, filteredが出力されます。
全ポートを確認する確認する方法
ホストを指定して、全ポートをスキャンしてポートの状況を確認するのは
nmap <ホスト名orIP> でできます。
実際に実行するとこんな感じ。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 |
$ nmap example.jp Starting Nmap 6.40 ( http://nmap.org ) at 2019-12-14 00:12 UTC Nmap scan report for example.jp (127.0.0.1) Host is up (0.0075s latency). Not shown: 987 filtered ports PORT STATE SERVICE 20/tcp closed ftp-data 21/tcp open ftp 25/tcp open smtp 53/tcp closed domain 80/tcp open http 110/tcp open pop3 143/tcp open imap 443/tcp open https 465/tcp open smtps 587/tcp open submission 993/tcp open imaps 995/tcp open pop3s 61121/tcp closed unknown |
指定したポートの開閉状況・使用状況を確認する方法
特定のポートの開閉状況・利用状況を確認するためには、-pを使用します。
nmap -p <ポート番号> <ホスト名orIP> でできます。
複数指定する場合は、カンマで区切ってね。
実際に実行するとこんな感じ。
1 2 3 4 5 6 7 8 |
$ nmap -p T:80,443 example.com Starting Nmap 6.40 ( http://nmap.org ) at 2019-12-14 00:25 UTC Nmap scan report for example.com (127.0.0.1) Host is up (0.11s latency). PORT STATE SERVICE 80/tcp open http 443/tcp open https |
詳細を表示したいときは
-vv を追加してください。
1 |
$ nmap -vv -p 6117 localhost |
あと詳しくは公式をみてね。
SCAN方法の指定など細かく指定が可能です。
じゃあね〜〜〜〜。