Contents
Clamav ( アンチウィルスソフト )のインストール
1.Clamavインストール
| 
					 1  | 
						# dnf -y install clamav clamd clamav-update  | 
					
2.Clam AntiVirus設定ファイル編集
| 
					 1 2 3 4 5 6 7 8 9 10 11 12 13 14  | 
						# 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行目 # Run as another user (clamd must be started by root for this option to work) # Default: don't drop privileges #User clamscan ← 行頭に#を追加してコメントアウト(root権限で動作するようにする)  | 
					
3.ウイルス定義ファイル更新設定
| 
					 1 2 3 4 5 6 7 8 9 10  | 
						# vi /etc/freshclam.conf ●78行目 「DatabaseMirror database.clamav.net」の行頭に「#」を挿入し、 「DatabaseMirror db.jp.clamav.net」を追加 #DatabaseMirror database.clamav.net DatabaseMirror db.jp.clamav.net ●154 行目あたり 「NotifyClamd /etc/clamd.d/scan.conf」を追加 #NotifyClamd /path/to/clamd.conf NotifyClamd /etc/clamd.d/scan.conf  | 
					
4.ウイルス定義ファイル最新化
| 
					 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18  | 
						# freshclam ClamAV update process started at Mon Jun 16 16:39:16 2025 daily database available for download (remote version: 27669) Time:    3.7s, ETA:    0.0s [========================>]   61.68MiB/61.68MiB Testing database: '/var/lib/clamav/tmp.dad53cd04c/clamav-f4fc61281155104b36c7a6e82e338938.tmp-daily.cvd' ... Database test passed. daily.cvd updated (version: 27669, sigs: 2075758, f-level: 90, builder: raynman) main database available for download (remote version: 62) Time:   10.9s, ETA:    0.0s [========================>]  162.58MiB/162.58MiB Testing database: '/var/lib/clamav/tmp.dad53cd04c/clamav-f9fa404124a4951dea91b283f06fb335.tmp-main.cvd' ... Database test passed. main.cvd updated (version: 62, sigs: 6647427, f-level: 90, builder: sigmgr) bytecode database available for download (remote version: 336) Time:    0.2s, ETA:    0.0s [========================>]  277.52KiB/277.52KiB Testing database: '/var/lib/clamav/tmp.dad53cd04c/clamav-327853ed8ef1c669b7a852d67e27955a.tmp-bytecode.cvd' ... Database test passed. bytecode.cvd updated (version: 336, sigs: 83, 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起動・自動起動設定
| 
					 1 2 3 4  | 
						# 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.  | 
					
動作確認
| 
					 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24  | 
						# systemctl status clamd@scan ● clamd@scan.service - clamd scanner (scan) daemon      Loaded: loaded (/usr/lib/systemd/system/clamd@.service; enabled; preset: d>      Active: active (running) since Mon 2025-06-16 16:41:44 JST; 19s ago  Invocation: c3c43dd332c241cface8b072b7538207        Docs: man:clamd(8)              man:clamd.conf(5)              https://www.clamav.net/documents/    Main PID: 7664 (clamd)       Tasks: 2 (limit: 10479)      Memory: 1.2G (peak: 1.2G, swap: 778.4M, swap peak: 778.4M)         CPU: 14.995s      CGroup: /system.slice/system-clamd.slice/clamd@scan.service              mq7664 /usr/sbin/clamd -c /etc/clamd.d/scan.conf Jun 16 16:41:44 Lepard clamd[7664]: ELF support enabled. Jun 16 16:41:44 Lepard clamd[7664]: Mail files support enabled. Jun 16 16:41:44 Lepard clamd[7664]: OLE2 support enabled. Jun 16 16:41:44 Lepard clamd[7664]: PDF support enabled. Jun 16 16:41:44 Lepard clamd[7664]: SWF support enabled. Jun 16 16:41:44 Lepard clamd[7664]: HTML support enabled. Jun 16 16:41:44 Lepard clamd[7664]: XMLDOCS support enabled. Jun 16 16:41:44 Lepard clamd[7664]: HWP3 support enabled. Jun 16 16:41:44 Lepard clamd[7664]: OneNote support enabled.  | 
					
6.ウィスルスキャンを実施
■テスト用ウィルスをダウンロードして、ウィスルスキャンを実施
| 
					 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17  | 
						# cd /home # wget https://secure.eicar.org/eicar.com.txt  # clamscan --infected --remove --recursive /home /home/eicar.com.txt: Win.Test.EICAR_HDB-1 FOUND /home/eicar.com.txt: Removed. ----------- SCAN SUMMARY ----------- Known viruses: 8707525 Engine version: 1.4.2 Scanned directories: 5 Scanned files: 16 Infected files: 1 Data scanned: 0.01 MB Data read: 0.00 MB (ratio 2.00:1) Time: 134.690 sec (2 m 14 s) Start Date: 2025:06:16 16:48:04 End Date:   2025:06:16 16:50:18  | 
					
