2007年4月 6日 (金)

メーリングリストの引っ越し

またもや引っ越しするような予定になってしまいました。そして今回は落ち着くまでかなり時間がかかりそうです。

自宅でホストしているプライベートメールのドメインがしばらく利用不可能なのは問題ないのですが、メーリングリスト(以下 ML)のドメインが使えなくなるのは問題アリです。利用者の皆さんと SLA を取り交わしているわけではないので、そんなに深刻になる必要もないのですが、迷惑をおかけするのはいたたまれません……というわけで、友人宅のメールサーバーにドメインごと引っ越しすることにしました。

自宅サーバーでは fml を使っており、移行は以下のような手順ですすめました。

(1) 引っ越し先に fml をセットアップ
専用の UID と GID を用意してもらって、そのアカウント用に fml をセットアップしてもらいます。

(2) 引っ越し先に ML を作成
こちらと同じメーリングリストを作ってもらいます。サブジェクトのスタイルとか一部の設定も、現在のものにあわせておきます。もちろん、メールサーバーの設定も変更して、ML 宛のメールが正しく fml に処理されるように設定する必要があります。メールドメインの追加もお忘れなく。

(3) 各 ML をアーカイブ
データ以降のために、各 ML の seq, actives, members, spool をアーカイブします。もちろんこの作業を実施中に ML 宛のメールが来ると面倒なので、サービス停止の告知は予め済ましておく必要があります。

(4) アーカイブを引っ越し先で展開
ファイルおよびディレクトリの owner は (1) で用意したものに変更することを忘れないよーに。

(5) MX の書き換え
DNS レコードを書き変えて引っ越し先のメールサーバーを参照するように設定します。最近は TTL を低めに設定していることもあって、この変更が世界中に伝播するのにそれほど時間はかからないはずなのですが、年のため、古いメールサーバー側の設定を変更して ML 宛のメールが届いたら引っ越し先に転送するようにしておきます。

おっと重要な前提をひとつ書き忘れていました。ドメインのネームサーバーもどこかに引っ越ししておく必要があります。こちらはレジストラが提供している無料サービスを使いました。比較的自由にレコードを設定できるだけでなく、セカンダリのネームサーバーとかも自動的に用意してくれるので手間いらずです。初めて自宅サーバーを構築した時のことを考えると、なかなか便利な世の中になりましたネ、ほんと。

| | コメント (0) | トラックバック (0)

2007年1月31日 (水)

Anti-Anti-Spam (2)

sumikawa 先生にお手伝いいただいて、SMTP HELO の修正結果が問題ないかテストしました。まずは「〇」という結果。逆引きのホスト名がちょっと SPAMmer らしく見えてしまうという課題に関しては、ISP が提供しているオプションサービスで対応できそうです。

いろいろお世話になりました(ぺこり)>sumikawa 先生

| | コメント (0) | トラックバック (0)

2007年1月13日 (土)

Anti-Anti-Spam (1)

って、別に SPAM を撒き散らしているわけではありません。

最近、とある有名ドメイン宛のメールが届かないことに気付きました。MTA が SMTP で接続した時に接続が切られているようです。どうも SPAM 対策に引っかかっている疑いが濃厚。

安全性の観点からここで詳しく書くことは控えておきますが、いろいろとリサーチして最終的には解決できました。しかし、もう少し保守的な SPAM 対策にしていただけないですかね、マッタク……というのが今回の感想。

Sender ID とかの設定が必要なのだろうか……と、ついでに調べた時に見つけたリソースをメモとして残しておきます。

せちがらい世の中ですのう。

| | コメント (2) | トラックバック (0)

2006年11月 4日 (土)

グローバル IP 再割り当て

大阪から東京に引越し、ということで、おうちサーバーも移転です。

私は FLET'S ADSL ユーザーです。でもってプロバイダは、固定のグローバル IP を割り当ててもらえる INTERLINKZOOT 接続サービスを利用しています。県をまたぐ移動ではサービスの再契約が必要とのことなので手続き後、以下の作業を実施しました。

  • ネームサーバーに登録している IP アドレスを書き換え
  • ドメインのネームサーバーの IP アドレス変更を申請
  • セカンダリのネームサーバーに登録しているプライマリサーバーの IP アドレスを変更

最後のやつは知り合いのネームサーバーにお願いしているのでつつい忘れがち。注意しませんと……

| | コメント (0) | トラックバック (0)

2006年7月 2日 (日)

メールの振り分け

かなり久々ですが、メールの振り分け処理の話など。

