メーリングリストサーバー構築(sendmail+Mailman)

最終更新日: 2009.12.29

<<トップページ <<新着情報 <<質問掲示板 <<アンケート <<リンク集 <<サイト内検索 <<管理人へメール <<Fedoraで自宅サーバー構築

■概要

FedoraApacheでも利用されているメーリングリストサーバーであるMailmanを使用してメーリングリストサーバーを構築する。

メールサーバーWebサーバーWebサーバー間通信内容暗号化が構築済であること


■Mailmanインストール

[root@linux ~]# groupadd mailman ← mailmanグループ追加

[root@linux ~]# useradd -c "GNU Mailman" -s /sbin/nologin -M -g mailman mailman ← mailmanユーザ追加

[root@linux ~]# mkdir /usr/local/mailman ← mailmanインストールディレクトリ作成

[root@linux ~]# chown mailman. /usr/local/mailman ← mailmanインストールディレクトリ所有者変更

[root@linux ~]# chmod a+rx,g+ws /usr/local/mailman ← mailmanインストールディレクトリパーミッション変更

[root@linux ~]# cd /tmp/ ← /tmpディレクトリへ移動

[root@linux tmp]# wget http://mm.tkikuchi.net/mailman.tar.gz ← mailmanダウンロード
--18:13:02--  http://mm.tkikuchi.net/mailman.tar.gz
           => `mailman.tar.gz'
mm.tkikuchi.net をDNSに問いあわせています... 133.97.166.52
mm.tkikuchi.net[133.97.166.52]:80 に接続しています... 接続しました。
HTTP による接続要求を送信しました、応答を待っています... 200 OK
長さ: 6,482,726 [application/x-tar]

100%[=================================================>] 6,482,726    599.94K/s    ETA 00:00

18:13:13 (591.55 KB/s) - `mailman.tar.gz' saved [6,482,726/6,482,726]

[root@linux tmp]# tar zxvf mailman.tar.gz ← mailman展開

[root@linux ~]# cd mailman-* ← mailman展開先ディレクトリへ移動

[root@linux mailman-2.1.6]# su mailman -s "/bin/bash" -c \
"./configure --with-cgi-gid=apache --with-mail-gid=mail" ← configure

[root@linux mailman-2.1.6]# su mailman -s "/bin/bash" -c "make" && make install ← インストール

[root@linux mailman-2.1.6]# cd /usr/local/mailman/ ← mailmanインストールディレクトリへ移動

※システムの文字コードがUTF-8の場合、Poderosaのエンコーディングをeuc-jpにする

[root@linux mailman]# ./bin/check_perms -f ← パーミッション補正スクリプト実行
・
・
・
/usr/local/mailman/messages/zh_TW: ディレクトリのパーミッションは 02775 でなければいけません (修正中)
Warning: Private archive directory is other-executable (o+x).
         This could allow other users on your system to read private archives.
         If you're on a shared multiuser system, you should consult the
         installation manual on how to fix this.
問題があります: 59
修正するには -f オプションをつけて mailman か root の権限で実行してください

[root@linux mailman]# ./bin/check_perms ← パーミッションの補正確認
Warning: Private archive directory is other-executable (o+x).
         This could allow other users on your system to read private archives.
         If you're on a shared multiuser system, you should consult the
         installation manual on how to fix this.
問題ありません ← 「問題ありません」を確認

※システムの文字コードがUTF-8の場合、PoderosaのエンコーディングをUTF-8に戻す

[root@linux mailman]# cd ← ホームディレクトリへ移動

[root@linux ~]# rm -rf /tmp/mailman-*/ ← mailman展開先ディレクトリを削除

[root@linux ~]# rm -f /tmp/mailman.tar.gz ← ダウンロードしたmailmanを削除

■Mailman設定

(1)SMRSH設定
sendmailでは、SMRSHにより実行できるコマンドが制限されているので、mailmanを実行できるようにする。
[root@linux ~]# ln -s /usr/local/mailman/mail/mailman /etc/smrsh/mailman
 ← /usr/local/mailman/mail/mailmanから/etc/smrsh/mailmanへのリンク作成

