そういうのがいいブログ

SIerで働く30代サラリーマンSEがインフラエンジニアに憧れてLinux・クラウド・AWSの勉強をするブログ

Rocky Linux8.8にrootkit検知ツール「chkrootkit」を導入する手順

※[PR]当ブログの記事の中にはプロモーションが含まれています。

・Rocky Linux8.8にrootkit検知ツール「chkrootkit」を導入する手順を知りたい。
・具体的な手順を分かりやすく教えてほしい。

こういった疑問に答えます。

本記事の内容

  1. Rocky Linux8.8にrootkit検知ツール「chkrootkit」を導入する手順

サトナカ (@souiunogaii)

この記事を書いている私は、某SIerに勤務しながら、
WEB系エンジニア・インフラエンジニアに憧れて、プログラミングおよびインフラ技術の勉強をしています。

こういった私が、解説していきます。

私が実機で試したコマンドや画像を載せて書いています。
記事の信頼性担保に繋がると思います。

Rocky Linux8.8にrootkit検知ツール「chkrootkit」を導入する手順

手順① chkrootkitのダウンロードとインストール

ダウンロード

git clone https://github.com/Magentron/chkrootkit.git
[root@SV-VEGA ~]# dnf install git
[root@SV-VEGA ~]# git clone https://github.com/Magentron/chkrootkit.git
Cloning into 'chkrootkit'...
remote: Enumerating objects: 87, done.
remote: Total 87 (delta 0), reused 0 (delta 0), pack-reused 87
Receiving objects: 100% (87/87), 58.51 KiB | 3.44 MiB/s, done.
Resolving deltas: 100% (59/59), done.

インストール

cp chkrootkit/chkrootkit /usr/local/bin/
[root@SV-VEGA ~]# cp chkrootkit/chkrootkit /usr/local/bin/
[root@SV-VEGA ~]# rm -rf chkrootkit/

コピーしたらダウンロードした元ファイルは削除してます。

テスト

chkrootkit | grep INFECTED
[root@SV-VEGA ~]# chkrootkit | grep INFECTED
Searching for Linux.Xor.DDoS ... INFECTED: Possible Malicious Linux.Xor.DDoS installed

手順② cronで毎日スケジュール実行するように設定

スクリプト作成

vi /etc/cron.daily/chkrootkit
[root@SV-VEGA ~]# cat /etc/cron.daily/chkrootkit
#!/bin/bash

LOG=/tmp/$(basename ${0})

# chkrootkit実行
chkrootkit > $LOG 2>&1

# ログ出力
cat $LOG | logger -t $(basename ${0})

# SMTPSのbindshell誤検知対応
if [ ! -z "$(grep 465 $LOG)" ] && \
   [ -z $(/usr/sbin/lsof -i:465|grep bindshell) ]; then
        sed -i '/465/d' $LOG
fi

# upstartパッケージ更新時のSuckit誤検知対応
if [ ! -z "$(grep Suckit $LOG)" ] && \
   [ -z "$(rpm -V `rpm -qf /sbin/init`)" ]; then
        sed -i '/Suckit/d' $LOG
fi

# rootkit検知時のみroot宛メール送信
[ ! -z "$(grep INFECTED $LOG)" ] && \
grep INFECTED $LOG | mail -s "chkrootkit report in `hostname`" root

パーミッション変更(実行)

chmod 700 /etc/cron.daily/chkrootkit
[root@SV-VEGA ~]# chmod 700 /etc/cron.daily/chkrootkit

手順③ 使用コマンド群の退避

mkdir chkrootkitcmd
cp `which --skip-alias awk cut echo egrep find head id ls netstat ps strings sed ssh uname` chkrootkitcmd/
chkrootkit -p /root/chkrootkitcmd|grep INFECTED
zip -r chkrootkitcmd.zip chkrootkitcmd/ && rm -rf chkrootkitcmd
echo|mail -a chkrootkitcmd.zip -s chkrootkitcmd.zip root
rm -f chkrootkitcmd.zip
[root@SV-VEGA ~]# mkdir chkrootkitcmd
[root@SV-VEGA ~]# cp `which --skip-alias awk cut echo egrep find head id ls netstat ps strings sed ssh uname` chkrootkitcmd/
[root@SV-VEGA ~]# chkrootkit -p /root/chkrootkitcmd|grep INFECTED
Searching for Linux.Xor.DDoS ... INFECTED: Possible Malicious Linux.Xor.DDoS installed
[root@SV-VEGA ~]# zip -r chkrootkitcmd.zip chkrootkitcmd/ && rm -rf chkrootkitcmd
  adding: chkrootkitcmd/ (stored 0%)
  adding: chkrootkitcmd/awk (deflated 50%)
  adding: chkrootkitcmd/cut (deflated 55%)
  adding: chkrootkitcmd/echo (deflated 58%)
  adding: chkrootkitcmd/egrep (stored 0%)
  adding: chkrootkitcmd/find (deflated 52%)
  adding: chkrootkitcmd/head (deflated 54%)
  adding: chkrootkitcmd/id (deflated 57%)
  adding: chkrootkitcmd/ls (deflated 53%)
  adding: chkrootkitcmd/netstat (deflated 60%)
  adding: chkrootkitcmd/ps (deflated 63%)
  adding: chkrootkitcmd/strings (deflated 55%)
  adding: chkrootkitcmd/sed (deflated 50%)
  adding: chkrootkitcmd/ssh (deflated 55%)
  adding: chkrootkitcmd/uname (deflated 58%)
[root@SV-VEGA ~]# echo|mail -a chkrootkitcmd.zip -s chkrootkitcmd.zip root
[root@SV-VEGA ~]# rm -f chkrootkitcmd.zip

参考にしたページ

centossrv.com

参考書籍

Rocky Linux & AlmaLinux実践ガイド

LinuxにおけるITプロ向け定番書籍がRocky Linux 8 & AlmaLinux 8に対応
Rocky Linux 8 & AlmaLinux 8の運用管理にかかわるシステム管理者を対象に、
システム管理の基礎、ネットワーク、ストレージ、パフォーマンスチューニング、
バックアップ、障害対応など、
IT現場で役立つ幅広いシステム管理手法を網羅しています。
Rocky Linux 8 & AlmaLinux 8.5対応

Rocky Linux & AlmaLinux実践ガイド
impress top gearシリーズ