メール端末がひとつ増えました。メールの管理は IMAP4 サーバーで行っているので、端末がひとつふたつ増えてもそれほど読み書き自体はあんまり問題ありません。ただ、メッセージの振り分けルールはメイン端末の MUA で定義しているので、しばらくメイン端末にアクセスできない期間があると INBOX が大変なことになってしまいます。

そこで今回、サーバー側のメール振り分け機能を利用することにしました。自宅の IMAP4 サーバーに採用している cyrus-imapd では、RFC3028 で定義されているメッセージ振り分け言語であるところの SIEVE が実装されています。スクリプトを登録しておけばメール受信とともに振り分けをサーバー側で実行してくれます。

SIEVE のスクリプトはテキストエディタで作成して、sieveshell というツールでサーバーにアップロードします。

# sieveshell -a=ユーザー名 localhost
localhost connecting to localhost
Please enter your password: パスワード
> put スクリプト名
> activate スクリプト名
> quit

と、こんなカンジで put した後、activate すれば OK です。

サンプルスクリプトは面倒なのでここには載せませんが、RFC とか参照されてみてください。

| | コメント (0) | トラックバック (0)

2005年12月31日 (土)

システムのバックアップ

実はメールサーバーの移行はもう完了してしまっているのですが、作業量がなかなか多かったせいもあって、こちらに反映できていません。いずれ、時間を見てまとめていきたいと思っています。。

という前に、そろそろバックアップを真面目に考えておく必要があります。日々の差分をどうバックアップしていくか運用を考える必要があるのですが、まずは現在の静止イメージを取得しておく必要があります。まずはメンテナンスモードに入りましょう。

# init 1

で、おもむろに dump コマンドを使ってみます。

# dump -0 -f - /dev/hda1 | gzip > /mnt/backup/hda1.dump.gz

dump コマンドで /dev/hda1 の内容をダンプし、それを gzip で固めて /mnt/backup 下のファイルに出力しています。もちろんこのディレクトリにマウントされているファイルシステムは、/dev/hda1 以外のものです。USB の外付けディスクとかネットワーク上のファイルシステムとかでも問題ないです。

| | コメント (0) | トラックバック (0)

2005年12月19日 (月)

CA の作成

openssl を使って独自の証明書認証局 (CA) を作ってみます。

(1) CA 自己署名証明書の作成

まずは CA の秘密鍵を生成します。

  openssl genrsa -rand /var/log/messages -out ca.key 1024

この秘密鍵に対して証明書署名要求 (CSR) を作成します。

  openssl req -new -key ca.key -out ca.csr

DN を作成するための情報を入力するよう促されるので、適切な値を入力してください。

CSR に基づいて自己署名し、証明書を作成します。ここでは有効期限を 10 年(=365日)と指定しました。

  openssl x509 -req -days 3650 -in ca.csr -signkey ca.key \
    -out ca.crt

(2) 証明書の作成

作成した CA の証明書に基づいてサーバーの証明書を作成してみます。まずはサーバー証明書用の秘密鍵を作成します。

  openssl genrsa -rand /var/log/messages -out server.key 1024

この秘密鍵に基づいて CSR を作成します。

  openssl req -new -key server.key -out server.csr

CSR の情報に基づき、CA の秘密鍵を用いて署名し、証明書を発行しましょう。

  echo 01 > ca.srl
  openssl x509 -req -days 1095 -CA ../certs/ca.crt \
    -CAkey ./ca.key -in server.csr -out server.crt

ここでは有効期限を 3 年(=1095日)としています。

| | コメント (0) | トラックバック (0)

2005年12月18日 (日)

OpenLDAP を使おう (4)

そういえば長らく書こうと思って書けていなかった OpenLDAP のアカウント登録を簡単にまとめておきます。

(1) rootdn および rootpw の編集

まず、ディレクトリに管理者ユーザーを登録しましょう。そこで管理者ユーザーを登録するための仮の管理者ユーザーを設定してディレクトリに接続できるようにします。 /etc/ldap/slapd.conf に以下の行を追加してください。

    rootdn "管理者のDN"
    rootpw 管理者のパスワード

仮のものなのでパスワードの部分には平文のパスワードをそのまま書いてもいいですが、本来は slappasswd コマンドを使って作成した文字列を指定すべきでしょう。

    slappasswd
    New password:
← パスワードを入力
    Re-enter new password:
← 確認のためもう一度入力

設定できたら、openldap を再起動しておきましょう。

    /etc/init.d/slapd restart

(2) 管理者エントリーの作成

