Menu
はじめに
ネットワーク準備
インストール準備
インストール
 ・HDD1個
 ・RAID1
 ・アップデート
Linux基本操作
サーバー設定
 ・ネットワーク
 ・sshサーバー
 ・DNSサーバー
  ・ダイナミックDNS
 ・Webサーバー
 ・mailサーバー
  ・内部のみ許可
  ・POPbeforeSMTP
 ・ftpサーバー
 ・ntpサーバー
 ・ディスク容量制限
 ・アクセス解析
 ・webメール
 ・全文検索設置
 ・メーリングリスト
拡張・変更
 ・ディスクを交換
 ・RAID1に変更
 ・マシン入替え
 ・postfixにする
 ・kernelをソースから
 ・ドメイン名
   サーバー名
   IPアドレス変更
CGI
 ・カウンタ設置
セキュリティーアップ
格安でドメイン登録
日々のメモ
便利なコマンド

サイト内検索
www.kaji3.com


本日
昨日
---------
メーリングリストを運用する
メーリングリストとは簡単に言うとひとつのアドレスに送ると登録されたメンバー全員にメールが送られる仕組みのものです。ある仲間同士でメールのやり取りを行う時に宛先やCC:での抜けを気にしなくてもいいので利用価値は個人でもあります。ただ、トラフィックが多いメーリングリストを運用する場合にはサーバーの性能やADSLの帯域も考慮する必要も出てくるので注意が必要です。ここでは日本製のメーリングリストサーバーFMLをRHL9.0にインストールする方法を紹介します。Fedora Core 1でも確認はしてませんが同じように動かせると思います。
FMLをインストールする
SMTP/POP3は以下のものを利用しての設定です。どれもfmlに影響を与えるようなものではないの、基本的にはpostfix2.0のソースからインストールした場合には同じように出来ると思います。rpmで入るpostfix1の場合にどうなるかは確認してません。

 postfix-2.0.16 antivir-mailgate-2.0.1.16 qpopper4.0.5 DRAC1.12 

○前準備
postfixの変更

/etc/postfix/main.cf に以下の2行を最後に追加
# FML uses :include:
allow_mail_to_commands = alias,forward,include

fmlのユーザーとインストールディレクトリ作成

# groupadd fml
# useradd -g fml fml

# mkdir /usr/local/fml /var/spool/ml
# chown fml:fml /usr/local/fml /var/spool/ml

○fmlのインストール
fmlのインストールや設定は一般ユーザーfmlで行います。パスワードのないfmlになるためにはsu - fmlで変身します。今回のインストールは個人管理とします。ML管理者を複数で行いたい場合にはマニュアルページの運用ポリシーを参照して下さい。

# su - fml

$ wget ftp://ftp.fml.org/pub/fml/stable/fml-4.0-stable-20031217.tar.gz
$ tar -xvzf fml-4.0-stable-20031217.tar.gz
$ cd fml-4.0-stable-20031217
$ perl makefml install
Personal Use or ML-Admin-Group-Shared or fmlserv you use?
Personal, Group, Fmlserv (personal/group/fmlserv) [personal] (enter)
DOMAIN NAME [kaji3.com] (enter)
FQDN [blue.kaji3.com] mail.kaji3.com
EXEC FILES DIRECTORY [/usr/local/fml] (enter)
TOP LEVEL ML DIRECTORY [/var/spool/ml] (enter)
Language (Japanese or English) [English] Japanese
TimeZone (TZ: e.g. +0900, -0300) [+0900] (enter)

○メーリングリストの作成
動作確認用のテストという名のMLを作ってみる。実際の運用に使うMLを作成する方法も同じです。

$ /usr/local/fml/makefml newml check-fml

aliasesにMLの転送情報を追加する

$ exit

# pico /etc/aliases
最後に以下の/var/spool/ml/check-fml/aliasesの内容を付け足す
  # ML check-fml setting
  test: :include:/var/spool/ml/check-fml/include
  test-ctl: :include:/var/spool/ml/check-fml/include-ctl
  test-request: check-fml-admin
  check-fml-admin: fml
  owner-check-fml: fml
  owner-check-fml-ctl: fml
