業務用エアコン関連の技術情報、エラーコード、環境問題対策に関する別サイト「エアコンの安全な修理・適切なフロン回収」

RockyLinux10.2 : アンチウィルス(Clamav) , Mailサーバー

Clamav ( アンチウィルスソフト )のインストール

1.Clamavインストール

# dnf -y install clamav clamd clamav-update

2.Clam AntiVirus設定ファイル編集

# vi /etc/clamd.d/scan.conf

14行目 : コメント解除
# Default: disabled
LogFile /var/log/clamd.scan

77行目 : コメント解除
# Default: disabled
PidFile /run/clamd.scan/clamd.pid

103行目に追加
#LocalSocket /run/clamd.scan/clamd.sock
LocalSocket /var/run/clamd.scan/clamd.sock

233行目 : コメントアウト(root権限で動作するようにする)
# Run as another user (clamd must be started by root for this option to work)
# Default: don't drop privileges
#User clamscan

3.ウイルス定義ファイル設定

# vi /etc/freshclam.conf

78行目 : コメントにして、下に追加
#DatabaseMirror database.clamav.net
DatabaseMirror db.jp.clamav.net

154 行目あたり : 追加
#NotifyClamd /path/to/clamd.conf
NotifyClamd /etc/clamd.d/scan.conf

4.ウイルス定義ファイル最新化

# freshclam

ClamAV update process started at Wed Jun  3 09:48:41 2026
daily database available for download (remote version: 28019)
Time:    0.4s, ETA:    0.0s [========================>]   22.33MiB/22.33MiB
Testing database: '/var/lib/clamav/tmp.b818ff8240/clamav-8caa3e5000363710a8f37ff13294f73c.tmp-daily.cvd' ...
Database test passed.
daily.cvd updated (version: 28019, sigs: 355457, f-level: 90, builder: svc.clamav-publisher)
main database available for download (remote version: 63)
Time:    0.9s, ETA:    0.0s [========================>]   84.95MiB/84.95MiB
Testing database: '/var/lib/clamav/tmp.b818ff8240/clamav-1b3591ff76d736044ec24e2a5c268130.tmp-main.cvd' ...
Database test passed.
main.cvd updated (version: 63, sigs: 3287027, f-level: 90, builder: tomjudge)
bytecode database available for download (remote version: 339)
Time:    0.0s, ETA:    0.0s [========================>]  275.10KiB/275.10KiB
Testing database: '/var/lib/clamav/tmp.b818ff8240/clamav-c7531e05b04f7b5d8dfd2360a53696d1.tmp-bytecode.cvd' ...
Database test passed.
bytecode.cvd updated (version: 339, sigs: 80, f-level: 90, builder: nrandolp)
WARNING: Clamd was NOT notified: Can't connect to clamd through /var/run/clamd.scan/clamd.sock: No such file or directory

5.Clam AntiVirus起動

clamd起動・自動起動設定

# systemctl start clamd@scan
# systemctl enable clamd@scan

動作確認
# systemctl status clamd@scan
● clamd@scan.service - clamd scanner (scan) daemon
     Loaded: loaded (/usr/lib/systemd/system/clamd@.service; enabled; preset: disabled)
     Active: active (running) since Wed 2026-06-03 09:49:42 JST; 33s ago
 Invocation: 4f4f0d1aa79d4c188c8cb52e86b2449f
       Docs: man:clamd(8)
             man:clamd.conf(5)
             https://www.clamav.net/documents/
   Main PID: 11409 (clamd)
      Tasks: 2 (limit: 22808)
     Memory: 958.5M (peak: 960.5M)
        CPU: 9.895s
     CGroup: /system.slice/system-clamd.slice/clamd@scan.service
             └─11409 /usr/sbin/clamd -c /etc/clamd.d/scan.conf

