Top > Linux > セキュリティー


rootkit 検知システム導入 (chkrootkit)

  • chkrootkitインストール
    $ su -
    パスワード:
    # yum install -y chkrootkit


  • chkrootkit 確認
    # chkrootkit | grep INFECTED
    何も表示されなければ問題なし


  • chkrootkit 自動起動設定
    • chkrootkit実行スクリプト作成
      # vi chkrootkit.sh
    • chkrootkit.sh
        0
        1
        2
        3
        4
        5
        6
        7
        8
        9
       10
       11
       12
       13
       14
       15
       16
       17
       18
       19
      
      #!/bin/bash
       
      # chkrootkit実行
      chkrootkit > /var/log/chkrootkit.log 2>&1
       
      # SMTPSのbindshell誤検知対応
      TMPLOG=`mktemp`
      grep INFECTED /var/log/chkrootkit.log > $TMPLOG
      if [ ! -z "$(grep 465 $TMPLOG)" ]; then
          if [ -z $(/usr/sbin/lsof -i:465|grep bindshell) ]; then
              sed -i '/465/d' $TMPLOG
          fi
      fi
       
      # chkrootkit実行結果にINFECTED行があった場合のみroot宛メール送信
      if [ -s $TMPLOG ]; then
          cat $TMPLOG|mail -s "chkrootkit report in `hostname`" root
      fi
       
      rm -f $TMPLOG
    • 自動実行設定
      # chmod 700 chkrootkit.sh              実行権限付加
      # mv chkrootkit.sh /etc/cron.daily/    毎日実行されるディレクトリへ移動


