【大阪 / 横浜】インフラ / サーバーサイドエンジニア募集中!

【大阪 / 横浜】インフラ / サーバーサイドエンジニア募集中!

【導入実績 500社以上】AWS 構築・運用保守・監視サービス

【導入実績 500社以上】AWS 構築・運用保守・監視サービス

【CentOS 後継】AlmaLinux OS サーバー構築・移行サービス

【CentOS 後継】AlmaLinux OS サーバー構築・移行サービス

【WordPress 専用】クラウドサーバー『ウェブスピード』

【WordPress 専用】クラウドサーバー『ウェブスピード』

【格安】Webサイト セキュリティ自動診断「クイックスキャナー」

【格安】Webサイト セキュリティ自動診断「クイックスキャナー」

【低コスト】Wasabi オブジェクトストレージ 構築・運用サービス

【低コスト】Wasabi オブジェクトストレージ 構築・運用サービス

【予約システム開発】EDISONE カスタマイズ開発サービス

【予約システム開発】EDISONE カスタマイズ開発サービス

【100URLの登録が0円】Webサイト監視サービス『Appmill』

【100URLの登録が0円】Webサイト監視サービス『Appmill』

【200ヶ国以上に対応】グローバル eSIM「beSIM(ビーシム)」

【200ヶ国以上に対応】グローバル eSIM「beSIM(ビーシム)」

【中国法人に対応】中国クラウド / サーバー構築・運用保守

【中国法人に対応】中国クラウド / サーバー構築・運用保守

【YouTube】ビヨンド公式チャンネル「びよまるチャンネル」

【YouTube】ビヨンド公式チャンネル「びよまるチャンネル」

ネットワーク/セキュリティ調査系コマンド/ツールとか

こんにちは。
鎖骨が脆弱(Critical)、システムソリューション部のかわです。

最近いろんなものがなんでもクラウドに移行されるのが主流になってますが、ふとしたときに、物理ネットワークが基礎となって生まれた技術が、クラウド環境になっても当たり前のように使われてるんだなーと実感するタイミングがあることに気付きます。

例えばサブネットの範囲を決めるとき、サーバからping応答がないとき、ポートが開いてるか確認したいときなど、ふだんクラウドサービスでポチポチ意識せずに設定可能な部分は、どれもネットワークの知識が必要な部分になりますよね。

ということで今回は、ネットワーク調査などに使えるコマンドやツールをいくつか紹介したいと思います。

動作環境

使用OS:Ubuntu18.0.4
※以下ツールはCentOS 7.9でも動作可能なこと確認。インストール時は「yum」に読み替えてください

疎通確認、ネットワークテストツール「hping3」

apt install hping3

言わずと知れた、コマンドベースのネットワーク調査/テストツール
ICMPはもちろん、TCP/UDPパケットを任意のフラグを立てて送れたり、データサイズを指定したりと、ネットワークテスト等に活用できます。もちろん悪用厳禁です。

■コマンド例
▼何も考えずに1回pingを送信します

hping3 -c 1 1.1.1.1
HPING 1.1.1.1 (ens33 1.1.1.1): NO FLAGS are set, 40 headers + 0 data bytes

--- 1.1.1.1 hping statistic ---
1 packets transmitted, 0 packets received, 100% packet loss
round-trip min/avg/max = 0.0/0.0/0.0 ms

▼TCP/443宛、ソースポートをTCP/8080、デフォルトゲートウェイ宛にSYNパケットを1回送信

hping3 --traceroute -V -S -c 1 -p 443 -s 8080 10.0.0.1
using ens33, addr: 10.0.0.10, MTU: 1500
HPING 10.0.0.1 (ens33 10.0.0.10): S set, 40 headers + 0 data bytes
hop=1 TTL 0 during transit from ip=10.0.0.2 name=_gateway  
hop=1 hoprtt=4.0 ms

--- 10.0.0.1 hping statistic ---
1 packets transmitted, 1 packets received, 0% packet loss
round-trip min/avg/max = 4.0/4.0/4.0 ms