/home/eicar.com.txt: Win.Test.EICAR_HDB-1 FOUND
/home/eicar.com.txt: Removed.
Infected files: 1
と表示されウイルスファイルが検知され削除されています
7.ウィルススキャン自動実行スクリプトの導入
| 
					 1  | 
						# mkdir -p /var/www/system  | 
					
clamscan.sh を次の内容で/var/www/systemに作成
| 
					 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21  | 
						# 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} /  | 
					
| 
					 1  | 
						# chmod 700 /var/www/system/clamscan.sh  | 
					
8.ウイルススキャン除外ディレクトリー設定
sys ディレクトリ、proc ディレクトリは対象外にする
| 
					 1 2  | 
						# echo "/sys/" >> /var/www/system/clamscan.exclude # echo "/proc/" >> /var/www/system/clamscan.exclude  | 
					
試しにスクリプトを実施し、システム全体をスキャンする
| 
					 1 2 3 4 5 6 7 8 9 10 11 12 13  | 
						# /var/www/system/clamscan.sh ----------- SCAN SUMMARY ----------- Known viruses: 8707525 Engine version: 1.4.2 Scanned directories: 13929 Scanned files: 91249 Infected files: 0 Data scanned: 7376.50 MB Data read: 3848.27 MB (ratio 1.92:1) Time: 1176.133 sec (19 m 36 s) Start Date: 2025:06:16 17:04:45 End Date:   2025:06:16 17:24:21  | 
					
9.ウィルススキャンの定期実行
| 
					 1 2  | 
						# crontab -e 0 1 * * * /var/www/system/clamscan.sh > /dev/null 2>&1  | 
					
メールサーバー インストール
1. Postfixのインストール
1.1 インストール
Postfix をインストールして SMTP サーバーを構築します
| 
					 1  | 
						# dnf -y install postfix  | 
					
Postfix がインストールされているか確認
| 
					 1 2 3 4 5  | 
						# rpm -qa | grep postfix postfix-lmdb-3.8.5-8.el10.x86_64 postfix-3.8.5-8.el10.x86_64 postfix-perl-scripts-3.8.5-8.el10.x86_64 pcp-pmda-postfix-6.3.2-5.el10.x86_64  | 
					
1.2 Postfix をサービスへ登録
| 
					 1 2 3 4 5  | 
						# systemctl enable postfix.service Created symlink /etc/systemd/system/multi-user.target.wants/postfix.service → /usr/lib/systemd/system/postfix.service. # systemctl is-enabled postfix.service enabled  | 
					
1.3 postfix の設定ファイル、main.cf とmaster.cf ファイルをバックアップ
| 
					 1 2  | 
						# 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 を設定します
| 
					 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51  | 
						# vi /etc/postfix/main.cf ●100 行目あたりに追加 #myhostname = virtual.domain.tld myhostname = mail.<ドメイン> ●107 行目あたりに自ドメイン名を追加 #mydomain = domain.tld mydomain = <ドメイン> ●122 行目あたりコメントアウト削除 myorigin = $mydomain ●139 行目あたり変更 inet_interfaces = all ●187 行目あたりをコメントアウトし、下に追加します。 #mydestination = $myhostname, localhost.$mydomain, localhost mydestination = $myhostname, localhost.$mydomain, localhost, $mydomain ●294 行目あたりに追加 #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は各自環境に合わす ●448 行目あたりコメント削除 メールの格納形式の設定をします。 #home_mailbox = Mailbox home_mailbox = Maildir/  ●456 行目あたりに追加 #mail_spool_directory = /var/mail mail_spool_directory = /var/spool/mail ●603 行目あたりに追加 #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 番ポート) の解放
| 
					 1 2 3 4  | 
						# firewall-cmd --add-service=smtp --permanent success # firewall-cmd --reload success  | 
					
1.6 Postfix を起動
| 
					 1  | 
						# systemctl restart --now postfix  | 
					
2.Dovecotインストール
2.1 dovecotインストール
| 
					 1  | 
						# dnf -y install dovecot  | 
					
2.2 dovecot.conf ファイルを編集
| 
					 1 2 3 4 5 6 7 8 9  | 
						# 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 ファイルを編集
| 
					 1 2 3 4 5 6  | 
						# vi /etc/dovecot/conf.d/10-auth.conf ●10行目 : コメント解除し変更 プレーンテキスト認証も許可する場合 disable_plaintext_auth = no ●100行目 : 追記 auth_mechanisms = plain login  | 
					
