Fedora45 : Clamav ( アンチウィルス ) , メールサーバー

1. clamav

1.1 インストール

# dnf -y install clamav clamd clamav-update

1.2 設定ファイル編集

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

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

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

103行目 : 追加
# Path to a local socket file the daemon will listen on.
# Default: disabled (must be specified by a user)
#LocalSocket /run/clamd.scan/clamd.sock
#LocalSocket /run/clamd.scan/clamd.sock
LocalSocket /var/run/clamd.scan/clamd.sock

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

1.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

1.4 ウイルス定義ファイル最新化

# freshclam
ClamAV update process started at Sun Nov  8 13:25:33 2026
daily database available for download (remote version: 28176)
Time:    0.3s, ETA:    0.0s [========================>]   22.36MiB/22.36MiB
Testing database: '/var/lib/clamav/tmp.db6f6abbcb/clamav-2903aab0c7e2e50b9dec8e4f415ba219.tmp-daily.cvd' ...
Database test passed.
daily.cvd updated (version: 28176, sigs: 355854, f-level: 90, builder: svc.clamav-publisher)
main database available for download (remote version: 63)
Time:    0.8s, ETA:    0.0s [========================>]   84.95MiB/84.95MiB
Testing database: '/var/lib/clamav/tmp.db6f6abbcb/clamav-12a8942cdf6d04913d0980902924c59c.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.1s, ETA:    0.0s [========================>]  275.10KiB/275.10KiB
Testing database: '/var/lib/clamav/tmp.db6f6abbcb/clamav-99d7e479bcaccacdbab5a727daab01c8.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

1.5 Clam AntiVirus起動・自動起動設定

# systemctl start clamd@scan
# systemctl enable clamd@scan
Created symlink /etc/systemd/system/multi-user.target.wants/clamd@scan.service → /usr/lib/systemd/system/clamd@.service.

動作確認
# systemctl status clamd@scan
● clamd@scan.service - clamd scanner (scan) daemon
     Loaded: loaded (/usr/lib/systemd/system/clamd@.service; enabled; preset: disabled)
    Drop-In: /usr/lib/systemd/system/service.d
             └─10-timeout-abort.conf
     Active: active (running) since Sun 2026-11-08 13:26:54 JST; 21s ago
 Invocation: fa8b09e4a74b443e8f2080266c0e5f4d
       Docs: man:clamd(8)
             man:clamd.conf(5)
             https://www.clamav.net/documents/
   Main PID: 4109 (clamd)
      Tasks: 2 (limit: 4564)
     Memory: 943.3M (peak: 956.4M)
        CPU: 7.148s
     CGroup: /system.slice/system-clamd.slice/clamd@scan.service
             └─4109 /usr/sbin/clamd -c /etc/clamd.d/scan.conf

Nov 08 13:26:54 Lepard clamd[4109]: ELF support enabled.
Nov 08 13:26:54 Lepard clamd[4109]: Mail files support enabled.
Nov 08 13:26:54 Lepard clamd[4109]: OLE2 support enabled.
Nov 08 13:26:54 Lepard clamd[4109]: PDF support enabled.
Nov 08 13:26:54 Lepard clamd[4109]: SWF support enabled.
Nov 08 13:26:54 Lepard clamd[4109]: HTML support enabled.
Nov 08 13:26:54 Lepard clamd[4109]: XMLDOCS support enabled.
Nov 08 13:26:54 Lepard clamd[4109]: HWP3 support enabled.
Nov 08 13:26:54 Lepard clamd[4109]: OneNote support enabled.
Nov 08 13:26:54 Lepard clamd[4109]: Self checking every 600 seconds.

1.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: 3628258
Engine version: 1.4.6
Scanned directories: 5
Scanned files: 12
Infected files: 1
Data scanned: 0.01 MB
Data read: 0.00 MB (ratio 2.00:1)
Time: 10.415 sec (0 m 10 s)
Start Date: 2026:11:08 13:28:27
End Date:   2026:11:08 13:28:37

