[[LinuxSoft]]
 #contents
 ----
 * rkdet で不正アクセス時にシステムを自動停止 [#bba6a3db]
 
 ** rkdet って何? [#g7740fc3]
 
  rkdet = rootkit detector for Linux (Linux 用ルートキット検出ツール)
 
  不正アクセス時に ps コマンドや kill コマンドが改竄されてしまって、リモートから該当サーバを操作しようとしても手に負えない場合があります。こういう場合は速攻該当サーバの LAN ケーブルを抜いて、速やかに OS のクリーンインストールおよび復旧が必要となるわけです。
 
  が、この rkdet を使えばシステムの異常を検出すると自動で「/sbin/ifconfig eth0 down」を実行してくれます。ネットワークやサーバ管理者にとって有り難いデーモンが rkdet です。仮にもし不正アクセスを受けても被害を必要最小限にとどめることが出来ます。ネットワークから切り離してしまえば、もう不正な操作をされる心配もありませんし、(不正アクセスをうけたサーバが踏み台となって)ネットワークをスキャンされてしまうこともありません。
 
  デーモンとしても軽量なので、とりあえず監視用といいますか、保険としてシステムにインストールしておくと便利かも知れません。
 
  ちなみにネットワークに切り離す前に root 宛にログをメールを送るような仕組みになっています。ソースを展開したディレクトリにある xstrings.txt の文字列を変えることで、メールの題名や送り先の指定もできます。
 
  mailfmt;4;/bin/mail -s 'Intrusion Report for %s' root
 
  また、チェックサムの検査対象も同じくソースを展開したディレクトリにある xfiles.txt によって指定できます。以下は標準の検査対象一覧です。
 
  /usr/bin/md5sum
  /usr/sbin/rkdet
  /bin/ps
  /bin/ls
  /bin/netstat
  /bin/login
  /usr/bin/du
  /usr/bin/find
  /usr/bin/crontab
  /usr/bin/killall
  /bin/kill
  /usr/bin/passwd
  /usr/bin/top
  /usr/sbin/sshd
  /usr/bin/md5sum
  /lib/libcrypt.so.1
  /lib/libpam.so.0
  /lib/libpam_misc.so.0
 
  詳しくは[[ドキュメントの概要:http://pocketstudio.jp/linux/?rkdit%20%20%A5%C9%A5%AD%A5%E5%A5%E1%A5%F3%A5%C8%CF%C2%CC%F5#y120eea5]]をご覧下さい。
  詳しくは[[ドキュメントの概要:http://pocketstudio.jp/linux/?rkdit%20%20%A5%C9%A5%AD%A5%E5%A5%E1%A5%F3%A5%C8%CF%C2%CC%F5#y120eea5]]、および[[README 日本語訳:http://pocketstudio.jp/linux/?rkdat%20README%20%CF%C2%CC%F5]]をご覧下さい。
 
 ** rkdet の入手 [#i8879f25]
 
 - rkdet - rootkit detector for Linux
  http://vancouver-webpages.com/rkdet/
 
 ** rkdet のライセンス [#f4649879]
 
  フリーソフトウェアなので無料で利用できます。作者さんに感謝ですね!
  License:
  rkdet is freeware. rkdet incorporates code by David A. Curry
  from "ifstatus", which is in the public domain.
 (READMEより)
 
 ** rkdet のインストール [#g42c014b]
 
  インストール作業自体は手軽です。作業環境は Fedora Core 4 ですが、殆どの Red Hat Linux 系システムで同様にインストールできます。
 
 1. ソースを入手して展開、ディレクトリ移動します(このあたりはお約束)
  $ wget http://vancouver-webpages.com/rkdet/rkdet-0.53.tar.gz
  $ tar xfz rkdet-0.53.tar.gz
  $ cd rkdet-0.53
 
 2. 次は configure です。対話式に進みますが、基本的に何も考えずに
 エンターキーの連続で OK です。
 
  # ./configure
  Choose name for rkdet (recommend renaming)
  rkdet
  Select checksum program:
  /usr/bin/md5sum
  Select mail command:
  "/bin/mail -s 'Intrusion Report for %s' root"
  Select startup message:
  (See your network guru for details)
  Select run argument (see documentation):
  163
  Select netstat:
  /bin/netstat
  Select WAN disconnect command:
  /sbin/route del default
  Select LAN disconnect command:
  /sbin/ifconfig eth0 down
  Select logfile:
  /var/log/rkdet.log
  Select who command:
  /usr/bin/w
  Select down message:
  "Checksum failure - disconnecting network"
  Select mail subject:
  "Intruder Report for"
  Select kill message:
  "Attempt to kill rkdet"
  Select delete tool:
  /bin/rm
  Choose install directory
  /usr/sbin
  Select files to check:
  ps (/bin/ps)
  ls (/bin/ls)
  netstat (/bin/netstat)
  login (/bin/login)
  inetd ()
    not found; will not check inetd
  du (/usr/bin/du)
  find (/usr/bin/find)
  crontab (/usr/bin/crontab)
  killall (/usr/bin/killall)
  kill (/bin/kill)
  passwd (/usr/bin/passwd)
  top (/usr/bin/top)
  sshd (/usr/sbin/sshd)
  md5sum (/usr/bin/md5sum)
  libcrypt.so.1 (/lib/libcrypt.so.1)
  libpam.so.0 (/lib/libpam.so.0)
  libpam_misc.so.0 (/lib/libpam_misc.so.0)
 
 3. make, install します
  $ make
  # make install
 
 4. サービスに登録します
  # /sbin/chkconfig --add rkdet
  なお、自動でランレベル 345 で起動するようになっているので、特に設定を変えなくてもサーバ起動時に自動実行されます。
  # /sbin/chkconfig --list rkdet
  rkdet           0:off   1:off   2:on    3:on    4:on    5:on    6:off
 
 5. サービスを起動します。
 
  # /sbin/service rkdet start
  Starting rkdet
  (See your network guru for details)                        [  OK  ]
 
 6. 念のためプロセスを確認します。
  ps ax | grep rkdet
   8253 ?        Ss     0:00 rkdet 163
  このように rkdet というデーモンが動いているのが確認できます。
 
 * ドキュメント和訳 [#h03f876d]
 
 - [[ドキュメント和訳:http://pocketstudio.jp/linux/?rkdit%20%20%A5%C9%A5%AD%A5%E5%A5%E1%A5%F3%A5%C8%CF%C2%CC%F5]]
 
 - [[README 和訳版:http://pocketstudio.jp/linux/?rkdat%20README%20%CF%C2%CC%F5]]
 
 * 簡単な実地テスト [#rc6ac740]
 
  実際に試さないと分からないだろう(w ということで、実験してみました。実験体は /bin/ls 君です。
  # cp -p /bin/ls /bin/ls.org
  まずは、バックアップを取って、
  # vi /bin/ls
  で、適当にバイナリの中に文字列を入れます。
 
  ……で暫くすると……キタ━(゚∀゚)━ッ!!
 
  いきなりネットワークから落とされました。ローカルのマシンで良かったです。データセンターのマシンを落としていたら冷や汗ものでした。。。
 
  で、件のローカルマシンをコンソールからつないでみると、見事 eth0 インタフェースがダウンされてました。ちゃんと機能していますね。コンソールにはこんな表示。
  sion rkedet : Checksum failuer - disconnecting network
 (sion というのはこのテストをしたホスト名です。)
 
  ついでに、メールもチェックすると……ばっちり /bin/ls のチェックサムが違うという指摘と、その時点の w と netstat の接続者情報も表示してくれます。これは便利ですね。さっそくホスティングしてるマシンにも組み込んでおこうかな。
 
  From root@sion.pocketstudio.jp  Tue Jul 19 16:06:05 2005
  Return-Path: <root@sion.pocketstudio.jp>
  Received: from sion.pocketstudio.jp (sion [127.0.0.1])
          by sion.pocketstudio.jp (8.13.4/8.13.4) with ESMTP id j6J7657j009783
          (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-SHA bits=256 verify=NO)
          for <root@sion.pocketstudio.jp>; Tue, 19 Jul 2005 16:06:05 +0900
  Received: (from root@localhost)
          by sion.pocketstudio.jp (8.13.4/8.13.4/Submit) id j6J765Xs009780
          for root; Tue, 19 Jul 2005 16:06:05 +0900
  Date: Tue, 19 Jul 2005 16:06:05 +0900
  From: root <root@sion.pocketstudio.jp>
  Message-Id: <200507190706.j6J765Xs009780@sion.pocketstudio.jp>
  To: root@sion.pocketstudio.jp
  Subject: Intrusion Report for sion
  
  Intruder Report for sion
  Tue Jul 19 16:06:05 2005
  
  
  Checksums differ: /bin/ls
   16:06:05 up  9:49,  4 users,  load average: 0.00, 0.00, 0.00
  USER     TTY      FROM              LOGIN@   IDLE   JCPU   PCPU WHAT
  root     tty1     -                16:01    4:01   0.13s  0.13s -bash
  zem      pts/0    sakura2.internal 14:37    1:19m  0.04s  0.02s sshd: zem [priv
  zem      pts/1    sakura2.internal 10:42    5:24   0.22s  0.02s sshd: zem [priv
  zem      pts/2    sakura2.internal 16:05    2.00s  0.04s  0.02s sshd: zem [priv
  Active Internet connections (w/o servers)
  Proto Recv-Q Send-Q Local Address               Foreign Address             State
  tcp        0      0 ::ffff:192.168.11.253:22    ::ffff:192.168.11.102:1290  ESTABLISHED
  tcp        0      0 ::ffff:192.168.11.253:22    ::ffff:192.168.11.102:2283  ESTABLISHED
  tcp        0      0 ::ffff:192.168.11.253:22    ::ffff:192.168.11.102:2806  ESTABLISHED
 
  また、メールと同様のログが /var/log/rkdat.log ファイルに記録されます。
 
  # cat /var/log/rkdet.log
  
  Intruder Report for sion
  Tue Jul 19 16:06:05 2005
  
  
  Checksums differ: /bin/ls
   16:06:05 up  9:49,  4 users,  load average: 0.00, 0.00, 0.00
  USER     TTY      FROM              LOGIN@   IDLE   JCPU   PCPU WHAT
  root     tty1     -                16:01    4:01   0.13s  0.13s -bash
  zem      pts/0    sakura2.internal 14:37    1:19m  0.04s  0.02s sshd: zem [priv
  zem      pts/1    sakura2.internal 10:42    5:24   0.22s  0.02s sshd: zem [priv
  zem      pts/2    sakura2.internal 16:05    2.00s  0.04s  0.02s sshd: zem [priv
  Active Internet connections (w/o servers)
  Proto Recv-Q Send-Q Local Address               Foreign Address             State
  tcp        0      0 ::ffff:192.168.11.253:22    ::ffff:192.168.11.102:1290  ESTABLISHED
  tcp        0      0 ::ffff:192.168.11.253:22    ::ffff:192.168.11.102:2283  ESTABLISHED
  tcp        0      0 ::ffff:192.168.11.253:22    ::ffff:192.168.11.102:2806  ESTABLISHED
 
  ただ、このソフトは promiscus モードを検出すると勝手にネットワークを落とすので、promicsus モードを使う nmap を使いたいときは rkdet を停止しないといけませんね。直接コンソールを触ってデーモンを止めるかリブートしなくてはいけなくなりそうです。。

トップ   編集 差分 バックアップ 添付 複製 名前変更 リロード   新規 一覧 単語検索 最終更新   ヘルプ   最終更新のRSS