FreeBSD OpenVPN 2.4.0 へアップグレード

FreeBSD の ports へ OpenVPN のアップグレード(2.3.14 から 2.4.0 へ)が到着しました。

今回のアップグレードで LZ4 圧縮形式に対応するオプションの追加や SSL/TLS 通信経路で mbedTLS を選択できるようになりました。もちろん私は、新しく追加されたオプションは使用せずにビルドしました。

# cd /usr/ports
# portmaster -d openvpn
# service openvpn restart

.

openvpn-2-4-0
OpenVPN-2.4.0 のビルドオプション

Debian /var 領域の容量不足

Debian Jessie をインストールしているマシンを立ち上げると /var 領域の容量不足の警告が表示されました。

我が家の場合、古くからアップグレードを重ねているマシンでは、昔ながらの /, /var, /tmp, /usr, /home, swap にハードディスクを切り分けて使用し続けています。このようなハードディスクのパーティション分割は、 /home の領域などで容量がいっぱいになっても、その他のシステム領域に影響しないメリットもありますが、逆にシステム領域でファイル容量が逼迫するとちょっと大変なことになります。

しかし /var 領域はいわゆる一時的なファイルを収容する部分であることと、ゴミのようなファイルも残っていることも多く、これを整理すると /var 領域を開放することができます。この /var 領域を専有しているものの多くがソフトウェアのパッケージ・ファイルです。このパッケージ・ファイルを apt-get コマンドで整理すると多くの場合、 /var 領域の多くが開放されます。不要なパッケージ・ファイルを削除するには、以下のオプションを実行します。

# apt-get autoclean

.

今回問題となったマシンでは、/var 領域に 3GB ほどの容量を確保していましたが、96% の使用率で警告が出てきました。パッケージ・ファイルの削除で 17% ほどの使用率となり、十分な容量を確保することができました。読者さんの中で、もし /var 領域の不足の警告が出てきたときには、一度試してみてください。

 

FreeBSD 10.3 の p15 (ntp) アップデート

FreeBSD 10.3 へ p15 アップデート (ntp)が到着しました。

インターネット環境では、とても大切な時刻管理に必要となる ntp に複数の脆弱性が存在していたそです。今回のアップデートはこれら脆弱性への対策を行っているそうです。

FreeBSD-SA-16:39.ntp
– Multiple vulnerabilities of ntp –
https://www.freebsd.org/security/advisories/FreeBSD-SA-16:39.ntp.asc

.

/usr/src/UPDATING の内容

20161222        p15
FreeBSD-SA-16:39.ntp
— Fix multiple vulnerabilities of ntp.

 .

ソースツリーの更新

subversion でソースツリーを更新しました。