# newaliases

ls -l /etc/aliasesでオーナーを確認してrootでないなら
# chown root:root /etc/aliases.db 
(これを見つけるのに2日かかってしまった 苦笑 なんとsmmspでとなっていたので動かなかった)

# /etc/init.d/postfix restart

MLの設定をする

# su - fml
$ /usr/local/fml/makefml config check-fml
   ここでは基本的に変更することはないので内容を確認して終了します。

ユーザーの追加

$ /usr/local/fml/makefml adduser check-fml admin@kaji3.com
$ /usr/local/fml/makefml adduser check-fml hogehoge@hoge.com

動作の確認
ここでWindowsなどのメーラーから登録したアカウントでcheck-fml@kaji3.comに送信して、登録者全員に同じメールは配布されれば正常に動作しているます。 あとはヘッダー関係の設定をすればまともなMLです。

デバッグ編・・・ 今回はかなりはまりました 苦笑
ここでWindowsからcheck-fml@kaji3.comに送信してみるも・・・・
残念ながら何も配信されない。AntiVirとかDRACとかも動いているからなのかなぁ・・・ などと考えたりしながらデバッグ開始したのでした。

ログ確認
postfix/smtpd[13014]: connect from mail.hoge.com[192.168.244.249]
postfix/smtpd[13014]: D55816A117: client=mail.hoge.com[192.168.244.249]
postfix/smtpd[13014]: warning: the "check_relay_domains" restriction is going away; use "reject_unauth_destination" instead
postfix/cleanup[13015]: D55816A117: message-id=<20040130173910.48249.qmail@mail.hoge.com>
postfix/qmgr[12868]: D55816A117: from=<hogehoge@hoge.com>, size=602, nrcpt=1 (queue active)
postfix/smtpd[13014]: disconnect from mail.hoge.com[192.168.244.249]
postfix/smtp[13016]: D55816A117: to=<check-fml@kaji3.com>, relay=127.0.0.1[127.0.0.1], delay=1, status=sent (250 Mail accepted for delivery (queued as 13017-2BA902DA).)
avgated[13017]: connection from blue
avgated[13017]: spooled to 13017-2BA902DA
avgated[13017]: connection to blue closed
avgatefwd[13018]: Message 'incoming/xf-13017-2BA902DA' scheduled for scanning now.
avgatefwd[13018]: Virus Scanner will process message 'incoming/qf-13017-2BA902DA'.
avgatefwd[13021]: Message 'outgoing/xf-13017-2BA902DA' scheduled for delivery now.
postfix/smtpd[13022]: connect from blue[127.0.0.1]
postfix/smtpd[13022]: 55D156A117: client=blue[127.0.0.1]
postfix/cleanup[13015]: 55D156A117: message-id=<20040130173910.48249.qmail@mail.hoge.com>
postfix/qmgr[12868]: 55D156A117: from=<hogehoge@hoge.com>, size=1009, nrcpt=1 (queue active)
postfix/smtpd[13022]: disconnect from blue[127.0.0.1]
avgatefwd[13021]: Message 'outgoing/qf-13017-2BA902DA' successfully forwarded.
postfix/local[13023]: 55D156A117: to=<check-fml@kaji3.com>, relay=local, delay=2, status=sent ("|/usr/local/fml/fml.pl /var/spool/ml/test ")

いちおうはspoolに書き込まれているっぽい。でもそこには何もファイルなし・・・ /var/spool/ml/check-fml/logにも何も記載されてない!

http://www.kobitosan.net/postfix/ML/arc.4/msg00283.htmlを参考に
ダミーを作成して試してみる。
To: check-fml@kaji3.com
Subject: hoge
From: admin@kaji3.com
Message-Id: <20040130190209.test@kaji3.com>
Date: Sat, 31 Jan 2004 04:02:09 +0900 (JST)

this is test mail

# /usr/local/fml/fml.pl /var/spool/ml/check-fml < /tmp/mail.dat

