一馬力のメモ帳

MVSからLinuxまで。基盤屋さんは眠らない

Wiresharkパケット色付けルールの仕組みとフィルタの一覧

Wiresharkのパケットリストを眺めていると
パケット毎に色分けされて表示されていく

感覚的には色の濃い(黒とか赤とか)パケットが
ヤバイやつってのは認識しているけど,この色分けってどんな意味があるのかな?

というのが今日のお話です。

目次


例えば「青」と「緑」の色分け

下の画面では青と緑に色分けされています。
Protocol列を見てなんとなく青はDNS?緑はTCPかなってくらいに思ってみてました。

でも実際は

  • ・・・ UDPのマーク
  • ・・・ HTTPのマーク

なんです。

画面の例(青と緑)

f:id:htbariki:20171210230934p:plain

色分けのルール

Wiresharkで色分けのルールは何で決まっているかというと
「色付けルール」という機能があって、ここでデフォルトのルールが決まっています。

メニューバーから「表示(V)>色付けルール…(C)」を選択すると
下の画面が表示されます。

色付けルールの画面[デフォルトの状態]

表示されたのでデフォルト状態の色付けルール
ここで気がつくのは,色付けルールは

Wiresharkの表示フィルタの機能を使っている

ということ
動作としては表示フィルタで選択されたパケットに着色していくイメージですかね?

f:id:htbariki:20171210230940p:plain

色付けルールに利用されている表示フィルタの一覧

仕組みが分かってしまえば,応用が効きます
例えば,「Bad TCP」の黒色パケットだけ画面に表示したいときは

表示フィルタ部分に「tcp.analysis.flags && !tcp.analysis.window_update」

と入力すれば。下の画面の通り「Bad TCP」のみ選択して表示できます

f:id:htbariki:20171210230946p:plain

表示フィルタ一覧表

色付けルールで使われている表示フィルタを表にしておきます。
参考にして下さい

名前 フィルタ
Bad TCP   tcp.analysis.flags && !tcp.analysis.window_update
HSRP State Change  hsrp.state != 8 && hsrp.state != 16
Spanning Tree Topology  Change   stp.type == 0x80
OSPF State Change   ospf.msg != 1
ICMP errors   icmp.type eq 3 || icmp.type eq 4 || icmp.type eq 5 || icmp.type eq 11 || icmpv6.type eq 1 || icmpv6.type eq 2 || icmpv6.type eq 3 || icmpv6.type eq 4
ARP   arp
ICMP   icmp || icmpv6
TCP RST   tcp.flags.reset eq 1
SCTP ABORT   sctp.chunk_type eq ABORT
TTL low or unexpected   ( ! ip.dst == 224.0.0.0/4 && ip.ttl < 5 && !pim && !ospf) || (ip.dst == 224.0.0.0/24 && ip.dst != 224.0.0.251 && ip.ttl != 1 && !(vrrp || carp))
Checksum Errors   eth.fcs.status=="Bad" || ip.checksum.status=="Bad" || tcp.checksum.status=="Bad" || udp.checksum.status=="Bad" || sctp.checksum.status=="Bad" || mstp.checksum.status=="Bad" || cdp.checksum.status=="Bad" || edp.checksum.status=="Bad" || wlan.fcs.status=="Bad" || stt.checksum.status=="Bad"
SMB   smb || nbss || nbns || nbipx || ipxsap || netbios
HTTP   http || tcp.port == 80 || http2
IPX   ipx || spx
DCERPC   dcerpc
Routing   hsrp || eigrp || ospf || bgp || cdp || vrrp || carp || gvrp || igmp || ismp
TCP SYN/FIN   tcp.flags & 0x02 || tcp.flags.fin == 1
TCP   tcp
UDP   udp
Broadcast   eth[0] & 1

試した環境

ホストOS

Apple iMac 21.5インチ 1.6GHz Corei5 8GB 1TB MK142J/A

iMac (27-inch, Mid 2010)

macOS High Sierra
    システムのバージョン:    macOS 10.13.2 (17C88)
    カーネルのバージョン:    Darwin 17.3.0

 Wireshark