# svn update /usr/src
Updating '/usr/src':
U    /usr/src/contrib/ntp/ntpd/ntp.conf.man.in
U    /usr/src/contrib/ntp/ntpd/ntp.keys.5mdoc
U    /usr/src/contrib/ntp/ntpd/ntp.keys.mdoc.in
U    /usr/src/contrib/ntp/ntpd/ntp_crypto.c
U    /usr/src/contrib/ntp/ntpd/ntp_parser.c
U    /usr/src/contrib/ntp/ntpd/ntp_proto.c
U    /usr/src/contrib/ntp/ntpd/invoke-ntp.conf.texi
U    /usr/src/contrib/ntp/ntpd/invoke-ntpd.texi
U    /usr/src/contrib/ntp/ntpd/keyword-gen.c
U    /usr/src/contrib/ntp/ntpd/ntp.conf.5mdoc
U    /usr/src/contrib/ntp/ntpd/ntp.conf.html
U    /usr/src/contrib/ntp/ntpd/ntp.keys.5man
U    /usr/src/contrib/ntp/ntpd/ntp.keys.man.in
U    /usr/src/contrib/ntp/ntpd/ntp_control.c
U    /usr/src/contrib/ntp/ntpd/ntp_loopfilter.c
U    /usr/src/contrib/ntp/ntpd/ntp_peer.c
U    /usr/src/UPDATING
U    /usr/src/contrib/ntp/ChangeLog
U    /usr/src/contrib/ntp/ntpd/ntpd-opts.h
U    /usr/src/contrib/ntp/ntpd/ntpd.man.in
U    /usr/src/contrib/ntp/ntpd/refclock_jupiter.c
U    /usr/src/contrib/ntp/ntpd/ntpd-opts.c
U    /usr/src/contrib/ntp/ntpd/ntpd.html
U    /usr/src/contrib/ntp/ntpd/refclock_jjy.c
U    /usr/src/contrib/ntp/ntpd/ntpd.1ntpdman
U    /usr/src/contrib/ntp/ntpd/ntpd.mdoc.in
U    /usr/src/contrib/ntp/ntpdc/invoke-ntpdc.texi
U    /usr/src/contrib/ntp/ntpdc/ntpdc.1ntpdcman
U    /usr/src/contrib/ntp/ntpdc/ntpdc.mdoc.in
U    /usr/src/contrib/ntp/ntpdc/ntpdc-opts.h
U    /usr/src/contrib/ntp/ntpdc/ntpdc.man.in
U    /usr/src/contrib/ntp/ntpdc/ntpdc.1ntpdcmdoc
U    /usr/src/contrib/ntp/ntpq/ntpq.1ntpqman
U    /usr/src/contrib/ntp/ntpq/ntpq-opts.h
U    /usr/src/contrib/ntp/ntpq/invoke-ntpq.texi
U    /usr/src/contrib/ntp/ntpq/ntpq.1ntpqmdoc
U    /usr/src/contrib/ntp/ntpq/ntpq.man.in
U    /usr/src/contrib/ntp/ntpq/ntpq.html
U    /usr/src/contrib/ntp/ntpsnmpd/ntpsnmpd-opts.c
U    /usr/src/contrib/ntp/ntpq/ntpq.mdoc.in
U    /usr/src/contrib/ntp/CommitLog
U    /usr/src/contrib/ntp/NEWS
U    /usr/src/contrib/ntp/configure
U    /usr/src/contrib/ntp/html/drivers/driver40.html
U    /usr/src/contrib/ntp/html/miscopt.html
U    /usr/src/contrib/ntp/include/Makefile.am
U    /usr/src/contrib/ntp/include/Makefile.in
A    /usr/src/contrib/ntp/include/libssl_compat.h
U    /usr/src/contrib/ntp/include/ntp.h
U    /usr/src/contrib/ntp/include/ntp_intres.h
U    /usr/src/contrib/ntp/include/ntpd.h
U    /usr/src/contrib/ntp/lib/isc/netaddr.c
U    /usr/src/contrib/ntp/libntp/Makefile.am
U    /usr/src/contrib/ntp/libntp/Makefile.in
U    /usr/src/contrib/ntp/libntp/a_md5encrypt.c
U    /usr/src/contrib/ntp/libntp/audio.c
A    /usr/src/contrib/ntp/libntp/libssl_compat.c
U    /usr/src/contrib/ntp/libntp/ntp_calendar.c
U    /usr/src/contrib/ntp/libntp/ntp_intres.c
U    /usr/src/contrib/ntp/libntp/ssl_init.c
U    /usr/src/contrib/ntp/libntp/work_fork.c
U    /usr/src/contrib/ntp/libparse/clk_hopf6021.c
U    /usr/src/contrib/ntp/ntpd/complete.conf.in
U    /usr/src/contrib/ntp/ntpd/invoke-ntp.keys.texi
U    /usr/src/contrib/ntp/ntpd/keyword-gen-utd
U    /usr/src/contrib/ntp/ntpd/ntp.conf.5man
U    /usr/src/contrib/ntp/ntpd/ntp.conf.def
U    /usr/src/contrib/ntp/ntpd/ntp.conf.mdoc.in
U    /usr/src/contrib/ntp/ntpd/ntp.keys.html
U    /usr/src/contrib/ntp/ntpd/ntp_config.c
U    /usr/src/contrib/ntp/ntpsnmpd/ntpsnmpd-opts.h
U    /usr/src/contrib/ntp/ntpsnmpd/ntpsnmpd.man.in
U    /usr/src/contrib/ntp/ntpsnmpd/ntpsnmpd.html
U    /usr/src/contrib/ntp/ntpd/ntp_keyword.h
U    /usr/src/contrib/ntp/ntpd/ntp_parser.h
U    /usr/src/contrib/ntp/ntpd/ntp_refclock.c
U    /usr/src/contrib/ntp/ntpd/ntpd.1ntpdmdoc
U    /usr/src/contrib/ntp/ntpd/refclock_gpsdjson.c
U    /usr/src/contrib/ntp/ntpdc/ntpdc-opts.c
U    /usr/src/contrib/ntp/ntpdc/ntpdc.html
U    /usr/src/contrib/ntp/ntpq/ntpq-opts.c
U    /usr/src/contrib/ntp/ntpq/ntpq.c
U    /usr/src/contrib/ntp/ntpsnmpd/invoke-ntpsnmpd.texi
U    /usr/src/contrib/ntp/ntpsnmpd/ntpsnmpd.1ntpsnmpdmdoc
U    /usr/src/contrib/ntp/ntpsnmpd/ntpsnmpd.1ntpsnmpdman
U    /usr/src/contrib/ntp/ntpsnmpd/ntpsnmpd.mdoc.in
U    /usr/src/contrib/ntp/scripts/calc_tickadj/calc_tickadj.1calc_tickadjman
U    /usr/src/contrib/ntp/scripts/calc_tickadj/calc_tickadj.mdoc.in
U    /usr/src/contrib/ntp/scripts/ntp-wait/invoke-ntp-wait.texi
U    /usr/src/contrib/ntp/scripts/ntp-wait/ntp-wait.html
U    /usr/src/contrib/ntp/scripts/ntpsweep/ntpsweep-opts
U    /usr/src/contrib/ntp/scripts/ntpsweep/ntpsweep.man.in
U    /usr/src/contrib/ntp/scripts/build/genAuthors.in
U    /usr/src/contrib/ntp/scripts/calc_tickadj/calc_tickadj.man.in
U    /usr/src/contrib/ntp/scripts/invoke-summary.texi
U    /usr/src/contrib/ntp/scripts/ntp-wait/ntp-wait.1ntp-waitmdoc
U    /usr/src/contrib/ntp/scripts/ntpsweep/invoke-ntpsweep.texi
U    /usr/src/contrib/ntp/scripts/ntpsweep/ntpsweep.html
U    /usr/src/contrib/ntp/packageinfo.sh
U    /usr/src/contrib/ntp/scripts/calc_tickadj/calc_tickadj.html
U    /usr/src/contrib/ntp/scripts/invoke-plot_summary.texi
U    /usr/src/contrib/ntp/scripts/ntp-wait/ntp-wait.1ntp-waitman
U    /usr/src/contrib/ntp/scripts/ntp-wait/ntp-wait.mdoc.in
U    /usr/src/contrib/ntp/scripts/ntpsweep/ntpsweep.1ntpsweepmdoc
U    /usr/src/contrib/ntp/scripts/ntptrace/invoke-ntptrace.texi
U    /usr/src/contrib/ntp/scripts/ntptrace/ntptrace.1ntptraceman
U    /usr/src/contrib/ntp/scripts/ntptrace/ntptrace.mdoc.in
U    /usr/src/contrib/ntp/scripts/plot_summary.html
U    /usr/src/contrib/ntp/scripts/summary.1summaryman
U    /usr/src/contrib/ntp/scripts/summary.mdoc.in
U    /usr/src/contrib/ntp/scripts/update-leap/update-leap.1update-leapmdoc
U    /usr/src/contrib/ntp/scripts/update-leap/update-leap.mdoc.in
U    /usr/src/contrib/ntp/scripts/calc_tickadj/calc_tickadj.1calc_tickadjmdoc
U    /usr/src/contrib/ntp/scripts/calc_tickadj/invoke-calc_tickadj.texi
U    /usr/src/contrib/ntp/scripts/ntp-wait/ntp-wait-opts
U    /usr/src/contrib/ntp/scripts/ntp-wait/ntp-wait.man.in
U    /usr/src/contrib/ntp/scripts/ntpsweep/ntpsweep.1ntpsweepman
U    /usr/src/contrib/ntp/scripts/ntpsweep/ntpsweep.mdoc.in
U    /usr/src/contrib/ntp/scripts/ntptrace/ntptrace.1ntptracemdoc
U    /usr/src/contrib/ntp/scripts/plot_summary-opts
U    /usr/src/contrib/ntp/scripts/plot_summary.man.in
U    /usr/src/contrib/ntp/scripts/summary.1summarymdoc
U    /usr/src/contrib/ntp/scripts/update-leap/invoke-update-leap.texi
U    /usr/src/contrib/ntp/scripts/update-leap/update-leap.html
U    /usr/src/contrib/ntp/sntp/configure
U    /usr/src/contrib/ntp/sntp/include/version.texi
U    /usr/src/contrib/ntp/sntp/sntp-opts.h
U    /usr/src/contrib/ntp/sntp/sntp.man.in
U    /usr/src/contrib/ntp/scripts/ntptrace/ntptrace-opts
U    /usr/src/contrib/ntp/scripts/ntptrace/ntptrace.man.in
U    /usr/src/contrib/ntp/scripts/plot_summary.1plot_summarymdoc
U    /usr/src/contrib/ntp/scripts/summary-opts
U    /usr/src/contrib/ntp/scripts/summary.man.in
U    /usr/src/contrib/ntp/scripts/update-leap/update-leap.1update-leapman
U    /usr/src/contrib/ntp/scripts/update-leap/update-leap.man.in
U    /usr/src/contrib/ntp/sntp/include/version.def
U    /usr/src/contrib/ntp/sntp/sntp-opts.c
U    /usr/src/contrib/ntp/sntp/sntp.html
U    /usr/src/contrib/ntp/scripts/ntptrace/ntptrace.html
U    /usr/src/contrib/ntp/scripts/plot_summary.1plot_summaryman
U    /usr/src/contrib/ntp/scripts/plot_summary.mdoc.in
U    /usr/src/contrib/ntp/scripts/summary.html
U    /usr/src/contrib/ntp/scripts/update-leap/update-leap-opts
U    /usr/src/contrib/ntp/scripts/update-leap/update-leap.in
U    /usr/src/contrib/ntp/sntp/crypto.c
U    /usr/src/contrib/ntp/sntp/m4/version.m4
U    /usr/src/contrib/ntp/sntp/sntp.1sntpmdoc
U    /usr/src/contrib/ntp/sntp/unity/Makefile.am
U    /usr/src/contrib/ntp/sntp/unity/unity_fixture.c
U    /usr/src/contrib/ntp/tests/libntp/run-calendar.c
U    /usr/src/contrib/ntp/util/invoke-ntp-keygen.texi
U    /usr/src/contrib/ntp/util/ntp-keygen.1ntp-keygenmdoc
U    /usr/src/contrib/ntp/sntp/invoke-sntp.texi
U    /usr/src/contrib/ntp/sntp/sntp.1sntpman
U    /usr/src/contrib/ntp/sntp/sntp.mdoc.in
U    /usr/src/contrib/ntp/sntp/tests/run-packetProcessing.c
A    /usr/src/contrib/ntp/sntp/unity/ulib_teardown.c
U    /usr/src/contrib/ntp/tests/libntp/calendar.c
U    /usr/src/contrib/ntp/tests/ntpd/Makefile.in
U    /usr/src/contrib/ntp/util/ntp-keygen.1ntp-keygenman
U    /usr/src/contrib/ntp/sntp/unity/Makefile.in
U    /usr/src/contrib/ntp/sntp/version.c
U    /usr/src/contrib/ntp/tests/libntp/sfptostr.c
U    /usr/src/contrib/ntp/util/ntp-keygen-opts.c
U    /usr/src/contrib/ntp/util/ntp-keygen.c
U    /usr/src/sys/conf/newvers.sh
U    /usr/src/usr.sbin/ntp/doc/ntp.keys.5
U    /usr/src/usr.sbin/ntp/doc/sntp.8
U    /usr/src/contrib/ntp/sntp/tests/packetProcessing.c
A    /usr/src/contrib/ntp/sntp/unity/ulib_setup.c
U    /usr/src/contrib/ntp/tests/libntp/a_md5encrypt.c
U    /usr/src/contrib/ntp/tests/ntpd/Makefile.am
U    /usr/src/contrib/ntp/util/ntp-keygen-opts.h
U    /usr/src/contrib/ntp/util/ntp-keygen.html
U    /usr/src/usr.sbin/ntp/config.h
U    /usr/src/usr.sbin/ntp/doc/ntpd.8
U    /usr/src/usr.sbin/ntp/libntp/Makefile
U    /usr/src/contrib/ntp/util/ntp-keygen.mdoc.in
U    /usr/src/usr.sbin/ntp/doc/ntp.conf.5
U    /usr/src/usr.sbin/ntp/doc/ntpq.8
U    /usr/src/contrib/ntp/util/ntp-keygen.man.in
U    /usr/src/usr.sbin/ntp/doc/ntp-keygen.8
U    /usr/src/usr.sbin/ntp/doc/ntpdc.8
U    /usr/src/usr.sbin/ntp/scripts/mkver
Updated to revision 310426.
.

