ubuntuにWiresharkをインストールする。

ubuntu 18.04 LTS に Wireshark(Version 2.4.5) をインストールしてみました。そのときの気づきのメモです。Wireshark は「ubuntuソフトウェア」からインストールしました。

インストールの途中に「非特権ユーザ(root以外のユーザ)がパケットをキャプチャできるようにしますか?」と聞かれるのでチェックをつけておく。(チェックをつけておいたのだけど、root以外のユーザではダメみたい。後述。)

インストールが無事終わったので、Wiresharkを起動してみる。キャプチャできるインターフェースが表示されるので任意のインターフェースを選択し、上部のラベルから「キャプチャ」→「開始」を選び実行しました。が、「Couldn’t run /usr/bin/dumpcap in child process:許可がありません」のメッセージが出てしまい、起動に失敗。。

どうやら権限がない模様。調べてみると他の方も同様の問題にあたったようでいろいろとネット上には情報がありました。で、整理してみて、以下の対応で起動できるようになりました。

[広告]

まず、起動させるときのユーザ(ここでは「usr1」とします、各自の環境にあわせてください)のid情報を確認します。


$ id usr1
uid=1000(usr1) gid=1000(usr1) groups=1000(usr1),4(adm),・・・,126(sambashare)

次に、Wiresharkをインストールした際に「wireshark」のグループがOSに作成されていますので、それを確認します。

$ grep usr1 /etc/group
adm:x:4:syslog,usr1
usr1:x:1000:
 :
sambashare:x:126:usr1
wireshark:x:128:usr1 ← ココです。

Wiresharkを起動する権限がないため、usr1を「wireshark」のグループに追加します。

$ sudo usermod -aG wireshark usr1

このとき、usermodのオプションは「a」と「G」の両方が必要みたいです。はじめ「a」だけの指定で usermod を実行したらエラーとなってしまいました。ちなみに、usermod の使い方のメッセージは次のようになっていました。

  • -G, –groups GROUPS 新たな補助グループのリストを与える。
  • -a, –append ユーザを (-G で指定された) 補助グループ群GROUPS に追加する。他のグループからの削除は行わない。

再度、id情報を確認します。


$ id usr1
uid=1000(usr1) gid=1000(usr1) groups=1000(usr1),4(adm),・・・,126(sambashare),128(wireshark)

末尾に「128(wireshark)」のグループが追加されていることが確認できます。これで「wireshark」のグループに追加されました。改めてWiresharkを起動すると、今まで表示されていなかったインターフェースが表示され、上部のラベルから「キャプチャ」→「開始」でキャッチャできるようになりました。

Let’s Encrypt でTLS証明書を更新する。

Let’s Encrypt のTLS証明書を更新してみました。試した環境は以下です。

CentOS 6.10 + Apache 2.2.15

有効期限を確認します。ブラウザのURL入力欄の鍵マークをクリックし、ウェブサイトの識別情報で確認します。Firefoxの例です。※他のブラウザでもURLの鍵マークをクリックして証明書の内容を確認できると思います。

有効期限は、10/17です。前回の記事「Let’s EncryptでTLS化する(前編)」で Let’s Encrypt のインストールのときに使用した certbot-auto を使用します。作業は root ユーザで行います。certbot-auto があるディレクトリまで移動して、以下のコマンドを実行します。

# ./certbot-auto renew

※Let’s Encrypt では有効期限が30日未満になると更新ができます。それ以上あると更新されません。強制的に更新するオプションもあるので、有効期限が30日以上残っている場合で更新したいときは「certbot-auto renew --force-renew」とすることで更新できます(これは試していませんけれども・・)。

このとき、Apacheは起動したままにしておいてください。僕はApacheを一旦停止して「certbot-auto renew」を実行したため、一度更新に失敗しました。。。

[広告]

気を取り直して、、Apacheを起動して実行すると、以下の結果が表示されます。

念の為、Apacheを再起動します。また、ブラウザの表示もリフレッシュさせます(再読込、もしくは、F5キー押下)。ブラウザのウェブサイトの識別情報で有効期限が延長されたことを確認します。

これで、無事、TLS証明書の更新ができました!

ちなみに、、TLS証明書の更新により何が変更されたのかサーバーの設定ファイルを確認してみました。certbot-auto でTLS証明書をインストールしたときにはコンフィグファイルの書き換えを行っていましたが、更新のときは書き換えは行われていないようです(以下のファイルはいづれも変更はなし)。

/etc/httpd/conf/httpd.conf
/etc/httpd/conf.d/ssl.conf
/etc/httpd/conf/httpd-le-ssl.conf
/etc/letsencrypt/options-ssl-apache.conf

TLS証明書が格納されているディレクトリは、confファイルに以下のように定義されています(僕の場合は ssl.conf に記載しています)。

SSLCertificateFile /etc/letsencrypt/live/(サイトのサーバ名)/cert.pem
SSLCertificateKeyFile /etc/letsencrypt/live/(サイトのサーバ名)/privkey.pem
SSLCertificateChainFile /etc/letsencrypt/live/(サイトのサーバ名)/chain.pem

/etc/letsencrypt/live/(サイトのサーバ名) 配下には証明書が配置されていますが、これはシンボリックリンクとなっており、このリンクが更新されていました。リンク先は「/etc/letsencrypt/archive/(サイトのサーバ名)」です。

リンク先のほうのファイルを確認すると、新たに証明書が新規作成されていました(2018/09/22に作成されているものが該当)。証明書ファイルを新規作成し、リンク先を古いものから新しいものに切り替えることでコンフィグファイルの修正はなしとしているようです。

あと、やってみて気づいたのですが、有効期限が「10/17」だったものを更新したので「10/17」から3ヶ月延長されると思ったのですが、そうではなくて、実施日「9/22」から3ヶ月延長されたようです。

その後だけれど、「Let’s Encrypt Expiry Bot」という差出人から「Let’s Encrypt certificate expiration notice for domain “(サイトのドメイン名)”」というタイトルでメールが届きました。内容は、Let’s Encrypt で取得したTLS証明書の有効期限が近づいたので更新してください、というもの。すでに更新したのですれ違いになったようです。更新期限が近づくとメールでも案内していたんですね。そういえば、TLS証明書をインストールするときに連絡先のメールアドレスを設定したのを思い出しました。こういう連絡のときにメールアドレスが使われるのですね。。

以上。