○ Lynis & Rootkit Hunterでシステムチェック

・lynis,rkhunterで設定されている項目のみのチェックです
・行儀よくファイルがインストールされていない場合は
・設定項目の内容でチェックされないことがあります
・管理者(root)権限での実行が必要です

・ソースの取得、削除は省略します
・エディタ、ファイラーの操作は省略します
・ソースを展開したら説明文 (英文) を読みましょう
・Enterキーを省略します

・ログイン端末で "#" はroot、"$" は一般ユーザのプロンプトの記号です
・設定ファイルで "#" で始まる行はコメントとして解釈されます

○関連サイト

:lynis-1.2.9.tar.gz (http://www.rootkit.nl/projects/)
:rkhunter-1.3.8.tar.gz  (http://www.rootkit.nl/projects/)

○インストール環境

:OS CentOS 5.6
:selinux permissive or disabled
:インストール先  /usr/local
:言語 LANG=en_US.UTF-8
:ユーザー rootで実行



○lynis-1.2.9

○lynisのインストール

・適当なディレクトリで展開します(例 /usr/local)

[root@venus:~]
# cd /usr/local
[root@venus:/usr/local]
# tar zxf lynis-1.2.9.tar.gz

○lynisの実行

・includeファイルを読み込むのでlynisディレクトリに移動します
・-c 全てのtestを実行 --reverse-colors 背景色が白色の場合に指定
・lynisを実行すると、コンソール画面に結果が表示され、
・/var/logディレクトリにログファイルが作られます

# cd /usr/local/lynis-1.2.9
[root@venus:/usr/local/lynis-1.2.9]
# ./lynis -c --reverse-colors

○設定ファイルの作成と修正

・デフォルトではlynisディレクトリのdefault.prfを読み込みます
・root以外は読み書きできないようにアクセス権を設定します

:/root/.lynis.prf (root root 600)

# cd /root
[root@venus:~]
# cp -a /usr/local/lynis-1.2.9/default.prf .lynis.prf
# chmod 600 .lynis.prf

・lynis-1.2.9/include/tests_networking
・NETW-2705: resolv.confのnameserverの数をチェックします

・lynis-1.2.9/include/tests_firewalls
・FIRE-4513: 使われていないiptablesルールをチェックします

・チェックをスキップする番号を指定

# config:test_skip_always:AAAA-1234 BBBB-5678 CCCC-9012:
config:test_skip_always:NETW-2705 FIRE-4513:

・sysctlの設定値を自分の設定に合わせておきます

[kernel]
# sysctl:kernel.exec-shield:1:1:XXX:
sysctl:kernel.exec-shield:2:1:XXX:

[network]
# sysctl:net.ipv4.conf.all.forwarding:0:1:Disable IP source routing:
sysctl:net.ipv4.conf.all.forwarding:1:1:Disable IP source routing:

:lynis-1.2.9/include/consts

・バイナリファイルのサーチパスを追加します
・バイナリの存在を確認して、testを実行するケースがあります

BINPATHS="/bin /sbin /usr/bin /usr/sbin /usr/local/bin /usr/local/sbin \
          /usr/local/libexec /usr/libexec /usr/sfw/bin /usr/sfw/sbin \
          /usr/sfw/libexec /opt/sfw/bin /opt/sfw/sbin /opt/sfw/libexec \
          /usr/xpg4/bin /usr/css/bin /usr/ucb /usr/local/apache2/bin"

:lynis-1.2.9/include/tests_virtualization

・xenのguestアカウントの調査
・デフォルトではコメントされています
・デリミッタの調整(awkの出力とcutの指定が異なる)
・Displayでコンソールに出力します

#
    # Test        : VIRT-1906
    # Description : Query running Xen zones
    if [ -x /usr/sbin/xm ]; then PREQS_MET="YES"; else PREQS_MET="NO"; fi
    Register --test-no VIRT-1906 --weight L --network NO --description "Query Xen guests"
    if [ ${SKIPTEST} -eq 0 ]; then
        # Show Xen guests
        FIND=`xm list | awk '$1 != "Name|Domain-0" {print $1":"$2}'`
        for I in ${FIND}; do
            XENGUESTNAME=`echo ${I} | cut -d ':' -f1`
            XENGUESTID=`echo ${I} | cut -d ':' -f2`
            logtext "Result: found Xen guest ${XENGUESTNAME} (ID: ${XENGUESTID})"
            Display --indent 2 --text "- Xen ${XENGUESTNAME} (ID: ${XENGUESTID})"
        done
    fi
#

○lynisの再実行

・--profile 特別な設定ファイルを読み込みます

# cd /usr/local/lynis-1.2.9
[root@venus:/usr/local/lynis-1.2.9]
# ./lynis -c --profile /root/.lynis.prf --reverse-colors

○実行スクリプトの作成

:/usr/local/sbin/lynis.sh (root root 700)

・-Q 途中のキー(Enter)入力を省略します

#!/bin/bash
cd /usr/local/lynis-1.2.9
./lynis -c -Q --profile /root/.lynis.prf --reverse-colors



○rkhunter-1.3.8

○rkhunterのインストール

・設定ファイルは /etc にインストールされます
・datファイルは/var/lib/rkhunterにつくられます

・updateの場合、設定ファイルを保存します

# cd ~
[root@venus:~]
# mv /etc/rkhunter.conf /etc/rkhunter.conf-old

・--removeオプションで旧ファイルを削除します

# cd /usr/src
[root@venus:/usr/src]
# tar zxf rkhunter-1.3.8.tar.gz
# chown -R root:root rkhunter-1.3.8
# cd rkhunter-1.3.8
[root@venus:/usr/src/rkhunter-1.3.8]
# ./installer.sh --remove
# ./installer.sh --install

○rkhunterの実行

・rkhunterを実行してみる
・--update datファイルのアップデートを確認します
・-c 全てのチェック --cs2 背景が白色の場合に指定
・-l ログの出力 ログは/var/logに出力されます

# cd ~
[root@venus:~]
# rkhunter --update
# rkhunter -c -l --cs2

・全てのTESTを実行してはいません
・rkhunter.confで無効にしてあるTESTもあります

[root@venus:~]
# rkhunter --list tests

○設定ファイルの修正

:/etc/rkhunter.conf (root root 640)

# ターミナルの背景が白色の場合に設定

#COLOR_SET2=0
COLOR_SET2=1

# sshd_configの設定に合わせます

#ALLOW_SSH_ROOT_USER=no
ALLOW_SSH_ROOT_USER=without-password

# CentOSの環境に合わせます

#SCRIPTWHITELIST="/sbin/ifup /sbin/ifdown"
#SCRIPTWHITELIST="/usr/bin/groups"
SCRIPTWHITELIST="/sbin/ifup /sbin/ifdown"
SCRIPTWHITELIST="/usr/bin/groups /usr/bin/ldd /usr/bin/whatis"

#ALLOWHIDDENDIR="/dev/.udev /dev/.udevdb /dev/.udev.tdb"
ALLOWHIDDENDIR="/dev/.udev"

#ALLOWHIDDENFILE="/usr/share/man/man1/..1.gz"
#ALLOWHIDDENFILE="/usr/bin/.fipscheck.hmac"
ALLOWHIDDENFILE="/usr/share/man/man1/..1.gz"
ALLOWHIDDENFILE="/usr/bin/.fipscheck.hmac"

# Xen domain0の場合に追加

ALLOWDEVFILE="/dev/shm/blktap-blks"
ALLOWDEVFILE="/dev/shm/blktap-fgprts"
ALLOWDEVFILE="/dev/shm/memshr-info"

○rkhunterの再実行とdatファイルの作成

・--propupd rkhunter.datを作成します

[root@venus:~]
# rkhunter -c -l

・"Checking for prerequisites"以外のWarningがでなくなったら

# rkhunter --propupd

・次回からrkhunter.datのチェックします


○実行スクリプトの作成

:/usr/local/sbin/rkhunter.sh (root root 700)

・--sk 途中のキー(Enter)入力を省略します

#!/bin/bash
/usr/local/bin/rkhunter --update
/usr/local/bin/rkhunter -c -l --sk

○ Copyright(c) 528p.com All Rights Reserved.