ユーザランドの再ビルド

今回のアップデートでは、ユーザランドの再ビルドが必要です。

# cd /usr/src
# make buildworld

 .

ユーザランドのインストール

# make installworld

 .

マシンの再起動

# reboot

.

Linksys USB10T 有線 LAN アダプタ

インターネット・オークションにて、リンクシス社の USB 有線 LAN アダプタ(USB10T)を入手しました。なお本体のみの状態で入手したため、ドライバ類などはありませんでした。Linksys 社のウェブサイトを確認しましたが、製品の紹介はありましたが、すでにドライバの配布は終了している模様でした。

dsc_6892_b
Linksys USB10T 有線 LAN アダプタ

動作確認

早速 Debian Jessie が稼働しているマシンへ USB ケーブルによって接続してみました。電源などは供給されて [LINK], [TX/RX] の LED ランプは点灯しました。しかし通信はできていない状況でした。

dsc_6897_b
動作確認中の Linksys USB10T です。

ifconfig コマンドなどでデバイスの確認を行ってみましたが、LAN デバイスとして認識されていました。lsusb コマンドでは下記のとおり認識出来ている状況でした。

Bus 002 Device 002: ID 066b:2202 Linksys, Inc. USB10TX Ethernet [pegasus]

しかし lsusb -v コマンドでドライバの対応状況を確認するとデバイスに対応したドライバがロードされていませんでした。

