spamassasinは怪しいメールには、メール本文の冒頭に警告メッセージをつけてくれるので、スマートフォンなどのメール通知で怪しいメールが来たかどうかをすぐに見分けることができる。本当はすぐに隔離して mailboxに入らないようにすればいいんでしょうが。。。
ところが最近、別のサーバ(MX secondary)に届くメールにそれが入らなくなってしまった。どうも milterでsa-spamd を通らなくなってしまったようだ。
milter-manager ? spamd ? socketのowner,permission ? 何が悪いのかよくわからないまま、perlのライブラリ、ruby、openssl,gpgなどいろいろアップデートしてみたが、なかなか解決と行かなかった。
/var/log/spamd.log をつぶさに追っかけて、spamdがちゃんと起動していないのが原因のよう。
どうも sendmail をバージョンアップしたときからおかしくなってしまったよう。
error: Can't locate Net/SSLeay.pm in @INC
spamd: error: Bad arg length for Socket::unpack_sockaddr_in, length is 28, should be 16
あたりが問題だったようで、以下の記事を参照に、Socket6 を再インストールしたら解決した。
https://freebsd.sing.ne.jp/daily/09/09/05.html
まず、/usr/local/bin/gcc(gcc48) を使って、gcc-5.5.0 をインストール。
次に、coreutil-8.32 をインストール。
isl (http://isl.gforge.inria.fr/isl-0.22.tar.gz) をインストールしようとしたが、
to_string’ is not a member of ‘std’
のエラーが出るのであきらめる。/usr/ports/を見ると、0.19を使っているようなので、0.19を入れるとこれはちゃんとエラーなしに入った。
次に gcc-6.5.0 、これはエラーなしに 入った。configure & make & make install
bintuil を installしようとしたら、これもエラー。
dwarf2/index-write.c:779:32: エラー: ‘log2’ is not a member of ‘std’
(std::pow (2, std::ceil (std::log2 (name_count * 4 / 3))));
gcc-7.5.0 のインストール。これは問題ない。 ./configure & gmake & gmake install
gcc-8.4.0 のインストール。これはエラー。
In file included from /usr/include/machine/pcb.h:44,
from /usr/include/sys/user.h:38,
from ./md-unwind-support.h:34,
from ../../.././libgcc/unwind-dw2.c:411:
/usr/include/machine/segments.h:184:16: エラー: ‘rd_base’ の幅がそのサイズを超えています
unsigned long rd_base:64 __packed; /* base address */
std 関連のエラーはちょっと後で考えるとして、それ以外でバージョンを上げられるものをあげていく。
libxml-2.9.9 をインストール。これも configure & gmake & gmake install でいけた。
ここで clamav-0.102.4 をインストール。これも configure --enable-milter & gmake & gmake install
でOK。既存の設定ファイルもそういじることなく起動できた。(clamav-clamd,clamav-milter,clamav-freshclam)
まず、/usr/local/bin/gcc(gcc48) を使って、gcc-5.5.0 をインストール。
次に、coreutil-8.32 をインストール。
isl (http://isl.gforge.inria.fr/isl-0.22.tar.gz) をインストールしようとしたが、
to_string’ is not a member of ‘std’
のエラーが出るのであきらめる。/usr/ports/を見ると、0.19を使っているようなので、0.19を入れるとこれはちゃんとエラーなしに入った。
次に gcc-6.5.0 、これはエラーなしに 入った。configure & make & make install
bintuil を installしようとしたら、これもエラー。
dwarf2/index-write.c:779:32: エラー: ‘log2’ is not a member of ‘std’
(std::pow (2, std::ceil (std::log2 (name_count * 4 / 3))));
gcc-7.5.0 のインストール。これは問題ない。 ./configure & gmake & gmake install
gcc-8.4.0 のインストール。これはエラー。
In file included from /usr/include/machine/pcb.h:44,
from /usr/include/sys/user.h:38,
from ./md-unwind-support.h:34,
from ../../.././libgcc/unwind-dw2.c:411:
/usr/include/machine/segments.h:184:16: エラー: ‘rd_base’ の幅がそのサイズを超えています
unsigned long rd_base:64 __packed; /* base address */
std 関連のエラーはちょっと後で考えるとして、それ以外でバージョンを上げられるものをあげていく。
libxml-2.9.9 をインストール。これも configure & gmake & gmake install でいけた。
ここで clamav-0.102.4 をインストール。これも configure --enable-milter & gmake & gmake install
でOK。既存の設定ファイルもそういじることなく起動できた。(clamav-clamd,clamav-milter,clamav-freshclam)
milterの動きを見ると、
Milter (milter-manager): timeout before data read, where=eom
Milter (milter-manager): to error state
とちゃんと filterを通らないまま通過しているケースが頻出していた。spamassasin(spamd) を通過していないようだ。 /var/log/spamd.log には
warn: bayes: cannot open bayes databases /root/.spamassassin/bayes_* R/W: lock failed:
ということのよう。ここにある、bayes_seen,bayes_toks が肥大化しているよう。
一度削除し、sa-spamdの再起動したらうまく filterを通って、mail headerに 'X-Spam-Status','X-Virus-Statsus' などのヘッダーもつけてくれるようになった。
本当は、sa-learn で適切に学習、DBのサイズ縮小(?)をしていかないといけないようだ。
または dbではなくて redis を使った高速化等を検討すべきとのこと・・・次の課題でしょうか。
milterの動きを見ると、
Milter (milter-manager): timeout before data read, where=eom
Milter (milter-manager): to error state
とちゃんと filterを通らないまま通過しているケースが頻出していた。spamassasin(spamd) を通過していないようだ。 /var/log/spamd.log には
warn: bayes: cannot open bayes databases /root/.spamassassin/bayes_* R/W: lock failed:
ということのよう。ここにある、bayes_seen,bayes_toks が肥大化しているよう。
一度削除し、sa-spamdの再起動したらうまく filterを通って、mail headerに 'X-Spam-Status','X-Virus-Statsus' などのヘッダーもつけてくれるようになった。
本当は、sa-learn で適切に学習、DBのサイズ縮小(?)をしていかないといけないようだ。
または dbではなくて redis を使った高速化等を検討すべきとのこと・・・次の課題でしょうか。
メールサーバが、Fromを実在のユーザーのメールアドレスに詐称したspamメールのrelay に使われるようになってしまった。
とりあえず、userの メールアドレスを /etc/mail/access で ERROR 処理にして relay block したが本質的には、spf,dkim あたりをちゃんと入れないとあかんなぁ・・・ということで。
まずは簡単にできそうな spf あたりから。
目標は、
- DNS で spfの設定
- spfmillter の設定
- うちのサーバはsendmail + milter なので spfmilterの組み込み
あたりかと。
まず、https://support.zendesk.com/hc/ja/articles/115015746187-%E3%81%AA%E3%81%9C%E8%87%AA%E5%88%86%E3%81%AESPF%E3%83%AC%E3%82%B3%E3%83%BC%E3%83%89%E3%81%8C%E8%AA%8D%E8%A8%BC%E3%81%95%E3%82%8C%E3%81%AA%E3%81%84%E3%81%AE%E3%81%A7%E3%81%97%E3%82%87%E3%81%86%E3%81%8B- を参照。spfレコードがちゃんと設定されているかの確認。
チェックサイトが3つ紹介されている。
まずはこの3つあたりで、ちゃんと DNSの spf設定がされているかどうかのチェックをおこなう。基本、送信元のドメイン、ipを記述し、最後に '-all' とする。'~all'もよくある記述だが、中途半端にsoftfaiにするよりもしっかり failにしたほうが良いと思う。
メールサーバが、Fromを実在のユーザーのメールアドレスに詐称したspamメールのrelay に使われるようになってしまった。
とりあえず、userの メールアドレスを /etc/mail/access で ERROR 処理にして relay block したが本質的には、spf,dkim あたりをちゃんと入れないとあかんなぁ・・・ということで。
まずは簡単にできそうな spf あたりから。
目標は、
- DNS で spfの設定
- spfmillter の設定
- うちのサーバはsendmail + milter なので spfmilterの組み込み
あたりかと。
まず、https://support.zendesk.com/hc/ja/articles/115015746187-%E3%81%AA%E3%81%9C%E8%87%AA%E5%88%86%E3%81%AESPF%E3%83%AC%E3%82%B3%E3%83%BC%E3%83%89%E3%81%8C%E8%AA%8D%E8%A8%BC%E3%81%95%E3%82%8C%E3%81%AA%E3%81%84%E3%81%AE%E3%81%A7%E3%81%97%E3%82%87%E3%81%86%E3%81%8B- を参照。spfレコードがちゃんと設定されているかの確認。
チェックサイトが3つ紹介されている。
まずはこの3つあたりで、ちゃんと DNSの spf設定がされているかどうかのチェックをおこなう。基本、送信元のドメイン、ipを記述し、最後に '-all' とする。'~all'もよくある記述だが、中途半端にsoftfaiにするよりもしっかり failにしたほうが良いと思う。
先日、virusソフトをアップデートした際に、すでに Freebsd ports では amavis-milter がサポートされなくなっていたので、amavisd-milter + amavisd-new に変更。
milterを使う理由は、別portで待ち受けるMTA 2枚使うパターンにはちょっと躊躇してしまうため。。。
FreeBSD4 では、最新のports ではamavisd-milter (Ver 1.3.1 )が compile できない。
20070901:
Performance optimization: use sem_timedwait instead of
sem_trywait+sleep(1) for amavisd connection lock.
Requested by: David Schweikert
とあるけど、sem_timedwait , FreeBSD5 以降でしか入っていなくて、4.xでは使えない。
仕方ないので、1.2.1 を利用することに。
ports からのインストールの変更点は、
- amavisd-milter: amavisd.conf で
$unix_socketname = "$MYHOME/amavisd.sock";
- /etc/mail/hostname.mc で
define(`confMILTER_MACROS_ENVFROM',
confMILTER_MACROS_ENVFROM`, r, b')
INPUT_MAIL_FILTER(`amavisd-milter',`S=local:/var/amavis/amavisd-milter.sock,F=T,
T=S:10m;R:10m;E:10m')
と、amavisd-milter に渡すsocketを定義。
- ports で amavisd-new をinstallすると、 /usr/local/etc/rc.d/amavis-milter.sh もinstallされる。これを、amavisd-milter.sh に rename して
amavisd_milter_flags=${amavis_milter_flags:-"-w /var/amavis/tmp"}
と定義する。 -p /var/amavis/amavisd-milter.sock はデフォルトで設定されているようなので要らないっぽい。
amavisd-milter は、sendmail と amavisd への接続には オプションの -s, -S で設定することになっているが、おのおのデフォルトは /var/amavis/amavisd-milter.sock, /var/amavis/amavisd.sock になっている。
amavisd-new 、昔は対応している vscan ソフトの数が4つくらいしかなかったけど、今は Unix系で出回っているものほとんどに対応してるっぽい?
とりあえずうちでは avira, をメインにして f-prot をバックアップに使ってる。
/var/log/maillog への出力例
Nov 8 12:48:39 mina amavis[49876]: (49876) Passed CLEAN, AM.PDP-SOCK [x.x.x.x] [x.x.x.x] -> , Queue-ID: mA83mY2h051930, Message-ID: <20081108034829.56183205FB5@cd14-0793>, mail_id: UNup7LuHjHB3, Hits: -, size: 5100, 3897 ms
Nov 8 12:48:39 mina sendmail[51930]: mA83mY2h051930: Milter insert (0): header: X-Virus-Scanned: amavisd-new at xxx.yyy
先日、virusソフトをアップデートした際に、すでに Freebsd ports では amavis-milter がサポートされなくなっていたので、amavisd-milter + amavisd-new に変更。
milterを使う理由は、別portで待ち受けるMTA 2枚使うパターンにはちょっと躊躇してしまうため。。。
FreeBSD4 では、最新のports ではamavisd-milter (Ver 1.3.1 )が compile できない。
20070901:
Performance optimization: use sem_timedwait instead of
sem_trywait+sleep(1) for amavisd connection lock.
Requested by: David Schweikert
とあるけど、sem_timedwait , FreeBSD5 以降でしか入っていなくて、4.xでは使えない。
仕方ないので、1.2.1 を利用することに。
ports からのインストールの変更点は、
- amavisd-milter: amavisd.conf で
$unix_socketname = "$MYHOME/amavisd.sock";
- /etc/mail/hostname.mc で
define(`confMILTER_MACROS_ENVFROM',
confMILTER_MACROS_ENVFROM`, r, b')
INPUT_MAIL_FILTER(`amavisd-milter',`S=local:/var/amavis/amavisd-milter.sock,F=T,
T=S:10m;R:10m;E:10m')
と、amavisd-milter に渡すsocketを定義。
- ports で amavisd-new をinstallすると、 /usr/local/etc/rc.d/amavis-milter.sh もinstallされる。これを、amavisd-milter.sh に rename して
amavisd_milter_flags=${amavis_milter_flags:-"-w /var/amavis/tmp"}
と定義する。 -p /var/amavis/amavisd-milter.sock はデフォルトで設定されているようなので要らないっぽい。
amavisd-milter は、sendmail と amavisd への接続には オプションの -s, -S で設定することになっているが、おのおのデフォルトは /var/amavis/amavisd-milter.sock, /var/amavis/amavisd.sock になっている。
amavisd-new 、昔は対応している vscan ソフトの数が4つくらいしかなかったけど、今は Unix系で出回っているものほとんどに対応してるっぽい?
とりあえずうちでは avira, をメインにして f-prot をバックアップに使ってる。
/var/log/maillog への出力例
Nov 8 12:48:39 mina amavis[49876]: (49876) Passed CLEAN, AM.PDP-SOCK [x.x.x.x] [x.x.x.x] -> , Queue-ID: mA83mY2h051930, Message-ID: <20081108034829.56183205FB5@cd14-0793>, mail_id: UNup7LuHjHB3, Hits: -, size: 5100, 3897 ms
Nov 8 12:48:39 mina sendmail[51930]: mA83mY2h051930: Milter insert (0): header: X-Virus-Scanned: amavisd-new at xxx.yyy
先日、virusソフトをアップデートした際に、すでに Freebsd ports では amavis-milter がサポートされなくなっていたので、amavisd-milter + amavisd-new に変更。
milterを使う理由は、別portで待ち受けるMTA 2枚使うパターンにはちょっと躊躇してしまうため。。。
FreeBSD4 では、最新のports ではamavisd-milter (Ver 1.3.1 )が compile できない。
20070901:
Performance optimization: use sem_timedwait instead of
sem_trywait+sleep(1) for amavisd connection lock.
Requested by: David Schweikert
とあるけど、sem_timedwait , FreeBSD5 以降でしか入っていなくて、4.xでは使えない。
仕方ないので、1.2.1 を利用することに。
ports からのインストールの変更点は、
- amavisd-milter: amavisd.conf で
$unix_socketname = "$MYHOME/amavisd.sock";
- /etc/mail/hostname.mc で
define(`confMILTER_MACROS_ENVFROM',
confMILTER_MACROS_ENVFROM`, r, b')
INPUT_MAIL_FILTER(`amavisd-milter',`S=local:/var/amavis/amavisd-milter.sock,F=T,
T=S:10m;R:10m;E:10m')
と、amavisd-milter に渡すsocketを定義。
- ports で amavisd-new をinstallすると、 /usr/local/etc/rc.d/amavis-milter.sh もinstallされる。これを、amavisd-milter.sh に rename して
amavisd_milter_flags=${amavis_milter_flags:-"-w /var/amavis/tmp"}
と定義する。 -p /var/amavis/amavisd-milter.sock はデフォルトで設定されているようなので要らないっぽい。
amavisd-milter は、sendmail と amavisd への接続には オプションの -s, -S で設定することになっているが、おのおのデフォルトは /var/amavis/amavisd-milter.sock, /var/amavis/amavisd.sock になっている。
amavisd-new 、昔は対応している vscan ソフトの数が4つくらいしかなかったけど、今は Unix系で出回っているものほとんどに対応してるっぽい?
とりあえずうちでは avira, をメインにして f-prot をバックアップに使ってる。
/var/log/maillog への出力例
Nov 8 12:48:39 mina amavis[49876]: (49876) Passed CLEAN, AM.PDP-SOCK [x.x.x.x] [x.x.x.x] -> , Queue-ID: mA83mY2h051930, Message-ID: <20081108034829.56183205FB5@cd14-0793>, mail_id: UNup7LuHjHB3, Hits: -, size: 5100, 3897 ms
Nov 8 12:48:39 mina sendmail[51930]: mA83mY2h051930: Milter insert (0): header: X-Virus-Scanned: amavisd-new at xxx.yyy
うちのマシン、いまだに sendmail + milter の組み合わせで virus チェックを行っていますが、virusチェックには、Freeの AVIRA Antivir Personal Edition を使っています。
先月末で一度ライセンスが切れて、vdfの更新がされないよ~というメールが来たので
アップデートしました。
http://www.free-av.com/en/download/download_servers.php
今年のライセンス?は、notification メールが飛んでこなくなってしまいました。ちゃんと virus scanner, vdf が更新されたかどうかは、ちゃんとサーバのログを見ないとわからなくなってしまった。ちょっと不便。まぁ、freeだからしょうがないか。
今回のライセンスは、またあと1年後まで。。。
mina# /usr/lib/AntiVir/antivir --version
7.9.0.10
operating system: FreeBSD
product version: 2.1.12-75
engine version: 7.9.0.10
packlib version: 7.6.1.7 (supports 34 formats)
vdf version: 7.1.0.29
product: AntiVir Workstation
key file: hbedv2.key
registered user: Avira AntiVir PersonalEdition Classic
serial number: 0000149996-PXWSE-0001
key expires: 27 Oct 2009
run mode: PERSONAL
product: AntiVir (command line scanner)
key file: hbedv2.key
registered user: Avira AntiVir PersonalEdition Classic
serial number: 0000149996-PXWSE-0001
key expires: 27 Oct 2009
run mode: PERSONAL
うちのマシン、いまだに sendmail + milter の組み合わせで virus チェックを行っていますが、virusチェックには、Freeの AVIRA Antivir Personal Edition を使っています。
先月末で一度ライセンスが切れて、vdfの更新がされないよ~というメールが来たので
アップデートしました。
http://www.free-av.com/en/download/download_servers.php
今年のライセンス?は、notification メールが飛んでこなくなってしまいました。ちゃんと virus scanner, vdf が更新されたかどうかは、ちゃんとサーバのログを見ないとわからなくなってしまった。ちょっと不便。まぁ、freeだからしょうがないか。
今回のライセンスは、またあと1年後まで。。。
mina# /usr/lib/AntiVir/antivir --version
7.9.0.10
operating system: FreeBSD
product version: 2.1.12-75
engine version: 7.9.0.10
packlib version: 7.6.1.7 (supports 34 formats)
vdf version: 7.1.0.29
product: AntiVir Workstation
key file: hbedv2.key
registered user: Avira AntiVir PersonalEdition Classic
serial number: 0000149996-PXWSE-0001
key expires: 27 Oct 2009
run mode: PERSONAL
product: AntiVir (command line scanner)
key file: hbedv2.key
registered user: Avira AntiVir PersonalEdition Classic
serial number: 0000149996-PXWSE-0001
key expires: 27 Oct 2009
run mode: PERSONAL
うちのマシン、いまだに sendmail + milter の組み合わせで virus チェックを行っていますが、virusチェックには、Freeの AVIRA Antivir Personal Edition を使っています。
先月末で一度ライセンスが切れて、vdfの更新がされないよ~というメールが来たので
アップデートしました。
http://www.free-av.com/en/download/download_servers.php
今年のライセンス?は、notification メールが飛んでこなくなってしまいました。ちゃんと virus scanner, vdf が更新されたかどうかは、ちゃんとサーバのログを見ないとわからなくなってしまった。ちょっと不便。まぁ、freeだからしょうがないか。
今回のライセンスは、またあと1年後まで。。。
mina# /usr/lib/AntiVir/antivir --version
7.9.0.10
operating system: FreeBSD
product version: 2.1.12-75
engine version: 7.9.0.10
packlib version: 7.6.1.7 (supports 34 formats)
vdf version: 7.1.0.29
product: AntiVir Workstation
key file: hbedv2.key
registered user: Avira AntiVir PersonalEdition Classic
serial number: 0000149996-PXWSE-0001
key expires: 27 Oct 2009
run mode: PERSONAL
product: AntiVir (command line scanner)
key file: hbedv2.key
registered user: Avira AntiVir PersonalEdition Classic
serial number: 0000149996-PXWSE-0001
key expires: 27 Oct 2009
run mode: PERSONAL