Wireshark
    Version 2.4.3 (v2.4.3-0-g368ba1e)

Wiresharkの時刻表示を変更する[macOS]

Wiresharkを使ってパケットをホジホジするときは大抵

「XX時XX頃の動作が〜でー」とか
「サーバ側でエラーが〜。ログはこれで〜時間は〜」

となるわけです。
キャプチャしていた時間,サーバのログの時間等と時間をあわせて調査開始となります。

Wiresharkでパケットを取得していた場合
パケットリストペインに表示される時刻(Time)のデフォルトは
キャプチャ開始からの秒数となっています。

このままでは不便なシーンも多いので
今回はこの時刻表示を変えてみます。

目次


Wiresharkのパケットリストペインの時刻

f:id:htbariki:20171210150523p:plain

 時刻表示形式の変更方法

変更方法

メニューバーから変更ができます。
①表示(V) > 時刻表示形式 > から変更が可能です。

f:id:htbariki:20171210150532p:plain

変更可能な表示形式

変更可能な表示形式は画面に表示された以下の通り

  • 日時
  • 年、通年日、時刻
  • 1970年1月①日からの秒数
  • キャプチャ開始からの秒数(デフォルト)
  • 前にキャプチャされたパケットからの秒数
  • 前に表示されたパケットからの秒数
  • UTC日時
  • UTC年、通年日、時刻
  • UTC時刻

[参考]Wiresharkの画面

f:id:htbariki:20171210150550p:plain

よく使う表示形式3つ

キャプチャ開始からの秒数 [デフォルトの表示]

f:id:htbariki:20171210150546p:plain

時刻(01:02:03.123456) 表示

f:id:htbariki:20171210150528p:plain

日時(1973-06-14 01:02:03.123456)表示

f:id:htbariki:20171210150539p:plain

試した環境

ホストOS

Apple iMac 21.5インチ 1.6GHz Corei5 8GB 1TB MK142J/A

iMac (27-inch, Mid 2010)

macOS High Sierra
    システムのバージョン:    macOS 10.13.2 (17C88)
    カーネルのバージョン:    Darwin 17.3.0

 Wireshark

Wireshark
    Version 2.4.3 (v2.4.3-0-g368ba1e)

Wiresharkのメインウィンドウ[macOS]

Wireshark。便利な道具です。
道具の使い方は基本が大切!

という事今回はmacOS上でのWiresharkメインウィンドウの説明です。

目次


メインウィンドウの説明

メインウィンドウは各「バー」と「ペイン」で構成されています。
Wiresharkと仲良くなるための基本となるので、概要を押させておきましょう!

①メインツールバー

概要
よく使うアクションがアイコンで準備されています。

「表示」メニューの場所
表示(V)>メインツールバー(M)

②フィルタツールバー

概要
現在適用されている「表示フィルタ」の表示と、操作を行う場所

「表示」メニューの場所
表示(V)>フィルタツールバー(F)

③パケットリストペイン

概要
キャプチャされたパケットの要約が表示される。
色分けルールでパケット毎(行毎)に色分けされる。
感覚的には濃い色がヤバイやつ。

「表示」メニューの場所
表示(V)>パケット一覧(L)

④パケット詳細ペイン

概要
パケットリストペインで選択したパケットの詳細を表示する。

「表示」メニューの場所
表示(V)>パケット詳細(D)

⑤パケットバイトペイン

概要

パケットリストペインで選択したパケットのデータ(HEX)を表示
パケット詳細ペインで選択した部分が強調表示される。

「表示」メニューの場所
表示(V)>パケットバイト列(B)

メインウィンドウの例

f:id:htbariki:20171210140830p:plain

試した環境

ホストOS

Apple iMac 21.5インチ 1.6GHz Corei5 8GB 1TB MK142J/A

iMac (27-inch, Mid 2010)

macOS High Sierra
    システムのバージョン:    macOS 10.13.2 (17C88)
    カーネルのバージョン:    Darwin 17.3.0

 Wireshark

