GNU/Linux >> Linux の 問題 >  >> Cent OS

CentOS7にRKHunterをインストールする方法

この記事では、ルートキットハンターを使用してルートキットをインストールして見つける方法を学びます。他の脅威の中でも、現在ボットネットの作成に使用されているXOR.DDoSマルウェアのいくつかの亜種の兆候を見つけるために使用できます。大規模な分散型サービス拒否攻撃のためのLinuxシステム。

目次

  • インストール
    • ダウンロード
    • パッチ-(オプション)
    • インストール
  • 構成
    • テスト
    • ログ
    • ウィールリスト
    • その他
  • 実行
    • フラグ
    • cronスケジューリング

RKHunterをインストールする

Rkhunterをダウンロードし、cURLを試してこれを実行してください。

curl http://nbtelecom.dl.sourceforge.net/project/rkhunter/rkhunter/1.4.2/rkhunter-1.4.2.tar.gz -o rkhunter-1.4.2.tar.gz

次に、パッケージの内容を抽出します。

tar zxvf rkhunter-1.4.2.tar.gz

tarballディレクトリに入ります。

cd rkhunter-1.4.2

パッチ(オプション)

この手順では、rkhunterスクリプトとそのデータベースにパッチを適用して、XORDDoSLinuxマルウェアを探します。このパッチは、Akamai、Avast、MalwareMustDieによって作成されたレポートにあるポートとファイルに基づいています。

rkthunterディレクトリの下のfilesディレクトリに入力します。

cd files

パッチをインストールします yumを使用したユーティリティ。

yum install patch

パッチをダウンロードします。

curl http://sourceforge.net/p/rkhunter/patches/44/attachment/rkhunter.patch -o rkhunter.patch

または、ここからrkhunter.patchファイルの内容をコピーして貼り付けることもできます。

--- rkhunter    2014-03-12 17:54:55.000000000 -0300
+++ rkhunter.new        2015-10-02 17:01:25.040000000 -0300
@@ -7797,6 +7797,19 @@
#

+       # XOR.DDoS
+       XORDDOS_FILES="/lib/udev/udev
+                      /lib/udev/debug
+                      /etc/cron.hourly/cron.sh
+                      /etc/cron.hourly/udev.sh
+                      /lib/libgcc4.so
+                      /var/run/udev.pid
+                      /var/run/sftp.pid"
+       XORDDOS_DIRS=
+       XORDDOS_KSYMS=
+
+
+
# 55808 Variant A
W55808A_FILES="/tmp/.../r
/tmp/.../a"
@@ -11907,6 +11920,13 @@
return
fi

+       # XOR.DDoS Rootkit
+       SCAN_ROOTKIT="XOR.DDoS - Rootkit"
+       SCAN_FILES=${XORDDOS_FILES}
+       SCAN_DIRS=${XORDDOS_DIRS}
+       SCAN_KSYMS=${XORDDOS_KSYMS}
+       scanrootkit
+

# 55808 Trojan - Variant A

--- backdoorports.dat   2010-11-13 20:41:19.000000000 -0300
+++ backdoorports.dat.new       2015-10-02 17:10:24.086000000 -0300
@@ -12,6 +12,7 @@
2001:Scalper:UDP:
2006:CB Rootkit or w00tkit Rootkit SSH server:TCP:
2128:MRK:TCP:
+3502:Possible XOR.DDoS Botnet Malware:TCP:
6666:Possible rogue IRC bot:TCP:
6667:Possible rogue IRC bot:TCP:
6668:Possible rogue IRC bot:TCP:

rkhunterにパッチを適用します スクリプトとbackdoors.dat 次のコマンドでファイルを作成します。

patch < rkhunter.patch

パッチが完了したら、tarballルートディレクトリに戻ってインストールを続行します。

cd ..

ファイルのインストール

次のパラメータを使用してインストーラスクリプトを実行し、 / usr/local。にインストールします。

./installer.sh --install --layout /usr/local

-例を使用することもできます より多くのレイアウト情報と例を表示するためのフラグまたは-show -installの代わりにオプション レイアウトに何をインストールするかを示します。

再表示のインストール(推奨)

再表示 およびunhide-tcp ユーティリティは隠されたプロセスとポートを探しますが、必須ではありませんが、最も洗練されたルートキットはそれらの存在を隠すため、強くお勧めします。

まず、GNUコンパイラコレクションをインストールする必要があります。

yum install gcc

ストライプバイナリを作成するために必要なglibc-staticをインストールします。

yum install glibc-static

unhide-linuxをコンパイルします。

gcc -Wall -O2 --static -pthread unhide-linux*.c unhide-output.c -o unhide-linux

unhide-tcpをコンパイルします。

gcc -Wall -O2 --static unhide-tcp.c unhide-tcp-fast.c unhide-output.c  -o unhide-tcp

/ usr / local / binの下にファイルをインストールし、再表示するためのシンボリックリンクを作成します。

