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

Ubuntu Server25.10 : Clamav ( アンチウィルス ) , メールサーバー インストール

1.ウイルス対策ソフトClamav導入

1.1 インストール

尚、clamav関連の設定ファイルは、/etc/clamav/フォルダにインストールされる

1.2 ウイルス定義の更新

設定ファイルを変更

1.3 ウイルスチェックの確認

①手動でウイルスチェックの実行

Infected files: 0 なのでウイルスはありません

②テストウイルスをダウンロードしてウイルス検出
お試し無害ウィルスをダウンロードして検出するかテストしてみる

このように「FOUND」という表示と「Infected files: 1」という表示でウイルスを通知してくれる。又、「--remove」オプションを付けているので、テストウイルスは削除された

1.4 フルスキャンするスクリプトファイルを作成

①clam-full.sh の内容(新規作成)

②実行権限を与える

③ウイルス隔離用フォルダを作成(既にあればOKだが、無いと上記スクリプトで除外ディレクトリに指定しているので実行時エラーになる)

④試しに実行してみる

⑤cronでウイルススキャンの定期実行

2. Mail サーバー

2.1 Postfix : インストール/設定

Postfix をインストールして SMTPサーバーを構築します。SMTP は 25/TCP を使用します。
メール不正中継防止に、後述の Dovecot の SASL機能を利用し、送信にも認証が必要なように Postfix を設定します

①インストール

インストール状況画面
一般的な構成設定の選択を求められるが、後で手動設定するため [No Configuration] を選択

②設定ファイル編集

[main.cf]編集内容

82行目:コメント解除
mail_owner = postfix

108行目:ホスト名指定追加
myhostname = mail.[domain name]

115行目:ドメイン名指定追加
mydomain = [domain name]

133行目 : コメント
#myorigin = /etc/mailname

135行目:コメント解除
myorigin = $mydomain

149行目:コメント解除
inet_interfaces = all

197行目:コメント解除
mydestination = $myhostname, localhost.$mydomain, localhost, $mydomain

240行目:コメント解除
local_recipient_maps = unix:passwd.byname $alias_maps

285行目:コメント解除
mynetworks_style = subnet

302行目:自ネットワーク追記
mynetworks = 127.0.0.0/8, 192.168.11.0/24

423行目:コメント解除
alias_maps = hash:/etc/aliases

434行目:コメント解除
alias_database = hash:/etc/aliases

456行目:コメント解除
home_mailbox = Maildir/

592行目:コメントにしてその下に追記
#smtpd_banner = $myhostname ESMTP $mail_name (Ubuntu)
smtpd_banner = $myhostname ESMTP

666行目:追加
sendmail_path = /usr/sbin/postfix

670行目:コメント解除
newaliases_path = /usr/bin/newaliases

675行目:コメント解除
mailq_path = /usr/bin/mailq

681行目:コメント解除
setgid_group = postdrop

#最終行へ追記:
#送受信メールサイズを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 = $myhostname
smtpd_recipient_restrictions = permit_mynetworks, permit_auth_destination, permit_sasl_authenticated, reject

③master.cf編集

[master.cf]編集内容

19,23行目 : コメント解除
submission inet n - y - - smtpd
# -o syslog_name=postfix/submission
# -o smtpd_forbid_unauth_pipelining=no
# -o smtpd_tls_security_level=encrypt
-o smtpd_sasl_auth_enable=yes
# -o smtpd_tls_auth_only=yes

④設定内容反映

2.2 Dovecot : インストール/設定

DovecotをインストールしてPOP/IMAPサーバーを構築します。POP は 110/TCP, IMAP は 143/TCP を使用します

①Postfix に SASL機能が提供できるように Dovecot を設定

②設定反映

2.3 ポートの開放

2.4 メールユーザーアカウント登録

