2007/10/18(木)openSUSE 10.3設定メモ

マシン:Panasonic Let's note CF-R6

DHCPの動作がイマイチ安定しない

たまたまNECの某ルータが悪いのだと思いますが、

DHCPDISCOVER on eth0 to 255.255.255.255 port 67 interval 2
DHCPOFFER from 192.168.1.1: no domain-name-servers-option

となってまったく動作しません。/etc/dhcpclient.conf を編集しました。

変更前
require subnet-mask, domain-name-servers;
変更後
require subnet-mask;

このように変更しても、ふつうに resolve.conf は更新されました。

openoffice で日本語入力できない

SCIM利用時に、OpenOfficeで日本語入力出来ない(全角半角やControl+Spaceが反応しない)不具合があります。scim-bridgeを使用しているのが原因のようです

ホームディレクトリにある .xim.template を .xim としてコピーして、5つあるexport行をすべて有効にすれば解決します(要Xの再起動)。

ホットキードライバのインストール

というページ(ほか)を参考に行いました。カーネルが新しい(2.6.22)ので pcc-acpi-0.9.tar.bz2 を使用。画面の明るさ調整は設定はできるものの実際には動作しませんでした。(カーネルバージョンとの兼ね合い?)*1

*1 : 現状では、暗がりでは明るすぎて使用に耐えません(;;

suspend to RAMを有効にする

サスペンドを実行しようとすると、"Machine is unknown."と怒られてしまいます。s2ram に -f オプションを付けて実行すれば手動でサスペンドできますが、KDEの電源マネージャー(kpowersaved)からの設定方法がどこにも書かれておりません。*2

/usr/lib/pm-utils/default

S2RAM_OPTS="-f"

powersaved の場合は /etc/powersave/sleep に SUSPEND2RAM_FORCE="yes" とかけば ok です。

*2 : manにもないってどうかと思うんだけど……

2007/10/17(水)openSUSE入れてみた

使いもしないのに興味本位でノートPCにopenSUSEを入れてみました。なぜopenSUSEなのかってのはいろいろありますが、

  • debian は硬派すぎてちょっと馴染まない。サーバにするにはいいけど。
  • Ubuntuはとても使いやすくて好きだけど、ファイラーはKDE(Konqueror)の方が使いやすいのでKDEにしたかった。
  • SUSE系は使ったことがなかったので使ってみたかった。
  • BSD系でもよかったんだけども。
  • Fedora? なにそれおいしいの? 

ということで、使ったことのないopenSUSEにしました。しかし、染みついたものはなかなか抜けないようで、ついつい OpenSUSE と書きたくなります(汗)*1

*1 : どうりで、aDiary表記が減らないはずだ(ぉ

マシン構成

  • Inten Core 2 Duo(1.06GHz)
  • i945GM
  • メモリ 512MB

感想とか

CDからインストールしてたんですが、インストール中に download.opensuse.org にアクセスに行って遅くてしょうがないから*2途中で止めたら、どうやらリポジトリが壊れたらしく、第1言語が日本語になっているにも関わらず、日本語パッケージ追加も機能せず、英語のXが立ち上がりどうにも修正できずまいりました。

数時間格闘の上、リポジトリのアップデート(リポジトリメディアの選択しなおし)でなんとか解決。とりあえず一通り使えるようになったんですが。

  • リポジトリ管理(YaST)が妙に重たい。*3
  • 電源管理がWindowsほど充実してない。ディスプレイの明るさ調整が効かないのと、CPU/Chipsetの可変FSB(Enhanced SpeedStep for Centrino)も標準では動作していない模様。
  • よってバッテリの持ちがあまりよろしくなさそう。

全体的に使いやすいんですけど、それにしては動作重たくないですか? という感じです。同じマシンではないので単純比較できませんが、Ubuntuとかの方が軽かった印象かあります。KDEの動作が重たいというよりはもっぱらYaST2のパッケージ管理の動作が遅いような気もしますが。

*2 : 他のインストーラーは普通ミラーサーバとか選べるんですけどね……

*3 : 300MBとかメモリを食い、swapが発生しているせいもありますが。

NetworkManager + Intel PRO/Wireless 3945ABG の罠

ifup などに代わって今時になっている NetworkManager ですが、公式とかみるとぜんぜんメンテされてないみたいです。[ga:uint32 int32 networkmanager:謎のエラーメッセージ]が大昔に指摘されているのに修正されてませんし。

「NetworkManager + PRO/Wireless 3945ABG(ipw3945)」でSSIDブロードキャスト(ネットワークの一覧にSSIDが表示されない)しない無線LANルータにつなぐとき、接続に失敗するというバグがありまして、バグと知らずずっと格闘、無駄に疲れました。

2007/05/25(金)FreeBSDはなぜ標準で APOP に対応していない?

FreeBSDでは比較的標準的に利用される pop デーモンである popa3d は、なぜか apop をサポートしていません。不思議に思ってつらつらと man を読んでいたら、次のように書かれていました。

POP3 transmits passwords in plaintext and thus, if you care about the security of your individual user accounts, should only be used either in trusted networks or tunneled over encrypted channels.

There exist extensions to the protocol that are supposed to fix this problem. popa3d does not support them yet, partly because this isn't going to fully fix the problem. In fact, APOP and the weaker defined SASL mechanisms such as CRAM-MD5 may potentially be even less secure than transmission of plaintext passwords because of the requirement that plaintext equivalents be stored on the server.

英語の練習がてら意訳してみますと、

POP3 はパスワードを平文で送ります。あなたのアカウントのセキュリティーが心配でならば、信頼されたネットワークか暗号化された通信経路を用いてください。

この問題を解決するためのプロトコルの拡張(注:APOP等のこと)が存在しますが、popa3d はサポートしていません。なぜなら、この拡張は問題を部分的に解決しますが完全な解決にはならないからです。実際、APOP や脆弱性のある SASL では CRAM-MD5 のような方式が使われおり、サーバに直接平文パスワードを記述する必要があるため、場合によっては平文パスワード認証よりもセキュリティーが劣ってしまいます。

つまりは、いくら通信路の安全を守るためとは言っても、サーバ上に大量のユーザーの平文パスワードを記述することはセキュリティ上問題ありませんかということですね。

調べてみると、apop自体に問題があるらしいですが。

結局popもftpもダメで、ssh(ssl) でトンネルしたもの以外は現状信用できないということになるんでしょうねぇ……。PAM の元に SMTP も POP も安全な形で統一してほしいのココロ。*1

*1 : ftpはsftpで問題なし

2007/05/08(火)fml + mhonarc による公開メーリングリストの構築

某所においてもともとfml4を使っていたのですが、www公開(html化)の際のデータが中途半端だったためfml8に移行しました。そこそこ綺麗に表示されたのですが、単一表示の状態から現在スレッドを辿ってメール表示することができないため、mhonarc に入れ替えました。その作業記録です。

MHonARC

MHonARCはメールをhtml化するプログラムです。ダウンロードはこの辺。FreeBSDのportsならば www/mhonarc にあります。fml のメールデータをhtml化する場合は例えば次のように行います。

mhonarc -add /var/spool/ml/xxx/spool -outdir /www/xxx

メールをhtml化した際のデータは DB ファイルに保管されていますので、すべて再生成したいときは次のようにします。

$ rm -f /www/xxx/*.html /www/xxx/.mhonarc.db

rcfile

MHonARCの設定ファイルをrcfileと言います。mhonarc は実行時に引数としてパラメーターを渡す方法とrcfileに書く方法、環境変数の3種類で動作指定ができます。ここでは rcfile を利用することにしました。

UTF8を使用することにしますので、サンプルである examples/utf-8.mrc をコピーします。公開アーカイブを置く /www/xxx にコピーしてしまいましょう。MHonArc Reference Manual から rcfileの設定項目 を参照して設定を書き換えます。

設定ポリシーとしては

  • メールアドレスは秘匿する(SPAM対策)
  • 余計なヘッダを出力しない

です。

<NoPrintXComments>
<SpamMode>
<IDXSIZE>
100
</IDXSIZE>
<MultiPG>
<NoMailTo>
<Reverse>
<Modtime>
<EXCS>
To
Subject
List-
Reply-to
In-reply-to
References
Domainkey-signature
Dkim-signature
</EXCS>
<LiTemplate>
<li><strong>$SUBJECT$</strong>, <em>$FROMNAME$</em></li>
</LiTemplate>

の設定項目を追加しました。

  • NoPrintXComments …… X-XXXX という形式でヘッダを出力する機能をオフにする
  • SpamMode …… Spam対策用のメールアドレス秘匿機能を on にする
  • IDXSIZE …… 100件ごとに index ファイルを分ける
  • NoMailTo …… MailTo をリンクしない
  • Reverse …… 逆順でソートする(新しいメールをページ先頭に)
  • EXCS …… 出力しないヘッダを指定する(先頭一致)
  • LiTemplate …… メール一覧ページで、1メール=1行で表示するための設定

mhonarc の自動更新設定

aliases ファイルを用いて mhonarc を自動的に更新します。

/var/spool/ml/xxx/mhonarc.include
"| /var/spool/ml/xxx/mhonarc.sh"
/var/spool/ml/xxx/mhonarc.sh
#!/bin/sh
/usr/local/bin/mhonarc \
        -rcfile /www/xxx/utf-8.mrc \
        -outdir /www/xxx \
        -add /var/spool/ml/xxx/spool

というファイルをまず用意します。sh ファイルには実行権限を付けておきましょう。

メーラーの aliases に次の1行を追加します(メーラーにより場所が変わります)。

mhonarc-xxx: :include:/var/spool/ml/xxx/mhonarc.include

sendmail ならば newaliases コマンドが必要でしょう。aliases ファイルから直接コマンドを実行しないのは、include ファイルを一度経由させることで、includeしたファイルの所有者権限でコマンドを実行できるからです。

ここまでの設定で、mhonarc-xxx@domain.nameにメールが届くたびにメーリングリストの公開wwwが更新されます。ですから、メーリングリストの受信者として mhonarc-xxx@domain.name を登録すれば設定完了です。

fmlならば /var/spool/ml/xxx/actives が受信者のリストですので、次のようにしましょう。

$ makefml add2actives ml-name mhonarc-xxx@domain.name

fml8メモ(無関係)

fml8の設定メモです。特に関係はありません。

article_subject_tag     = [$ml_name %05d]
article_header_rewrite_rules += rewrite_article_subject_tag
article_header_rewrite_rules += rewrite_reply_to_enforce_article_post_address

use_html_archive = no
html_archive_dir        = /xxxx/$ml_name/