MiracleLinux ; ウイルス対策 , メールサーバー

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

1.Clam AntiVirusインストール

# dnf –enablerepo=epel -y install clamav clamav-update clamav-scanner-systemd

2.ウイルス定義ファイル更新設定

# vi /etc/freshclam.conf ← ウイルス定義ファイル更新設定ファイル編集
●75行目
「DatabaseMirror database.clamav.net」の行頭に「#」を挿入し、
「DatabaseMirror db.jp.clamav.net」を追加
#DatabaseMirror database.clamav.net
DatabaseMirror db.jp.clamav.net
●151 行目あたり
「NotifyClamd /etc/clamd.d/scan.conf」を追加
#NotifyClamd /path/to/clamd.conf
NotifyClamd /etc/clamd.d/scan.conf
3.ウイルス定義ファイル最新化
# freshclam ← ウイルス定義ファイル最新化
ClamAV update process started at Tue Mar 10 10:22:58 2020
daily database available for download (remote version: 25746)
4.Clam AntiVirus設定ファイル編集

# vi /etc/clamd.d/scan.conf
●14行目
# Default: disabled
LogFile /var/log/clamd.scan ← コメント解除
●77行目
# Default: disabled
PidFile /run/clamd.scan/clamd.pid ← コメント解除
●96行目
# 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 ← コメント解除
●219行目
# Run as another user (clamd must be started by root for this option to work)
# Default: don’t drop privileges
#User clamscan ← 行頭に#を追加してコメントアウト(root権限で動作するようにする)

5.Clam AntiVirus起動

# systemctl start clamd@scan ← clamd起動
# systemctl enable clamd@scan ← clamd自動起動設定
Created symlink /etc/systemd/system/multi-user.target.wants/clamd@scan.service → /usr/lib/systemd/system/clamd@.service.
# systemctl is-enabled clamd@scan
enabled
# systemctl status clamd@scan ← 動作確認
clamd@scan.service – clamd scanner (scan) daemon
Loaded: loaded (/usr/lib/systemd/system/clamd@.service; enabled; vendor preset: disabled)
Active: active (running)since Sat 2022-01-22 15:57:41 JST; 57s ago
Docs: man:clamd(8)
man:clamd.conf(5)
https://www.clamav.net/documents/
Main PID: 190805 (clamd)
Tasks: 2 (limit: 4180)
Memory: 416.2M
CGroup: /system.slice/system-clamd.slice/clamd@scan.service
mq190805 /usr/sbin/clamd -c /etc/clamd.d/scan.conf
1月 22 15:57:41 Lepard clamd[190805]: ELF support enabled.
1月 22 15:57:41 Lepard clamd[190805]: Mail files support enabled.
1月 22 15:57:41 Lepard clamd[190805]: OLE2 support enabled.
1月 22 15:57:41 Lepard clamd[190805]: PDF support enabled.
6.ウィスルスキャンを実施
■テスト用ウィルスをダウンロードして、ウィスルスキャンを実施
# wget http://www.eicar.org/download/eicar.com
# clamscan –infected –remove –recursive
/root/eicar.com: Eicar-Test-Signature FOUND ← ウィルス検知
/root/eicar.com: Removed. ← ウィルス削除
———– SCAN SUMMARY ———–
Known viruses: 6780306
Engine version: 0.100.2
Scanned directories: 5
Scanned files: 12
Infected files: 1 ←1 つのウィルスを検知した
Data scanned: 0.03 MB
Data read: 0.02 MB (ratio 2.00:1)
Time: 12.810 sec (0 m 12 s)
7.ウィルススキャン自動実行スクリプトの導入
# mkdir -p /var/www/system
# cd /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} /

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

# chmod 700 clamscan.sh
# echo “/sys/” >> /var/www/system/clamscan.exclude
# echo “/proc/” >> /var/www/system/clamscan.exclude
sys ディレクトリ、proc ディレクトリは対象外にする
9.ウィルススキャンの定期実行
# crontab -e
0 1 * * * /var/www/system/clamscan.sh > /dev/null 2>&1

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