(2)Mailman設定
[root@linux ~]# vi /usr/local/mailman/Mailman/mm_cfg.py ← mailman設定ファイル編集
##################################################
# Put YOUR site-specific settings below this line.
以下を追加
DEFAULT_URL_HOST = 'centossrv.com' ← Webサーバー名(例:centossrv.com)を指定
DEFAULT_EMAIL_HOST = 'centossrv.com' ← メールサーバー名(例:centossrv.com)を指定
add_virtualhost(DEFAULT_URL_HOST, DEFAULT_EMAIL_HOST) ← 追加
MTA='Postfix' ← 追加※sendmailだがPostfixでOK
POSTFIX_ALIAS_CMD = '/usr/bin/sudo /usr/local/mailman/bin/mailman.aliases' ← 追加
POSTFIX_STYLE_VIRTUAL_DOMAINS = [] ← 追加
DEFAULT_SERVER_LANGUAGE = 'ja' ← 日本語化
DEFAULT_URL_PATTERN = 'https://%s/mailman/' ← Webインタフェースをhttps=SSLにする
DEFAULT_LIST_ADVERTISED = No ← メーリングリスト一覧を非公開にする
OWNERS_CAN_DELETE_THEIR_OWN_LISTS = Yes ← メーリングリストをWeb上から削除可能にする
DEFAULT_SUBJECT_PREFIX = "[%(real_name)s:%%d] " ← 件名に記事b付加する
DEFAULT_REPLY_GOES_TO_LIST = 1 ← 返信先を投稿者ではなくリストにする
DEFAULT_NEW_MEMBER_OPTIONS = 258 ← 投稿した本人にはメールを送らないようにする
DEFAULT_GENERIC_NONMEMBER_ACTION = 2 ← 非会員からのメールには拒否応答

※システムの文字コードがUTF-8の場合、Poderosaのエンコーディングをeuc-jpにする

[root@linux ~]# /usr/local/mailman/bin/mmsitepass パスワード ← メーリングリストサーバー管理パスワード設定
パスワードを変更しました.

※システムの文字コードがUTF-8の場合、PoderosaのエンコーディングをUTF-8に戻す

[root@linux ~]# crontab -u mailman /usr/local/mailman/cron/crontab.in ← mailmanCRON設定

(3)aliases設定
メーリングリスト作成時、必要なaliases情報が自動で設定されるようにする
[root@linux ~]# vi /usr/local/mailman/bin/mailman.aliases ← /usr/local/mailman/bin/mailman.aliases作成
/bin/cp /usr/local/mailman/data/aliases /etc/mailman.aliases
/usr/bin/newaliases

[root@linux ~]# chmod +x /usr/local/mailman/bin/mailman.aliases ← /usr/local/mailman/bin/mailman.aliasesへ実行権限付加