2.3 10-mail.conf ファイルを編集
| 
					 1 2 3  | 
						# vi /etc/dovecot/conf.d/10-mail.conf ●31行目 : 追記 mail_location = maildir:~/Maildir  | 
					
2.4 10-master.conf ファイルを編集
| 
					 1 2 3 4 5 6 7 8  | 
						# 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 ファイルを編集
| 
					 1 2 3 4  | 
						# vi /etc/dovecot/conf.d/10-ssl.conf ●8 行目あたり 「ssl = required」を「ssl = yes」に変更 ssl = yes  | 
					
2.6 dovecot をサービスに登録し、起動する
| 
					 1 2 3 4 5  | 
						# systemctl enable dovecot.service Created symlink /etc/systemd/system/multi-user.target.wants/dovecot.service → /usr/lib/systemd/system/dovecot.service. # systemctl is-enabled dovecot.service Enabled # systemctl start dovecot.service  | 
					
2.7 firewalldでPOP/IMAP サービスの許可ポート開放を行う
POP は [110/TCP], IMAP は [143/TCP]
| 
					 1 2 3  | 
						# firewall-cmd --permanent --add-service=pop3 # firewall-cmd --permanent --add-service=imap # firewall-cmd --reload  | 
					
3.メールユーザー作成と動作確認
3.1 事前準備
①新規ユーザーの為の前処理
新規でユーザーを追加した場合、自動的にメールの送受信ができるよう設定をします。
| 
					 1 2 3 4  | 
						# mkdir -p /etc/skel/Maildir/{new,cur,tmp} # chmod -R 700 /etc/skel/Maildir/ # echo "~/Maildir/"> /etc/skel/.forward # chmod 600 /etc/skel/.forward  | 
					
②既存ユーザーのメール環境前処理
すでに作成してあるユーザーがメールの送受信が出来るよう設定をします。
| 
					 1 2 3 4  | 
						# 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 ユーザーアカウント作成
| 
					 1 2 3 4 5 6 7 8 9 10 11  | 
						メールクライアントインストール # 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 動作確認 ①
①メールユーザーでログインして、テストメールを送る
| 
					 1 2 3 4 5 6 7 8 9 10 11  | 
						# 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]? y  | 
					