----------- SCAN SUMMARY -----------
Known viruses: 3628258
Engine version: 1.4.6
Scanned directories: 5
Scanned files: 12
Infected files: 1
Data scanned: 0.01 MB
Data read: 0.00 MB (ratio 2.00:1)
Time: 10.415 sec (0 m 10 s)
Start Date: 2026:11:08 13:28:27
End Date:   2026:11:08 13:28:37

と表示されウイルスファイルが検知されています

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

スクリプトファイル格納ディレクトリー作成

# mkdir -p /var/www/system

システムのフルスキャンスクリプト"clamscan.sh"を/var/www/systemに作成

# vi /var/www/system/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

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

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

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

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

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

試しにスクリプトを実行し、フルスキャンする(時間がかかります)

# /var/www/system/clamscan.sh

----------- SCAN SUMMARY -----------
Known viruses: 3628258
Engine version: 1.4.6
Scanned directories: 9382
Scanned files: 60228
Infected files: 0
Data scanned: 8193.93 MB
Data read: 3362.96 MB (ratio 2.44:1)
Time: 7674.794 sec (127 m 54 s)
Start Date: 2026:11:08 13:34:59
End Date:   2026:11:08 15:42:5

2. メールサーバー (Postfix)

2.1 Postfixのインストール

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

# dnf -y install postfix

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

# rpm -qa | grep postfix
postfix-3.11.7-1.fc45.x86_64

2.2 Postfix をサービスへ登録

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

2.3 postfix の設定ファイル編集

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'`

メール不正中継防止のため、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 行目あたりをコメントアウトし、188 行目をコメント解除
#mydestination = $myhostname, localhost.$mydomain, localhost
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

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

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

2.5 Postfix を起動

# systemctl start postfix

3. メールサーバー (Dovecot)

3.1 Dovecotインストール

# dnf -y install dovecot

3.2 dovecot.conf ファイルを編集

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

# vi /etc/dovecot/dovecot.conf

22 行目あたりのprotocolsを下記のように変更
protocols {
   imap = yes
#  lmtp = yes
   pop3 = yes
}

28行目当たり : 変更
#mail_path = ~/mail
mail_path = ~/Maildir

30行目当たりに追加
auth_allow_cleartext = yes
auth_mechanisms = plain login

48行目当たり : 変更
#ssl = required
ssl = no

最終行に追加
service auth {                                                                                                                                                           
  # Postfix smtp-auth                                                                                                                                                    
  unix_listener /var/spool/postfix/private/auth {                                                                                                                        
     mode = 0666                                                                                                                                                          
     user = postfix                                                                                                                                                       
     group = postfix                                                                                                                                                      
   }                                                                                                                                                                      
}
# IPv4のみ
listen = *

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

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

# systemctl start dovecot.service

3.8 firewalldでPOP/IMAP サービスの許可ポート開放を行う

POP は [110/TCP], IMAP は [143/TCP]

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

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

4.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

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

# 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}

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

メールクライアントインストール

# dnf -y install s-nail 
# echo 'export MAIL=$HOME/Maildir' >> /etc/profile.d/mail.sh

ユーザー [linux] を追加

# useradd linux
# passwd linux
ユーザー linux のパスワードを変更。
New password:
Retype new password:
passwd: all authentication tokens updated successfully.

4.3 動作確認 ①

メールユーザーでログインして、テストメールを送る

# su - linux
$ mail linux@localhost
Subject: Test Mail
To: linux@localhost
test mail
^D   ← 本文終了するには「Ctrl+D」
-------
(Preliminary) Envelope contains:
To: linux@localhost
Subject: Test Mail
Send this message [yes/no, empty: recompose]? y

メールを確認する

