y-matsui::weblog

電子楽器、音楽、コンピュータ、プログラミング、雑感。面倒くさいオヤジの独り言

sendmailのパッチ当てでmajordomoが不能に・・・ひょえぇぇ

旧聞に関する話題であるが、sendmailに”DoS攻撃を引き起こす可能性のある非同期シグナルの不適切な扱い”という不具合があった。とっくにサポートを終了したSunCobaltのパッチ(Sendmail SecurityUpdate 2.0.2 RaQ4-All-Security-2.0.2-17084.pkg)が2006/10に出ていたので適用してみたところ、恐ろしい副作用が。

通常のメール送信は出来るものの、メーリングリスト(majordomo)が動かない。

一気に体の血が逆流する。体温が急上昇するのが分かる。

sendmailアップデート後majordomo動作せずなんていう似た境遇の方を見つけるが、どうやら違う原因らしい。
しかし、とにかくセキュリティ周りで何か変更があったとの推測は付く。

■原因(推測)と直し方
正解なやり方とは思わないが、下記の方法でとりあえず動くようになった。
所要時間は約8時間だ。俺の時間を返せー。

手順1:sendmail.cfが改悪されている→majordomoのalias設定がなくなっている
/etc/mail/sendmail.cf と /etc/mail/sendmail.cf.rpmsaveを比較。

######################################################################
######################################################################
#####
##### SENDMAIL CONFIGURATION FILE
#####
##### built by root@indiaraqxtr.blr03-01.india.sun.com on Wed Oct 25 01:03:38 PDT 2006
##### in /home/redhat/BUILD/sendmail-8.11.1/cf
##### using as configuration include directory
#####
######################################################################

〜〜〜〜〜〜〜〜〜〜〜〜〜〜略〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜

# location of alias file
O AliasFile=/etc/mail/aliases
O AliasFile=/etc/mail/aliases.majordomo ←ここが削除されていた


sendmailの馬鹿野郎ぅぅぅぅ!自分さえ良ければいいのか。majordomoの設定も残しておいてくれよ。

手順2:sendmailがmajordomoの設定ファイル(listファイル)をオープンできない→ディレクトリやファイルを0755にする

Jul 12 19:48:19 cobalt sendmail[3597]: l6CAmJPB003597: :include:/usr/local/majordomo/サイト名/lists/リスト名... Cannot open /usr/local/majordomo/サイト名/lists/リスト名: Group writable file

[linux-users:68622] Re: majordomoのエラーについて。←ここの情報を早く見つけてれば・・

こことかこことかここを見ると、権限が低くてオープンできないのではなく、「グループが書き込み出来ちゃうからまずいよ。」というエラーのようだ。

手順3:majordomoを起動したあとスプールできない→/var/spool/mqueue/*を0775にする

Jul 12 19:48:19 cobalt sendmail[3597]: l6CAmJPC003597: SYSERR(mail): queueup: cannot create queue file q1/qfl6CAmJPC003597, euid=8, fd=-1, fp=0x0: Permission denied

■参考情報(majordomo)
Majordomo 情報(入口)
Majordomo-1.94.4 は sendmail が /usr/lib/sendmail にあることを仮定している部分があります。設定出来るように見えますが、例えば sequencer の中には直接書いて(hard coded)あります
だって。
Majordomo 運用手引書


■追記(CobaltRaQ550の場合)
CobaltRaQ550の場合は、更に
alias database /etc/mail/aliases.majordomo.db out of date
なんて出てくるが、ココにあるように、
/etc/mailに移動して、newaliasesとコマンドを打つと
[root mqueue]# cd /etc/mail
[root mail]# newaliases
WARNING: Group writable directory ./q1
WARNING: Group writable directory ./q2
WARNING: Group writable directory ./q3
WARNING: Group writable directory ./q4
/etc/mail/aliases: 30 aliases, longest 10 bytes, 308 bytes total
/etc/mail/aliases.majordomo: 32 aliases, longest 127 bytes, 1705 bytes total

こんな感じ。
q1,q2,q3,q4なんかが0775になってるから怒られるが、0755とかにしてしまうと、今度はメーリングリスト(majordomo)がキューに書き込めなくなってしまう。(premission denied)

権限を緩めると怒られるし、厳しくするとエラーが出るし。パーミッション面倒臭い。