cp unhide-linux unhide-tcp /usr/local/bin && cd /usr/local/bin/ && ln -s unhide-linux unhide && cd -

構成

このセクションでは、 rkhunter.confにあるオプションのいくつかを紹介します。 ファイルの場合、オプションはグループに分けられ、説明が簡略化されます。ファイルの実際の説明を読んでください。デフォルトのオプションで十分であるため無視するかどうかわからない場合は、ほとんどのオプションにコメントが付けられます。

構成ファイルに実際の変更を加える前に最初の実行を行うことをお勧めします。これにより、rkhunterの動作をよりよく理解し、構成ファイルにホワイトリストに登録する誤検知を特定できるようになります。

-cでrkhunterに電話するだけです または-チェック パラメータ。

rkhunter -c

上の画像でわかるように、egrepやifupなどのファイルがELFバイナリではなくスクリプトになるという警告が表示されますが、これらは正当なシステムファイルであり、構成ファイルのほとんどのオプションは、rkhunterにそのようなファイルを無視させる方法に関するものです。発生。

テスト

次のオプションENABLE_TESTSおよびDISABLE_TESTSは、作成する精巣のタイプを設定し、すべてを有効にしてから、不要な精巣を無効にします。誤検知が発生しやすいため、デフォルトで少なくともsuspscanを無効にすることをお勧めします。

ENABLE_TESTS=ALL

DISABLE_TESTS=suspscan

セキュアシェル

SSH接続でrootログインを有効にし、代わりにsu / sudoを使用することは決して良い考えではありません。そうでない場合は、これをyesに設定してください。

ALLOW_SSH_ROOT_USER=no

SSHプロトコルのバージョン1は安全でないことがわかっているため、これを1に設定すると、このプロトコルチェックを無視する必要があります

ALLOW_SSH_PROT_V1=0

ネットワークポート

format protocol:port

で許可されたネットワークポート
PORT_WHITELIST

構文path_to_binary:protocol:port_number

を使用して一部のプログラムのホワイトリストを設定します
PORT_PATH_WHITELIST=/usr/sbin/squid:TCP:3801

アプリケーションバージョン

このオプションを使用すると、古いアプリケーションを実行できます。これは通常はお勧めできません。このリストに追加する前に、アプリケーションが安全であることを確認する必要があります。

APP_WHITELIST=openssl:0.9.7d gpg httpd:1.3.29

スニファー

ネットワークパケットをキャプチャするソフトウェアであるスニファの使用を許可します。

次の行のように、次のプロセスがネットワークをリッスンできるようにします。

ALLOWPROCLISTEN=/usr/sbin/snort-plain

これにより、リストされたネットワークインターフェイスが無差別モードでネットワークをリッスンできるようになります。

ALLOWPROMISCIF=eth0

ファイル

rkhunterによって行われたテストに対していくつかの例外を作成する必要があります。次のオプションを使用すると、ファイルやディレクトリなどの特定のオブジェクトへのテストをバイパスできます。

いくつかの隠しディレクトリを許可します。

ALLOWHIDDENDIR=/etc/.java

いくつかの隠しファイルを許可します。

ALLOWHIDDENFILE=/usr/share/man/man1/..1.gz
ALLOWHIDDENFILE=/usr/share/man/man5/.k5identity.5.gz
ALLOWHIDDENFILE=/usr/share/man/man5/.k5login.5.gz

このホワイトリストにより、一部のファイルをELFバイナリではなくスクリプトにすることができます。

SCRIPTWHITELIST=/usr/sbin/ifdown
SCRIPTWHITELIST=/usr/sbin/ifup
SCRIPTWHITELIST=/usr/bin/egrep
SCRIPTWHITELIST=/usr/bin/fgrep
SCRIPTWHITELIST=/usr/bin/ldd

ファイルを誰でも書き込み可能にする。

WRITEWHITELIST=/usr/bin/date

ファイルに属性の変更を許可します。

ATTRWHITELIST=/usr/bin/date

プロセスが削除されたファイルを照会できるようにします。

ALLOWPROCDELFILE=/sbin/cardmgr

ログオプション

これにより、ログに記録するファイルが定義されます。

LOGFILE=/var/log/rkhunter.log

rkhunterを実行するたびに同じファイルにログオンし続ける場合は、これを1に設定します。デフォルトは0で、ログファイルに「.old」が追加されて新しいファイルが作成されます。

APPEND_LOG=0

何か問題が発生したときにログファイルを保持したい場合は、次のオプションを1に設定します。

COPY_LOG_ON_ERROR=0

syslogを使用する場合は、コメントを解除してログ機能を設定します。

USE_SYSLOG=authpriv.warning

デフォルトでは、ホワイトリストに登録されたitensはテストでOKを報告します。ホワイトリストに登録されたアイテムを強調表示する場合は、このオプションを1に設定する必要があります。

