タワ記

気が向いた時にだけ書く、技術メモっぽいもの。

Ubuntu 18.04でWireshark 3.0をソースからビルドしてインストールする。

この記事に書いてあること

  • Ubuntu 18.04でWireshark 3.0をソースからビルドしてインストールする方法。
  • 特定グループに所属している(root以外の)ユーザーにキャプチャする権限を付与する方法。

気付いたらいろいろ変わっていた

いつから変わったのか調べてはいませんが、Wiresharkのビルドシステムがautoconf/configureベースからcmakeに変更されていました。
ついでにQt5を使うようになっていました。
Ubuntu 18.04にインストールしようとしたら、地味に依存関係を探すのが面倒だったので、備忘録として残しておきます。

ソースコードのダウンロード

https://www.wireshark.org/download.htmlからソースコードをダウンロードできます。

依存ライブラリなどのインストール

$ sudo apt install cmake flex bison libgcrypt20-dev libssh-dev libpcap-dev libsystemd-dev qtbase5-dev qttools5-dev qtmultimedia5-dev libqt5svg5-dev

コンパイラ等はすでにインストールされている前提です。
しかしQt系のパッケージの銘々はいったいどういうルールになっているのでしょうか・・・・・・

ソースコードの展開とビルド・インストール

$ tar xvf wireshark-3.0.0.tar.xz 
$ cd wireshark-3.0.0
$ cmake .
$ make -j4
$ sudo make install

かつてconfigureしていた代わりにcmakeを使います。
make -jNのNはプロセッサコア数などに合わせて調整してください。

root以外のユーザーでキャプチャ可能にする

基本的には
https://wiki.wireshark.org/CaptureSetup/CapturePrivileges#Other_Linux_based_systems_or_other_installation_methodsの手順でOKです。
キャプチャ権限を持ったwiresharkグループを作り、ユーザーをwiresharkグループに登録する形です。

$ sudo groupadd wireshark
$ sudo gpasswd -a $USER wireshark
$ sudo chmod u+s /usr/local/bin/dumpcap 
$ sudo setcap cap_net_raw,cap_net_admin+eip /usr/local/bin/dumpcap 

必要に応じて、いったんログアウトしてください。
さて、これで行けるかと思いきや、wiresharkを実行するとインターフェースの一覧が出てきませんでした。
直接dumpcapを実行するとライブラリがロードできないというエラーが出ます。そこで、

$ sudo ldconfig

してやると、無事にwiresharkグループ所属のユーザーがキャプチャできるようになりました。