443ポートから応答があったことがわかります。

▼セキュリティチェック的にも使えます。以下の例では10.0.0.1宛に、TCP1-100までのポートにSYNスキャンをかけています。

hping3 -S -8 1-100 10.0.0.1
Scanning 10.0.0.1 (10.0.0.1), port 1-100
100 ports to scan, use -V to see all the replies
+----+-----------+---------+---+-----+-----+-----+
|port| serv name |  flags  |ttl| id  | win | len |
+----+-----------+---------+---+-----+-----+-----+
   22 ssh        : .S..A... 128 13078 64240    46
   80 http       : .S..A... 128 13590 64240    46
All replies received. Done.

Not responding ports: (1 tcpmux) (2 nbp) (3 ) (4 echo) (5 ) (6 zip) (7 echo) (8 ) (9 discard) (10 ) (11 systat) (12 ) (13 daytime) (14 ) (15 netstat) (16 ) (17 qotd) (18 msp) (19 chargen) (20 ftp-data) (21 ftp) (23 telnet) (24 ) (25 smtp) (26 ) (27 ) (28 ) (29 ) (30 ) (31 ) (32 ) (33 ) (34 ) (35 ) (36 ) (37 time) (38 ) (39 rlp) (40 ) (41 ) (42 nameserver) (43 whois) (44 ) (45 ) (46 ) (47 ) (48 ) (49 tacacs) (50 re-mail-ck) (51 ) (52 ) (53 domain) (54 ) (55 ) (56 ) (57 ) (58 ) (59 ) (60 ) (61 ) (62 ) (63 ) (64 ) (65 tacacs-ds) (66 ) (67 bootps) (68 bootpc) (69 tftp) (70 gopher) (71 ) (72 ) (73 ) (74 ) (75 ) (76 ) (77 ) (78 ) (79 finger) (81 ) (82 ) (83 ) (84 ) (85 ) (86 ) (87 link) (88 kerberos) (89 ) (90 ) (91 ) (92 ) (93 ) (94 ) (95 supdup) (96 ) (97 ) (98 linuxconf) (99 ) (100 ) 

応答のあったポート(SSH,HTTP)からSYN-ACKの応答があったことがわかります。不必要なポートが開いているか等がわかります。

tracerouteのちょっと強い版「mtr」

経路調査で使われるtracerouteの進化版

apt install mtr

▼基本形。通常のtracerouteと違って経路途中の平均/最大/最小応答速度も表示されるので、トラブルシューティングに役立ちます。「-i」オプションで任意の間隔での送信も可能(デフォルト1秒)。

mtr -t 1.1.1.1

hostname (10.0.0.10)
Keys:  Help   Display mode   Restart statistics   Order of fields   quit
                                                                                                                                     Packets               Pings
 Host                                                                                                                              Loss%   Snt   Last   Avg  Best  Wrst StDev
 1. _gateway                                                                                                                        0.0%    17    0.4   0.5   0.4   1.0   0.1
...
10. one.one.one.one                                                                                                                 0.0%    16   14.6  13.8  12.1  16.1   1.2

▼「-T」でTCP、「-u」でUDPパケットでも実施できます。

mtr -T -t 1.1.1.1
mtr -u -t 1.1.1.1

▼「-r」オプションでバックグラウンド実行後、結果のみが表示されます。

mtr -r beyondjapan.com
Start: 2022-10-11T14:15:33+0900
HOST: hostname                   Loss%   Snt   Last   Avg  Best  Wrst StDev
  1.|-- _gateway                   0.0%    10    0.5   0.5   0.4   0.6   0.1
  2.|-- ???                       100.0    10    0.0   0.0   0.0   0.0   0.0

途中で喪失しましたね。

ちょっと便利なARPコマンド「arp-scan」

apt install arp-scan

物理ネットワークではよく使われるARPコマンドですが、同一ネットワーク内にいるホストを調べて、MACアドレスも含めてリスト化ができます。arp-scanはベンダ情報も表示してくれるので便利です。