ネットから情報を探してみたところ、この USB10T のデバイス ID に対応するドライバは、何と二種類あるとのことでした。一つは pegasus で、もうひとつが kaweth でした。そこで lsmod コマンドでカーネル・モジュールのロード状況を確認すると pegasus と kaweth の両方がロードされている状況でした。そこで pegasus ドライバのみをロードするように kaweth ドライバを blacklist へ追加して、動作確認をしましたが、動作しませんでした。逆に pegasus ドライバを blacklist へ追加して kaweth ドライバだけの状況にしましたが、やはり動作しませんでした。

.

他の OS の動作状況

行き詰まった状況を打開するために Debian Jessie 以外の OS での動作状況を確認してみました。

Windows 7 や Windows XP では標準で USB10T のドライバが搭載されていないようで、ドライバのインストールを求められてしまいました。

再度 Debian の古いバージョンをインストールしているマシンを取り出して動作確認をしてみました。Debian Wheezy, Lenny, Sarge でも動作しませんでした。上記の Debian Jessie と同じように pegasus と kaweth の二つのドライバがロードされている状況にも係わらず、動作しない状況でした。

dsc_6899_b
ThinkPad 535X にインストールしてある Debian Sarge (2.4 系) で USB10T の動作確認中

.

そこで Puppy Linux で動作確認を行ってみました。するとバージョン 4.3.1  より古いバージョンでは USB10T が動作することが判明しました。それも動作しているドライバが kaweth であることも判明しました。USB10T の背面にあるシリアル番号に続いて表示してあったハードウェア・バージョンが 2.5 でしたが、このバージョンでは kaweth ドライバで動作するようです。

