マンパワー・カプセル2010の成績を聞いたらアレなことに


 参加したことも忘れていたが、問い合わせてみたら、当時の回答内容と得点を知らせる返信が来た。他人の成績付きでな!
 何か、メールが二通来ているのだ。片方は赤の他人への返事に見える。Toは自分だけになってるので、宛先を間違えたのかなあ。メールの返信で宛先を間違えるとか器用じゃね?
 まあ、別にどうでもいいが。

 んじゃ、中身を見てみようか。
 得点は56点。ちなみに平均41.9点で一位64点。可もなく不可もなくな成績であるな。
 そして、回答を見ていくと…。ああ、何か全然駄目としか言いようがないな(笑)。予測は難しいですなあ。


Fail2banの問題を確認する


 どうも、チェーン生成が絡んだ場合、iptablesを立て続けに操作した時に「そんなチェーン無いし」とか言われるっぽい。多分。それが起きると、Fail2banのログに

fail2ban.actions.action: ERROR  iptables -N fail2ban-何とか
iptables -A fail2ban-何とか -j RETURN
iptables -I INPUT -p tcp -j fail2ban-何とか returned 100

などと吐き出される。また、service iptables statusまたはiptables -L -nを実行すると、出力にChain fail2ban-何とか (0 references)が含まれている。ここも本来は(1 references)でなければならない。
 よって、小手先の対応としては、Fail2banを起動したらすぐにFail2banのログかiptablesのステータスを確認し、エラーが出ていたら出なくなるまでfail2ban-client reloadを繰り返し実行、くらいで大丈夫だと思う。または壊れている定義を自前で修復するか。
 というより、そんなアホな作業をしたくなかったので、iptables系アクションのiptables -N fail2ban-<name>の次の行にperl -e 'select undef,undef,undef,0.1'とか短時間のスリープを埋め込んでやれば幸せになるんじゃね、と思ったのだが、全然役に立たなかったのでやめた。
 つーか、チェーン生成は事前に自前でやってservice iptables saveしといて、iptables系アクションのチェーン生成削除処理を削除するのが一番安定だな。そうしよう。ついでに-j DROP-j REJECT --reject-with icmp-admin-prohibitedに変更してみたけど、大抵は帯域の無駄という話もあったり。

 などとiptables系のアクションを弄っていたら、次に思ったのが「ここにip6tablesへの分岐処理とか埋めたら普通にIPv6対応になるんじゃね?」であった。
 が、Fail2banは、ログからIPv6アドレスを拾ってくれるのだろうか。公式Wikiのマニュアルを見てみると、<HOST>のマッチングは

(?:::f{4,6}:)?(?P<host>\S+)

となっているが、添付filterのコメントには

(?:::f{4,6}:)?(?P<host>[\w\-.^_]+)

とある。まあ、多分駄目だろうな。
 とは言っても、要するにPythonの名前付きキャプチャで拾ってるだけ、ということらしいから、filterも自前で

(?:::f{4,6}:)?(?P<host>[\w\-.^_:]+)

とかに書き換えればいいのだけど。

 ということで、意外と簡単に何とかなりそうだなー、と思ったが、IPv6ホストをbanするのって単純なソースアドレスマッチングで行けるのかなー、とか考えてるうちに、実際に困り始めたらやればいいかー、と思ったのであった。

追記:
 確かにREJECTは帯域の無駄だった。むしろバルクメーラー的にはメモリ節約出来て嬉しいという逆効果の予感も。


Fail2banを止めたり動かしたり


 と言っても変な意味じゃないぜ。

 長期的な遮断はTCP Wrapperで、と思ってたら、何ぞPostfixが素通りしてた。ふむ。ldd /usr/sbin/postfix、と。libwrap無し、と。
 もういいやめんどくせえからFail2ban停止な。ついでにShorewallも6to4が半端に通らなくて調べるのめんどいから停止。残骸が残ってたのでiptablesをリスタートして、と。

 とりあえず、Logwatchに膨大なログを流し込む奴だけiptables -A INPUT -s x.x.x.x -j REJECT --reject-with icmp-host-prohibitedとか手作業で突っ込んでけばいいんじゃねーの、もう。これならIPv6もip6tablesでばっちり対応出来るね!
 このままだと後々になって挙動を変えたくなった時にあれだから、disallowed-inputとかのチェーンにreject処理を分離しとくか。一度service iptables saveしといて、あとはもう/etc/sysconfig/iptablesを編集すればいいだけだな。作業的には楽勝ですね。

 と、ここまでやっといて何だが、手作業なんぞ納得行かなくて必ず自動化したくなるのが目に見えているので、やっぱりどうにかしてFail2banを使おう、と思い直す。割とだらけたサーバだから、SnortとかOSSECとかも何か違うしなあ。うーん。
 まあ、極力単純な動作に設定して、問題の原因をもう一度探ってみるか…。


