「エアコンの安全な修理・適切なフロン回収」はこちら

Debian10でサーバー構築 メールサーバー導入、ウイルス対策

1.  ウイルス対策

ウィルス対策としてLinux 用のフリーのアンチウィルスソフトであるClam AntiVirus を導入します。
このアンチウィルスソフトを導入することで、サーバー全体のウィルススキャンはもちろん、メールサーバーを構築し、設定を行えば、送受信するメールのウィルススキャンも行うことができます。

1.1 ウイル対策ソフトClamav導入

①インストール

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

②ウイルス定義の更新

上記コマンドで、ウイルス定義が更新できるが、下記のようなエラーが出る場合はlog設定を変更して、再度実行。
ERROR: /var/log/clamav/freshclam.log is locked by another process
ERROR: Problem with internal logger (UpdateLogFile = /var/log/clamav/freshclam.log).

上記エラーが出た場合次のように一度ログファイルを削除し、ログロテートの設定を変更しておく。

③設定ファイルを編集

④ウイルス定義の自動更新確認
ウイルス定義の自動更新が行われるサービスが登録されていることを確認する。

次のように表示される

● clamav-freshclam.service - ClamAV virus database updater
Loaded: loaded (/lib/systemd/system/clamav-freshclam.service; enabled; vendor preset: e
Active: active (running) since Fri 2019-08-16 02:00:32 JST; 2 days ago
Docs: man:freshclam(1)
man:freshclam.conf(5)
https://www.clamav.net/documents
Main PID: 888 (freshclam)
Tasks: 1 (limit: 4915)
CGroup: /system.slice/clamav-freshclam.service
└─888 /usr/bin/freshclam -d --foreground=true
8月 18 07:25:02 server freshclam[888]: Sun Aug 18 07:25:02 2019 -> daily.cld is up to d
8月 18 07:25:02 server freshclam[888]: Sun Aug 18 07:25:02 2019 -> bytecode.cld is up t
8月 18 08:25:02 server freshclam[888]: Sun Aug 18 08:25:02 2019 -> Received signal: wak
8月 18 08:25:02 server freshclam[888]: Sun Aug 18 08:25:02 2019 -> ClamAV update proces

尚、/var/log/clamav/freshclam.logファイルにログが記録される。

⑤ウイルスチェックの実行

無害ウィルスをダウンロードして検出するかテストしてみる。(一般ユーザーにログインする)

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

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

①事前にスクリプトファイル格納ディレクトリー(/opt/script)を作成しておく

②スクリプトファイルを作成

③実行権限を与える

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

⑤実行

完了までけっこう時間がかかる
尚、/var/log/clamav/clamscan.logファイルにログが記録される

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

上記例では、毎週月曜日の夜中2時に定期的に実行。

2. メールソフト導入

Postfix は、sendmail に代わるMTA (Mail Transport Agent)として開発されたソフトウェアで、sendmail との互換性が高く、安全、メンテナンスが容易、速い、などの特徴を兼ね備えたメールサーバーです。
また、Postfix はメールを送信するSMTP サーバーとしての機能しか無いため、後半でメール受信のPOP サーバーDovecotのインストールを別途行います。

2.1 Postfix : インストール 設定

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

一般的な構成設定の選択を求められるが、後で手動設定するため [No Configuration] を選択

+------+ Postfix Configuration +-------+
| General type of mail configuration: |
| |
| No configuration |
| Internet Site |
| Internet with smarthost |
| Satellite system |
| Local only |
| |
| |
| <Ok> <Cancel> |
| |
+--------------------------------------+

②設定ファイル(main.cf)編集

設定反映、再起動

③設定ファイル(master.cf)編集

設定反映、再起動

2.2 Dovecot : インストール 設定

①Dovecot をインストール
DovecotをインストールしてPOP/IMAPサーバーを構築します。POP は 110/TCP, IMAP は 143/TCP を使用します。
①Postfix に SASL機能が提供できるように Dovecot を設定します

②設定ファイル(dovecot.conf)編集

③設定ファイル(10-auth.conf)編集

設定ファイル(10-mail.conf)編集

⑤設定ファイル(10-master.conf)編集

設定反映、再起動

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

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

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

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

③OSユーザー [例としてhoge] を追加

④ 追加したユーザーアカウントでログインし、メールの送信テストをします

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

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

①ウィルススキャン有効化

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

③設定ファイル(Main.cf)編集

④設定ファイル(master.cf)編集

正常に設定されると、メール受信のヘッダーに
「X-Virus-Scanned:Debian amavisd-new at 送信元サーバー」の一行が表示されます

2.5 メールサーバーPostfixに spamassassinをインストールしてスパム対策

①インストール

②SpamAssassin の設定の前準備
スパムメール保存用のディレクトリ「.Spam」を Maildir 形式で作成します。まず一般ユーザー(例としてhoge)としてログイン

③Procmail を準備
Procmail がサーバ機にインストールされているかをチェックします。
もし、インストールされていなければインストールしましょう。

Procmail へのパスを以下のコマンドで調べます

④Procmail の設定
設定をメールフィルタの全体をつかさどる「 /etc/procmailrc 」に記述すると全ユーザに適応されます。
各ユーザ個別のメールフィルタファイルである「 /home/username/.procmailrc 」に記述するとそのユーザのみにフィルタが適応されます。
今回は全ユーザに適応させるために「 /etc/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/

⑤Postfix main.cf の編集

⑥設定の反映と起動と動作確認

⑦確認
自分のドメイン宛にメールを送信してみましょう。
そしてメールのヘッダーに以下のような記述があれば設定が正常に行われています。
以下のヘッダーはスパムメールと判定された場合の記述です。

・・省略・・・
X-Spam-Flag: YES
X-Spam-Checker-Version: SpamAssassin 2.64 (2004-01-11) on mail.example.com
X-Spam-Report:
* 0.1 HTML_60_70 BODY: Message is 60% to 70% HTML
* 0.0 HTML_MESSAGE BODY: HTML included in message
・・省略・・・
X-Spam-Status: Yes, hits=8.2 required=5.5 tests=CLICK_BELOW,
FORGED_RCVD_NET_HELO,HTML_60_70,HTML_FONTCOLOR_UNSAFE,
HTML_IMAGE_ONLY_08,HTML_LINK_CLICK_HERE,HTML_MESSAGE,QENCTXT
autolearn=no version=2.64
X-Spam-Level: ********
・・・省略・・・

メールヘッダー中に上記の「X-Spam-***」の記述があればSpamAssassinは正常に動作しています。
「 X-Spam-Status: Yes 」があれば、そのメールはスパムメールだと判定されています。
逆に「 X-Spam-Status: No 」ならば通常のメールとして判定されています。

⑧スパムメールの学習
以下のコマンドですべてのユーザの「.Spam」ディレクトリの中身を全てスパムメールとして学習させます

⑨通常のメールの学習

簡単なスクリプトを記述し、Cron に登録し、定期的に自動で実行するようにします。
スクリプト保存場所は「 /opt/script 」にします。 ファイル名は適当に「 spam-learns.sh 」などにします。
スクリプトを保存した後は、「 chmod 750 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でとりあえず定義する。
[Unit] Description=demo sample node.js program[Service] Type=simple
ExecStart= /usr/local/bin/spam-learns.sh
Restart=always[Install] WantedBy=multi-user.target

Cronに学習スクリプトを登録します

毎日午前4時に学習スクリプトを実行します

⑨自動的に起動するように設定

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