2011-11-30

SMTP 認証を LDAP + PAM 環境で使用

CentOS 5, 6 などにおいて SMTP にて認証を行うためには, saslauthd を使用する. しかし, 認証情報を LDAP から取得するようにしている場合には, 単に saslauthd の設定を行うだけではうまくいかない. 以下のような警告とともに認証に失敗する.
postfix/smtpd[24325]: warning: SASL authentication failure: Password verification failed
postfix/smtpd[24325]: warning: example.com[192.168.0.2]: SASL PLAIN authentication failed: authentication failure

saslauthd が pam に認証情報を問い合わせるとき, /etc/pam.d/smtp の設定に基づいて pam が認証情報を返す. 一方で, smtppassword-auth を見るような設定となっているので, LDAP にて認証を行うことができない.

解決方法は, pam がシステムの認証方法に従うようにすることである. include password-auth とかかれている部分を include system-auth と書き換えると LDAP にて認証できるようになる.

2011-11-24

HT-03A に CyanogenMod をインストール

HT-03A に CyanogenMod 6.1 を導入してみた. 既に root を取得しているものとして, 操作方法のメモ.

CyanogenMod 6.1 の特徴

  • WiFi tether ができる.
  • Android 2.1

操作方法

  • 必要なファイルを SDカードに保存しておく;
    • recovery-RA-sapphire-v1.7.0G.img
    • update-cm-6.1.0-DS-signed.zip (ここから HTC Dream/Magic 用のファイルを選択してダウンロード)
    • gapps-mdpi-tiny-20101020-signed.zip (gmail や連絡先など, Google の提供するサービスがいらなければ, このファイルはいらない.)
    SDカードに保存してから, md5sum を確認しておく方がよい.
  • 起動イメージを書き換え. (recovery-RA-sapphire-v1.7.0G.img はどこかからダウンロードして, SDカードに保存しておく.)
    # flash_image recovery /sdcard/recovery-RA-sapphire-v1.7.0G.img
  • シャットダウンし, ホームボタンを押しながら再起動する. 箱から端末を出している絵が出てきたら失敗. flash_image からやり直す. (flash_image を実行した後, 一度再起動すると, 元にもどってしまうようだ.)
  • バックアップを行う. (nandroid のバックアップを行っておくと良いようだ.)
  • wipe を選んで, SDカード以外のデータを削除する.
  • Flash zip from sdcard を選んで, update-cm-6.1.0-DS-signed.zipgapps-mdpi-tiny-20101020-signed.zip を順番に書き込む.
  • 再起動する
  • 気づいたこと

    FlashRec というアプリケーションを使用すると, シェルから flash_image を打たなくてもよい. しかし, アプリケーションが内部で flash_image を呼び出しているだけである.

    アクセスポイントの情報 (mpr2.bizho.net, 0120.mopera.ne.jp など) は残っていた.

    gapps-mdpi-tiny-20101020-signed.zip をインストールしない方が, 動作が軽い気がする. しかし, Market などを使用できないので不便. インストールするパッケージを選択したら良いかもしれない.

    デフォルトで swap がオンになっている. この辺の設定は見直した方がよいだろう.

    電池の消耗が早くなった. 設定でなんとかならないだろうか...

    参考

    2011-11-22

    DMI によるシステム情報の参照

    Linux からシステムの情報を参照するには, /sys/devices/virtual/dmi/id/ にあるファイルを読むとよい. 以下に, 参照できる情報の例を示す.
    bios_vendorBIOS のベンダ
    bios_versionBIOS のヴァージョン
    board_vendorマザーボードのベンダ
    board_nameマザーボードの型式 (リビジョン)
    board_versionマザーボードのヴァージョン (リビジョン)
    board_vendorマザーボードのベンダ

    CentOS 5 などの古いディストリビューションでは, dmidecode を使用する.

    2011-11-20

    フリーのバックアップメールサーバ

    メールサーバのバックアップのサービスが, フリーで提供されている: Free MX EMail Server Backup Service. スパムフィルタが有償で, 機能限定版であるバックアップメールサーバが無償という位置づけらしい.

    メールサーバが 1 台だけだと, 何らかの障害時にメールが失われてしまう. また, 送信者にメールサーバへの配送失敗の連絡が届き, 迷惑をかけてしまうこともあるだろう. 自宅サーバでメールサーバを運用している人だけでなく, レンタルサーバでメールサーバを運用している人にもおすすめしたい.

    サイトは英語だが, 登録の操作はさほど難しくない. というのも, MX レコードにバックアップサーバのホストを追加するだけである. MX レコードは, 優先順位とホストとを設定するが, メインのメールサーバの優先順位値を小さく (最優先) し, バックアップサーバの優先順位を大きく設定する. アナウンスのメーリングリストに入会することをすすめているが, 必須ではない.

    メールの送信側のサーバがバックアップサーバへ接続して RCPT TO を送った時点で, バックアップサーバが MX レコードをチェックする仕組みらしい.

    2011-11-19

    Dvipdfmx によるフォントの埋め込み (TeXLive 2011)

    Dvipdfmx (に限らず TeX) のフォント設定はなかなか情報がみつからない. SL 6 にインストールした TeXLive 2011 にて, 試行錯誤でとりあえずフォントが埋め込まれるように設定できた. メモを残しておく.

    True Type フォントの配置

    True Type フォントは, 適切なパスに配置しなければならないようだ. 以下のいずれかに配置する.
    • . (現在のディレクトリ).
    • $TEXINPUTS で指定したディレクトリの下の fonts/truetype およびそのサブディレクトリ.
    • インストールディレクトリの下の texmf*/fonts/truetype およびそのサブディレクトリ.
    • その他?
    kpsewhich を使用することで, パスがあっているか確認できる.

    True Type フォントから VF を作成

    以下のようなスクリプトを作ってみた.
    #! /bin/bash
    
    vpl=$(mktemp --suffix=.vpl)
    tfm=${1/.ttf/.tfm}
    
    ttf2tfm $1 -q -T T1-WGL4.enc -v $vpl $tfm &&
    vptovf $vpl $2 $tfm
    

    VF の配置

    True Type フォントの配置と同様だが, truetype ではなく vf の下に配置する.

    マップファイルの作成

    TeX でのフォントと実際に埋め込むフォントとの対応を記述する. 以下が例.
    rml H sazanami-mincho
    gbm H sazanami-gothic
    
    dvipdfm を使用するのであれば, ユーザーズガイドに書式がかかれている.

    Dvipdfmx の実行

    オプション -f でマップファイルを指定する. texmf/dvipdfmx/dvipdfmx.cfg というファイルがあるので, これを編集するとデフォルトを変えられるかもしれない.

    2011-11-08

    check package update

    Linux では RPM によりパッケージを管理することが多い. yum であれば yum update, apt であれば apt-get update; apt-get upgrade によって更新が可能である. しかし, 何が更新されるか分からないまま, パッケージ更新のコマンドを実行するのは不安である. ここでは, どのようなパッケージが更新されるのか, どのような更新があったのかを確認する方法を説明する.

    APT

    • レポジトリからパッケージ情報を取得する
      # apt-get update
    • どのパッケージが更新されるかを確認する.
      # apt-get -s upgrade
    • 問題なければ, 更新する.
      # apt-get upgrade

    YUM

    • レポジトリからパッケージ情報を取得し, どのパッケージが更新されるか確認する.
      # yum check-update
    • 問題なければ, 更新する.
      # yum -C update
      もし, プラグイン yum-plugin-changelog をインストールしていれば, 更新に関するコメントも確認できる.
      # yum -C --changelog update

    ベンダの情報

    通常, ベンダが更新情報を出している. RSS や メーリングリストで配信されているので, 購読することで更新情報を入手できる.

    参考

    2011-11-03

    RHEL 5, 6 の Openswan が更新されました.

    Openswan は Linux 上での IPsec 実装なのですが, Red Hat Enterprise Linux がアップデートを出しました. アップデートの対象は RHEL 5, 6 なので, CentOS5 だけでなく CentOS6, SL5, SL6 もアップデートを出すでしょう. 開放後のメモリを参照するバグが見つかったようです.

    リンク