XMPlayを入れてみた


 Windows Media Playerで我慢してた頃もあったが、oggがどうもうまく再生出来なくて諦めてからは、まー色々と試しては乗り換えてたのですよ。色々と。そして、今回XMPlayという奴を入れてみたら、第一印象がかなり好感触だったり。
 俺的に重視したいポイントを何となく考えてみると、

  • Ogg Vorbis, FLAC対応
  • ギャップレス(シームレス)再生
  • 補間、アップサンプリング
  • UTF-8対応

といったところがすぐに浮かぶ。
 ギャップレス再生はずっと欲しかった。曲間でブツッとならない奴ですね。かなり俺の中では優先度が高かったのだが、対応してるソフトは他の機能が異様に弱かったりしたので、ずっと妥協していた。というか、今回ソフトを探した動機もこれなのだ。
 補間付きリサンプリングは賛否が分かれるかもしれないけど、まあ、あった方が遊べるし。
 UTF-8対応は、日本語タグとか表示されて欲しいよなあ、という程度だったのだが、そんなことよりm3uの中身がUTF-8でもCP932でも再生出来たことに驚いた。地味に困りつつも諦めていたのに。
 というより、適当に手持ちのプレイリストを放り込みまくっても再生エラーが全く起きない。もちろん対応していないフォーマットのファイルは入れていないが、ゲームのクライアントに入ってたファイルなどは、対応してそうなプレイヤーでもエラーで再生出来ないファイルが出てくることが多いのだ。
 お陰で、PSOのシームレスBGMなんかもう本当に久々に聴けた。遺跡とか大好きだったなあ。マジ鳥肌。続いてDF前の雑魚大群のBGM。やっべー、痺れるような懐かしさ。PSOBBのクライアントとか落とせば、今でも曲データの大半は入ってるのかなあ。PSOBB終了したけど、どこかにはありそうな。どうせなら、終了前にパッチ当てて全曲確実に拾っておけばよかったなあ…。

 という訳で、しばらく使うことになりそうなのだが、難点もある。全力で英語なのだ。言語プラグインなども作れない様子。唯一の非常に残念なポイントだが、まあ、設定するようなところはほとんど無いので何とかなりそうな。
 また、ヘルプやHTMLのマニュアルも無く、設定項目の意味などは添付のxmplay.txtにダバーリと書いてある、という何だか懐かしい配布方法だったり。いや、それで十分だとは思いますが。


家族PCのLANが時々切れる


 ここんとこ家族PCで作業する時間が長いのだが、ちょっと大きなデータを落とそうとしたり、長々とストリーミングしたりすると、LANの受信が来なくなることがある。接続アイコンの左しか点灯しない感じ。ローカルエリア接続を無効化→有効化、という手順で復旧させているのだが、実にうざい。
 さすがにうざすぎるので、LANチップの素性を確認してみる。Marvell Yukon 88E8001かな。世間の評判はどうだろう。ふむふむ。あまり芳しくは無いな(笑)。ドライバの更新が結構激しいようで、新しいドライバにしたら不具合が解消するケースもある模様。んじゃ入れようか。
 つーことで、Marvellの公式で落としてインストール。メジャーバージョンが8から11に上がった。激しいな。まあ古いPCだしな。
 ついでに、チェックサムオフロードもWOLも切る。古いM/Bだから、LANチップがそろそろ死に掛けてるんじゃないのか、って気もして。まあCPUもNorthwoodだから、だいぶご老体ではあるが。夏にでもSandy Bridgeに入れ替えようと思ってたんだけど、その頃までには落ち着くのかなあ、あれ。