2011年7月6日水曜日

お名前.comVPSのマルチドメイン環境でメール受信が出来なくなる

yum updateかけようとすると、clamv周りでエラーが出て更新できなくなったので、関係パッケージ全て削除しました。

・・・すると、マルチドメイン環境でメール受信が出来なくなる。

clamd再インストールしようとしても登録されてるリポジトリが古いのか何なのか、とにかくパッケージ入りません。

$ yum install clamd
Loaded plugins: fastestmirror, priorities
Loading mirror speeds from cached hostfile
 * base: www.ftp.ne.jp
 * epel: ftp.kddilabs.jp
 * extras: www.ftp.ne.jp
 * updates: www.ftp.ne.jp
base                                                               | 2.1 kB     00:00
epel                                                               | 3.7 kB     00:00
epel/primary_db                                                    | 3.7 MB     00:00
extras                                                             | 2.1 kB     00:00
lg-ce5x-main-arch                                                  | 1.9 kB     00:00
lg-ce5x-main-noarch                                                | 1.9 kB     00:00
updates                                                            | 1.9 kB     00:00
updates/primary_db                                                 | 664 kB     00:00
128 packages excluded due to repository priority protections
Setting up Install Process
Resolving Dependencies
--> Running transaction check
---> Package clamd.x86_64 0:0.97-13.el5 set to be updated
--> Processing Dependency: clamav = 0.97-13.el5 for package: clamd
--> Processing Dependency: libclamav.so.6(CLAMAV_PRIVATE)(64bit) for package: clamd
--> Processing Dependency: libclamav.so.6(CLAMAV_PUBLIC)(64bit) for package: clamd
--> Processing Dependency: libclamav.so.6()(64bit) for package: clamd
--> Running transaction check
---> Package clamav-lib.x86_64 0:0.97-1.r1.lg.ce5 set to be updated
--> Processing Dependency: data(clamav) for package: clamav-lib
---> Package clamd.x86_64 0:0.97-13.el5 set to be updated
--> Processing Dependency: clamav = 0.97-13.el5 for package: clamd
--> Running transaction check
---> Package clamav-data.x86_64 0:0.97-1.r1.lg.ce5 set to be updated
--> Processing Dependency: clamav-filesystem = 0.97-1.r1.lg.ce5 for package: clamav-data
---> Package clamd.x86_64 0:0.97-13.el5 set to be updated
--> Processing Dependency: clamav = 0.97-13.el5 for package: clamd
--> Running transaction check
---> Package clamav-filesystem.x86_64 0:0.97-1.r1.lg.ce5 set to be updated
---> Package clamd.x86_64 0:0.97-13.el5 set to be updated
--> Processing Dependency: clamav = 0.97-13.el5 for package: clamd
--> Finished Dependency Resolution
clamd-0.97-13.el5.x86_64 from epel has depsolving problems
  --> Missing Dependency: clamav = 0.97-13.el5 is needed by package clamd-0.97-13.el5.x86_64 (epel)
Error: Missing Dependency: clamav = 0.97-13.el5 is needed by package clamd-0.97-13.el5.x86_64 (epel)
 You could try using --skip-broken to work around the problem
 You could try running: package-cleanup --problems
                        package-cleanup --dupes
                        rpm -Va --nofiles --nodigest

マルチドメイン環境にすると、自動的にamavisdというウイルスチェックソフトにメールのスプールの中身が転送される設定になるようですが、メールチェックはクライアントですればいいので、設定を外す。

こちらを参考にclamdへのスプール転送を外す。
http://d.hatena.ne.jp/pasela/20100420/postfix

が、メール受信できず。

postsuper -r ALL
すれば、メール配信されてくるのですが、
/etc/postfix/main.cf

content_filter
設定をコメントアウトしても、
/var/log/maillog
には
connect to 127.0.0.1[127.0.0.1]:10024: Connection refused
みたいなClamAVが見つかりません的なエラーが出続ける。

どうやら、
/etc/postfix/main.cf
以外にもamavisd関係の設定が残っているらしい。

ということで
grep 'content_filter' ./*

結果、
/etc/postfix/master.cf
/etc/postfix/postfix-pkg-main.cf
という2つのファイルにも
-o content_filter=smtp-amavis:[127.0.0.1]:10024
のような設定がされているので、コメントアウトしてpostfix再起動。

無事にメール受信できるようになりました。

===============
2011-07-11追記

上記だけだとメールの転送が効かなくなります。

/etc/postfix/main.cf

receive_override_options = no_address_mappings
設定をコメントアウトすれば、メール転送も上手くいきます。

が、どうしてそれで上手くいくのかはよく分かりません。
何か弊害が出るようであればお知らせ下さい。

仔細はコメント欄参照。
===============