dsc_6901_b
ThinkPad 535X にインストールしてある Puppy Linux 4.3.1 で USB10T の動作確認

.

USB10T 用ファームウェアが必要

しかし 4.3.1 より新しい 5.7.1 などでは動作しませんでした。この両者の違いを確認したところ、USB10T 本体内部で使用するファームウェアが 4.3.1 では存在しましたが、5.7.1 では存在しませんでした。そして上記の動作確認を行った Debian の各バージョンにも kaweth ドライバに対応したファームウェアが存在していませんでした。

/lib/firmware/kaweth
new_code.bin
new_code_fix.bin
trigger_code.bin
trigger_code_fix.bin

.

USB10T 用ファームウェアの移植で動作 OK

ファームウェアが必要であることが判明したため、Puppy Linux 4.3.1 に存在していた kaweth のファームウェア(4つ)を Debian Jessie のマシンへ手動でコピーして動作状況を確認してみました。すると USB10T により通信ができるようになりました。

なお apt-get で kaweth のファームウェアをインストールすることができます。kaweth のファームウェアは firmware-linux-nonfree の中に含まれていました。

# apt-get update
# apt-get install firmware-linux-nonfree

.

安定性に問題有り

せっかく動作するようになった USB10T ですが、常に通信を行っている状況にしておくと、通信が遮断されてしまうようです。USB ケーブルを脱着することで、通信を再開することができました。複数のマシンでこの現象が確認できました。今回入手した USB10T 固有の現象なのかは不明です。