メール用のユーザーアカウントを登録します。
OS上のユーザーアカウントでメールも利用する場合の設定です
OS上のユーザーアカウントでメールを利用する場合は、追加の設定は不要で OSユーザーを登録するのみです。

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

②メールボックスは Maildir を参照するよう設定

2.5 動作確認 ①

①メールの送信テスト
自身にテストメール送信 [mail (ユーザー名)@(ホスト名)](今回は一般ユーザーhuong)

本文を終了する場合は Ctrl + D キー

➁受信メール確認

2.6 動作確認 

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]をクリック

2.7 メールサーバーPostfixに ClamAV適用

Postfix と Clamav を連携させて 送受信メールをリアルタイムスキャンできるように設定します

①Amavisd および Clamav Daemon をインストールして Clamav Daemon を起動

サーバーがホスト名として完全修飾ドメイン名(FQDN)を使用していない場合、Amavisの起動に失敗する可能性があります。また、OSのホスト名が変更される可能性があるため、有効なホスト名をAmavis構成ファイルに直接設定します

②15-content_filter_modeの編集

③自身のドメイン名を登録

④Main.cf編集

⑤master.cf編集

⑥設定反映

⑦Thuderbird等で自己宛にメールを送ると、受信メールのヘッダーに次のようなメッセージがあれば成功です。

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 localhost (localhost [127.0.0.1])
  by mail.xxxxxxx.com (Postfix) with ESMTP id 88BD160EF5
  for xxxxx@xxxxxxx.com; Sun, 11 Jan 2026 10:04:39 +0900 (JST)
X-Virus-Scanned: Debian amavis at xxxxxxx.com
Received: from mail.xxxxxxx.com ([127.0.0.1])
 by localhost (mail.xxxxxxx.com [127.0.0.1]) (amavis, port 10024) with ESMTP
 id vpD7gdZWgTMP for xxxxx@xxxxxxx.com;

 Sun, 11 Jan 2026 10:04:39 +0900 (JST)
Received: from [192.168.11.8] (xxxxxxx.setup [192.168.11.1])
  by mail.xxxxxxx.com (Postfix) with ESMTPA id 732CA60EF4
  for xxxxx@xxxxxxx.com; Sun, 11 Jan 2026 10:04:39 +0900 (JST)
Message-ID: 39ea6861-71c6-429e-b84e-0435eea70093@xxxxxxx.com
Date: Mon, 21 Apr 2025 06:49:39 +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

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

2.8 メールサーバーPostfixに spamassassin適用

2.5.1 spamassassin をインストール

①インストール

②SpamAssassin の設定

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

[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/init.d/spamd ]; then
/etc/init.d/spamd restart > /dev/null
else
systemctl restart spamd > /dev/null
fi
fi
cp user_prefs user_prefs.org

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

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

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

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

  • スパムメール保存用のディレクトリ「.Spam」を Maildir 形式で作成
  • 作成には対象のユーザで行う

2.5.2 Procmail の前準備

①Procmail のインストール

インストールされていれば、以下の結果が返ってきます

②Procmail の設定
メールフィルタの全体をつかさどる「 /etc/procmailrc 」に記述すると全ユーザに適応されます。
各ユーザ個別のメールフィルタファイルである「 /home/[user]/.procmailrc 」に記述するとそのユーザのみにフィルタが適応されます。
今回は全ユーザに適応させるために「 /etc/procmailrc 」に記述します

procmailrc記載内容(新規作成)

#パスを設定
PATH=/bin:/usr/bin:/usr/local/bin
#メールボックスの設定
MAILDIR=$HOME/Maildir
DEFAULT=$MAILDIR/
#Procmailのログファイル出力先を指定
LOGFILE=$MAILDIR/procmaillog
#ロックファイルのパスを指定
LOCKFILE=$HOME/.lockmail
#メールヘッダー中に「 X-Spam-*** 」の記述がなければ spamassassin を起動します
:0fw
*!^X-Spam.*
|spamassassin
#メールヘッダー中に「 X-Spam-Status: Yes 」の記述があれば、「 .Spam 」ディレクトリにメールを格納します
:0
*^X-Spam-Status: Yes
$MAILDIR/.Spam/