Jun 03 09:49:42 Lepard systemd[1]: Started clamd@scan.service - clamd scanner (scan) daemon.     
Jun 03 09:49:42 Lepard clamd[11409]: Mail files support enabled.
Jun 03 09:49:42 Lepard clamd[11409]: OLE2 support enabled.
Jun 03 09:49:42 Lepard clamd[11409]: PDF support enabled.
Jun 03 09:49:42 Lepard clamd[11409]: SWF support enabled.
Jun 03 09:49:42 Lepard clamd[11409]: HTML support enabled.
Jun 03 09:49:42 Lepard clamd[11409]: XMLDOCS support enabled.
Jun 03 09:49:42 Lepard clamd[11409]: HWP3 support enabled.
Jun 03 09:49:42 Lepard clamd[11409]: OneNote support enabled.
Jun 03 09:49:42 Lepard clamd[11409]: Self checking every 600 seconds.

6.ウィスルスキャンを実施

■テスト用ウィルスをダウンロードして、ウィスルスキャンを実施

# cd /home
# wget https://secure.eicar.org/eicar.com.txt 
# clamscan --infected --remove --recursive /home
/home/eicar.com.txt: Eicar-Test-Signature FOUND
/home/eicar.com.txt: Removed.

----------- SCAN SUMMARY -----------
Known viruses: 3627865
Engine version: 1.4.3
Scanned directories: 5
Scanned files: 16
Infected files: 1
Data scanned: 0.01 MB
Data read: 0.00 MB (ratio 2.00:1)
Time: 13.646 sec (0 m 13 s)
Start Date: 2026:06:03 09:51:26
End Date:   2026:06:03 09:51:40

/home/eicar.com.txt: Win.Test.EICAR_HDB-1 FOUND
/home/eicar.com.txt: Removed.
Infected files: 1
と表示されウイルスファイルが検知され削除されています

7.ウィルススキャン自動実行スクリプトの導入

スクリプト格納ディレクトリー作成

# mkdir -p /var/www/system

clamscan.sh を次の内容で/var/www/systemに作成

# vi /var/www/system/clamscan.sh

clamscan.shの内容

#!/bin/bash
PATH=/usr/bin:/bin
# excludeopt setup
excludelist=/var/www/system/clamscan.exclude
if [ -s $excludelist ]; then
for i in `cat $excludelist`
do
if [ $(echo "$i"|grep \/$) ]; then
i=`echo $i|sed -e 's/^\([^ ]*\)\/$/\1/p' -e d`
excludeopt="${excludeopt} --exclude-dir=$i"
else
excludeopt="${excludeopt} --exclude=$i"
fi
done
fi
# signature update
freshclam
# virus scan
clamscan --recursive --remove ${excludeopt} /
# chmod 700 /var/www/system/clamscan.sh

8.ウイルススキャン除外ディレクトリー設定

sys ディレクトリ、proc ディレクトリは対象外にする

# echo "/sys/" >> /var/www/system/clamscan.exclude
# echo "/proc/" >> /var/www/system/clamscan.exclude

試しにスクリプトを実施し、システム全体をスキャンする

# /var/www/system/clamscan.sh

----------- SCAN SUMMARY -----------
Known viruses: 3627865
Engine version: 1.4.3
Scanned directories: 14262
Scanned files: 92885
Infected files: 0
Data scanned: 8499.42 MB
Data read: 4293.29 MB (ratio 1.98:1)
Time: 1320.172 sec (22 m 0 s)
Start Date: 2026:06:03 09:54:56
End Date:   2026:06:03 10:16:56

9.ウィルススキャンの定期実行

# crontab -e
0 1 * * * /var/www/system/clamscan.sh > /dev/null 2>&1

メールサーバー インストール

1. Postfix

1.1 インストール
Postfix をインストールして SMTP サーバーを構築します

# dnf -y install postfix

Postfix がインストールされているか確認

# rpm -qa | grep postfix
postfix-lmdb-3.8.5-9.el10.x86_64
postfix-3.8.5-9.el10.x86_64
postfix-perl-scripts-3.8.5-9.el10.x86_64
pcp-pmda-postfix-7.0.3-3.el10.x86_64

1.2 Postfix をサービスへ登録

# systemctl enable postfix.service
Created symlink '/etc/systemd/system/multi-user.target.wants/postfix.service' → '/usr/lib/systemd/system/postfix.service'.

1.3 postfix の設定ファイル、main.cf とmaster.cf ファイルをバックアップ