まず、登録するエントリーの情報を以下のように LDIF 形式のテキストファイルで作成します。

    dn: 作成する管理者のDN
    cn: 作成する管理者のDNのCNの部分
    description: コメント
    objectClass: organizationalRole
    objectClass: simpleSecurityObject
    userPassword: パスワード

パスハードに指定する文字列については先ほどのように slappasswd を用いて作成してください。ひととおり編集が終わったら、このファイルを ldapadd コマンドを用いてディレクトリに登録します。

    ldapadd -x -h localhost -D '仮の管理者のDN' -W < 作成したファイルのパス
    Enter LDAP Password:
← 仮の管理者のパスワードを入力
    adding new entry "登録されたDN"

管理者の作成が完了したら、/etc/ldap/slapd.conf から rootdn および rootpw の行をコメントアウトして、新たに設定した管理者で接続できるかどうか確認しておきましょう。

(3) POSIX アカウントの登録例

それではログインユーザーとして用いることのできる POSIX アカウントを登録してみましょう。登録情報を LDIF 形式のテキストファイルで作成して登録する手順は先ほどと同じです。

    uid: ユーザーID
    cn: ユーザー名
    uidNumber: ユーザーID番号
    gidNumber: グループID番号
    objectClass: shadowAccount 
    objectClass: posixAccount
    shadowMin: パスワードが変更可能になるまでの日数
    shadowMax: パスワードの変更を要求するまでの日数
    shadowWarning: パスワードを無効にするまでの警告日数
    shadowLastChange: パスワードの変更日付(1970/1/1よりの日数)
    loginShell: ログインシェル
    homeDirectory: ホームディレクトリ
    gecos: GECOSフィールド
    userPassword: ユーザーパスワード

ユーザーパスワードは先ほどと同じように slappasswd で作成してください。その他のフィールドの詳細は /etc/shadow や /etc/passwd に対応しています。作成した LDIF のファイルを ldapadd で登録するとこも先ほどと同じですが、接続に使う管理者の DN およびパスワードは先ほど作成した管理者のものを用いる必要があるので注意してください。

(4) POSIX グループの登録

グループも同様に登録できます。

    dn: グループのDN
    cn: グループ名
    userPassword: グループパスワード
    gidNumber: グループID番号
    memberUid: グループメンバーのユーザー名
    objectClass: posixGroup

| | コメント (0) | トラックバック (0)

2005年12月17日 (土)

メールサーバー移行計画 (2)

かなり間が空いてしまいましたが、今日は久々にメールサーバー移行の話です。

最近どうもメールサーバーの調子が悪い……というわけで、本腰を入れる必要がでてきたわけです。そんな私の今日の参考書は以下のとおり。

あれ、前と参考書が違うような。。という指摘は不要です。気づいてもいわないように(汗)Exim4 は仕組みがシンプルなので、マッチングルールを書けばいろいろな振り分けとかもストレートに設定できるのですが、いかんせんちょいとテストが面倒そう。対して Postfix は参考書を読んでわかったのですが、こちらはルールを記述するというよりパラメータの値を設定する、という感じでだいたいやりたいことが実現できそうなのです。

今日はとりあえずインストールだけしときましょう。まずは不要になる Exim4 をアンインストールしておきます。 Exim4 に関連する 4 個のパッケージがインストールされていますが、アンインストールは exim4-config を指定するだけで OK です。依存する残りのパッケージは自動的にアンインストールされます。

  apt-get remove --purge exim4-config

Postfix をインストールすると構成をどうするか聞いてきますが、とりあえずリターンキーを連打してデフォルトを受け入れておきましょう。設定ファイルは後で真面目に編集する予定です。

  apt-get install postfix

やはり debian は楽チンでよろしい。。次回から設定です。

| | コメント (0) | トラックバック (0)

2005年11月20日 (日)

BIND の移行:おまけ

移行のついでに BIND の設定を少しブラッシュアップ(というほど大層なことはでなはいです、はい)。割とよく知られている話として、BIND9 で逆引きできない場合、"lame server resolving ...." というエラーメッセージがログに残ります。

莫大な SPAM メールを送りつけられる昨今、「逆引きして名前がわかんないよぉ」、みたいなエラーをまじめに記録しているとログの意味がありません。これを前々からログから取り除こうと思っていたのです。

やり方は簡単で named.conf.local の中で以下ような記述を追加して、ログのカテゴリーの一部を記録しないように指定するだけです。

  logging {
          category lame-servers { null; };
  };

| | コメント (0) | トラックバック (0)

«BIND9 の移行