Clam AntiVirus 導入

  • Clam AntiVirus インストール
    • 必要パッケージのインストール
      # yum install zlib-devel gmp-devel
    • clamav ユーザ登録
      # useradd -s /sbin/nologin clamav -m -d /usr/local/share/clamav -k /dev/null
    • Clam AntiVirusダウンロード 最新版確認>
      # wget http://jaist.dl.sourceforge.net/sourceforge/clamav/clamav-0.95.3.tar.gz
    • インストール
      # tar zxvf clamav-0.95.3.tar.gz
      # cd clamav-0.95.3
      # ./configure ; make ; make install
      # rm -rf clamav-0.95.3*
    • Clam AntiVirus設定
      • vi /usr/local/etc/clamd.conf
          0
          1
          2
          3
          4
          5
          6
          7
          8
          9
         10
         11
         12
         13
         14
         15
         16
         17
         18
         19
        
        # Comment or remove the line below.
        #Example ← 行頭に#を追加(コメントアウト)
         
        #LogFile /tmp/clamd.log
        LogFile /var/log/clamd.log ← ログを記録する
         
        # Log time with each message.
        # Default: no
        #LogTime yes
        LogTime yes ← ログに日時も記録する
         
        # Path to a local socket file the daemon will listen on.
        # Default: disabled (must be specified by a user)
        #LocalSocket /tmp/clamd.socket
        LocalSocket /tmp/clamd.socket ← ソケット通信設定
         
        # Remove stale socket after unclean shutdown.
        # Default: no
        #FixStaleSocket yes
        FixStaleSocket yes ← clamd強制終了後の再起動不可対処
      • vi /usr/local/etc/freshclam.conf
          0
          1
          2
          3
          4
          5
          6
          7
          8
          9
         10
         11
         12
         13
         14
         15
         16
        
        # Comment or remove the line below.
        #Example ← 行頭に#を追加(コメントアウト)
         
        # Path to the log file (make sure it has proper permissions)
        # Default: disabled
        #UpdateLogFile /var/log/freshclam.log
        UpdateLogFile /var/log/freshclam.log ← ログを記録する
         
        # Uncomment the following line and replace XY with your country
        # code. See http://www.iana.org/cctld/cctld-whois.htm for the full list.
        #DatabaseMirror db.XY.clamav.net
        DatabaseMirror db.jp.clamav.net ← ウィルス定義ファイル入手元を日本に変更
         
        # Send the RELOAD command to clamd.
        # Default: no
        #NotifyClamd /path/to/clamd.conf
        NotifyClamd /usr/local/etc/clamd.conf ← ウィルス定義ファイル更新をclamdに通知する
    • Logファイル準備
      # touch /var/log/freshclam.log
      # chown clamav:clamav /var/log/freshclam.log
      # freshclam
    • 自動実行スクリプト作成
      # vi freshclam
        0
        1
      
      #!/bin/sh
      /usr/local/bin/freshclam --quiet
      # chmod 700 freshclam
      # mv freshclam /etc/cron.hourly/
    • ログローテーション設定
      • vi /etc/logrotate.d/clamd
        /var/log/clamd.log {
            sharedscripts
            postrotate
                /etc/rc.d/init.d/clamd restart > /dev/null || true
            endscript
        }
      • vi /etc/logrotate.d/freshclam
        /var/log/freshclam.log {
                missingok
                notifempty
                create 644 clamav clamav
        }
  • Clam AntiVirus起動
    # wget http://nchc.dl.sourceforge.net/sourceforge/clamav/clamav-0.94.2.tar.gz
    # tar zxvf clamav-0.94.2.tar.gz
    # cp clamav-0.94.2/contrib/init/RedHat/clamd /etc/rc.d/init.d/
    # rm -rf clamav-0.94.2*
    # vi /etc/rc.d/init.d/clamd
                 #ulimit -f 20000 ← 行頭に#を追加してコメントウアト
    
    # /etc/rc.d/init.d/clamd start
    # chkconfig --add clamd
    # chkconfig clamd on
  • 定期自動実行設定
    # vi clamav.sh
      0
      1
      2
      3
      4
      5
      6
      7
      8
      9
     10
     11
     12
     13
     14
     15
     16
     17
     18
     19
     20
     21
     22
     23
     24
     25
     26
     27
     28
     29
     30
    
    #!/bin/bash
     
    PATH=/bin:/usr/local/bin
     
    # excludelist
    excludelist=/root/clamscan.exclude
     
    # make excludelist
    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
     
    # update virus databases & ClamAV
    freshclam > /dev/null 2>&1
     
    # scan virus
    CLAMSCANTMP=`mktemp`
    clamscan --recursive --remove ${excludeopt} / > $CLAMSCANTMP 2>&1
     
    # virus detect message send
    [ ! -z "$(grep FOUND$ $CLAMSCANTMP)" ] && \
    grep FOUND$ $CLAMSCANTMP | mail -s "Virus Found in `hostname`" root
    rm -f $CLAMSCANTMP
    # chmod 700 clamav.sh
    
    スキャン除外設定(例)
    # echo "/backup/backup.tar.bz2" >> clamscan.exclude
    # echo "/proc/" >> clamscan.exclude 
    # echo "/sys/" >> clamscan.exclude
    
    # mv clamav.sh /etc/cron.daily/
  • clamav-update インストール
    # yum -y install curl
    # wget "http://sourceforge.jp/frs/redir.php?m=iij&f=%2Fclamav-update%2F44451%2Fclamav-update-2.2.6.tar.gz"
    # tar zxvf clamav-update-2.2.6.tar.gz
    # cd clamav-update-2.2.6
    # ./install.sh
    # cd
    # rm -rf clamav-update-2.2.6*
  • clamav-update 設定
    # vi /usr/local/etc/freshclam.conf
      0
      1
      2
      3
      4
      5
      6
      7
      8
      9
     10
     11
     12
    
    # By default when started freshclam drops privileges and switches to the
    # "clamav" user. This directive allows you to change the database owner.
    # Default: clamav (may depend on installation options)
    #DatabaseOwner clamav
    DatabaseOwner root ← データベース所有者をrootに変更
     
     
    # Run command when freshclam reports outdated version.
    # In the command string %v will be replaced by the new version number.
    # Default: disabled
    #OnOutdatedExecute command
    OnOutdatedExecute /usr/local/bin/clamav-update.pl --config /usr/local/etc/clamav-update.conf
     ← Clam AntiVirusアップデート検知時にclamav-updateを実行する


参考

Fedora で自宅サーバー> Fedora で自宅サーバー>


リロード   凍結解除 コピー 名前変更   ホーム 一覧 検索 最終更新 バックアップ リンク元   ヘルプ   最終更新のRSS
Last-modified: Mon, 24 Oct 2011 00:54:30 JST (2579d)