# cp -p /etc/postfix/main.cf `date '+/etc/postfix/main.cf.%Y%m%d'`
# cp -p /etc/postfix/master.cf `date '+/etc/postfix/master.cf.%Y%m%d'`

1.4 postfix の設定ファイル編集
メール不正中継防止のため、Dovecot の SASL 機能を利用して、送信にも認証を要求するように Postfix を設定します

# vi /etc/postfix/main.cf

100 行目あたりに追加
#myhostname = virtual.domain.tld
myhostname = mail.<ドメイン>

107 行目あたりに自ドメイン名を追加
#mydomain = domain.tld
mydomain = <ドメイン>

122 行目あたりコメントアウト削除
myorigin = $mydomain

136 行目あたりコメントアウト削除
inet_interfaces = all

139 行目あたりコメント
#inet_interfaces = localhost

187 行目あたりをコメントアウト
#mydestination = $myhostname, localhost.$mydomain, localhost

188 行目あたりをコメント解除
mydestination = $myhostname, localhost.$mydomain, localhost, $mydomain

293 行目あたりに追加
#mynetworks = 168.100.189.0/28, 127.0.0.0/8
#mynetworks = $config_directory/mynetworks
#mynetworks = hash:/etc/postfix/network_table
mynetworks = 192.168.11.0/24, 127.0.0.0/8 ←192.168.11.0/24は各自環境に合わす

447 行目あたりコメント削除
メールの格納形式の設定をします。
#home_mailbox = Mailbox
home_mailbox = Maildir/ 

454 行目あたりコメント解除
#mail_spool_directory = /var/mail
mail_spool_directory = /var/spool/mail

602 行目あたりに追加
#smtpd_banner = $myhostname ESMTP $mail_name
#smtpd_banner = $myhostname ESMTP $mail_name ($mail_version)
smtpd_banner = $myhostname ESMTP unknown

以下の内容を最終行に追加
# 送受信メールサイズを 10M に制限
message_size_limit = 10485760
# メールボックスサイズを 1G に制限
mailbox_size_limit = 1073741824
# SMTP-Auth 設定
smtpd_sasl_type = dovecot
smtpd_sasl_path = private/auth
smtpd_sasl_auth_enable = yes
smtpd_sasl_security_options = noanonymous
smtpd_sasl_local_domain = $mydomain
smtpd_recipient_restrictions = permit_mynetworks, permit_auth_destination, permit_sasl_authenticated, reject

1.5 SMTP ポート(25 番ポート) の解放

# firewall-cmd --add-service=smtp --permanent
# firewall-cmd --reload

1.6 Postfix を起動

# systemctl restart --now postfix

2.Dovecotインストール

2.1 dovecotインストール

# dnf -y install dovecot

2.2 dovecot.conf ファイルを編集

# cp -p /etc/dovecot/dovecot.conf `date '+ /etc/dovecot/dovecot.conf.%Y%m%d'`

# vi /etc/dovecot/dovecot.conf

25 行目あたりに追加
# protocols = imap pop3 lmtp
protocols = imap pop3

30行目 : コメント解除
IPv4 のみリスンする場合は [::] を削除
listen = *

2.3 10-auth.conf ファイルを編集

# vi /etc/dovecot/conf.d/10-auth.conf

10行目 : コメント解除し変更
プレーンテキスト認証も許可する場合
disable_plaintext_auth = no

100行目 : 追記
auth_mechanisms = plain login

2.3 10-mail.conf ファイルを編集

# vi /etc/dovecot/conf.d/10-mail.conf

31行目 : 追記
mail_location = maildir:~/Maildir

2.4 10-master.conf ファイルを編集

# vi /etc/dovecot/conf.d/10-master.conf

110-112行目 : コメント解除して追記
# Postfix smtp-auth
unix_listener /var/spool/postfix/private/auth {
mode = 0666
user = postfix
group = postfix
}

2.5 10-ssl.conf ファイルを編集

# vi /etc/dovecot/conf.d/10-ssl.conf

8 行目あたり
「ssl = required」を「ssl = yes」に変更
ssl = yes

2.6 dovecot をサービスに登録し、起動する