Wireshark
    Version 2.4.3 (v2.4.3-0-g368ba1e)

macOSにWireshark 2.4.3をインストールする

Wireshark。ネットワーク・アナライザです。
これを起動しちゃうとパケットの海に潜って時間があっという間に過ぎ去ります。

久しぶりにWiresharkのサイトを見たら,2.4系が出ているようなので
macOSにインストールしてみました。

Windowsにインストールするよりステップ数が少なくて良い感じです。

では早速インストールの手順を紹介です。

目次


 Wiresharkのダウンロード

ダウンロードは
https://www.wireshark.org/download.html 
から

今回はmacOSなのでダウンロードページから
macOS 10.6 and leter 〜」を選択

f:id:htbariki:20171210124420p:plain

 Wiresharkのインストール

ダウンロードした.dmgをダブルクリック

f:id:htbariki:20171210124416p:plain

f:id:htbariki:20171210124350p:plain

インストーラーを起動

画面の指示に従って次へ次へ次へ

f:id:htbariki:20171210124343p:plain

f:id:htbariki:20171210124319p:plain

f:id:htbariki:20171210124356p:plain

f:id:htbariki:20171210124402p:plain

f:id:htbariki:20171210124323p:plain

管理者のパスワードを入力

f:id:htbariki:20171210124331p:plainf:id:htbariki:20171210124407p:plain f:id:htbariki:20171210124337p:plain

 Wireshark の起動

launchpadからWiresharkのアイコンをクリック

f:id:htbariki:20171210124412p:plain

起動完了

f:id:htbariki:20171210124430p:plain

試した環境

ホストOS

Apple iMac 21.5インチ 1.6GHz Corei5 8GB 1TB MK142J/A

iMac (27-inch, Mid 2010)

macOS High Sierra
    システムのバージョン:    macOS 10.13.2 (17C88)
    カーネルのバージョン:    Darwin 17.3.0

 Wireshark

Wireshark
    Version 2.4.3 (v2.4.3-0-g368ba1e)

Raspberry Pi 3がモバイルバッテリーで何時間動作するか試してみた

Raspberry Pi 3の電源はUSBで給電されているので
モバイルバッテリーから電源とったら何時間位動くかな?という実験の結果です。

結論から先に紹介すると今回の環境では約6時間動作しました。

概要

モバイルバッテリーで連続稼動といっても
なにも処理していない状態ではつまらないので
今回はwebカメラ+Motion+wifiで監視カメラを動作させる状態を作ってみました。

概要図

f:id:htbariki:20171029160140p:plain

利用したもの

実験は,Raspberry PiでMotionを動かし
Wifi経由でPCから画像を更新し続ける環境で行いました。

利用したもの

 利用バッテリー

型番:LP-MBY50WH メーカ:LEPLUS 容量:5,000mAh 出力:5V/1A

LEPLUS モバイルバッテリー 急速充電・安心設計 5000mAh ホワイト

稼働時間の計測方法

  • cronを5分おきに動かす
  • バッテリー切れ後,再起動しsyslogを確認

計測の準備

cronの設定

コマンドはどんなものでも良いので
cronで定期的にコマンド実行する。

今回はcrontab -e で5分おきにdateコマンドを実行します。

*/5 * * * * /bin/date

を入れておく。

設定出来たことをcrontab -l で確認しておく。

pi@raspberrypi:~ $ crontab -l
*/5 * * * * /bin/date
pi@raspberrypi:~ $

motionを起動し,起動時間を確認

”sudo systemctl status motion”コマンドで
motionのステータスを確認する。

確認ポイントは
”Active: active (running) since 水 2017-05-31 23:14:53 JST; 13min ago”の部分

起動して13分経過している事が分かります。

pi@raspberrypi:~ $ sudo systemctl status motion
● motion.service - LSB: Start Motion detection
   Loaded: loaded (/etc/init.d/motion)
   Active: active (running) since 水 2017-05-31 23:14:53 JST; 13min ago
  Process: 510 ExecStart=/etc/init.d/motion start (code=exited, status=0/SUCCESS)
   CGroup: /system.slice/motion.service
           └─526 /usr/bin/motion

