Contents
1. clamav ( アンチウィルスソフト )の導入
1.1 Clamav をインストール
# zypper -n install clamav
1.2 定義ファイル更新
①ウイルス定義ファイル更新設定
■71行目
「DatabaseMirror database.clamav.net」の行頭に「#」を挿入し、
「DatabaseMirror db.jp.clamav.net」を追加
#DatabaseMirror database.clamav.net
DatabaseMirror db.jp.clamav.net
ClamAV update process started at Fri Jan 7 12:57:13 2022
daily database available for download (remote version: 26414)
Time: 0.8s, ETA: 0.0s [========================>] 54.80MiB/54.80MiB
Testing database: ‘/var/lib/clamav/tmp.30881f985c/clamav-53eb2ff94f8ff97aee1ef1931e2bfb93.tmp-daily.cvd’ …
Database test passed.
daily.cvd updated (version: 26414, sigs: 1969520, f-level: 90, builder: raynman)
main database available for download (remote version: 62)
Time: 1.8s, ETA: 0.0s [========================>] 162.58MiB/162.58MiB
Testing database: ‘/var/lib/clamav/tmp.30881f985c/clamav-d7a663194ed38ed1910f2b29641e9b05.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: 333)
Time: 0.0s, ETA: 0.0s [========================>] 286.79KiB/286.79KiB
Testing database: ‘/var/lib/clamav/tmp.30881f985c/clamav-c959fafa36ee9ae598991e3821d1ad6e.tmp-bytecode.cvd’ …
Database test passed.
bytecode.cvd updated (version: 333, sigs: 92, f-level: 63, builder: awillia2)
WARNING: Clamd was NOT notified: Can’t connect to clamd through /run/clamav/clamd-socket: No such file or directory
1.3 動作確認
# clamscan –infected –remove –recursive
———– SCAN SUMMARY ———–
Known viruses: 8601674
Engine version: 0.103.4
Scanned directories: 8
Scanned files: 5
Infected files: 0
Data scanned: 0.14 MB
Data read: 0.08 MB (ratio 1.80:1)
Time: 14.010 sec (0 m 14 s)
Start Date: 2022:01:07 13:35:00
End Date: 2022:01:07 13:35:14
テスト用ウィルスをダウンロードし、スキャンする
# wget http://www.eicar.org/download/eicar.com
# clamscan –infected –remove –recursive
/root/eicar.com: Win.Test.EICAR_HDB-1 FOUND ← ウィルス検知
/root/eicar.com: Removed. ← ウィルス削除
———– SCAN SUMMARY ———–
Known viruses: 8601674
Engine version: 0.103.4
Scanned directories: 8
Scanned files: 6
Infected files: 1 ←1 つのウィルスを検知した
Data scanned: 0.14 MB
Data read: 0.08 MB (ratio 1.80:1)
Time: 12.965 sec (0 m 12 s)
Start Date: 2022:01:07 13:37:43
End Date: 2022:01:07 13:37:56
1.4 ウィルススキャン自動実行スクリプトの導入
①スクリプト保存ディレクトリーの作成
clamscan.sh を次の内容で/var/www/systemに作成
# vi /srv/www/system/clamscan.sh
#!/bin/bashPATH=/usr/bin:/bin
# excludeopt setup
excludelist=/srv/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} /
スクリプトに実行権限を与える
# echo “/proc/” >> /srv/www/system/clamscan.exclude
0 1 * * * /srv/www/system/clamscan.sh > /dev/null 2>&
2. メールサーバー インストール
2.1 前処理
①新規ユーザーの為の前処理
今後、新規でユーザーを追加した場合、自動的にメールの送受信ができるよう設定をします
# chmod -R 700 /etc/skel/Maildir/
# echo “~/Maildir/”> /etc/skel/.forward
# chmod 600 /etc/skel/.forward
すでに作成してあるユーザーがメールの送受信が出来るよう設定をします。
「一般ユーザー名」の箇所は、あなたが作成した一般ユーザーに変更してください。
# chown -R lan:users/home/[一般ユーザー名]/Maildir/
# chmod 700 /home/[一般ユーザー名]/Maildir
# chmod 700 /home/[一般ユーザー名]/Maildir/{new,cur,tmp}
2.2 Postfixインストール
①Postfix をインストールして SMTPサーバーを構築します
# vi /etc/postfix/main.cf
# 110行目:コメント解除しドメイン名指定
mydomain = korodes.com ←自ドメイン名
# 126行目:コメント解除
myorigin = $mydomain
# 287行目:コメント解除し自ネットワーク追記
mynetworks = 127.0.0.0/8, 192.168.11.0/24 ←自ネットワーク
# 442行目:コメント解除しMaildir形式へ移行
home_mailbox = Maildir/
# 705行目:変更
inet_interfaces = all
# 710行目:追記
mydestination = $myhostname, localhost.$mydomain, localhost, $mydomain
# 711行目:ホスト名指定
myhostname = mail.korode.com ←自ホスト名
# 725,726行目
# 必要に応じてメールボックスサイズを制限 (下例は 1G)
mailbox_size_limit = 1073741824
# 必要に応じて送受信メールサイズを制限 (下例は 10M)
message_size_limit = 10485760
# 738行目:変更
smtpd_recipient_restrictions = permit_mynetworks, permit_auth_destination, permit_sasl_authenticated, reject
# 744-746行目:コメントアウト
#smtp_sasl_auth_enable = no
#smtp_sasl_security_options =
#smtp_sasl_password_maps =
# 747行目あたり:変更
smtpd_sasl_auth_enable = yes
# 752行目あたり:追記
smtpd_sasl_type = dovecot
smtpd_sasl_path = private/auth
smtpd_sasl_security_options = noanonymous
smtpd_sasl_local_domain = $myhostname
# vi /etc/postfix/master.cf
22行目 行頭の#削除 コメントアウト解除
26行目 行頭の#削除 コメントアウト解除
smtp inet n – n – – smtpd
#amavis unix – – n – 4 smtp
# -o smtp_data_done_timeout=1200
# -o smtp_send_xforward_command=yes
# -o disable_dns_lookups=yes
# -o max_use=20
#smtp inet n – n – 1 postscreen
#smtpd pass – – n – – smtpd
#dnsblog unix – – n – 0 dnsblog
#tlsproxy unix – – n – 0 tlsproxy
submission inet n – n – – smtpd
# -o syslog_name=postfix/submission
# -o smtpd_tls_security_level=encrypt
# -o content_filter=smtp:[127.0.0.1]:10024
-o smtpd_sasl_auth_enable=yes
# -o smtpd_tls_auth_only=yes
# -o smtpd_reject_unlisted_recipient=no
# systemctl enable postfix
success
# firewall-cmd –reload
success
2.3 Dovecot インストール
Postfix に SASL 機能が提供できるよう Dovecot を設定します。
# vi /etc/dovecot/dovecot.conf
# 30行目:コメント解除(IPv6をリスンしない場合「, ::」削除)
listen = *, ::
# vi /etc/dovecot/conf.d/10-auth.conf
# 10行目:コメント解除し変更(プレーンテキスト認証も許可する)
disable_plaintext_auth = no
# 100行目:追記
auth_mechanisms = plain login
# vi /etc/dovecot/conf.d/10-mail.conf
# 30行目:コメント解除
mail_location = maildir:~/Maildir
# vi /etc/dovecot/conf.d/10-master.conf
# 106-108行目:コメント解除し追記
# Postfix smtp-auth
unix_listener /var/spool/postfix/private/auth {
mode = 0666
user = postfix
group = postfix
}
③Dovecot起動と自動実行
# systemctl enable dovecot
Created symlink /etc/systemd/system/multi-user.target.wants/dovecot.service → /usr/lib/systemd/system/dovecot.service.
POP は 110/TCP, IMAP は 143/TCP を使用します
success
# firewall-cmd –reload
success
2.4 作動確認
ただし、お使いのプロバイダーによっては送信サーバーに587番ポートを使用する場合がありますので
firewall設定で587を解放しておきます。
# firewall-cmd –reload
Thunderbirdを起動し、「ツール」メニューから「アカウント設定」選択 ↓
「アカウント操作」の「メールアカウント追加」選択 ↓
次の通り各項目に入力し、「手動設定」クリック ↓
あなたのお名前 : 任意の名前
メールアドレス : <メールサーバのユーザー名>@<ドメイン名>
パスワード : メールサーバのユーザー名のパスワード
下図の通り設定するが、お使いのプロバイダが送信サーバーで25番ポートが許されている場合は「587」のかわりに「25」でもよい。「完了」をクリック ↓
警告画面が出ますが下図のようにチェックを入れ「確認」をクリック
3. Mail サーバー : Postfix + Clamav + Amavisd
Postfix と Clamav を連携させて 送受信メールをリアルタイムスキャンできるように設定します
3.1 Amavisd および Clamav Server をインストール
# systemctl start clamd
# systemctl enable clamd
Created symlink /etc/systemd/system/multi-user.target.wants/clamd.service → /usr/lib/systemd/system/clamd.service.
3.2 Amavisd を設定
①設定ファイル編集
# 20行目:自ドメイン名に変更
$mydomain = ‘korodes.com’;
# 152行目:コメント解除して自ホスト名に変更
$myhostname = ‘mail.korodes.com’;
# 154,155行目:コメント解除
$notify_method = ‘smtp:[127.0.0.1]:10025’;
$forward_method = ‘smtp:[127.0.0.1]:10025’;
# systemctl start amavis spamd
# systemctl enable amavis spamd
Created symlink /etc/systemd/system/multi-user.target.wants/amavis.service → /usr/lib/systemd/system/amavis.service.
Created symlink /etc/systemd/system/multi-user.target.wants/spamd.service → /usr/lib/systemd/system/spamd.service.
3.3 Postfix の設定
# 最終行に下記を追記
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
# 最終行に追記
content_filter=smtp-amavis:[127.0.0.1]:10024
4.ウィルススキャンスクリプト置換
# vi clamscan.exclude
/sys/
/proc/
/etc/snort/rules/
/.snapshots ← openSUSEは大量のsnapshotをとるように設定されておりますので、もし、必要がない方は設定しておく
# mv clamscan.sh clamscan.sh_bak
# vi clamscan.sh
#!/bin/bash
PATH=/usr/bin:/bin
MAILTO=”<任意のメールアドレス>”
# excludeopt setup
excludelist=/srv/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 2>&1 > /dev/null
# virus scan
CLAMSCANTMP=`mktemp`
#clamscan –recursive –remove ${excludeopt} / > $CLAMSCANTMP 2>&1
clamscan –recursive ${excludeopt} / > $CLAMSCANTMP 2>&1
[ ! -z “$(grep FOUND$ $CLAMSCANTMP)” ] && \
# report mail send
grep FOUND$ $CLAMSCANTMP | mail -s “Virus Found in `hostname`” $MAILTO
rm -f $CLAMSCANTMP