arp-scan -l

Interface: eth0, type: EN10MB, MAC: 00:15:5d:e1:28:70, IPv4: 192.168.80.77
Starting arp-scan 1.9.7 with 4096 hosts (https://github.com/royhills/arp-scan)
192.168.80.1    00:15:5d:8f:b3:18       Microsoft Corporation

ネットワーク/セキュリティツールの鉄板「nmap」

主にポートスキャンに用いられるnmap
社内サーバ等で、不必要に開いているポートの調査などに使えるツールです。社内なら問題は少ないですが、外部公開しているサーバにおいてはセキュリティホールとなりえるので、こういったツールを使用して調査するのもセキュリティ向上に役立ちます(もちろん悪用厳禁。用法用量を守って正しくお使いください)。

apt install nmap

▼TCP/80が開いているかの確認

nmap -p 80 10.0.0.1

Starting Nmap 7.60 ( https://nmap.org ) at 2022-10-11 14:32 JST
Nmap scan report for 10.0.0.1
Host is up (0.00042s latency).

PORT   STATE    SERVICE
80/tcp filtered http
...

Stateが「filtered」となっているので、TCP/80は開放されていないことがわかりました。

ポート番号部分をハイフン指定することで、一度に複数ポートを調査できます。ステルススキャンを実施するので、第三者リソースへの使用は厳禁です。

ネットワークエンジニアの必需品、パケットキャプチャツール「tcpdump」

定番のパケットキャプチャツール
出力したファイルをWiresharkなどに読み込ませれば、GUIでキャプチャしたパケットを閲覧できます。非暗号化パケットは中身が見えてしまうので、あくまでもローカル環境での利用限定です。

apt install tcpdump

▼基本的には特定のインターフェイスやホストを指定しキャプチャします。今回は「ens33」というインターフェイスを指定、「captured.pcap」というファイルに出力します。

tcpdump -i ens33 -w captured.pcap

キャプチャを止めた後、以下オプションを付けて中身が確認可能

tcpdump -r captured.pcap

14:46:33.494124 ARP, Request who-has _gateway tell 10.0.0.1, length 46
14:46:33.586828 IP 10.0.0.1.54475 > 239.255.255.250.1900: UDP, length 175
14:46:34.588083 IP 10.0.0.1.54475 > 239.255.255.250.1900: UDP, length 175

ファイルを引っこ抜いてWiresharkに突っ込めば、色付きで表示されるので見やすくなります。ソートなども簡単にできます(Wiresharkについてはいつか記事にしたいと思います)。

まとめのまとめ

以上、ネットワーク/セキュリティ関連ツールの紹介でした。

ビヨンドではクラウド環境メインになるのであまり実感がないですが、社内ネットワークやリモートワーク環境、お客さんが来訪された際のゲストWi-Fi、社内セキュリティなど、完全にクラウドへの移行ができない/難しい部分が存在します。今回紹介したツールはクラウド環境のトラブルシューティングでも必ず役立つ技術なので、これを機会に触りながら勉強してみると気分転換になると思います:)

この記事がお役に立てば【 いいね 】のご協力をお願いいたします!
9
読み込み中...
9 票, 平均: 1.00 / 19
1,311
X facebook はてなブックマーク pocket
【2024.6.30 CentOS サポート終了】CentOS サーバー移行ソリューション

【2024.6.30 CentOS サポート終了】CentOS サーバー移行ソリューション

【2025.6.30 Amazon Linux 2 サポート終了】Amazon Linux サーバー移行ソリューション

【2025.6.30 Amazon Linux 2 サポート終了】Amazon Linux サーバー移行ソリューション

【大阪 / 横浜】インフラエンジニア・サーバーサイドエンジニア 積極採用中!

【大阪 / 横浜】インフラエンジニア・サーバーサイドエンジニア 積極採用中!

この記事をかいた人

About the author

かわ けん

システムソリューション部所属
好奇心旺盛ポケ○ン