実行結果

pi@raspberrypi:~ $ grep "/bin/date"  /var/log/syslog.1 |tail
Jun  1 05:05:01 raspberrypi CRON[2114]: (pi) CMD (/bin/date)
Jun  1 05:10:01 raspberrypi CRON[2128]: (pi) CMD (/bin/date)
Jun  1 05:15:01 raspberrypi CRON[2140]: (pi) CMD (/bin/date)
Jun  1 05:20:01 raspberrypi CRON[2170]: (pi) CMD (/bin/date)
Jun  1 05:25:01 raspberrypi CRON[2182]: (pi) CMD (/bin/date)
Jun  1 05:30:01 raspberrypi CRON[2192]: (pi) CMD (/bin/date)
Jun  1 05:35:01 raspberrypi CRON[2205]: (pi) CMD (/bin/date)
Jun  1 05:40:01 raspberrypi CRON[2218]: (pi) CMD (/bin/date)
Jun  1 05:45:01 raspberrypi CRON[2229]: (pi) CMD (/bin/date)

最後の実行が5:45分頃。motion起動したのが前日の23:15頃なので
だいたい6時間30分!!

モバイルバッテリーだけで6時間ほど稼働できる事が確認できました。

試した環境

[asin:B01D3CXJNG:image]

Raspberry Pi 3 Model B
  Pi 3 Starter Kit 32GB [896-8660-Kit4]

Raspbian
  pi@raspberrypi:~ $ uname -a
  Linux raspberrypi 4.4.23-v7+ #913 SMP Tue Oct 4 14:16:19 BST 2016 armv7l GNU/Linux

  pi@raspberrypi:~ $ cat /proc/version
  Linux version 4.4.23-v7+ (dc4@dc4-XPS13-9333) (gcc version 4.9.3 (crosstool-NG crosstool-ng-1.22.0-88-g8460611) ) #913 SMP Tue Oct 4 14:16:19 BST 2016

  pi@raspberrypi:~ $ lsb_release -a
  No LSB modules are available.
  Distributor ID:    Raspbian
  Description:    Raspbian GNU/Linux 8.0 (jessie)
  Release:    8.0
  Codename:    jessie

コマンドラインからシリアルナンバー等のシステムの情報を取得する方法

久しぶりの投稿です。
気がつけば149日もBlog更新が止まっていました。

プライベート側が忙しくメモのまとめが追いついていませんでした,,,。(言い訳)

久しぶりの投稿は,Mac OSコマンドラインでシステム情報を取得する方法。
シリアルナンバーや,HWの情報。OSの情報をコマンドラインで取得していきます。

目次


概要

  • 利用するコマンド system_profiler

  • コマンドの概要 ハードウェア,ソフトウェアの情報をレポートする

コマンドの例

system_profilerコマンドは環境により,実行に時間がかかります
出力結果は.txtファイルなどに書き出してから確認する事をオススメします。

オプション無し

iMac:~ ichibariki$ system_profiler > system_profiler.txt

xml形式で取得する

iMac:~ ichibariki$ system_profiler -xml > system_profiler_xml.txt

detailLevel miniで取得する

iMac:~ ichibariki$ system_profiler -detailLevel mini > system_profiler_mini.txt

detailLevel basicで取得する

iMac:~ ichibariki$ system_profiler -detailLevel basic > system_profiler_basic.txt

取得できる情報の例

シリアルやモデル等の情報(Hardware Overview)

Hardware:

    Hardware Overview:

      Model Name: iMac
      Model Identifier: iMac11,3
      Processor Name: Intel Core i3
      Processor Speed: 3.2 GHz
      Number of Processors: 1
      Total Number of Cores: 2
      L2 Cache (per Core): 256 KB
      L3 Cache: 4 MB
      Memory: 12 GB
      Processor Interconnect Speed: 5.86 GT/s
      Boot ROM Version: IM112.0057.B03
      SMC Version (system): 1.59f2
      Serial Number (system): x9999xxxxx9
      Hardware UUID: xxx-xxx-xxx-xxx-xxx