1. Postfixのインストール

1.必要なソフトウェアのインストール

# dnf -y install postfix dovecot cyrus-sasl cyrus-sasl-plain 
# systemctl enable postfix
# systemctl enable dovecot
# systemctl enable saslauthd
# dnf install cyrus-sasl-md5
Postfix がインストールされているか確認
# rpm -qa | grep postfix
postfix-3.5.8-2.el8.x86_64
pcp-pmda-postfix-5.3.1-5.el8.x86_64
postfix-perl-scripts-3.5.8-2.el8.x86_64
2.Postfix をサービスへ登録
# systemctl enable postfix.service
Created symlink from /etc/systemd/system/multi-user.target.wants/postfix.service to /usr/lib/systemd/system/postfix.service.
# systemctl is-enabled postfix.service
enabled
3.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’`
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
5.既存ユーザーの為の前処理
# mkdir -p /home/<ユーザー名>/Maildir/{new,cur,tmp}
# chown -R <ユーザー名>:<ユーザー名> /home/<ユーザー名>/Maildir/
# chmod 700 /home/<ユーザー名>/Maildir
# chmod 700 /home/<ユーザー名>/Maildir/{new,cur,tmp}
6.SMTP 認証設定ファイルの編集
# cp -p /etc/sasl2/smtpd.conf `date ‘+ /etc/sasl2/smtpd.conf.%Y%m%d’`
# vi /etc/sasl2/smtpd.conf
●1 行目、2 行目コメントアウトし、下記追記
# pwcheck_method: saslauthd
# mech_list: plain login
pwcheck_method: auxprop 
auxprop_plugin: sasldb 
mech_list: cram-md5 digest-md5 plain login
7.saslauthd のサービス登録と起動
# systemctl enable saslauthd.service
Created symlink from /etc/systemd/system/multi -user.target.wants/saslauthd.service to /usr/lib/systemd/sy stem/saslauthd.service.
# systemctl is-enabled saslauthd.service
enabled
# systemctl start saslauthd.service
8.Postfix ユーザ(例: puser)の作成

# useradd -s /sbin/nologin puser
# passwd puser

SMTP-AUTH パスワードの設定
# echo “<任意のパスワード>” | saslpasswd2 -p -u <ドメイン> -c puser

登録したユーザーを確認し、ファイル/etc/sasldb2 のグループ権限を
postfix が読めるように、postfix グループに変更します。
# sasldblistusers2
puser@<ドメイン>: userPassword

postfix が読めるように、postfix グループに変更
# chgrp postfix /etc/sasldb2

9.Postfix 設定ファイル編集

# vi /etc/postfix/main.cf
●96 行目あたりに追加
#myhostname = virtual.domain.tld
myhostname = mail.<ドメイン>
●103 行目あたりに自ドメイン名を追加
#mydomain = domain.tld
mydomain = <ドメイン>
●119 行目あたりコメントアウト削除
myorigin = $mydomain
●135 行目あたり変更
inet_interfaces = all
●183 行目あたりに追加
183 行目あたりをコメントアウトし、184 行目に追加します。
#mydestination = $myhostname, localhost.$mydomain, localhost
mydestination = $myhostname, localhost.$mydomain, localhost, $mydomain
●285 行目あたりに追加
#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は各自環境に合わす
●440 行目あたりコメントア削除削除
メールの格納形式の設定をします。
#home_mailbox = Mailbox
home_mailbox = Maildir/ 
●447 行目あたりに追加
#mail_spool_directory = /var/mail
mail_spool_directory = /var/spool/mail 
●593 行目あたりに追加
#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_auth_enable = yes
smtpd_sasl_local_domain = $mydomain
smtpd_recipient_restrictions = permit_mynetworks, permit_sasl_authenticated, reject_unauth_destination

submission ポート(587 番ポート) の設定

# vi /etc/postfix/master.cf
●17 行目、20 行目の行頭にある「#」を削除
submission inet n – n – – smtpd
# -o syslog_name=postfix/submission
# -o smtpd_tls_security_level=encrypt
-o smtpd_sasl_auth_enable=yes
10.Postfix を起動
# postmap hash:/etc/postfix/virtual 
# systemctl start postfix.service

2.Dovecotインストール

1.dovecot.conf ファイルを編集
# 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.10-auth.conf ファイルを編集

# vi /etc/dovecot/conf.d/10-auth.conf
●10行目 : コメント解除し変更
プレーンテキスト認証も許可する場合
disable_plaintext_auth = no
●100行目 : 追記
auth_mechanisms = plain login
3.10-mail.conf ファイルを編集
# vi /etc/dovecot/conf.d/10-mail.conf
●30行目 : コメント解除
mail_location = maildir:~/Maildir
4.10-master.conf ファイルを編集
# vi /etc/dovecot/conf.d/10-master.conf
●107-109行目 : コメント解除して追記
# Postfix smtp-auth
unix_listener /var/spool/postfix/private/auth {
mode = 0666
user = postfix
group = postfix
}
5.10-ssl.conf ファイルを編集
# vi /etc/dovecot/conf.d/10-ssl.conf
●8 行目あたり
「ssl = required」を「ssl = yes」に変更
ssl = yes
6.dovecot をサービスに登録し、起動する
# systemctl enable dovecot.service
Created symlink from /etc/systemd/system/multi-user.target.wants/dovecot.service to /usr/lib/systemd/system/dovecot.service.
# systemctl is-enabled dovecot.service
Enabled
# systemctl start dovecot.service
7.firewalldでポート開放を行う
# firewall-cmd –permanent –add-service=pop3 
# firewall-cmd –permanent –add-service=imap 
# firewall-cmd –permanent –add-service=smtp 
# firewall-cmd –reload

Mail サーバー : Postfix + Clamav + Amavisd+SpamAssassin

1.メールのリアルタイムスキャン

①Amavisd および Clamav Server をインストール
# dnf -y install amavisd-new clamd perl-Digest-SHA1 perl-IO-stringy
➁設定ファイル編集
# vi /etc/clamd.d/scan.conf
●81行目:コメント解除
TemporaryDirectory /var/tmp
# touch /var/log/clamd.scan
# chown clamscan. /var/log/clamd.scan
# systemctl enable  clamd@scan
➂Amavisd を設定して起動

# vi /etc/amavisd/amavisd.conf
●13 行目あたり行頭の#削除
@bypass_spam_checks_maps = (1); # controls running of anti-spam code 
● 23行目:自ドメイン名に変更
$mydomain = ‘ドメイン名’;
●28 行目あたりコメントアウト
#$QUARANTINEDIR = undef; # -Q
●125 行目あたりコメントアウト
# $virus_admin = undef; # notifications recip
●158行目:コメント解除して自ホスト名に変更
$myhostname = ‘mail.ドメイン名‘;
●163,164 行目あたり行頭の「#」を削除
$notify_method = ‘smtp:[127.0.0.1]:10025’; 
$forward_method = ‘smtp:[127.0.0.1]:10025’; # set to undef with milter!

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

④Postfix の設定

# vi /etc/postfix/main.cf
# 最終行に追記
content_filter=smtp-amavis:[127.0.0.1]:10024# vi /etc/postfix/master.cf
# 最終行に追記 
smtp-amavis unix – – n – 2 smtp
-o smtp_data_done_timeout=1200
-o smtp_send_xforward_command=yes
-o disable_dns_lookups=yes
127.0.0.1:10025 inet n – n – – smtpd
-o content_filter=
-o local_recipient_maps=
-o relay_recipient_maps=
-o smtpd_restriction_classes=
-o smtpd_client_restrictions=
-o smtpd_helo_restrictions=
-o smtpd_sender_restrictions=
-o smtpd_recipient_restrictions=permit_mynetworks,reject
-o mynetworks=127.0.0.0/8
-o strict_rfc821_envelopes=yes
-o smtpd_error_sleep_time=0
-o smtpd_soft_error_limit=1001
-o smtpd_hard_error_limit=1000

# systemctl restart postfix

2.メールのスパム対策

 ①スパム対策としてSpamAssassin を導入
# dnf -y install spamassassin spamass-milter-postfix
# systemctl start spamassassin
# systemctl enable spamassassin
Created symlink /etc/systemd/system/multi-user.target.wants/spamassassin.service → /usr/lib/systemd/system/spamassassin.service.
②SpamAssassin の設定
# vi /etc/mail/spamassassin/v310.pre
●24 行目あたり行頭の#を削除
loadplugin Mail::SpamAssassin::Plugin::DCC
③SpamAssassin 設定ファイル最新化スクリプト
# cd /var/www/system
# vi /var/www/system/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 ] && exitunzip main.zip >/dev/null 2>&1
[ $? -ne 0 ] && exit
rm -f main.zipmv 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 スクリプトに実行権限を付与し、実行

# chmod 700 /var/www/system/spamassassin-update.sh
# /var/www/system/spamassassin-update.sh
/etc/mail/spamassassin ディレクトリにSpamAssassin 設定ファイルが当日日付で
作成されていることを確認
# ls -l /etc/mail/spamassassin
合計 1520
drwxr-xr-x 2 root root 4096 1月 21 22:24 channel.d
-rw-r–r– 1 root root 985 12月 12 19:06 init.pre
-rw-r–r– 1 root root 499337 1月 21 23:20 local.cf
drwx—— 2 root root 4096 12月 12 19:06 sa-update-keys
-rw-r–r– 1 root root 62 12月 12 19:06 spamassassin-default.rc
-rwxr-xr-x 1 root root 35 12月 12 19:06 spamassassin-helper.sh
-rw-r–r– 1 root root 55 12月 12 19:06 spamassassin-spamc.rc
-rw-r–r– 1 root root 499289 12月 29 00:02 user_prefs
-rw-r–r– 1 root root 499289 1月 21 23:20 user_prefs.org
-rw-r–r– 1 root root 2523 1月 21 22:52 v310.pre
-rw-r–r– 1 root root 1194 12月 12 19:06 v312.pre
-rw-r–r– 1 root root 2416 12月 12 19:06 v320.pre
-rw-r–r– 1 root root 1237 12月 12 19:06 v330.pre
SpamAssassin 設定ファイルを最新化するスクリプトが毎日自動実行されるようcron に設定
# crontab -e
0 2 * * * /var/www/system/spamassassin-update.sh > /dev/null 2>&1
④Postfix にSpamAssassin を組み込む

# vi /etc/postfix/master.cf
●12行目あたり
11 行目の行頭に「#」を追加し12 行目にSpamAssassin 設定を追加
# smtp inet n – n – – smtpd
smtp inet    n   –   n   –   –   smtpd
-o content_filter=spamassassin
●最終行へ追加
smtp-amavis unix – – n – 2 smtp
-o smtp_data_done_timeout=1200
-o smtp_send_xforward_command=yes
-o disable_dns_lookups=yes

127.0.0.1:10025 inet n – n – – smtpd
-o content_filter=
-o local_recipient_maps=
-o relay_recipient_maps=
-o smtpd_restriction_classes=
-o smtpd_client_restrictions=
-o smtpd_helo_restrictions=
-o smtpd_sender_restrictions=
-o smtpd_recipient_restrictions=permit_mynetworks,reject
-o mynetworks=127.0.0.0/8
-o strict_rfc821_envelopes=yes
-o smtpd_error_sleep_time=0
-o smtpd_soft_error_limit=1001
-o smtpd_hard_error_limit=1000

spamassassin unix – n n – – pipe
user=nobody argv=/usr/bin/spamc -e /usr/sbin/sendmail.postfix -oi -f ${sender} ${recipient}

⑤postfix を再起動

# systemctl restart postfix
タイトルとURLをコピーしました