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

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

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

1.Clamavインストール

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

編集内容

●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 /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.ウイルス定義ファイル更新設定

編集内容

●78行目 : コメントにして、下に追加
#DatabaseMirror database.clamav.net
DatabaseMirror db.jp.clamav.net
●154 行目あたり : 追加
#NotifyClamd /path/to/clamd.conf
NotifyClamd /etc/clamd.d/scan.conf

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

5.Clam AntiVirus起動

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

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

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

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

スクリプト保存ディレクトリー作成

ウィルススキャン自動実行スクリプト作成

スクリプト内容

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

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

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

試しにスクリプトを実施してみる

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

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

1. Postfixのインストール

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

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

1.2 Postfix をサービスへ登録

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

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

編集内容

●96 行目 : 追加
#myhostname = virtual.domain.tld
myhostname = mail.<ドメイン>
●103 行目 : 自ドメイン名を追加
#mydomain = domain.tld
mydomain = <ドメイン>
●118 行目 : コメントアウト削除
myorigin = $mydomain
●132 行目 : コメントアウト削除
inet_interfaces = all
●135 行目 : コメントアウト
#inet_interfaces = localhost
●183 行目 : コメントアウト
#mydestination = $myhostname, localhost.$mydomain, localhost
●184 行目 : コメントアウト削除
mydestination = $myhostname, localhost.$mydomain, localhost, $mydomain
●286 行目あたり : 自サーバーnetwork追加(192.168.11.0/24は各自環境に合わす)
mynetworks = 192.168.11.0/24, 127.0.0.0/8
●438 行目 : コメント削除(メールの格納形式の設定をします)
home_mailbox = Maildir/ 
●445 行目 : コメントアウト削除
mail_spool_directory = /var/spool/mail 
●593 行目あたりに追加
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.6 Postfix を起動

2.Dovecotインストール

2.1 dovecotインストール

2.2 dovecot.conf ファイルを編集

編集内容

●25 行目 : 追加
#protocols = imap pop3 lmtp
protocols = imap pop3
●30行目 : コメント解除(IPv4 のみリスンする場合は [::] を削除)
listen = *

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

編集内容

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

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

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

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

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

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

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

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

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

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

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

②メール確認

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を利用して行なう。

➁clamav-milter設定

clamav-milter設定ファイル編集

編集内容

●6行目 : コメントアウト
#Example
●23行目当たり: 追加
MilterSocket /var/run/clamav-milter/clamav-milter.socket ← clamav-milterのUNIXソケット名を指定
MilterSocketMode 660 ← clamav-milterのUNIXソケットのアクセス権を指定
●98行目当たり: 追加
ClamdSocket unix:/var/run/clamd.scan/clamd.sock ← Clam AntiVirusのUNIXソケット名を指定(/etc/clamd.d/scan.confのLocalSocketオプションに合わせる)
●171行目当たり : 追加
OnInfected Blackhole ← ウイルス感染メールは破棄
●193行目当たり : 追加
AddHeader Yes ← メールヘッダにウイルスチェック実施した旨を出力
●253行目当たり : コメント解除
LogFacility LOG_MAIL ← ログ出力先をメールログにする

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

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

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

⑥Postfix設定反映

⑦Thunderbirdで確認
Thunderbirdで自分宛に空メールを送付し、受信メールのヘッダー表示部分に下記のように
「X-Virus-Scanned: clamav-milter 1.4.3 at 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] (buffalo.setup [192.168.11.1])
by mail.xxxxxxx.com (Postfix) with ESMTPA id 7383B113B57D
for xxxxx@xxxxxxx.com; Thu, 1 Jan 2026 10:02:27 +0900 (JST)
Message-ID: f21a16cf-b64f-4245-b99c-efc54d4f9244@xxxxxxx.com
Date: Thu, 1 Jan 2026 10:02:30 +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.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・spamass-milter・postfix設定

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

➁SpamAssassin起動

➂SpamAssassin の設定

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

スクリプト内容

#!/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 スクリプトに実行権限を付与し、実行

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

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

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

⑥Postfix・spamass-milter連携設定

編集追加内容

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 を再起動

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

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

⑨Postfix・Procmail連携設定

Postfix設定反映

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

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

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

スクリプト内容

#!/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. /home/$user/Maildir/.Spam
echo $user
fi
done

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

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

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

➂spamass-milter確認
自分自身に空メールを送ると、受信したメールのヘッダに以下のメッセージが付加されている
X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) 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] (buffalo.setup [192.168.11.1])
by mail.xxxxxxx.com (Postfix) with ESMTPA id 1D223113CA46
for xxxxx@xxxxxxx.com; Thu, 1 Jan 2026 10:24:46 +0900 (JST)
Message-ID: <80a9c3df-bd66-44ca-8723-b76da9415b04@xxxxxxx.com>
Date: Thu, 1 Jan 2026 10:24:47 +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.3 at Lepard
X-Virus-Status: Clean
X-Spam-Status: No, score=5.3 required=13.0 tests=ALL_TRUSTED,
CONTENT_TYPE_PRESENT,EMPTY_MESSAGE,PDS_TONAME_EQ_TOLOCAL_SHORT,
PDS_TONAME_EQ_TOLOCAL_VSHORT autolearn=no autolearn_force=no
version=3.4.6
X-Spam-Level: *****
X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) 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_MESSAGE,MPART_ALT_DIFF,
MULTIPART_ALTERNATIVE autolearn=no autolearn_force=no version=3.4.6
X-Spam-Report:
* 0.1 ALL_TRUSTED Passed through trusted hosts only via SMTP
* -0.1 CONTENT_TYPE_PRESENT exists:Content-Type
* 0.1 MULTIPART_ALTERNATIVE Multipart/alternative
* 1000 GTUBE BODY: Generic Test for Unsolicited Bulk Email
* 0.7 MPART_ALT_DIFF BODY: HTML and text parts are different
* 1.0 HTML_MESSAGE BODY: HTML included in message
X-Spam-Level:************************************************
X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on Lepard

This is a multi-part message in MIME format.
--------------APlZDSJdHKxON0aRHopyNhC9
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 7bit

XJSC4JDBQADN1.NSBN32IDNENGTUBE-STANDARD-ANTI-UBE-TEST-EMAILC.34X

タイトルとURLをコピーしました