春山 征吾のくけー

https://www.unixuser.org/~haruyama/blog/ に移転しました http://wiki.livedoor.jp/haruyama_seigo/d/FrontPage @haruyama タイトルが思いつかないときはそのときかかってた曲をタイトルにしています.

2014年01月

OpenSSH 6.5/6.5p1 がリリースされました.

2014/01/30, OpenSSH 6.5/6.5p1 がリリースされました.

http://openssh.org/txt/release-6.5

Changes since OpenSSH 6.4
=========================
OpenSSH 6.4 からの変更点

This is a feature-focused release.

機能に焦点を当てたリリースだ.

New features:

新機能:

 * ssh(1), sshd(8): Add support for key exchange using elliptic-curve
   Diffie Hellman in Daniel Bernstein's Curve25519. This key exchange
   method is the default when both the client and server support it.

   ssh(1), sshd(8): Daniel Bernstein の Curve25519 による
   楕円曲線 Diffee Hellman を用いた鍵交換のサポートを加える.

 * ssh(1), sshd(8): Add support for Ed25519 as a public key type.
   Ed25519 is a elliptic curve signature scheme that offers
   better security than ECDSA and DSA and good performance. It may be
   used for both user and host keys.

   ssh(1), sshd(8): 公開鍵のタイプとして Ed25519 のサポートを加える.
   Ed25519 は 楕円曲線の署名方式で, ECDSA と DSA よりもよいセキュリティを
   提供する. またパフォーマンスもよい. ユーザ鍵にもホスト鍵にも利用できる.

 * Add a new private key format that uses a bcrypt KDF to better
   protect keys at rest. This format is used unconditionally for
   Ed25519 keys, but may be requested when generating or saving
   existing keys of other types via the -o ssh-keygen(1) option.
   We intend to make the new format the default in the near future.
   Details of the new format are in the PROTOCOL.key file.

   (オフライン攻撃から)鍵をよりよく保護するために bcrypt KDF を用いる
   新しい鍵フォーマットを加える. この形式は無条件に Ed25519 鍵に用いられる.
   ただし, ssh-keygen(1) の -o オプションによって, 鍵の生成時や
   他のタイプの既存の鍵の保存で要求できる. 近い将来この新しい形式を
   デフォルトにするつもりだ. 新しいフォーマットの詳細は,
   PROTOCOL.key ファイルにある.

 * ssh(1), sshd(8): Add a new transport cipher
   "chacha20-poly1305@openssh.com" that combines Daniel Bernstein's
   ChaCha20 stream cipher and Poly1305 MAC to build an authenticated
   encryption mode. Details are in the PROTOCOL.chacha20poly1305 file.

   ssh(1), sshd(8): 新しいトランスポート暗号 "chacha20-poly1305@openssh.com"
   を加える.  認証された暗号モードを作成するために Daniel Bernstein の
   ChaCha20 ストリーム暗号とPoly1305 MAC を組合せたものだ.
   詳細は PROTOCOL.chacha20poly1305 ファイルにある.

 * ssh(1), sshd(8): Refuse RSA keys from old proprietary clients and
   servers that use the obsolete RSA+MD5 signature scheme. It will
   still be possible to connect with these clients/servers but only
   DSA keys will be accepted, and OpenSSH will refuse connection
   entirely in a future release.

   ssh(1), sshd(8): 時代遅れの RSA+MD5 署名方式を用いる古い
   プロプリエタリなクライアントとサーバからの RSA 鍵を拒否する.
   これらのクライアント/サーバとの接続はまだ可能だが, DSA 鍵のみが
   受けつけられる. また, OpenSSH は近い将来接続を完全に拒否するだろう.

 * ssh(1), sshd(8): Refuse old proprietary clients and servers that
   use a weaker key exchange hash calculation.

   ssh(1), sshd(8): より弱い鍵交換ハッシュ計算をする古いプロプリエタリ
   なクライアントとサーバを拒否する.

 * ssh(1): Increase the size of the Diffie-Hellman groups requested
   for each symmetric key size. New values from NIST Special
   Publication 800-57 with the upper limit specified by RFC4419.

   ssh(1): それぞれの対称鍵のサイズのために求められる
   複数の Diffee-Hellman 群のサイズを増やす.
   新しい値は NIST Special Publication 800-57 からの もので,
   RFC4419 で指定された上限がある.

 * ssh(1), ssh-agent(1): Support pkcs#11 tokes that only provide
   X.509 certs instead of raw public keys (requested as bz#1908).

   ssh(1), ssh-agent(1): 生の公開鍵の代わりに X.509 証明書を提供する
   場合にのみ pkcs#11 をサポートする (bz#1908 で依頼された).

 * ssh(1): Add a ssh_config(5) "Match" keyword that allows
   conditional configuration to be applied by matching on hostname,
   user and result of arbitrary commands.

   ssh(1): ssh_config(5) の "Match" キーワードで, ホスト名やユーザ
   任意のコマンドの結果のマッチによって適用される条件付き設定が
   可能になる.

 * ssh(1): Add support for client-side hostname canonicalisation
   using a set of DNS suffixes and rules in ssh_config(5). This
   allows unqualified names to be canonicalised to fully-qualified
   domain names to eliminate ambiguity when looking up keys in
   known_hosts or checking host certificate names.

   ssh(1): ssh_config(5) の DNS 拡張子の集合とルールを用いた
   クライアントサイドのホスト名正規化のサポートを加える.
   修飾されていない名前を 完全修飾パス名(FQDN)に正規化することで,
   known_hosts 中の鍵を検索する場合やホストの証明書名をチェックする際の
   あいまいさを除去する.

 * sftp-server(8): Add the ability to whitelist and/or blacklist sftp
   protocol requests by name.

   sftp-server(8): sftp プロトコル要求を名前でホワイトリスト化
   かつ/ないし ブラックリスト化する機能を加える.

 * sftp-server(8): Add a sftp "fsync@openssh.com" to support calling
   fsync(2) on an open file handle.

   sftp-server(8): open中のファイルハンドルに fsync(2) を呼び出すのを
   サポートする sftp の "fsync@openssh.com" を加える.

 * sshd(8): Add a ssh_config(5) PermitTTY to disallow TTY allocation,
   mirroring the longstanding no-pty authorized_keys option.

   sshd(8): TY の割り当てを 却下する PermitTTY を ssh_config(5) に 加える.
   昔からある no-pty authorized_keys のオプションの代わりになる.

 * ssh(1): Add a ssh_config ProxyUseFDPass option that supports the
   use of ProxyCommands that establish a connection and then pass a
   connected file descriptor back to ssh(1). This allows the
   ProxyCommand to exit rather than staying around to transfer data.

   ssh(1): ssh_config に ProxyUseFDPass 設定項目を加える.
   接続を確率し接続されたファイルデスクリプタを ssh(1) に戻す
   ProxyCommand の利用をサポートする.
   ProxyCommand が終了しても データの転送をし続けることが可能になる.

Bugfixes:

バグ修正:

 * ssh(1), sshd(8): Fix potential stack exhaustion caused by nested
   certificates.

   ssh(1), sshd(8): ネストされた証明書による 潜在的なスタック枯渇を
   修正.

 * ssh(1): bz#1211: make BindAddress work with UsePrivilegedPort.

   ssh(1): bz#1211: BindAddress が UsePrivilegedPort と共に動くようにする.

 * sftp(1): bz#2137: fix the progress meter for resumed transfer.

   sftp(1): bz#2137: 中断された転送でのプログレスメータを修正.

 * ssh-add(1): bz#2187: do not request smartcard PIN when removing
   keys from ssh-agent.

   ssh-add(1): bz#2187: ssh-agent から鍵を削除する際に スマートカードの
   PIN を要求しない.

 * sshd(8): bz#2139: fix re-exec fallback when original sshd binary
   cannot be executed.

   sshd(8): bz#2139: オリジナルの sshd バイナリが実行できない場合に
   再実行のフォールバックを修正.

 * ssh-keygen(1): Make relative-specified certificate expiry times
   relative to current time and not the validity start time.

   ssh-keygen(1): 相対指定された証明書の有効期限を 妥当性検証の開始時間
   ではなく 現在時刻に対応させる.

 * sshd(8): bz#2161: fix AuthorizedKeysCommand inside a Match block.

   sshd(8): bz#2161: Match ブロック中の AuthorizedKeysCommand を修正.

 * sftp(1): bz#2129: symlinking a file would incorrectly canonicalise
   the target path.

   sftp(1): bz#2129: ファイルのシンボリックリックが
   ターゲットパスの間違って正規化する.

 * ssh-agent(1): bz#2175: fix a use-after-free in the PKCS#11 agent
   helper executable.

   ssh-agent(1): bz#2175: PKCS#11 エージェントヘルパの実行での
   free後の利用を修正.

 * sshd(8): Improve logging of sessions to include the user name,
   remote host and port, the session type (shell, command, etc.) and
   allocated TTY (if any).

   sshd(8): ユーザ名やリモートホスト/ポート, セッションの種類
   (シェル, コマンド など), 割り当てられた TTY(あれば)を含む
   セッションのログ取得を改善する.

 * sshd(8): bz#1297: tell the client (via a debug message) when
   their preferred listen address has been overridden by the
   server's GatewayPorts setting.

   sshd(8): bz#1297: サーバの GatewayPorts の設定によって
   クライアントが好む listen アドレスが上書きされた場合に
   (デバッグメッセージで) クライアントに通知する.

 * sshd(8): bz#2162: include report port in bad protocol banner
   message.

   sshd(8): bz#2162: 不正なプロトコルバナーメッセージ中で
   ポートを報告するようにする.

 * sftp(1): bz#2163: fix memory leak in error path in do_readdir().

   sftp(1): bz#2163: do_readdir() でのエラーパスのメモリリークを修正.

 * sftp(1): bz#2171: don't leak file descriptor on error.

   sftp(1): bz#2171: エラー時にファイルデスクリプタをリークしない.

 * sshd(8): Include the local address and port in "Connection from
   ..." message (only shown at loglevel>=verbose)

   sshd(8): "Connection from .." メッセージで ローカルアドレスとポートも
   含める(loglevel>=verbose のときのみ表示)

Portable OpenSSH:

移植版 OpenSSH:

 * Please note that this is the last version of Portable OpenSSH that
   will support versions of OpenSSL prior to 0.9.6. Support (i.e.
   SSH_OLD_EVP) will be removed following the 6.5p1 release.

   注意: OpenSSL 0.9.6 より前のバージョンをサポートする最後の移植版
   OpenSSH になる. 6.5p1 以降のリリースでは サポート(SSH_OLD_EVP) は
   取り除かれる.

 * Portable OpenSSH will attempt compile and link as a Position
   Independent Executable on Linux, OS X and OpenBSD on recent gcc-
   like compilers. Other platforms and older/other compilers may
   request this using the --with-pie configure flag.

   移植版 OpenSSH は, Linux や OS X, OpenBSD で 最近の gcc のような
   コンパイラを利用している場合に, Position Independent Executable として
   コンパイルしリンクしようとする. 他のプラットフォームや
   より古い/他のコンパイラでは, --with-pie configure フラグを作って
   要求できるかもしれない.

 * A number of other toolchain-related hardening options are used
   automatically if available, including -ftrapv to abort on signed
   integer overflow and options to write-protect dynamic linking
   information.  The use of these options may be disabled using the
   --without-hardening configure flag.

   利用可能であれば, 多数の toolchain 関係の堅牢化オプションが
   自動的に利用される. 符号付き整数オーバーフローで停止する -ftrapv
   や ダイナミックリンク情報を書き込み保護するオプションが含まれる.
   --without-hardening configure フラグで これらのオプションの利用を
   無効にできる.

 * If the toolchain supports it, one of the -fstack-protector-strong,
   -fstack-protector-all or -fstack-protector compilation flag are
   used to add guards to mitigate attacks based on stack overflows.
   The use of these options may be disabled using the
   --without-stackprotect configure option.

   toolchain がサポートしているならば, -fstack-protector-strong ないし
   -fstack-protector-all, -fstack-protector コンパイルフラグのうちの
   1つが, スタックオーバーフローに基づく攻撃を緩和するガードを
   追加するのに利用される. 
   --without-stackprotect configure フラグで これらのオプションの利用を
   無効にできる.

 * sshd(8): Add support for pre-authentication sandboxing using the
   Capsicum API introduced in FreeBSD 10.

   sshd(8): FreeBSD 10 で導入された Capsicum API を利用する
   認証前サンドボックス化のサポートを追加.

 * Switch to a ChaCha20-based arc4random() PRNG for platforms that do
   not provide their own.

   PRNG を提供しないプラットホームで ChaCha20 ベースの arc4random() PRNG
   に切り替える.

 * sshd(8): bz#2156: restore Linux oom_adj setting when handling
   SIGHUP to maintain behaviour over retart.

   sshd(8): bz#2156: リスタート時に振舞いを保持するために
   SIGHUP の処理時に Linux の oom_adj 設定を復元する.

 * sshd(8): bz#2032: use local username in krb5_kuserok check rather
   than full client name which may be of form user@REALM.

   sshd(8): bz#2032: krb5_kuserok で user@REALM のような形式の完全な
   クライアント名ではなくローカルのユーザ名を用いる.

 * ssh(1), sshd(8): Test for both the presence of ECC NID numbers in
   OpenSSL and that they actually work. Fedora (at least) has
   NID_secp521r1 that doesn't work.

   ssh(1), sshd(8): OpenSSH の ECC NID ナンバーの存在とそれが実際に
   機能するかをテストする: (少なくとも) Fedora に動作しない
   NID_secp521r1 がある.

 * bz#2173: use pkg-config --libs to include correct -L location for
   libedit.

   bz#2173: libedit について 正しい -L の場所を含めるために pkg-config --libs
   を用いる.

OpenSSH 6.5 リリース準備中 Call for testing: OpenSSH-6.5

OpenSSH 6.5 がリリース準備中です.

変更点を適当に訳しました.

以下は, リリース準備中のものです.

春山 征吾のくけー : OpenSSH 6.5/6.5p1 がリリースされました. - livedoor Blog(ブログ) で リリース時のものを掲載しました.

Changes since OpenSSH 6.4
=========================
OpenSSH 6.4 からの変更点

This is a feature-focused release.

機能に焦点を当てたリリースだ.

New features:

新機能:

 * ssh(1), sshd(8): Add support for key exchange using elliptic-curve
   Diffie Hellman in Daniel Bernstein's Curve25519. This key exchange
   method is the default when both the client and server support it.

   ssh(1), sshd(8): Daniel Bernstein の Curve25519 による
   楕円曲線 Diffee Hellman を用いた鍵交換のサポートを加える.

 * ssh(1), sshd(8): Add support for Ed25519 as a public key type.
   Ed25519 is a elliptic curve signature scheme that offers
   better security than ECDSA and DSA and good performance. It may be
   used for both user and host keys.

   ssh(1), sshd(8): 公開鍵のタイプとして Ed25519 のサポートを加える.
   Ed25519 は 楕円曲線の署名方式で, ECDSA と DSA よりもよいセキュリティを
   提供する. またパフォーマンスもよい. ユーザ鍵にもホスト鍵にも利用できる.

 * Add a new private key format that uses a bcrypt KDF to better
   protect keys at rest. This format is used unconditionally for
   Ed25519 keys, but may be requested when generating or saving
   existing keys of other types via the -o ssh-keygen(1) option.
   We intend to make the new format the default in the near future.
   Details of the new format are in the PROTOCOL.key file.

   (オフライン攻撃から)鍵をよりよく保護するために bcrypt KDF を用いる
   新しい鍵フォーマットを加える. この形式は無条件に Ed25519 鍵に用いられる.
   ただし, ssh-keygen(1) の -o オプションによって, 鍵の生成時や
   他のタイプの既存の鍵の保存で要求できる. 近い将来この新しい形式を
   デフォルトにするつもりだ. 新しいフォーマットの詳細は,
   PROTOCOL.key ファイルにある.

 * ssh(1), sshd(8): Add a new transport cipher
   "chacha20-poly1305@openssh.com" that combines Daniel Bernstein's
   ChaCha20 stream cipher and Poly1305 MAC to build an authenticated
   encryption mode. Details are in the PROTOCOL.chacha20poly1305 file.

   ssh(1), sshd(8): 新しいトランスポート暗号 "chacha20-poly1305@openssh.com"
   を加える.  認証された暗号モードを作成するために Daniel Bernstein の
   ChaCha20 ストリーム暗号とPoly1305 MAC を組合せたものだ.
   詳細は PROTOCOL.chacha20poly1305 ファイルにある.

 * ssh(1), sshd(8): Refuse RSA keys from old proprietary clients and
   servers that use the obsolete RSA+MD5 signature scheme. It will
   still be possible to connect with these clients/servers but only
   DSA keys will be accepted, and OpenSSH will refuse connection
   entirely in a future release.

   ssh(1), sshd(8): 時代遅れの RSA+MD5 署名方式を用いる古い
   プロプリエタリなクライアントとサーバからの RSA 鍵を拒否する.
   これらのクライアント/サーバとの接続はまだ可能だが, DSA 鍵のみが
   受けつけられる. また, OpenSSH は近い将来接続を完全に拒否するだろう.

 * ssh(1), sshd(8): Refuse old proprietary clients and servers that
   use a weaker key exchange hash calculation.

   ssh(1), sshd(8): より弱い鍵交換ハッシュ計算をする古いプロプリエタリ
   なクライアントとサーバを拒否する.

 * ssh(1): Increase the size of the Diffie-Hellman groups requested
   for each symmetric key size. New values from NIST Special
   Publication 800-57 with the upper limit specified by RFC4419

   ssh(1): それぞれの対称鍵のサイズのために求められる
   複数の Diffee-Hellman 群のサイズを増やす.
   新しい値は NIST Special Publication 800-57 からの もので,
   RFC4419 で指定された上限がある.

 * ssh(1), ssh-agent(1): Support pkcs#11 tokes that only provide
   X.509 certs instead of raw public keys (requested as bz#1908).

   ssh(1), ssh-agent(1): 生の公開鍵の代わりに X.509 証明書を提供する
   場合にのみ pkcs#11 をサポートする (bz#1908 で依頼された).

 * ssh(1): Add a ssh_config(5) "Match" keyword that allows
   conditional configuration to be applied by matching on hostname,
   user and result of arbitrary commands.

   ssh(1): ssh_config(5) の "Match" キーワードで, ホスト名やユーザ
   任意のコマンドの結果のマッチによって適用される条件付き設定が
   可能になる.

 * ssh(1): Add support for client-side hostname canonicalisation
   using a set of DNS suffixes and rules in ssh_config(5). This
   allows unqualified names to be canonicalised to fully-qualified
   domain names to eliminate ambiguity when looking up keys in
   known_hosts or checking host certificate names.

   ssh(1): ssh_config(5) の DNS 拡張子の集合とルールを用いた
   クライアントサイドのホスト名正規化のサポートを加える.
   修飾されていない名前を 完全修飾パス名(FQDN)に正規化することで,
   known_hosts 中の鍵を検索する場合やホストの証明書名をチェックする際の
   あいまいさを除去する.

 * sftp-server(8): Add the ability to whitelist and/or blacklist sftp
   protocol requests by name.

   sftp-server(8): sftp プロトコル要求を名前でホワイトリスト化
   かつ/ないし ブラックリスト化する機能を加える.

 * sftp-server(8): Add a sftp "fsync@openssh.com" to support calling
   fsync(2) on an open file handle.

   sftp-server(8): open中のファイルハンドルに fsync(2) を呼び出すのを
   サポートする sftp の "fsync@openssh.com" を加える.

 * sshd(8): Add a ssh_config(5) PermitTTY to disallow TTY allocation,
   mirroring the longstanding no-pty authorized_keys option.

   sshd(8): TY の割り当てを 却下する PermitTTY を ssh_config(5) に 加える.
   昔からある no-pty authorized_keys のオプションの代わりになる.

 * ssh(1): Add a ssh_config ProxyUseFDPass option that supports the
   use of ProxyCommands that establish a connection and then pass a
   connected file descriptor back to ssh(1). This allows the
   ProxyCommand to exit rather than staying around to transfer data.

   ssh(1): ssh_config に ProxyUseFDPass 設定項目を加える.
   接続を確率し接続されたファイルデスクリプタを ssh(1) に戻す
   ProxyCommand の利用をサポートする.
   ProxyCommand が終了しても データの転送をし続けることが可能になる.

Bugfixes:

バグ修正:

 * ssh(1), sshd(8): Fix potential stack exhaustion caused by nested
   certificates.

   ssh(1), sshd(8): ネストされた証明書による 潜在的なスタック枯渇を
   修正.

 * ssh(1): bz#1211: make BindAddress work with UsePrivilegedPort.

   ssh(1): bz#1211: BindAddress が UsePrivilegedPort と共に動くようにする.

 * sftp(1): bz#2137: fix the progress meter for resumed transfer.

   sftp(1): bz#2137: 中断された転送でのプログレスメータを修正.

 * ssh-add(1): bz#2187: do not request smartcard PIN when removing
   keys from ssh-agent.

   ssh-add(1): bz#2187: ssh-agent から鍵を削除する際に スマートカードの
   PIN を要求しない.

 * sshd(8): bz#2139: fix re-exec fallback when original sshd binary
   cannot be executed.

   sshd(8): bz#2139: オリジナルの sshd バイナリが実行できない場合に
   再実行のフォールバックを修正.

 * ssh-keygen(1): Make relative-specified certificate expiry times
   relative to current time and not the validity start time.

   ssh-keygen(1): 相対指定された証明書の有効期限を 妥当性検証の開始時間
   ではなく 現在時刻に対応させる.

 * sshd(8): bz#2161: fix AuthorizedKeysCommand inside a Match block.

   sshd(8): bz#2161: Match ブロック中の AuthorizedKeysCommand を修正.

 * sftp(1): bz#2129: symlinking a file would incorrectly canonicalise
   the target path.

   sftp(1): bz#2129: ファイルのシンボリックリックが
   ターゲットパスの間違って正規化する.

 * ssh-agent(1): bz#2175: fix a use-after-free in the PKCS#11 agent
   helper executable.

   ssh-agent(1): bz#2175: PKCS#11 エージェントヘルパの実行での
   free後の利用を修正.

 * sshd(8): Improve logging of sessions to include the user name,
   remote host and port, the session type (shell, command, etc.) and
   allocated TTY (if any).

   sshd(8): ユーザ名やリモートホスト/ポート, セッションの種類
   (シェル, コマンド など), 割り当てられた TTY(あれば)を含む
   セッションのログ取得を改善する.

 * sshd(8): bz#1297: tell the client (via a debug message) when
   their preferred listen address has been overridden by the
   server's GatewayPorts setting.

   sshd(8): bz#1297: サーバの GatewayPorts の設定によって
   クライアントが好む listen アドレスが上書きされた場合に
   (デバッグメッセージで) クライアントに通知する.

 * sshd(8): bz#2162: include report port in bad protocol banner
   message.

   sshd(8): bz#2162: 不正なプロトコルバナーメッセージ中で
   ポートを報告するようにする.

 * sftp(1): bz#2163: fix memory leak in error path in do_readdir()

   sftp(1): bz#2163: do_readdir() でのエラーパスのメモリリークを修正.

 * sftp(1): bz#2171: don't leak file descriptor on error.

   sftp(1): bz#2171: エラー時にファイルデスクリプタをリークしない.

 * sshd(8): Include the local address and port in "Connection from
   ..." message (only shown at loglevel>=verbose)

   sshd(8): "Connection from .." メッセージで ローカルアドレスとポートも
   含める(loglevel>=verbose のときのみ表示)

Portable OpenSSH:

移植版 OpenSSH:

 * Switch to a ChaCha20-based arc4random() PRNG for platforms that do
   not provide their own.

   PRNG を提供しないプラットホームで ChaCha20 ベースの arc4random() PRNG
   に切り替える.

 * sshd(8): bz#2156: restore Linux oom_adj setting when handling
   SIGHUP to maintain behaviour over retart.

   sshd(8): bz#2156: リスタート時に振舞いを保持するために
   SIGHUP の処理時に Linux の oom_adj 設定を復元する.

 * sshd(8): bz#2032: use local username in krb5_kuserok check rather
   than full client name which may be of form user@REALM.

   sshd(8): bz#2032: krb5_kuserok で user@REALM のような形式の完全な
   クライアント名ではなくローカルのユーザ名を用いる.

 * ssh(1), sshd(8): Test for both the presence of ECC NID numbers in
   OpenSSL and that they actually work. Fedora (at least) has
   NID_secp521r1 that doesn't work.

   ssh(1), sshd(8): OpenSSH の ECC NID ナンバーの存在とそれが実際に
   機能するかをテストする: (少なくとも) Fedora に動作しない
   NID_secp521r1 がある.

 * bz#2173: use pkg-config --libs to include correct -L location for
   libedit.

   bz#2173: libedit について 正しい -L の場所を含めるために pkg-config --libs
   を用いる.

fluent-plugin-referer-parser を作りました.

Fluentd で HTTP の Referer から検索エンジンで入力された検索語を取得したいなと思ったのですが, 適当な plugin はないようでした. そこで, snowplow/referer-parser を利用して Referer をパースする haruyama/fluent-plugin-referer-parser を作りました. tagomoris/fluent-plugin-woothee をベースにしています.

referer-parser の RefererParser::Referer の known?, referer, search_term を Fluentd の key として抽出します. key のデフォルトは referer_known, referer_referer, referer_search_term です. key 名は変更可能です. referer_search_term は, Referer のクエリ文字列の ie ないし ei パラメータを見て, 必要ならば UTF-8 に変換するようにしています.

ちゃんとテストしていませんのでご注意を.

fluent-plugin-out-solr を作りました.

Apache SolrFluentd から更新したいなと思ったのですが, 既存の btigit/fluent-plugin-solr は Solr の field が固定されていて(https://github.com/btigit/fluent-plugin-solr/blob/d3b4e3baa6eb9951493ff22627d57497c929a6a3/lib/fluent/plugin/out_solr.rb#L44), 汎用性がありません.

そこで, uken/fluent-plugin-elasticsearch をベースにして haruyama/fluent-plugin-out-solr を作りました.

install すると plugin の type として solr と solr_time_sliced が利用できます. solr のほうは単一の core への更新, solr_time_sliced は time で分割した core の更新が行なえます.

設定例は haruyama/fluent-plugin-out-solr にあります.

まだ手元でも十分にはテストしていませんのでご注意ください.

その他にも注意点があります.

  • Elasticsearch とは異なり, core や field は Solr 側で先に定義しておく必要があります. field は dynamicField でももちろん構いません.
  • uniqueKey を明示的に含めないならば, UniqueKey - Solr Wiki の UUID techniques を利用する必要があります.
  • 現在のところ明示的に commit, softCommit をしません. autoCommit, autoSoftCommit の設定が必要です.
    • Solr が落ちた場合には 更新されたはずのデータが commit されておらず再起動後更新されていないということが起こりえます. これはこのプラグインに限らず softCommit を利用するならば考慮しなければいけない事態です.
    • それほど大量の更新がされないシステムのために明示的な commit をする設定は追加してもよいかもしれないですね. あとで追加しようと思います. softCommit は autoSoftCommit でやればいいと思うので入れません. (2014-01-02 11:56追記: version 0.0.5 で commit true を指定すれば 明示的に commit するようにしました.)
  • Solr の *date fieldType が "YYYY-MM-DDTHH:MM:SSZ" で指定されていないといけないので, デフォルトでは localtime をこの形式で入れます. "utc" が指定されているならば UTC で入れます.

2014/01/01 少なくとも2014年2月末まではフリーランスとして働きます

いままで会社に属していない間はほとんど働いてなかったのですが(未踏をやってた時など例外はあります),今回は面白そうなお話を複数頂いたのでフリーランスとして働くことになりました.

いまのところは2月末までについては週4程度働くことになりました. 週3日は在宅で開発し, 週1日は(週3のところとは別の)会社に出社する予定です. 残りの1日はサッカーや転職活動に使います.

まだ今後について決めているわけではないので, お仕事は短めの期間でお願いしています. 3月以降の転職については現在のところ可能ですので, ご連絡をお待ちしております. またフリーランスとしてのお仕事のご依頼についても対応できるかもしれません.

2014/01/10追記: 職務経歴などは 転職用情報 - 春山征吾のWiki - Seesaa Wiki(ウィキ) からたどれます.

QRコード
QRコード
  • ライブドアブログ