# systemctl enable dovecot.service
# systemctl start dovecot.service

2.7 firewalldでPOP/IMAP サービスの許可ポート開放を行う
POP は [110/TCP], IMAP は [143/TCP]

# firewall-cmd --permanent --add-service=pop3
# firewall-cmd --permanent --add-service=imap
# firewall-cmd --reload

3.メールユーザー作成と動作確認

3.1 事前準備
①新規ユーザーの為の前処理
新規でユーザーを追加した場合、自動的にメールの送受信ができるよう設定をします。

# mkdir -p /etc/skel/Maildir/{new,cur,tmp}
# chmod -R 700 /etc/skel/Maildir/
# echo "~/Maildir/"> /etc/skel/.forward
# chmod 600 /etc/skel/.forward

②既存ユーザーのメール環境前処理
すでに作成してあるユーザーがメールの送受信が出来るよう設定をします。

# mkdir -p /home/huong/Maildir/{new,cur,tmp}
# chown -R huong:huong /home/huong/Maildir/
# chmod 700 /home/huong/Maildir
# chmod 700 /home/huong/Maildir/{new,cur,tmp}

3.2 ユーザーアカウント作成

メールクライアントインストール
# dnf -y install s-nail 
# echo 'export MAIL=$HOME/Maildir' >> /etc/profile.d/mail.sh

ユーザー [linux] を追加
# useradd linux
# passwd linux
Changing password for user linux.
New password:
Retype new password:
passwd: password updated successfully

3.3 動作確認 ①
メールユーザーでログインして、テストメールを送る

# su - linux
$ mail linux@localhost
Subject: Test Mail
To: linux@localhost
mail test
^D
-------
(Preliminary) Envelope contains:
To: linux@localhost
Subject: Test Mail
Send this message [yes/no, empty: recompose]? yes

②メール確認