OS等の情報(System Software Overview)



Software:

    System Software Overview:

      System Version: macOS 10.12.2 (16C67)
      Kernel Version: Darwin 16.3.0
      Boot Volume: Macintosh HD
      Boot Mode: Normal
      Computer Name: xxxx
      User Name: xxxx (xxxxx)
      Secure Virtual Memory: Enabled
      System Integrity Protection: Enabled
      Time since boot: 2:00

 【参考①】オプション”-detailLevel”ごとの出力項目比較

項目 -detailLevel full -detailLevel basic -detailLevel mini
Accessibility:
Applications:
Audio:
Bluetooth:
Camera:
Components:
Diagnostics:
Extensions:
FireWire:
Firewall:
Fonts:
Frameworks:
Graphics/Displays:
Hardware:
Installations:
Locations:
Logs:
Memory:
Network:
Power:
Printers:
Software:
Storage:
Thunderbolt:
USB:
Volumes:
Wi-Fi:

【参考②】system_profilerman のman

iMac:~ ichibariki$ man system_profiler

SYSTEM_PROFILER(8)        BSD System Manager's Manual       SYSTEM_PROFILER(8)

NAME
     system_profiler -- reports system hardware and software configuration.

SYNOPSIS
     system_profiler [-usage]
     system_profiler [-listDataTypes]
     system_profiler [-xml] dataType1 ... dataTypeN
     system_profiler [-xml] [-detailLevel level]

DESCRIPTION
     system_profiler reports on the hardware and software configuration of the system.  It can generate plain text reports or XML
     reports which can be opened with System Information.app

     Progress and error messages are printed to stderr while actual report data is printed to stdout. Redirect stderr to /dev/null to
     suppress progress and error messages.

     The following options are available:

     -xml                Generates a report in XML format.  If the XML report is redirected to a file with a ".spx" suffix that file
                         can be opened with System Information.app.

     -listDataTypes      Lists the available datatypes.

     -detailLevel level  Specifies the level of detail for the report:

                         mini          report with no personal information

                         basic         basic hardware and network information

                         full          all available information

     -timeout            Specifies the maximum time to wait in seconds for results.  If some information is not available within the
                         specified time limit then an incomplete or partial report will be generated. The default timeout is 180 sec-
                         onds. Specifying a timeout of 0 means no timeout.

     -usage              Prints usage info and examples.

EXAMPLES
     system_profiler
       Generates a text report with the standard detail level.

     system_profiler -detailLevel mini
       Generates a short report containing no personal information.

     system_profiler -listDataTypes
       Shows a list of the available data types.

     system_profiler SPSoftwareDataType SPNetworkDataType
       Generates a text report containing only software and network data.

     system_profiler -xml > MyReport.spx
       Creates a XML file which can be opened by System Profiler.app

AUTHORS
     Apple Computer, Inc.

Darwin                           June 30, 2003                          Darwin

試した環境

Apple iMac 21.5インチ 1.6GHz Corei5 8GB 1TB MK142J/A

iMac (27-inch, Mid 2010)
macOS Sierra
    システムのバージョン:     macOS 10.12.6 (16G29)
    カーネルのバージョン:     Darwin 16.7.0

Raspberry Piでcrontab -eの初回実行(エディタ選択画面が表示される)

毎度。一馬力です。

Raspberry PiでCronを使おうと$ crontab -e コマンドをPiで初めて実行してみました。

f:id:htbariki:20170602063026j:plain

目次


 crontab -eの初回実行→エディタの選択

Raspberry Piで初めて$ crontab -e コマンドを実行すると エディタの選択画面が表示されます。

pi@raspberrypi:~ $ crontab -e
no crontab for pi - using an empty one

Select an editor.  To change later, run 'select-editor'.
  1. /bin/ed
  2. /bin/nano        <---- easiest
  3. /usr/bin/vim.tiny

Choose 1-3 [2]: 

