CentOS7.9,Apache2.4.6,postfix2.10.1,postfixadmin3.3.8環境でmailmanのVerUp.を行う。

先回の投稿で、DKIM/DMARC系のセッティングを先行してしまった為に、ローカルドメインユーザからmailmanメーリングリストに投稿できなくなった旨の話を記載しました。
暫定対策としてはdnsのdmarcセッティングを「p=none」とすれば問題無い為、それで稼動させてましたが、いずれハマり時期がやってくるかもと思い、mailmanのVerUpを行いました。

2021/03/19時点のCentOS7.9では「#yum install mailman」でインストールされるmailmanのバージョンは「2.1.15」です。そしてdmarc問題を解決する為には先記の参考サイト情報では「2.1.16」以降のバージョンが必要となってました

本日mailmanの最新バージョンを・・・
http://ftp.gnu.org/gnu/mailman/
・・・にて確認したところ、「2.1.34」(タイムスタンプ:2020-06-26 20:24)が2.1系の最終バージョンとしてstableになっている模様なので、こちらを使ってソースリビルドすることにしました。

ただ、参考にさせて戴いたサイトではwebサーバがapacheでは無くnginx環境だったり、mailmanのインストール先が/home/mailmanだったりと、こちらの環境とは相違していた為、読み替えや若干のアレンジが必要でした。
また、今まで使っていたyum版のmailmanとの競合などもあり、例によってトライアンドエラーで行った手順を記載しておきます。

1.yumインストールしたmailman2.1.15を使っている場合は、まず現環境のバックアップとして・・・

/etc/mailman/
/var/lib/mailman/
/var/spool/mailman/

・・・の内容をどこかにコピーしておきます。

2.競合を防ぐ為「#yum remove mailman」を実行し、旧mailmanを削除します。

3.旧mailmanの痕跡を完全消去します。
当方では過去に何度もmailmanのインストール・アンインストールを繰り返した苦い経験がある為、/etc/配下に「mailman_erase.sh」というシェルスクリプトを作成して実行しました。
---/etc/mailman_erase.shここから

#!/bin/sh
rm -rf /etc/mailman
rm -rf /etc/cron.d/mailman*
#rm -rf /httpd/conf.d/mailman.conf
rm -rf /usr/lib/mailman
rm -rf /var/lib/mailman
rm -rf /var/spool/mailman
rm -rf /var/run/mailman
userdel mailman >>null

---/etc/mailman_erase.shここまで

4.この後、ローカルサーバにて最新mailmanのbuildプロセスに入ります。
今回はmailman本体群を「/usr/lib/mailman/」配下へインストール、データ類は「/var/lib/mailman/」配下で運用することを前提に「.configure」プロセスの際に下記のオプションでbuildを行いました。
「./configure –prefix=/usr/lib/mailman –with-var-prefix=/var/lib/mailman fix=/var/lib/mailman –with-cgi-gid=apache」
※apache2.4ではsuExecな環境で動く為、このオブションbuildはキモです。

5.途中関連フォルダ(/var/lib/mailman/等)が無いとか、パーミッションが違うなどのエラーが発生した場合は都度対処し、「.configure」プロセスを再実行します。
エラーが無くなった後「make && make install」にてbuildを完了させます。

6.build完了後はバックアップしておいたファイル群をリストアするのですが、yum標準インストールのフォルダとは異なっている為、注意が必要です。
mailmanの設定ファイル「mm_cfg.py」は以前は「/etc/mailman/」配下でしたが、今回は「/usr/lib/mailman/」配下へリストアします。
同様にメーリングリストのデータファイル群は「/var/lib/mailman/」配下へリストアします。

7.参考サイトの通り、新mailmanを起動する前には「mailman」メーリングリストの作成が必須です。また、「aliases」関係も以前は「/etc/mailman/」に有った物が、「/var/lib/mailman/data/」配下に移ってますので、こちらのディレクトリにて「/usr/lib/mailman/bin/genaliases」の実行と、/etc/postfix/main.cf内のalias関係のフォルダ設定を書き換えます。具体的には下記3カ所になるかと思います。
---
alias_maps = hash:/etc/aliases, hash:/var/lib/mailman/data/aliases

alias_database = hash:/etc/postfix/aliases, hash:/var/lib/mailman/data/aliases

virtual_alias_maps =
hash:/var/lib/mailman/data/virtual-mailman,
proxy:mysql:/etc/postfix/sql/mysql_virtual_alias_maps.cf,
proxy:mysql:/etc/postfix/sql/mysql_virtual_alias_domain_maps.cf,
proxy:mysql:/etc/postfix/sql/mysql_virtual_alias_domain_catchall_maps.cf
---

8./etc/postfix/main.cfの修正が完了したら、/etc/postfix/配下で「newaliases」を実行、また、/var/lib/mailman/data/配下で「/usr/lib/mailman/bin/genaliases」を実行し、aliases関係を新しく整えておきます。

9.#systemctl restart postfixにてpostfixを再起動、特に問題無ければ、新mailmanの起動プロセスを参考サイトの通り行い、システムrebootした時の為に、chkconfig、あるいはsystemctl用として/etc/systemd/system/mailman.serviceファイルを作成します。
後者の方法であれば、従来通り「#systemctl start mailman」「#systemctl status mailman」「#systemctl enable mailman」などが使えます。

10.旧mailmanのセッティングが戻っているかをmailmanの管理画面「http://example.com/mailman/admin」で確認、問題無さそうであればテスト用メーリングリストの作成~メーリングリストへのメール配信などで挙動を確認します。

11.無事配信された場合はmailmanの管理画面で新mailmanで増えたセッティング
「プライバシー・オプション… の部 -> [送信者フィルタ]」などを確認します。

12.ここまでのプロセスが問題無く完了すれば多分mailman的にはVerUp.完了です。
dmarcに関しては翌日以降に新たにリサーチして考えましょう(^_^;;)


<本件で参考にさせて戴いたサイト>
メーリングリストサーバー構築(Postfix+Mailman編) – CentOSで自宅サーバー構築
https://centossrv.com/postfix-mailman.shtml

メーリングリスト、mailman 2.1.29 セッティング | サーバーレシピ
https://server-recipe.com/1245/

Mailman 2.1.34へのアップデートとcgid_module | サーバーレシピ
https://server-recipe.com/2506/#toc1

https://teratail.com/questions/254310
によると、2021/03/19時点では「cgid_module」では無く「cgi_module」が推奨されているようなので、結果の差違は無視して問題無さそうです。

カテゴリー: 未分類 パーマリンク

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

このサイトはスパムを低減するために Akismet を使っています。コメントデータの処理方法の詳細はこちらをご覧ください