②メール確認
| 
					 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17  | 
						$ mail s-nail version v14.9.24.  Type `?' for help /home/linux/Maildir: 1 message 1 new ▸N  1 linux@korodes.com     2025-06-16 18:38   14/408   "Test Mail             " & 1 [-- Message  1 -- 14 lines, 408 bytes --]: Date: Mon, 16 Jun 2025 18:38:00 +0900 To: linux@localhost Subject: Test Mail Message-Id: <20250616093800.6124412BF1B5@mail.korodes.com> From: linux@korodes.com mail test & q Held 1 message in /home/linux/Maildir You have mail in /home/linux/Maildir  | 
					
3.4 動作確認 ②
Mozilla Thunderbirdにアカウントを設定し、確認します(メールユーザーとしてOSユーザーhuongの場合)
①Thunderbirdを起動し、[tools]メニューの[Account Settings][Account Actions][Add Mail Account]
Your full name : 任意の名称
Email address : huong@<domain-name>
Password : huongのパスワード
をそれぞれ入力し、「Configure manually」クリック

➁「INCOMMING SERVER」「OUTGOING SERVER」を下図のように設定し、「Re-test」クリック

➂「サーバーがみつかりました(The following settings were found by probinfg the given server)」が表示される

「Done」をクリックすると、下図の「警告」が表示されるが問題は無いので「Confirm」をクリック

④「アカウントが作成されました(Account syccessfuly created)」が表示されますので「Finish」クリック

Mail サーバー : Postfix + Clamav + clamav-milter+SpamAssassin
1.メールのリアルタイムスキャン
①clamav-milterインストール
Clam AntiVirusを使用してメールサーバー側でメールに対するウイルスチェックを行う。
メールサーバーとClam AntiVirusとの連携はclamav-milterを利用して行なう。
| 
					 1  | 
						#  dnf -y install clamav-milter clamav-milter-systemd  | 
					
➁clamav-milter設定
clamav-milter設定ファイル編集
| 
					 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36  | 
						# 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起動・自動起動設定
| 
					 1 2 3 4  | 
						# systemctl start clamav-milter # systemctl enable clamav-milter Created symlink /etc/systemd/system/multi-user.target.wants/clamav-milter.service → /usr/lib/systemd/system/clamav-milter.service.  | 
					
④Postfix・clamav-milter連携設定
Postfix設定ファイル編集
| 
					 1 2 3 4 5  | 
						# 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ユーザーを追加
| 
					 1  | 
						# usermod -G clamilt -a postfix  | 
					
⑥Postfix設定反映
| 
					 1  | 
						# systemctl restart postfix  | 
					
⑦Thunderbirdで確認
Thunderbirdで自分宛に空メールを送付し、受信メールのヘッダー表示部分に下記のように
「X-Virus-Scanned: clamav-milter 1.4.2 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; Tue, 17 Jun 2025 09:00:57 +0900 (JST)
Message-ID: 98fefa4c-cbd6-46b4-851f-3db0a642616e@xxxxxx.com
Date: Tue, 17 Jun 2025 09:00:58 +0900
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
From: xxxxx xxxxx@xxxxxx.com
Content-Language: en-US
To: xxxxx xxxxx@xxxxxx.com
Subject: 2
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 7bit
X-Virus-Scanned: clamav-milter 1.4.2 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インストール
| 
					 1  | 
						# dnf -y install spamassassin procmail  | 
					
➁procmailの設定
設定をユーザー全員に適用する場合は
/etc/procmailrc を作成
各個人毎に設定する場合は、各ユーザホームディレクトリに
~/.procmailrc を作成
今回は/etc/procmailrc を作成する
| 
					 1  | 
						# vi /etc/procmailrc  | 
					
procmailrcの内容
| 
					 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19  | 
						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の設定ファイル編集
root権限で行う
| 
					 1 2 3 4  | 
						# vi /etc/postfix/main.cf 478行目あたりに追加 mailbox_command = /usr/bin/procmail -a "$EXTENSION"  | 
					
④spamassassinの設定ファイル編集
| 
					 1 2 3 4  | 
						# vi /etc/mail/spamassassin/v310.pre 24 行目あたり行頭の#を削除 loadplugin Mail::SpamAssassin::Plugin::DCC  | 
					
⑤postfix、spamassassinを再起動
| 
					 1 2  | 
						# 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=2.3 required=13.0 tests=ALL_TRUSTED,
CONTENT_TYPE_PRESENT,EMPTY_MESSAGE autolearn=no autolearn_force=no
version=4.0.1
--------------------------------------------------
⑦SpamAssassin 設定ファイル最新化スクリプト作成
| 
					 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27  | 
						# 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 # 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 スクリプトに実行権限を付与し、実行
| 
					 1 2  | 
						# chmod 700 /var/www/system/spamassassin-update.sh # /var/www/system/spamassassin-update.sh  | 
					
/etc/mail/spamassassin ディレクトリにSpamAssassin 設定ファイル(local.cf)が当日日付で
作成されていることを確認
| 
					 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21  | 
						# ls -l /etc/mail/spamassassin total 1660 drwxr-xr-x 2 root root     40 Jun 17 09:22 channel.d -rw-r--r-- 1 root root   1649 Nov 29  2024 init.pre -rw-r--r-- 1 root root 500636 Jun 17 09:24 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 17 09:24 user_prefs.org -rw-r--r-- 1 root root   2262 Jun 17 09:22 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 に設定
| 
					 1 2  | 
						# crontab -e 0 2 * * * /var/www/system/spamassassin-update.sh > /dev/null 2>&1  | 
					
2.2 スパムメール振分け設定
SpamAssassinによりメールヘッダにスパムメールの印を付けられたメールはスパム専用メールボックスへ、その他のメールは通常どおりのメールボックスへ配送するようにする。
スパム専用メールボックス作成
既存ユーザーについては、メールボックスにスパム専用メールボックスを追加する。
また、新規ユーザーについては、ユーザー追加時に自動でスパム専用メールボックスが作成されるようにする 。
①スパム専用メールボックス作成スクリプト作成
| 
					 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16  | 
						# 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  | 
					
スパム専用メールボックス作成スクリプト実行
| 
					 1 2 3  | 
						# bash spamfolder-create huong linux  | 
					
新規ユーザー対策
新規ユーザー追加時に自動でスパム専用メールボックス作成
| 
					 1 2  | 
						# mkdir -p /etc/skel/Maildir/.Spam/{new,cur,tmp} # chmod -R 700 /etc/skel/Maildir/.Spam  | 
					
➁スパムメール振分け
SpamAssassinがスパム判定したメールはスパム専用メールボックスへ配送する
| 
					 1 2 3 4 5 6  | 
						# vi /etc/procmailrc 以下を最後尾へ追加 # SpamAssassinがスパム判定したメールはスパム専用メールボックスへ配送 :0 *^X-Spam-Flag: YES $HOME/Maildir/.Spam/  | 
					
➂確認
自分自身に空メールを送ると、受信したメールのヘッダに以下のメッセージが付加されている
X-Spam-Checker-Version: SpamAssassin 4.0.1 (2024-03-26) on Lepard
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フォルダへ振り分けられていることを確認する
ヘッダーには次のように記載されている
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