簡単なのは(easiest)は/bin/nanoですよ?って教えてくれるんですが
私はVi使い。

Choose 1-3 [2]: へ3を押してvimを選択しました。

 3. /usr/bin/vim.tinyを選択した時の画面

# Edit this file to introduce tasks to be run by cron.
#
# Each task to run has to be defined through a single line
# indicating with different fields when the task will be run
# and what command to run for the task
#
# To define the time you can provide concrete values for
# minute (m), hour (h), day of month (dom), month (mon),
# and day of week (dow) or use '*' in these fields (for 'any').#
# Notice that tasks will be started based on the cron's system
# daemon's notion of time and timezones.
#
# Output of the crontab jobs (including errors) is sent through
# email to the user the crontab file belongs to (unless redirected).
#
# For example, you can run a backup of all your user accounts
# at 5 a.m every week with:
# 0 5 * * 1 tar -zcf /var/backups/home.tgz /home/
#
# For more information see the manual pages of crontab(5) and cron(8)
#
# m h  dom mon dow   command
~
~
~
~
~
~
~
~
~
~
~
"/tmp/crontab.QSltee/crontab" 22L, 888C

後からエディタを変えたい時はselect-editor

とりあえず。vimを選択。またはオススメに従って/bin/nanoを選択したけど
やっぱり別なエディタが良い!

というときは “$ select-editor”コマンドでエディタを編集できます。

 select-editor実行画面

pi@raspberrypi:~ $ select-editor

Select an editor.  To change later, run 'select-editor'.
  1. /bin/ed
  2. /bin/nano        <---- easiest
  3. /usr/bin/vim.tiny

Choose 1-3 [2]: 2

初めて”$crontab -e”した時と同じ画面がでますね。

2. /bin/nanoを選択した時の画面

参考までに” /bin/nano ”を選択すると
下のような画面になります。

GNU nano 2.2.6                               File: /tmp/crontab.nvzlAO/crontab

# Edit this file to introduce tasks to be run by cron.
#
# Each task to run has to be defined through a single line
# indicating with different fields when the task will be run
# and what command to run for the task
#
# To define the time you can provide concrete values for
# minute (m), hour (h), day of month (dom), month (mon),
# and day of week (dow) or use '*' in these fields (for 'any').#
# Notice that tasks will be started based on the cron's system
# daemon's notion of time and timezones.
#
# Output of the crontab jobs (including errors) is sent through
# email to the user the crontab file belongs to (unless redirected).
#
# For example, you can run a backup of all your user accounts
# at 5 a.m every week with:
# 0 5 * * 1 tar -zcf /var/backups/home.tgz /home/
#
# For more information see the manual pages of crontab(5) and cron(8)
#
# m h  dom mon dow   command

                                                                  [ Read 22 lines ]
^G Get Help              ^O WriteOut              ^R Read File             ^Y Prev Page             ^K Cut Text              ^C Cur Pos
^X Exit                  ^J Justify               ^W Where Is              ^V Next Page             ^U UnCut Text            ^T To Spell

/bin/nano使った事ないですが。せっかくなので
試してみようかな?

試した環境

Raspberry Pi 3 Model B

Raspberry Pi 3 Model B
  Pi 3 Starter Kit 32GB [896-8660-Kit4]

Raspbian
  pi@raspberrypi:~ $ uname -a
  Linux raspberrypi 4.4.23-v7+ #913 SMP Tue Oct 4 14:16:19 BST 2016 armv7l GNU/Linux

  pi@raspberrypi:~ $ cat /proc/version
  Linux version 4.4.23-v7+ (dc4@dc4-XPS13-9333) (gcc version 4.9.3 (crosstool-NG crosstool-ng-1.22.0-88-g8460611) ) #913 SMP Tue Oct 4 14:16:19 BST 2016

  pi@raspberrypi:~ $ lsb_release -a
  No LSB modules are available.
  Distributor ID:    Raspbian
  Description:    Raspbian GNU/Linux 8.0 (jessie)
  Release:    8.0
  Codename:    jessie