WHITELISTED_IS_WHITE=0

オペレーティングシステムのオプション

CentOSを含むRedHatのようなシステムでは、パッケージマネージャーオプションをRPMに設定します。

PKGMGR=RPM

これを有効にすると、オペレーティングシステムがバージョン/リリースを変更したときに警告が報告されます。

WARN_ON_OS_CHANGE

オペレーティングシステムが変更されたときにデータベースを更新する必要がありますか?

UPDT_ON_OS_CHANGE

オペレーティングシステムのリリースファイルの場所は、CentOSで/ etc/redhat-releaseに設定してください。

OS_VERSION_FILE=/etc/redhat-release

ロック

複数のrkhunterを同時に実行している可能性がある場合は、このオプションを有効にして、ロックファイルの使用を有効にし、データベースの破損を回避する必要があります。

USE_LOCKING=0

ロックの使用を有効にした場合は、デッドロックを回避するためにタイムアウトを設定する必要があります。

LOCK_TIMEOUT

ロックされたセッションについて警告する必要がありますか?

SHOW_LOCK_MSGS

スタートアップとスーパーデーモン

inetd構成ファイルはどこにありますか。

INETD_CONF_PATH=/etc/inetd.conf

inetdを介して実行できるサービスはどれですか。

INETD_ALLOWED_SVC=/usr/sbin/rpc.metad /usr/sbin/rpc.metamhd

Xinetd構成ファイル。

XINETD_CONF_PATH=/etc/xinetd.conf

RCスタートアップファイルのパス。

STARTUP_PATHS=/etc/rc.d /etc/rc.local

アカウント

シャドウされたパスワードを含むファイル。

PASSWORD_FILE=/etc/shadow

root以外のユーザーアカウントを許可する UID0を取得します。

UID0_ACCOUNTS=toor rooty

パスワードなしのアカウントを許可します。

PWDLESS_ACCOUNTS=abc

Syslog

Syslog構成ファイル。

SYSLOG_CONFIG_FILE=/etc/syslog.conf

syslogがリモートでログに記録できるようにします。

ALLOW_SYSLOG_REMOTE_LOGGING=0

レポート

警告の数を報告しますか?

SHOW_SUMMARY_WARNINGS_NUMBER

テストの実行に必要な合計時間を表示しますか?

SHOW_SUMMARY_TIME

rkhunterが何かを見つけたときにメールレポートを受信するには、次のオプションを設定するとともに、メールアプリケーションを用意する必要があります。

メールの受信者。

[email protected]

メールの送信に使用したコマンド。

MAIL_CMD=mail -s "[rkhunter] Warnings found for ${HOST_NAME}"

rkhunterの実行

OK、この時点で、少なくとも1回はrkhunterを実行しているはずです。次に、rkhunterで使用できる他のフラグをいくつか見てください。

変更を確認する

構成が完了したら、 -Cを指定してrkhunterを実行します または--check-config ファイル内のエラーをチェックするためのフラグ。

rkhunter -C

プロパティの更新

これで、構成ファイルを変更するたびに、必ずファイルプロパティデータベースを更新してください。

rkhunter --propupd

警告のみを報告してください。

rkhunter --rwo

特定のテストのみを実行したい場合があります。この場合は、-テストのリストを試してください。 利用可能なテストの名前を取得してから、-enableを使用します フラグの後にテスト名が続きます。

rkhunter --list tests

次のオプションは、キーを押すプロンプトを無効にします。

rkhunter --sk

cronjobでrkhunterを実行するには、-cronjobを使用します フラグを立てて、実行可能ファイル /etc/cron.daily/rkhunter.shを作成します 毎日のチェックを行うために次の内容で

#!/bin/sh

( /usr/local/bin/rkhunter --versioncheck
/usr/local/bin/rkhunter --update

/usr/local/bin/rkhunter --cronjob -c ) >> /dev/null 2>&1

結論

これにより、rkhunterを使い始めることができ、セキュリティレイヤーがもう1つ提供されます。ただし、基本的なセキュリティ原則を無視したり、問題を軽減する代わりに、遭遇したすべての警告をホワイトリストに追加したりすると、これでは不十分です。また、rkhunterは、マシンがLinuxボットネットのメンバーになるのを防ぐのに役立ちますが、サイトがDDoSキャンペーンのターゲットになるのを防ぐことはできません。読んでくれてありがとう!


Cent OS
  1. CentOS7にPHP7、7.2、7.3をインストールする方法

  2. CentOS7にJava11および12をインストールする方法

  3. CentOS7にWine4.0をインストールする方法

  1. CentOS7にVim8.2をインストールする方法

  2. CentOS7にVirtualBoxをインストールする方法

  3. CentOS8にGitをインストールする方法

  1. CentOS8にDockerをインストールする方法

  2. Centos8にJava8および11をインストールする方法

  3. CentOS8にMySQLをインストールする方法