[root@linux ~]# vi /etc/mail/sendmail.mc ← sendmail.mc編集
define(`ALIAS_FILE', `/etc/aliases')dnl
↓
define(`ALIAS_FILE', `/etc/aliases,/etc/mailman.aliases')dnl ← 変更(/etc/mailman.aliasesをaliasファイルに追加)

[root@linux ~]# m4 /usr/share/sendmail-cf/m4/cf.m4 /etc/mail/sendmail.mc > /etc/mail/sendmail.cf ← sendmail.mcよりsendmail.cf作成

[root@linux ~]# /etc/rc.d/init.d/sendmail restart ← sendmail再起動
sendmail を停止中:                                         [  OK  ]
sm-client を停止中:                                        [  OK  ]
sendmail を起動中:                                         [  OK  ]
sm-client を起動中:                                        [  OK  ]

[root@linux ~]# /usr/local/mailman/bin/genaliases ← aliases初期情報設定
/etc/aliases: 79 aliases, longest 18 bytes, 824 bytes total
/etc/mailman.aliases: 1 aliases, longest 42 bytes, 54 bytes total

[root@linux ~]# chmod o+w /etc/sudoers ← /etc/sudoersへ所有者書き換え権限付加

[root@linux ~]# vi /etc/sudoers ← /etc/sudoers編集
以下を最終行へ追加
apache ALL= NOPASSWD: /usr/local/mailman/bin/mailman.aliases
mailman ALL= NOPASSWD: /usr/local/mailman/bin/mailman.aliases

[root@linux ~]# chmod o-w /etc/sudoers ← /etc/sudoersから所有者書き換え権限削除

(4)Webサーバー設定
[root@linux ~]# vi /etc/httpd/conf.d/mailman.conf ← mailman用webサーバー設定ファイル新規作成
ScriptAlias /mailman/       /usr/local/mailman/cgi-bin/
<Directory /usr/local/mailman/cgi-bin/>
    SSLRequireSSL
    AllowOverride None
    Options ExecCGI
    Order allow,deny
    Allow from all
</Directory>
Alias   /pipermail/     /usr/local/mailman/archives/public/
<Directory /usr/local/mailman/archives/public/>
    Options Indexes MultiViews FollowSymLinks
    AllowOverride None
    Order allow,deny
    Allow from all
</Directory>

[root@linux ~]# cp /usr/local/mailman/icons/* /var/www/icons/ ← mailman用ロゴファイルを所定ディレクトリへコピー

[root@linux ~]# /etc/rc.d/init.d/httpd reload ← webサーバー設定反映
httpd を再読み込み中:                                      [  OK  ]

■管理用メーリングリスト(mailman)作成

※システムの文字コードがUTF-8の場合、Poderosaのエンコーディングをeuc-jpにする

[root@linux ~]# /usr/local/mailman/bin/newlist mailman ← 管理用メーリングリスト(mailman)作成
リスト管理者のメールアドレスを入力してください: mailman-owner@サーバー名 ← 管理用メーリングリスト(mailman)管理者メールアドレス応答
mailman の初期パスワード:  ← 管理用メーリングリスト(mailman)管理パスワード応答※表示はされない
Enter を押して mailman の管理者にメール通知する... ← 空ENTER

[root@linux ~]# /usr/local/mailman/bin/config_list -i /usr/local/mailman/data/sitelist.cfg mailman
 ← 管理用メーリングリスト(mailman)初期設定
標準でない値を修復: personalize

※システムの文字コードがUTF-8の場合、PoderosaのエンコーディングをUTF-8に戻す

■Mailman起動

[root@linux ~]# cp /usr/local/mailman/scripts/mailman /etc/rc.d/init.d/ ← mailman起動スクリプトを所定ディレクトリへコピー

[root@linux ~]# /etc/rc.d/init.d/mailman start ← mailman起動

[root@linux ~]# chkconfig --add mailman ← mailman自動起動設定

[root@linux ~]# chkconfig --list mailman ← mailman自動起動設定確認
mailman         0:off   1:off   2:on    3:on    4:on    5:on    6:off ← ランレベル2〜5のonを確認

■Mailman確認

※例としてtestというメーリングリストを作成する

(1)testメーリングリスト作成
https://サーバー名/mailman/createにアクセスする

「リストの名前」⇒test

「リスト管理者アドレスの初期設定」⇒リスト管理者メールアドレス

「初期パスワードを自動生成しますか?」⇒はい

「リスト作成者の認証パスワード」⇒メーリングリストサーバー管理パスワード

「リストを作成する」ボタン押下

※testメーリングリストの作成完了通知がリスト管理者メールアドレス宛に送信されてくる

(2)利用者向けtestメーリングリストの利用方法
https://サーバー名/mailman/listinfo/test参照

(3)管理者向けtestメーリングリストの利用方法
https://サーバー名/mailman/admin/test参照
※「リスト管理者パスワード」はリスト管理者メールアドレス宛に送られてきたメールに記載

(4)testメーリングリスト削除
https://サーバー名/mailman/rmlist/testにアクセスする

「リストのパスワード」⇒リスト管理者パスワード
※「リスト管理者パスワード」はリスト管理者メールアドレス宛に送られてきたメールに記載

「このリストを削除」ボタン押下




▲このページのトップへ戻る

LPIロゴ Copyright© 2005-2010 fallenangels, All rights reserved.
ご自由にリンクしてください(連絡は不要です)
本ページへのご意見・ご要望、誤字・脱字・リンク切れ等のご連絡はこちらからお願いします