$ mail
s-nail version v14.9.25.  Type `?' for help
/home/linux/Maildir: 1 message 1 new
▸N  1 linux@korodes.com     2026-11-08 16:16   17/516   "Test Mail                                                "
& 1
[-- Message  1 -- 17 lines, 516 bytes --]:
Date: Sun, 08 Nov 2026 16:16:05 +0900
To: linux@localhost
Subject: Test Mail
Message-Id: <20261108071605.385D78FA9AB@mail.korodes.com>
From: linux@korodes.com

test mail

& q
Held 1 message in /home/linux/Maildir
You have mail in /home/linux/Maildir

4.4 動作確認 ②

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

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

[EDIT CONFIGURATION]をクリック

受信サーバー・送信サーバーの設定
下図のように設定してを[Connect]クリック

パスワードを入力

メールアカウントの作成が成功しましたので、[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 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行目当たり : 追加
#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.6 at Lepard
X-Virus-Status: Clean

が表示される

X-Mozilla-Status: 0001
X-Mozilla-Status2: 00000000
Return-Path: <xxxxx@xxxxxxx.com>
X-Original-To:xxxxx@xxxxxxx.com
Delivered-To: xxxxx@xxxxxxx.com
Received: from [192.168.11.6] (_gateway [192.168.11.1])
   by mail.xxxxxxx.com (Postfix) with ESMTPA id 76DE4CA688
  for <xxxxx@xxxxxxx.com>; Mon, 09 Nov 2026 13:17:05 +0900 (JST)
Message-ID: <54eca0e1-7c62-40ed-90e4-5a51fe84ff2e@xxxxxxx.com>
Date: Mon, 9 Nov 2026 13:17:05 +0900
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
From: xxxxx <xxxxx@xxxxxxx.com>
Content-Language: en-US
To: xxxxx <xxxxx@xxxxxxx.com>
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 7bit
X-Virus-Scanned: clamav-milter 1.4.6 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・spamass-milter・postfix設定

①SpamAssassin・spamass-milterインストール

# dnf -y install spamassassin spamass-milter-postfix

➁SpamAssassin起動

# systemctl start spamassassin

➂SpamAssassin の設定

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

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

④SpamAssassin 設定ファイル最新化スクリプト

# cd /var/www/system

# vi 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

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 1644
drwxr-xr-x 2 root root     40 Nov  9 13:35 channel.d
-rw-r--r-- 1 root root   1649 Jul 17 09:00 init.pre
-rw-r--r-- 1 root root 500636 Nov  9 13:37 local.cf
drwx------ 2 root root      6 Jul 17 09:00 sa-update-keys
-rw-r--r-- 1 root root     62 Jul 17 09:00 spamassassin-default.rc
-rwxr-xr-x 1 root root     39 Jul 17 09:00 spamassassin-helper.sh
-rw-r--r-- 1 root root     55 Jul 17 09:00 spamassassin-spamc.rc
-rw-r--r-- 1 root root 500588 Apr 30  2023 user_prefs
-rw-r--r-- 1 root root 500588 Nov  9 13:37 user_prefs.org
-rw-r--r-- 1 root root   2262 Nov  9 13:36 v310.pre
-rw-r--r-- 1 root root   1168 Jul 17 09:00 v312.pre
-rw-r--r-- 1 root root   2416 Jul 17 09:00 v320.pre
-rw-r--r-- 1 root root   1237 Jul 17 09:00 v330.pre
-rw-r--r-- 1 root root   1020 Jul 17 09:00 v340.pre
-rw-r--r-- 1 root root   1315 Jul 17 09:00 v341.pre
-rw-r--r-- 1 root root   1519 Jul 17 09:00 v342.pre
-rw-r--r-- 1 root root   1266 Jul 17 09:00 v343.pre
-rw-r--r-- 1 root root   1482 Jul 17 09:00 v400.pre
-rw-r--r-- 1 root root   1118 Jul 17 09:00 v401.pre
-rw-r--r-- 1 root root   1145 Jul 17 09:00 v402.pre

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

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

⑤spamass-milter起動・自動起動設定

# systemctl start spamass-milter

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

⑥Postfix・spamass-milter連携設定

# vi /etc/postfix/main.cf

下記を追加
milter_default_action = tempfail
smtpd_milters = unix:/var/run/clamav-milter/clamav-milter.socket,unix:/run/spamass-milter/postfix/sock  ※既にclamav-milterが定義されている場合
non_smtpd_milters = unix:/var/run/clamav-milter/clamav-milter.socket,unix:/run/spamass-milter/postfix/sock  ※既にclamav-milterが定義されている場合

⑦postfix を再起動

# systemctl restart postfix

⑧Procmail設定
procmail設定ファイル作成

# vi /etc/procmailrc
SHELL=/bin/bash
PATH=/usr/bin:/bin
DROPPRIVS=yes
MAILDIR=$HOME/Maildir
DEFAULT=$MAILDIR/
# ログ出力先
LOGFILE=$HOME/.procmail.log
# 詳細ログ出力
VERBOSE=ON

procmailログローテーション設定ファイル作成

# vi /etc/logrotate.d/procmail
下記記入
/home/*/.procmail.log {
    missingok
    nocreate
    notifempty
}

⑨Postfix・Procmail連携設定

# vi /etc/postfix/main.cf

478行目当たり : 追加
#mailbox_command = /some/where/procmail
#mailbox_command = /some/where/procmail -a "$EXTENSION"
mailbox_command = /usr/bin/procmail ← 追加(Procmailと連携するようにする)

Postfix設定反映

# systemctl restart postfix
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/

➂spamass-milter確認
自分自身に空メールを送ると、受信したメールのヘッダに以下のメッセージが付加されている
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.2
X-Spam-Level: **
X-Spam-Checker-Version: SpamAssassin 4.0.2 (2025-08-27) on Lepard

X-Mozilla-Status: 0001
X-Mozilla-Status2: 00000000
Return-Path: <xxxxx@xxxxxxx.com>
X-Original-To: xxxxx@xxxxxxx.com
Delivered-To: xxxxx@xxxxxxx.com
Received: from [192.168.11.6] (_gateway [192.168.11.1])
  by mail.xxxxxxx.com (Postfix) with ESMTPA id 80D1A149DCF
  for <xxxxx@xxxxxxx.com>; Thu, 30 Apr 2026 13:47:33 +0900 (JST)
Message-ID: <1a668bce-dfc4-4af0-8555-222a3355357b@xxxxxxx.com>
Date: Thu, 30 Apr 2026 13:47:34 +0900
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
From: xxxxx <xxxxx@xxxxxxx.com>
Content-Language: en-US
To: xxxxx <xxxxx@xxxxxxx.com>
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 7bit
X-Virus-Scanned: clamav-milter 1.4.4 at Lepard
X-Virus-Status: Clean
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.2
X-Spam-Level: **
X-Spam-Checker-Version: SpamAssassin 4.0.2 (2025-08-27) on Lepard

④スパムチェック確認
自分自身にメール本文が「XJS*C4JDBQADN1.NSBN3*2IDNEN*GTUBE-STANDARD-ANTI-UBE-TEST-EMAIL*C.34X」のメールを送るとメールは配信されずSpamフォルダへ振り分けられており、メールヘッダーに次の表示が含まれていることを確認する

X-Spam-Flag: YES
X-Spam-Status: Yes, score=1001.8 required=13.0 tests=ALL_TRUSTED,
     CONTENT_TYPE_PRESENT,GTUBE,HTML_FONT_SIZE_HUGE,HTML_MESSAGE,
     MPART_ALT_DIFF,MULTIPART_ALTERNATIVE autolearn=no autolearn_force=no
     version=4.0.2
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
     * 0.0 HTML_FONT_SIZE_HUGE BODY: HTML font size is huge
X-Spam-Level: ************************************************
X-Spam-Checker-Version: SpamAssassin 4.0.2 (2025-08-27) on Lepard