FYI: include's owner != config.ph's owner, O.K.?

あれれ? 何も配信されない・・・

おっと、rootで作業していた。
# exit
mail.datのMessage-Idを変えて
$ /usr/local/fml/fml.pl /var/spool/ml/check-fml < /tmp/mail.dat
Append2(20040130190209.test@kaji3.com # pid=14441 var/run/msgidcache)::Error cal
ler=<main /usr/local/fml/fml.pl 2864>
やはりダメだ・・・

/var/spool/ml/check-fml/logは
04/01/31 04:11:17 cannot mkdir var/log: 許可がありません (not.found)
04/01/31 04:11:17 cannot mkdir var/run: 許可がありません (not.found)
04/01/31 04:11:17 cannot mkdir var/db: 許可がありません (not.found)

/var/spool/ml/check-fml以下を確認
-rw-r--r-- 1 fml fml 2264 Jan 31 20:34 Makefile
-rw------- 1 fml fml 61 Jan 31 20:45 actives
-rw-r--r-- 1 fml fml 369 Jan 31 20:34 aliases
-rw-rw-r-- 1 fml fml 2460 Jan 31 20:44 cf
-rw-rw-r-- 1 fml fml 2460 Jan 31 20:44 cf.bak
-rw-rw-r-- 1 fml fml 50448 Jan 31 20:44 config.ph
-rw-rw-r-- 1 fml fml 50448 Jan 31 20:44 config.ph.bak
-rw------- 1 fml fml 1587 Jan 31 20:34 confirm
-rw------- 1 fml fml 379 Jan 31 20:34 crontab
-rw------- 1 fml fml 241 Jan 31 20:34 deny
-rw------- 1 fml fml 1218 Jan 31 20:34 fmlwrapper.c
-rw------- 1 fml fml 43 Jan 31 20:34 fmlwrapper.h
-rw------- 1 fml fml 576 Jan 31 20:34 guide
-rw------- 1 fml fml 18947 Jan 31 20:34 help
-rw------- 1 fml fml 5941 Jan 31 20:34 help-admin
-rw-r--r-- 1 fml fml 177 Jan 31 20:34 include
-rw-r--r-- 1 fml fml 389 Jan 31 20:34 include-ctl
-rw-r--r-- 1 fml fml 317 Jan 31 20:34 include-mead
-rw------- 1 fml fml 1776 Jan 31 21:05 log
-rw------- 1 fml fml 61 Jan 31 20:45 members
-rw------- 1 fml fml 152 Jan 31 20:34 objective
-rw------- 1 root fml 2 Jan 31 20:59 seq
drwx--S--- 2 fml fml 4096 Jan 31 20:59 spool
-rw------- 1 root fml 43 Jan 31 20:59 summary
drwx--S--- 2 root fml 4096 Jan 31 20:59 tmp
drwx--S--- 5 root fml 4096 Jan 31 20:59 var
-rw------- 1 fml fml 984 Jan 31 20:34 welcome

rootになっている・・・ もしかするとこれは最初にrootのままやってしまったから?
(二度目のインストールで確認したらちゃんとfmlで出来てたのでrootで試したのが原因)
# chown fml -R seq summary tmp var

mail.datのMessage-Idを変えて
$ /usr/local/fml/fml.pl /var/spool/ml/check-fml < /tmp/mail.dat
今回はエラーなしで配信された。

もう一度Windowsから送信してみるが配信されず。
Jan 31 21:49:11 blue postfix/smtpd[23191]: lookup table has changed -- exiting
Jan 31 21:49:11 blue postfix/smtpd[23205]: connect from sparrow.local.kaji3.com[192.168.0.30]
Jan 31 21:49:12 blue postfix/smtpd[23205]: 069666A32D: client=sparrow.local.kaji3.com[192.168.0.30]
Jan 31 21:49:12 blue postfix/cleanup[23172]: 069666A32D: message-id=<005601c3e7f8$b6ed3350$1e00a8c0@local.kaji3.com>
Jan 31 21:49:12 blue postfix/smtpd[23205]: disconnect from sparrow.local.kaji3.com[192.168.0.30]
Jan 31 21:49:12 blue postfix/qmgr[22535]: 069666A32D: from=<admin@kaji3.com>, size=652, nrcpt=1 (queue active)
Jan 31 21:49:12 blue avgated[23207]: connection from blue
Jan 31 21:49:12 blue avgated[23207]: spooled to 23207-5CBA3541
Jan 31 21:49:12 blue avgatefwd[23208]: Message 'incoming/xf-23207-5CBA3541' scheduled for scanning now.
Jan 31 21:49:12 blue avgatefwd[23208]: Virus Scanner will process message 'incoming/qf-23207-5CBA3541'.
Jan 31 21:49:12 blue postfix/smtp[23206]: 069666A32D: to=<check-fml@kaji3.com>, relay=127.0.0.1[127.0.0.1], delay=0, status=sent (250 Mail accepted for delivery (queued as 23207-5CBA3541).)
Jan 31 21:49:12 blue avgated[23207]: connection to blue closed
Jan 31 21:49:12 blue avgatefwd[23212]: Message 'outgoing/xf-23207-5CBA3541' scheduled for delivery now.
Jan 31 21:49:12 blue postfix/smtpd[23196]: lookup table has changed -- exiting
Jan 31 21:49:12 blue postfix/smtpd[23213]: connect from blue[127.0.0.1]
Jan 31 21:49:12 blue postfix/smtpd[23213]: 76AE66A396: client=blue[127.0.0.1]
Jan 31 21:49:12 blue postfix/cleanup[23172]: 76AE66A396: message-id=<005601c3e7f8$b6ed3350$1e00a8c0@local.kaji3.com>
Jan 31 21:49:12 blue postfix/qmgr[22535]: 76AE66A396: from=<admin@kaji3.com>, size=1062, nrcpt=1 (queue active)
Jan 31 21:49:12 blue postfix/smtpd[23213]: disconnect from blue[127.0.0.1]
Jan 31 21:49:12 blue avgatefwd[23212]: Message 'outgoing/qf-23207-5CBA3541' successfully forwarded.
Jan 31 21:49:14 blue postfix/local[23214]: 76AE66A396: to=<check-fml@kaji3.com>, relay=local, delay=2, status=sent ("|/usr/local/fml/fml.pl /var/spool/ml/check-fml ")
さっきとまったく同じ。
/var/spool/ml/check-fml/logは何も書かれていない。
もちろん/var/spool/ml/check-fml/var/logにも何も新しいものは追加されていない・・・
やはりfml.plを起動しているオーナーに問題ありそう・・・ まずはすべてをrootに変えてみて

chown root:root -R /var/spool/ml /usr/local/fml
変わらず。ならばパーミッション777で誰が書くか確認するのが良さそう。

chmod 777 -R /var/spool/ml /usr/local/fml
送信すると<check-fml@kaji3.com>: world writable include file: /var/spool/ml/check-fml/include
と怒られるので、ここだけ
chmod 644 /var/spool/ml/check-fml/include
配信出来た。

なんと/var/spool/ml/check-fml/var/logを見ると
-rw------- 2 smmsp smmsp 2781 Jan 31 22:43 _smtplog
smmsp?? 誰だいそいつは?
そういえば/etc/aliases.dbがこいつだったような記憶が浮かんでくるのでチェック。
-rw-r----- 1 smmsp smmsp 12288 Jan 31 20:48 aliases.db
やはり、こいつだ。ではと chown root:root aliases.dbにしてみるけどそのまま動いている。

さらにfml関係のオーナーをchown fml:fml -R /var/spool/ml /usr/local/fml で戻してこれもOK。

chmodを完全に戻すのはちょっと辛い・・・
では再インストール > 正常に動作!!
なかなか時間取られてしまいました・・・・ 実際にはもっとはまっているのでこんなに簡単にはいかなかったですからね。

Copyright (C) 2003-2004 Kaji3.com. All Rights Reserved.