2.5.3 Postfix の設定

① main.cfの編集

②設定の反映と起動

2.5.4 スパムメールの学習

すべてのユーザの「.Spam」ディレクトリの中身を全てスパムメールとして学習させます
①スパムメールの学習

②通常のメールの学習

③スクリプトを作成し、Cron に登録
ファイル名は適当に「 spam-learns.sh 」とし、/opt/script/配下に設置する
スクリプトを保存した後は、「 chmod 750 spam-learns.sh 」として実行可能なアクセス権を与える。

[spam-learns.sh]内容

#! /bin/sh
#スパムメールの学習
/usr/bin/sa-learn --spam /home/*/Maildir/.Spam/cur
#通常のメールを学習
/usr/bin/sa-learn --ham /home/*/Maildir/cur

#スパムメール保存ディレクトリの中身を強制的に消去してよいのなら以下の記述を追加
/bin/rm -f /home/*/Maildir/.Spam/cur

spam-learns.shができたら、定義ファイルを/lib/systemd/system直下に作成する。名前はspam-learns.serviceのように末尾が.serviceになるようにする。
Typeはsimpleで定義する

[spam-learns.service]内容
[Unit]
Description=demo sample node.js program

[Service]
Type=simple
ExecStart= /opt/script/spam-learns.sh
Restart=always

[Install]
WantedBy=multi-user.target

④Thunderbird等で自己宛に空メールを送付し、受信メールヘッダーを確認すると次のようなメッセージあれば成功です

X-Mozilla-Status: 0001
X-Mozilla-Status2: 00000000
Return-Path: xxxxx@xxxxxxx.com
X-Spam-Checker-Version: SpamAssassin 4.0.2-rc2 (2025-08-11) 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.2-rc2
X-Original-To: xxxxx@xxxxxxx.com
Delivered-To: xxxxx@xxxxxxx.com
Received: from localhost (localhost [127.0.0.1])
  by mail.xxxxxxx.com (Postfix) with ESMTP id B35F3416EE
  for xxxxx@xxxxxxx.com; Sun, 11 Jan 2026 10:29:51 +0900 (JST)
X-Virus-Scanned: Debian amavis at xxxxxxx.com
Received: from mail.xxxxxxx.com ([127.0.0.1])
 by localhost (mail.xxxxxxx.com [127.0.0.1]) (amavis, port 10024) with ESMTP
 id mkU1ZPnLVwqK for xxxxx@xxxxxxx.com;
Sun, 11 Jan 2026 10:29:51 +0900 (JST)
Received: from [192.168.11.6] (buffalo.setup [192.168.11.1])
  by mail.xxxxxxx.com (Postfix) with ESMTPA id 9A9A8416E9
  for xxxxx@xxxxxxx.com; Sun, 11 Jan 2026 10:29:51 +0900 (JST)
Message-ID: a9f5dc53-7a3a-4ea1-ba34-92cc76bf13b4@xxxxxxx.com
Date: Sun, 11 Jan 2026 10:29:52 +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
Subject:

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

Return-Path: <xxxxx@xxxxxxx.com>
X-Spam-Checker-Version: SpamAssassin 4.0.2-rc2 (2025-08-11) on Lepard
X-Spam-Flag: YES
X-Spam-Level:
xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
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
     * 1000 GTUBE BODY: Generic Test for Unsolicited Bulk Email
     * -0.1 CONTENT_TYPE_PRESENT exists:Content-Type
     * 0.1 MULTIPART_ALTERNATIVE Multipart/alternative
     * 0.7 MPART_ALT_DIFF BODY: HTML and text parts are different
     * 1.0 HTML_MESSAGE BODY: HTML included in message

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