FreeBSD/Postfix+amavisd+clamav

Postfix + amavisd + clamav

dokuwiki.fl8.jp掲載済

ClamAVインストール

portsからインストール

# cd /usr/ports/security/clamav
# make install

/etc/rc.confに追加

# ClamAV
clamav_clamd_enable="YES"
clamav_freshclam_enable="YES"

起動

# /usr/local/etc/rc.d/clamav-clamd start
# /usr/local/etc/rc.d/clamav-freshclam start

Postfixインストール

portsからインストール

# cd /usr/ports/mail/postfix
# make install

このあと、いくつか質問されるので適切に答えます。

Added group "postfix". 
Added group "maildrop". 
Added user "postfix". 
You need user "postfix" added to group "mail". 
Would you like me to add it [y]? y
これは y。

Would you like to activate Postfix in /etc/mail/mailer.conf [n]? y

/etc/rc.confの修正

# /etc/rc.conf
postfix_enable="YES"

sendmailが動いている場合

# /etc/rc.conf
sendmail_enable="NONE"

# /etc/rc.d/sendmail stop

/usr/local/etc/postfix/main.cf 修正

mydomain に自分のドメインを設定します。

mydomain = domain.tld

mydestination に、自分が受け取るメールの宛先を指定します。$mydomain は含めるようにしましょう。それ以外にも、受け取りたいドメインがあれば追記します。

mydestination = $myhostname, localhost.$mydomain, localhost, $mydomain

mynetworks に「信頼できる」SMTPクライアントの属するネットワークを指定します。これ以外のところからメールの中継を拒否します。

mynetworks = 168.100.189.0/28, 127.0.0.0/8

起動

# /usr/local/etc/rc.d/postfix start

postfix キューの確認

# /usr/sbin/postqueue -p

postfix キューの削除

# /usr/sbin/postsuper -d [Queue ID]

amavisd

インストール

# cd /usr/ports/security/amavisd-new
# make AMAVISUSER=clamav AMAVISGROUP=clamav install

amavisdでspamチェックを行わない

# vi /usr/local/etc/amavisd.conf
14  @bypass_spam_checks_maps  = (1);  # controls running of anti-spam code

これだけだと、こんなエラーが出る。

Can't locate object method "new" via package "Amavis::SpamControl" at /usr/local/sbin/amavisd line 13878. 

直接13878行目をコメントアウトすれば、すんなり起動する。

# vi /usr/local/sbin/amavisd
13878 #$spamcontrol_obj = Amavis::SpamControl->new  if $extra_code_antispam;

添付ファイルがあるとはじかれる

$banned_filename_re = new_RE(

### BLOCKED ANYWHERE
# qr'^UNDECIPHERABLE$',  # is or contains any undecipherable components
  qr'^\.(exe-ms|dll)$',                   # banned file(1) types, rudimentary
# qr'^\.(exe|lha|tnef|cab|dll)$',         # banned file(1) types
・
・
・
);

この部分を

$banned_filename_re = new_RE();

参考URL

http://www.leafgreen.jp/freebsd/clamav.html

postfixの設定

inet_interfaces

# vi /usr/local/etc/postfix/main.cf
-------------------------------------------
inet_interfaces = all  # どこからでも接続OK
inet_interfaces = localhost # localhostからだけ接続OK

localhostからだけ接続OKの場合netstatだとこんな感じになる。

# netstat -ant
Proto 受信-Q 送信-Q 内部アドレス            外部アドレス            状態       
tcp        0      0 127.0.0.1:25            0.0.0.0:*               LISTEN

どこからでも接続OKの場合だと

# netstat -ant
Proto 受信-Q 送信-Q 内部アドレス            外部アドレス            状態       
tcp        0      0 0.0.0.0:25              0.0.0.0:*               LISTEN