さくらVPS契約してみた やり直しその3

3. アプリ色々

直接は関係ないが、この後必要になる wget コマンドを入れておく。

sudo dnf install wget

3.1. Clam AntiVirus

Clam AntiVirus は Linux系で使えるアンチウイルスソフト。

sudo dnf --enablerepo=epel install clamav clamav-scanner-systemd clamav-update

3.1.1. 設定変更

vi /etc/clamd.d/scan.conf
### 以下はコメント解除
LogFile /var/log/clamd.scan
LogFileMaxSize 2M
LogTime yes
LogRotate yes
LocalSocket /run/clamd.scan/clamd.sock
FixStaleSocket yes
ExcludePath ^/proc/
ExcludePath ^/sys/
### 以下は変更
User clamscan
 ↓
User root

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

/etc/freshclam.conf
### 以下はコメント解除
UpdateLogFile /var/log/freshclam.log
LogFileMaxSize 2M
LogTime yes
LogRotate yes
### 以下は変更
#DatabaseOwner clamupdate
 ↓
DatabaseOwner root
DatabaseMirror database.clamav.net
 ↓
DatabaseMirror db.jp.clamav.net
#NotifyClamd /path/to/clamd.conf
 ↓
NotifyClamd /etc/clamd.d/scan.conf

ここまで出来たら、ウイルス定義ファイルを更新し、サービスを有効化、起動しておく。

sudo freshclam -u root
sudo systemctl enable clamd@scan
sudo systemctl start clamd@scan

最初は、定義ファイルを更新しないままデーモンを起動しようとしたらエラーとなり、定義ファイルを更新してからだと、時間はかなりかかったもののデーモンは起動した。サーバー再起動でデーモンが立ち上がってくることも確認できた。

手動スキャンは以下のコマンド。

clamscan --infected --remove --recursive [ディレクトリ名]

あとは、スキャン用のスクリプトを作って、cronで定期チェックをかけるようにする。

作るファイルは2つ。cronで回すので、root でファイルの作成& crontab の設定まで行う。

まずはスクリプト本体。

vi /root/script/clamscan
#!/bin/bash
PATH=/usr/bin:/bin
# clamd update
yum -y update clamav-server clamav-data clamav-update clamav-filesystem clamav clamav-scanner-systemd clamav-devel clamav-lib clamav-server-systemd > /dev/null 2>&1
# excludeopt setup
excludelist=/root/script/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
# virus scan
CLAMSCANTMP=`mktemp`
clamscan --recursive --remove ${excludeopt} / > $CLAMSCANTMP 2>&1
[ ! -z "$(grep FOUND$ $CLAMSCANTMP)" ] && \
# report mail send
grep FOUND$ $CLAMSCANTMP | mail -s "Virus Found in `hostname`" root
rm -f $CLAMSCANTMP

お次は、除外ディレクトリの設定ファイル。

vi /root/script/clamscan.exclude
/dev/
/etc/
/media/
/mnt/
/opt/
/proc/
/run/
/srv/
/sys/
/usr/
/var/

ファイル名は cron からアクセスできる場所にあれば別に何でもよい。スクリプト内に除外ファイルのパスを直書きしてるので、そこに齟齬が無いように。

あとは、crontab で登録。

chmod +x clamscan
crontab -e
===
MAILTO="test@hogehoge.com"
0 3 * * * /root/script/clamscan
===

まだメールサーバーをインストールして無いので、多分メールは飛ばないと思うが、スクリプトに問題が無ければ、毎日午前3時にスキャンが走るようになる。

3.2. logwatch

実際にメールを受け取るにはメールサーバーの設定が必要だが、とりあえず、先に logwatch での監視の設定だけやっておく。

設定ファイルは、デフォルトを全コピーして必要箇所だけ変える…という情報が多かったが、別にローカル設定ファイルに最小限だけ書けば良さそうなので、必要な項目だけ、ローカル設定ファイルに書いてみる。

dnf install -y logwatch
vi /etc/logwatch/conf/logwatch.conf
### 通知メールの送信先
MailTo = test@hogehoge.com
### ログの出力レベル
Detail = High (Low/Med/High)
### 通知メールの差出人
MailFrom = (任意)

動作確認は、下記で出来る。なお、cron にはインストールした時点で登録されている。

### 標準出力に表示
logwatch --output stdout
### 設定したアドレスにメールで送信
logwatch --output mail
### cronに登録されているのが確認できる
ls -la /etc/cron.daily/0logwatch
-rwxr-xr-x 1 root root 434  5月 11  2019 /etc/cron.daily/0logwatch

3.3. RKHunter

Webサイトなどを運営していると、ファイル改ざんの被害にあうこともあるが、そういった改ざん事案に使われる、rootkit の検出ツールに RKHunter というのがあるので、それも入れておく。

dnf --enablerepo=epel install -y rkhunter
vi /etc/sysconfig/rkhunter
===
MAILTO=root@localhost → 必要に応じて、メールアドレスを変更。
DIAG_SCAN=no → yes に変更して、詳細スキャンできるようにする。
===
### データベース更新
rkhunter --update 
### 現時点のシステムのファイル情報を反映
rkhunter --propupd 
### チェックの実行 逐一Enter押下が求められるので、うっとうしければ"--sk"オプションを付ける。
rkhunter --check --sk
コメントはまだありません

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

CAPTCHA