BSD界隈四方山話

第120回OpenBSD 6.2登場

OpenBSD 6.2登場

OpenBSDプロジェクトは2017年10月9日(カナダ時間⁠⁠、OpenBSDの最新版となる「OpenBSD 6.2」を公開しました。alpha版、amd64版、arm64版、armv7版、hppa版、i386版、landisk版、loongson版、luna88k版、macppc版、octeon版、sgi版、sparc64版が提供されています。世界中のHTTP/FTPミラーサーバからインストールイメージなどをダウンロード可能です。

主な変更点は次のとおりです。

  • amd64およびi386プラットフォームにおけるデフォルトコンパイラをclang(1)へ変更
  • ハイパーバイザ機能vmm(4)/vmd(8)の改善 - vmctl(8)におけるポーズド仮想マシンマイグレーションおよびメモリスナップショットのサポート、vmm(4)におけるVPID/ASIDリユース/ロールオーバー、VGAからシリアルコンソールリダイレクトを実現するためにSeaBIOSにおけるオプションとしてSGABIOSを導入、ゲスト仮想マシンからホストCPUのAVX/AVX2にアクセスする機能を実現、AMD SVM/RVIホストをサポート、ゲストメモリサイズを拡張(amd64ホストで32GBまで⁠⁠、ゲスト仮想マシンにおけるMONITOR/MWAIT/HLTインストラクションハンドリングの改善、デバイスエミュレーション改善、パフォーマンスを向上させるためにvirtio(4)のキューサイズを64から128へ拡大ほか
  • IEEE 802.11ワイヤレススタックの改善 - アクセスポイント選択時に2GHzバンドよりも5GHzを優先的に検索、現在のアクセスポイントから長期に渡ってベーコンを受信しなかった場合に新しいアクセスポイントを探すようにiwn(8)およびiwm(8)ドライバを変更ほか
  • ネットワークスタックの改善 - フォワーディング処理をKERNEL_LOCKフリー化しパフォーマンスを改善、IPv6ステートレスアドレスオートコンフィグレーションのサポートを廃止(ユーザランドへ移行)、pf(4)向けにFQ-CoDelアルゴリズムを実装、IPsecポリシーに対するIPv6チェックを改善ほか
  • インストーラの改善 - インストーラにおけるART(Allotment Routing Table)の利用サポート、インストール後にカーネルをユニークなカーネルに再構築、より詳しいディスク情報の表示、IPv6デフォルトルータ選択時のバグを修正ほか
  • ルーティングデーモンおよびほかのユーザランドネットワークの改善 - IPv6ステートレスアドレスオートコンフィグレーションをハンドリングする新しいslaacd(8)デーモンの導入、rtadvd(8)におけるReducing Energy Consumption of Router Advertisements(RFC 7772)のサポート、nc(1)コマンドにいくつかの機能の追加、ndp(8)を機能拡張ほか
  • セキュリティの改善 - freezero(3)の追加、TIOCSTI tty ioctlを削除(最後まで残っていたcshおよびmailを書き換え終了⁠⁠、Trapsledsの導入、起動ごとにカーネルをユニークに作り替えるKARL (Kernel Address Randomized Link)機能の導入、pflogd(8)およびtcpdump(8)をfork+execモデルへ変更、ifstated(8)/snmpd(8)/snmpctl(8)にpledge(2)を適用ほか
  • dhcpd(8)、dhcrelay(8)、dhclient(8)の改善
  • ksh(1)の改善
  • arm向け新ドライバ(rkgrf(4)、rkclock(4)、rkpinctrl(4)、rkgpio(4)、rktemp(4)、rkiic(4)、rkpmic(4)、dwmmc(4)、dwdog(4)、dwxe(4)、sxitwi(4)、axppmic(4)、bcmaux(4)、mvmpic(4)、mvpxa(4)、mvpinctrl(4)、mvneta(4)、amdisplay(4)、nxphdmi(4))サポート
  • octeon向け新ドライバ(octcib(4)、octcit(4)、octsctl(4)、octxctl(4))サポート
  • Hyper-Vストレージ向けhvs(4)新ドライバサポート
  • NXP PCF8563 Real Time Clock向けpcxrtc(4)新ドライバサポート
  • USB乱数生成デバイス向けurng(4)新ドライバサポート
  • 各種ドライバアップデート(iwm(4)、rtwn(4)、ral(4)、rtsx(4)、acpibat(4)、nvme(4)、ahci(4)、inteldrm(4)、puc(4)、xbf(4)、nvme(4)、ioapic(4))
  • OpenSMTPD 6.0.0へアップグレード
  • OpenSSH 7.6へアップグレード
  • LibreSSL 2.6.3へアップグレード
  • 各種サードパーティ製パッケージをアップグレード

OpenBSD 6.1からのアップグレードを希望する場合にはOpenBSD Upgrade Guide: 6.1 to 6.2を参考に作業してみてください。6.1よりも前のバージョンからのアップグレードはサポートされていませんので、その場合には順次アップグレードを行うなどしてまず6.1までアップグレードする必要があります。馴れていれば順次アップデートしていけばよいのですが、よくわかってない場合、6.2をゼロから再インストールしたほうがよいと思います。

OpenBSD 6.1では仮想化機能(ハイバーバイザ機能)の改善が続けられたほか、ネットワークスタックの高速化、セキュリティ機能の強化、各種ドライバの追加とアップデート、各種機能追加などが注目されます。OpenBSDの仮想化機能は順調に機能追加が続けられており、このまま開発が進めば汎用的なハイパーバイザとして使えるようになってくるのではないかと思います。

もうひとつ注目されるのはシステムを起動するごとにカーネルを作り替える機能であるKARL (Kernel Address Randomized Link)機能がデフォルトで導入された点にあります。この機能は今のところOpenBSDユニークな機能です。OpenBSDプロジェクトは半年おきにリリースを実施しており、新機能が半年といった周期で利用できるようなサイクルになっています。pledge(2)の適用対象がさらに増えた点も注目です。その仕組み上pledge(2)は多くのコマンドに適用した方がセキュリティが期待できます。

FreeBSD勉強会

10月26日(木) 19:00~ 第67回 FreeBSD勉強会:blacklistd(8)でsshd/ftpd DoS攻撃を防止する方法 基礎から応用まで - ドワンゴ セミナールーム

FreeBSD 11.0-RELEASEにはblacklistd(8)と呼ばれるデーモンが取り込まれました。これはNetBSDのblacklistd(8)をマージしたもので、設定に従ってサーバに対するDoS攻撃とみられるアクセスに対し、自動的にアクセスを閉じるといった処理をしてくれます。

FreeBSD 11.1-RELEASEからはシステムのsshd(8)がblacklistd(8)に対応するようになりました。ftpd(8)にもすでに同様の機能が取り込まれています。ログインに何回か失敗したら何時間の間アクセスをブロックするといった設定を行うことができます。ホワイトリスト的な設定も追加することでき、全体としてのブロック設定をおこないつつ、特定のホストからのアクセスは許可したり、特定のホストからのアクセスは規制を緩くしておくといったことも可能です。

blacklistd(8)と類似した機能を提供するソフトウェアにはsshguard、fail2ban、denyhostsなどがあります。これらソフトウェアと比較したblasklistd(8)の特徴は処理の軽快さにあります。また、ipfw、pf、ipfilterというFreeBSDが提供しているすべてのファイアウォール機能に対応しているほか、もちろんNetBSD npfに対応しています。

blacklistd(8)はライブラリとしてlibblacklistを提供しているため、sshdに限らずほかのさまざまなソフトウェアからも利用できる汎用的な機能です。いくらかのコードの書き換えでblacklistd(8)を利用できるようにすることができます。

今回の勉強会ではblacklistd(8)がどのように動作しているのか紹介するとともに、設定方法などの基本的な方法から、既存のソフトウェアをblacklistd(8)に対応させる場合にどのように開発を行えばよいかなどを紹介します。

参加登録はこちらから。

FreeBSD勉強会 発表者募集

FreeBSD勉強会では発表者を募集しています。FreeBSDに関して発表を行いたい場合、@daichigotoまでメッセージをお願いします。30分~1時間ほどの発表資料を作成していただき発表をお願いできればと思います。

おすすめ記事

記事・ニュース一覧