$ mail
s-nail version v14.9.24.  Type `?' for help
/home/linux/Maildir: 1 message 1 new
▸N  1 linux@korodes.com     2026-06-03 10:40   14/406   "Test Mail                              "
& 1
[-- Message  1 -- 14 lines, 406 bytes --]:
Date: Wed, 03 Jun 2026 10:40:03 +0900
To: linux@localhost
Subject: Test Mail
Message-Id: <20260603014003.130362FED68@mail.korodes.com>
From: linux@korodes.com

mail test

& q
Held 1 message in /home/linux/Maildir

3.4 動作確認 ②

Mozilla Thunderbirdにアカウントを設定し、確認します(メールユーザーとしてOSユーザーhuongの場合)
Thunderbirdを起動し、右上の[三本]メニューの[New Account][Email]をクリック

Full name : 任意の名称
Email address : huong@<domain-name>
をそれぞれ入力し、「Continue」クリック

[EDIT CONFIGURATION]をクリック

受信サーバーの設定
[Connection security]を[None]にして[Continue]をクリック

送信サーバーの設定
[Connection security]を[None]にして[Test]をクリック

[Continue]をクリック

[Password]欄にユーザーのパスワードを入力し、[Continue]をクリック

[Continue]をクリック

メールアカウントの作成が成功しましたので、[Finish]をクリック

Mail サーバー : Postfix + Clamav + clamav-milter+SpamAssassin

1.メールのリアルタイムスキャン

①clamav-milterインストール
Clam AntiVirusを使用してメールサーバー側でメールに対するウイルスチェックを行う。
メールサーバーとClam AntiVirusとの連携はclamav-milterを利用して行なう。

# dnf -y install clamav-milter clamav-milter-systemd

➁clamav-milter設定
clamav-milter設定ファイル編集

# vi /etc/mail/clamav-milter.conf

6行目 : コメントアウト
# Comment or remove the line below.
#Example

23-24行目当たり: 追加
# Default: no default
#MilterSocket /run/clamav-milter/clamav-milter.socket
#MilterSocket /tmp/clamav-milter.sock
#MilterSocket inet:7357
MilterSocket /var/run/clamav-milter/clamav-milter.socket ← clamav-milterのUNIXソケット名を指定
MilterSocketMode 660 ← clamav-milterのUNIXソケットのアクセス権を指定

98行目当たり: 追加
# Default: no default
#ClamdSocket tcp:scanner.mydomain:7357
#ClamdSocket unix:/run/clamav/clamd.sock
ClamdSocket unix:/var/run/clamd.scan/clamd.sock ← Clam AntiVirusのUNIXソケット名を指定(/etc/clamd.d/scan.confのLocalSocketオプションに合わせる)

171行目当たり : 追加
# Action to be performed on infected messages
# Default: Quarantine
#OnInfected Quarantine
OnInfected Blackhole ← ウイルス感染メールは破棄

193行目当たり : 追加
# Note that while "Replace" can potentially break DKIM signatures, "Add" may
# confuse procmail and similar filters.
# Default: no
#AddHeader Replace
AddHeader Yes ← メールヘッダにウイルスチェック実施した旨を出力

253行目当たり : コメント解除
# Default: LOG_LOCAL6
LogFacility LOG_MAIL ← ログ出力先をメールログにする

➂clamav-milter起動・自動起動設定

# systemctl start clamav-milter
# systemctl enable clamav-milter

④Postfix・clamav-milter連携設定
Postfix設定ファイル編集

# vi /etc/postfix/main.cf

最終行に下記を追加
milter_default_action = tempfail
smtpd_milters = unix:/var/run/clamav-milter/clamav-milter.socket
non_smtpd_milters = unix:/var/run/clamav-milter/clamav-milter.socket

⑤clamiltグループにpostfixユーザーを追加

# usermod -G clamilt -a postfix

⑥Postfix設定反映

# systemctl restart postfix

⑦Thunderbirdで確認
Thunderbirdで自分宛に空メールを送付し、受信メールのヘッダー表示部分に下記のように
「X-Virus-Scanned: clamav-milter 1.4.3 at Lepard」が表示される

X-Mozilla-Status: 0001
X-Mozilla-Status2: 00000000
Return-Path: xxxxx@xxxxxx.com
X-Original-To: xxxxx@xxxxxx.com
Delivered-To: xxxxx@xxxxxx.com
Received: from [192.168.11.8] (buffalo.setup [192.168.11.1])
  by mail.xxxxx.com (Postfix) with ESMTPA id D670211ECE21
  for xxxxx@xxxxxxx.com; Wed, 3 Jun 2026 10:53:58 +0900 (JST)
Message-ID: 98fefa4c-cbd6-46b4-851f-3db0a642616e@xxxxxx.com
Date: Wed, 3 Jun 2026 10:53:59 +0900
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
From: xxxxx xxxxx@xxxxxx.com
Content-Language: en-US
To: xxxxx xxxxx@xxxxxx.com
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 7bit
X-Virus-Scanned: clamav-milter 1.4.3 at Lepard
X-Virus-Status: Clean

自分自身にメール本文が「X5O!P%@AP[4\PZX54(P^)7CC)7}$EICAR-STANDARD-ANTIVIRUS-TEST-FILE!$H+H*」のメールを送ってみて、メールが破棄されて届かないことを確認する

2.メールのスパム対策

2.1 SpamAssassin・procmail・postfix設定

①SpamAssassin・procmailインストール

# dnf -y install spamassassin procmail

➁procmailの設定
設定をユーザー全員に適用する場合は/etc/procmailrcを作成
各個人毎に設定する場合は、各ユーザホームディレクトリに~/.procmailrcを作成
今回は/etc/procmailrcを作成する

# vi /etc/procmailrc

下記を記述
SHELL=/bin/bash
PATH=/usr/bin:/bin:/usr/local/bin
DROPPRIVS=yes
MAILDIR=$HOME/Maildir
DEFAULT=$MAILDIR/
SPAM=$MAILDIR/.Spam/
LOGFILE=$HOME/.procmail.log # ログ出力先
VERBOSE=ON # 詳細ログ出力
 
# メールヘッダー中に「 X-Spam-*** 」の記述がなければ spamassassin を起動します
:0fw
*!^X-Spam.*
|spamassassin
 
# メールヘッダー中に「 X-Spam-Status: Yes 」の記述があれば、「 .Spam 」ディレクトリにメールを格納します
:0
* ^X-Spam-Status: Yes
$SPAM

➂postfixの設定ファイル編集

# vi /etc/postfix/main.cf
 
477行目あたりに追加
mailbox_command = /usr/bin/procmail -a "$EXTENSION"

④spamassassinの設定ファイル編集

# vi /etc/mail/spamassassin/v310.pre

24 行目あたり行頭の#を削除
loadplugin Mail::SpamAssassin::Plugin::DCC

⑤postfix、spamassassinを再起動

# systemctl restart postfix spamassassin
# systemctl enable spamassassin

⑥Thudrtbirdで確認
自分あてに空メール送信し、ヘッダーに下記のように表示されれば正常

X-Mozilla-Status: 0001
X-Mozilla-Status2: 00000000
Return-Path: xxxxx@xxxxxx.com
X-Spam-Checker-Version: SpamAssassin 4.0.1 (2024-03-26) on Lepard
X-Spam-Level: ***
X-Spam-Status: No, score=3.1 required=5.0 tests=ALL_TRUSTED,EMPTY_MESSAGE,

  MISSING_SUBJECT autolearn=no autolearn_force=no version=4.0.1
--------------------------------------------------

⑦SpamAssassin 設定ファイル最新化スクリプト作成

# cd /var/www/system
# vi spamassassin-update.sh

spamassassin-update.shの内容

#!/bin/bash

cd /etc/mail/spamassassin
wget -q https://github.com/kittyfreak/spamassassin_user_prefs/archive/refs/heads/main.zip
[ $? -ne 0 ] && exit
unzip main.zip >/dev/null 2>&1
[ $? -ne 0 ] && exit
rm -f main.zip
mv spamassassin_user_prefs-main/user_prefs .
rm -rf spamassassin_user_prefs-main
diff user_prefs user_prefs.org > /dev/null 2>&1
if [ $? -ne 0 ]; then
cp user_prefs local.cf
echo "report_safe 0" >> local.cf
echo "rewrite_header Subject ***SPAM***" >> local.cf
# SpamAssassin再起動
if [ -f /etc/rc.d/init.d/spamassassin ]; then
/etc/rc.d/init.d/spamassassin restart > /dev/null
else
systemctl restart spamassassin > /dev/null
fi
fi
cp user_prefs user_prefs.org

spamassassin-update スクリプトに実行権限を付与し、実行

# chmod 700 /var/www/system/spamassassin-update.sh
# /var/www/system/spamassassin-update.sh

/etc/mail/spamassassin ディレクトリにSpamAssassin 設定ファイル(local.cf)が当日日付で
作成されていることを確認

# ls -l /etc/mail/spamassassin

total 1636
drwxr-xr-x 2 root root     40 Jun  3 10:57 channel.d
-rw-r--r-- 1 root root   1649 Nov 29  2024 init.pre
-rw-r--r-- 1 root root 500636 Jun  3 11:06 local.cf
drwx------ 2 root root      6 Nov 29  2024 sa-update-keys
-rw-r--r-- 1 root root     62 Nov 29  2024 spamassassin-default.rc
-rwxr-xr-x 1 root root     39 Nov 29  2024 spamassassin-helper.sh
-rw-r--r-- 1 root root     55 Nov 29  2024 spamassassin-spamc.rc
-rw-r--r-- 1 root root 500588 Apr 30  2023 user_prefs
-rw-r--r-- 1 root root 500588 Jun  3 11:06 user_prefs.org
-rw-r--r-- 1 root root   2262 Jun  3 11:00 v310.pre
-rw-r--r-- 1 root root   1168 Nov 29  2024 v312.pre
-rw-r--r-- 1 root root   2416 Nov 29  2024 v320.pre
-rw-r--r-- 1 root root   1237 Nov 29  2024 v330.pre
-rw-r--r-- 1 root root   1020 Nov 29  2024 v340.pre
-rw-r--r-- 1 root root   1315 Nov 29  2024 v341.pre
-rw-r--r-- 1 root root   1519 Nov 29  2024 v342.pre
-rw-r--r-- 1 root root   1266 Nov 29  2024 v343.pre
-rw-r--r-- 1 root root   1482 Nov 29  2024 v400.pre
-rw-r--r-- 1 root root   1118 Nov 29  2024 v401.pre

SpamAssassin 設定ファイルを最新化するスクリプトが毎日自動実行されるようcron に設定

# crontab -e
0 2 * * * /var/www/system/spamassassin-update.sh > /dev/null 2>&1

2.2 スパムメール振分け設定

SpamAssassinによりメールヘッダにスパムメールの印を付けられたメールはスパム専用メールボックスへ、その他のメールは通常どおりのメールボックスへ配送するようにする。

スパム専用メールボックス作成
既存ユーザーについては、メールボックスにスパム専用メールボックスを追加する。
また、新規ユーザーについては、ユーザー追加時に自動でスパム専用メールボックスが作成されるようにする 。
①スパム専用メールボックス作成スクリプト作成

# vi spamfolder-create

スクリプト内容

#!/bin/bash

for user in `ls /home`
do
    id -u $user > /dev/null 2>&1
    if [ $? -eq 0 ] && [ ! -d /home/$user/Maildir/.Spam/new ]; then
        mkdir -p /home/$user/Maildir/.Spam/new
        mkdir -p /home/$user/Maildir/.Spam/cur
        mkdir -p /home/$user/Maildir/.Spam/tmp
        chmod -R 700 /home/$user/Maildir/.Spam
        chown -R $user:$user /home/$user/Maildir/.Spam
        echo $user
    fi
done

スパム専用メールボックス作成スクリプト実行

# bash spamfolder-create
huong
linux
smbuser

新規ユーザー対策
新規ユーザー追加時に自動でスパム専用メールボックス作成

# mkdir -p /etc/skel/Maildir/.Spam/{new,cur,tmp}
# chmod -R 700 /etc/skel/Maildir/.Spam

➁スパムメール振分け
SpamAssassinがスパム判定したメールはスパム専用メールボックスへ配送する

# vi /etc/procmailrc

以下を最後尾へ追加
# SpamAssassinがスパム判定したメールはスパム専用メールボックスへ配送
:0
*^X-Spam-Flag: YES
$HOME/Maildir/.Spam/

➂確認
自分自身に空メールを送ると、受信したメールのヘッダに以下のメッセージが付加されている

X-Mozilla-Status: 0001
X-Mozilla-Status2: 00000000
Return-Path: xxxxx@xxxxxx.com
X-Spam-Checker-Version: SpamAssassin 4.0.1 (2024-03-26) on Lepard
X-Spam-Level: **
X-Spam-Status: No, score=2.3 required=13.0 tests=ALL_TRUSTED,

  CONTENT_TYPE_PRESENT,EMPTY_MESSAGE autolearn=no autolearn_force=no
  version=4.0.1

④スパムチェック確認
自分自身にメール本文が「XJS*C4JDBQADN1.NSBN3*2IDNEN*GTUBE-STANDARD-ANTI-UBE-TEST-EMAIL*C.34X」のメールを送るとメールは配信されずSpamフォルダへ振り分けられていることを確認する(.Spam/newフォルダのファイルを開いてみる)
ヘッダーには次のように記載されている

X-Spam-Checker-Version: SpamAssassin 4.0.1 (2024-03-26) on Lepard
X-Spam-Flag: YES
X-Spam-Level: ********************************************
X-Spam-Status: Yes, score=1001.8 required=13.0 tests=ALL_TRUSTED,
     CONTENT_TYPE_PRESENT,GTUBE,HTML_MESSAGE,MPART_ALT_DIFF,
     MULTIPART_ALTERNATIVE autolearn=no autolearn_force=no version=4.0.1
X-Spam-Report:
     * 0.1 ALL_TRUSTED Passed through trusted hosts only via SMTP
     * 0.1 MULTIPART_ALTERNATIVE Multipart/alternative
     * -0.1 CONTENT_TYPE_PRESENT exists:Content-Type
     * 1000 GTUBE BODY: Generic Test for Unsolicited Bulk Email
     * 1.0 HTML_MESSAGE BODY: HTML included in message
     * 0.7 MPART_ALT_DIFF BODY: HTML and text parts are different