Last Update 2005.03.24 

  •  Fedora Core 3による自宅サーバー構築(CUIベース)
    •  ソフトウエア編(インストール)
      • 私見ですが完璧なセキュリティ設定は存在しないんじゃないか?と思っています。
        ウイルスの定義ファイルが日々更新されるように、ハッカーなどの悪意のある人達も新しい攻撃方法を探しています。
        その攻撃のネタのひとつでもある見つかっていないソフトウエアの脆弱な部分も沢山あるでしょう。
        日々、他のサイトも参考にするなど最新の情報にアンテナを高くして対策を実施して下さい。
        なお、この構築の記録は我が家の環境での記録であり、皆さんの環境で全く同様に再現できる保証はありません。
        留意願います(無保証です)

      •  ハッキングプログラム検知ソフト(chkrootkit)のインストールと設定
        •  ルートキット(rootkit)とは -2004年12月15日
          ハッカーがハッキングに成功したあと、再度侵入しやすいように入り口を仕込み
          ます。 この入り口をバックドアとかトロイの木馬とか言いますが、実際にはプ
          ログラムを仕込んだり設定を変えたりする訳ですが、このようなプログラムなど
          をルートキットと言います。

          突然、見たこともないプログラムがあれば気が付きもしますが、もともとシステ
          ムにあるプログラムと入れ替えられてしまったりするケースも多く見つけるのも
          容易ではありません。

          そこで「chkrootkit」をインストールして発見の手助けをして貰いましょう。
          なお、お断りして置きますがアンチウイルスと同様、このツールも完璧な物では
          ありませんので入れたから100%大丈夫って訳ではありません。

           では、インストール -2005年03月24日
           (エクストラパッケージ対応必須)
          [root@station ~]# yum -y install chkrootkit
          Setting up Install Process
          Setting up Repo:  fedora-us-extras
          repomd.xml                100% |=========================|  951 B    00:00
          Setting up Repo:  crash-hat
          repomd.xml                100% |=========================|  951 B    00:00
          Setting up Repo:  base
          repomd.xml                100% |=========================| 1.1 kB    00:00
          Setting up Repo:  updates-released
          repomd.xml                100% |=========================|  951 B    00:00
          Reading repository metadata in from local files
          fedora-us-: ################################################## 1002/1002
          crash-hat : ################################################## 77/77
          base      : ################################################## 2622/2622
          updates-re: ################################################## 740/740
          Resolving Dependencies
          --> Populating transaction set with selected packages. Please wait.
          ---> Package chkrootkit.i386 0:0.45-1 set to be installed
          --> Running transaction check
          
          Dependencies Resolved
          Transaction Listing:
            Install: chkrootkit.i386 0:0.45-1
          Downloading Packages:
          chkrootkit-0.45-1.i386.rp 100% |=========================| 248 kB    00:01
          Running Transaction Test
          Finished Transaction Test
          Transaction Test Succeeded
          Running Transaction
          Installing: chkrootkit 100 % done 1/1
          
          Installed: chkrootkit.i386 0:0.45-1
          Complete!
          [root@station ~]#
          

          実行してみます。
          [root@station ~]# cd /usr/lib/chkrootkit-0.45
          [root@station ~]# ./chkrootkit
          ROOTDIR is `/'
          Checking `amd'... not found
          Checking `basename'... not infected
          Checking `biff'... not found
          Checking `chfn'... not infected
          Checking `chsh'... not infected
          
          	〜 省略 〜
          
          Searching for Lion Worm default files and dirs... nothing found
          Searching for RSHA's default files and dir... nothing found
          Searching for RH-Sharpe's default files... nothing found
          Searching for Ambient's rootkit (ark) default files and dirs... nothing found
          Searching for suspicious files and dirs, it may take a while...
          /usr/lib/perl5/5.8.5/i386-linux-thread-multi/.packlist /usr/lib/perl5/vendor_per
          l/5.8.3/i386-linux-thread-multi/auto/NKF/.packlist /lib/modules/2.6.10-1.741_FC3
          /build/.config /lib/modules/2.6.10-1.741_FC3/build/scripts/basic/.split-include.
          cmd /lib/modules/2.6.10-1.741_FC3/build/scripts/basic/.docproc.cmd /lib/modules/
          2.6.10-1.741_FC3/build/scripts/basic/.fixdep.cmd /lib/modules/2.6.10-1.741_FC3/b
          uild/scripts/.conmakehash.cmd /lib/modules/2.6.10-1.741_FC3/build/scripts/.kalls
          yms.cmd /lib/modules/2.6.10-1.741_FC3/build/scripts/.pnmtologo.cmd /lib/modules/
          2.6.10-1.741_FC3/build/scripts/genksyms/.genksyms.cmd /lib/modules/2.6.10-1.741_
          FC3/build/scripts/genksyms/.genksyms.o.cmd /lib/modules/2.6.10-1.741_FC3/build/s
          cripts/genksyms/.lex.o.cmd /lib/modules/2.6.10-1.741_FC3/build/scripts/genksyms/
          .parse.o.cmd /lib/modules/2.6.10-1.741_FC3/build/scripts/kconfig/.mconf.o.cmd /l
          ib/modules/2.6.10-1.741_FC3/build/scripts/kconfig/.conf.cmd /lib/modules/2.6.10-
          1.741_FC3/build/scripts/kconfig/.conf.o.cmd /lib/modules/2.6.10-1.741_FC3/build/
          scripts/kconfig/.zconf.tab.o.cmd /lib/modules/2.6.10-1.741_FC3/build/scripts/mod
          /.elfconfig.h.cmd /lib/modules/2.6.10-1.741_FC3/build/scripts/mod/.empty.o.cmd /
          lib/modules/2.6.10-1.741_FC3/build/scripts/mod/.file2alias.o.cmd /lib/modules/2.
          6.10-1.741_FC3/build/scripts/mod/.mk_elfconfig.cmd /lib/modules/2.6.10-1.741_FC3
          /build/scripts/mod/.modpost.cmd /lib/modules/2.6.10-1.741_FC3/build/scripts/mod/
          .modpost.o.cmd /lib/modules/2.6.10-1.741_FC3/build/scripts/mod/.sumversion.o.cmd
          
          Searching for LPD Worm files and dirs... nothing found
          Searching for Ramen Worm files and dirs... nothing found
          Searching for Maniac files and dirs... nothing found
          Searching for RK17 files and dirs... nothing found
          Searching for Ducoci rootkit... nothing found
          
          	〜 省略 〜
          
          Checking `wted'... chkwtmp: nothing deleted
          Checking `scalper'... not infected
          Checking `slapper'... not infected
          Checking `z2'... chklastlog: nothing deleted
          Checking `chkutmp'... chkutmp: nothing deleted
          [root@station ~]#
          
          大文字で「INFECTED」って文字が見当たらなければとりあえずOK♪

          エラーのみ表示モードで実行してみます。
          [root@station chkrootkit-0.45]# ./chkrootkit -q
          
          /usr/lib/perl5/5.8.5/i386-linux-thread-multi/.packlist /usr/lib/perl5/vendor_per
          l/5.8.3/i386-linux-thread-multi/auto/NKF/.packlist /lib/modules/2.6.10-1.741_FC3
          /build/.config /lib/modules/2.6.10-1.741_FC3/build/scripts/basic/.split-include.
          cmd /lib/modules/2.6.10-1.741_FC3/build/scripts/basic/.docproc.cmd /lib/modules/
          2.6.10-1.741_FC3/build/scripts/basic/.fixdep.cmd /lib/modules/2.6.10-1.741_FC3/b
          uild/scripts/.conmakehash.cmd /lib/modules/2.6.10-1.741_FC3/build/scripts/.kalls
          yms.cmd /lib/modules/2.6.10-1.741_FC3/build/scripts/.pnmtologo.cmd /lib/modules/
          2.6.10-1.741_FC3/build/scripts/genksyms/.genksyms.cmd /lib/modules/2.6.10-1.741_
          FC3/build/scripts/genksyms/.genksyms.o.cmd /lib/modules/2.6.10-1.741_FC3/build/s
          cripts/genksyms/.lex.o.cmd /lib/modules/2.6.10-1.741_FC3/build/scripts/genksyms/
          .parse.o.cmd /lib/modules/2.6.10-1.741_FC3/build/scripts/kconfig/.mconf.o.cmd /l
          ib/modules/2.6.10-1.741_FC3/build/scripts/kconfig/.conf.cmd /lib/modules/2.6.10-
          1.741_FC3/build/scripts/kconfig/.conf.o.cmd /lib/modules/2.6.10-1.741_FC3/build/
          scripts/kconfig/.zconf.tab.o.cmd /lib/modules/2.6.10-1.741_FC3/build/scripts/mod
          /.elfconfig.h.cmd /lib/modules/2.6.10-1.741_FC3/build/scripts/mod/.empty.o.cmd /
          lib/modules/2.6.10-1.741_FC3/build/scripts/mod/.file2alias.o.cmd /lib/modules/2.
          6.10-1.741_FC3/build/scripts/mod/.mk_elfconfig.cmd /lib/modules/2.6.10-1.741_FC3
          /build/scripts/mod/.modpost.cmd /lib/modules/2.6.10-1.741_FC3/build/scripts/mod/
          .modpost.o.cmd /lib/modules/2.6.10-1.741_FC3/build/scripts/mod/.sumversion.o.cmd
          [root@station chkrootkit-0.45]#
          
          「/lib」「/usr/lib」内の隠しファイルが表示されました。 特に問題無いよう
          です。

           定期的に実行しましょう。 -2004年12月15日
          シェルスクリプトを書きますが、まずルートのディレクトリに「sh」って名
          前でディレクトリを作ります。 これは後で「何だったかな?」って判らな
          くなる事が多々あるので私の趣味です。 皆さんはお好きに(笑)
          [root@station chkrootkit-0.45]# mkdir /root/sh
          [root@station chkrootkit-0.45]# vi /root/sh/chkrootkit.sh
          #!/bin/sh
          cd /usr/lib/chkrootkit-0.45
          exec /usr/lib/chkrootkit-0.45/chkrootkit >> /var/log/chkrootkit.log
          chmod 600 /var/log/chkrootkit.log
          grep INFECTED /var/log/chkrootkit.log
          

          実行の権限を付けて、自動実行「cron」に1時15分に実行するよう登録してあ
          げます。 好きな時間で良いです(笑) 私は「0分」は避けてますが...
          [root@station chkrootkit-0.45]# chmod 700 /root/sh/chkrootkit.sh
          [root@station chkrootkit-0.45]# crontab -e
          15 01 * * * /root/sh/chkrootkit.sh | nkf -j
          

           レスキューFDを作りましょう。 -2004年12月15日
          次に「何か動きが変だな?」と思った時に使う「レスキューFD」を作ります。
          アンチウイルスのと違って発見だけで修復はしてくれませんし、ブートもしませ
          んが... まず、作る作業時に欲しいコマンドをダウンロードします。
          [root@station chkrootkit-0.45]# cd
          [root@station ~]# yum -y install which
          Setting up Install Process
          Setting up Repo:  base
          repomd.xml                100% |=========================| 1.1 kB    00:00
          Setting up Repo:  updates-released
          repomd.xml                100% |=========================|  951 B    00:00
          Reading repository metadata in from local files
          base      : ################################################## 2622/2622
          primary.xml.gz            100% |=========================| 134 kB    00:00
          MD Read   : ################################################## 327/327
          updates-re: ################################################## 327/327
          Resolving Dependencies
          --> Populating transaction set with selected packages. Please wait.
          ---> Downloading header for which to pack into transaction set.
          which-2.16-4.i386.rpm     100% |=========================| 6.0 kB    00:00
          ---> Package which.i386 0:2.16-4 set to be installed
          --> Running transaction check
          
          Dependencies Resolved
          Transaction Listing:
            Install: which.i386 0:2.16-4
          Downloading Packages:
          which-2.16-4.i386.rpm     100% |=========================|  23 kB    00:00
          Running Transaction Test
          Finished Transaction Test
          Transaction Test Succeeded
          Running Transaction
          Installing: which 100 % done 1/1
          
          Installed: which.i386 0:2.16-4
          Complete!
          [root@station ~]# yum clean packages
          Cleaning up Packages
          2 packages removed
          [root@station ~]#
          

          「ext2」形式のFDを作ります。 消しても良いFDをセットして
          [root@station ~]# fdformat /dev/fd0H1440
          両面, 80 トラック, 18 セクタ/トラック。合計容量 1440 kB。
          フォーマットします ... 終了
          照合します ... 終了
          [root@station ~]# mkfs -t ext2 -m 0 /dev/fd0H1440
          mke2fs 1.35 (28-Feb-2004)
          max_blocks 1474560, rsv_groups = 180, rsv_gdb = 5
          Filesystem label=
          OS type: Linux
          Block size=1024 (log=0)
          Fragment size=1024 (log=0)
          184 inodes, 1440 blocks
          0 blocks (0.00%) reserved for the super user
          First data block=1
          Maximum filesystem blocks=1572864
          1 block group
          8192 blocks per group, 8192 fragments per group
          184 inodes per group
          
          Writing inode tables: done
          inode.i_blocks = 12, i_size = 67383296
          Writing superblocks and filesystem accounting information: done
          
          This filesystem will be automatically checked every 34 mounts or
          180 days, whichever comes first.  Use tune2fs -c or -i to override.
          [root@station ~]#
          

          FDをマウントします。
          [root@station ~]# mount /media/floppy
          [root@station ~]#
          
          ※私はFDなしでインストール作業をした為か? マウントポイントと「/etc/fstab」にFDの設定がありませんでした(笑)

          必要ファイルをコピーします。
          [root@station ~]# cp -r  /usr/lib/chkrootkit-0.45 /media/floppy
          [root@station ~]# mkdir /media/floppy/cmd
          [root@station ~]# cp `which --skip-alias awk cut echo egrep find head id ls netstat ps strings sed uname` /media/floppy/cmd/
          [root@station ~]# umount /media/floppy
          
          ※ここでアンマウントする必要は無いのですが次の作業での繋がりで...

          FDから実行してみます。 今後、実行する時も同様の操作となります。
          [root@station ~]# mount /media/floppy
          [root@station ~]# cd /media/floppy/chkrootkit-0.45
          [root@station chkrootkit-0.45]# ./chkrootkit -q -p /media/floppy/cmd
          
          /usr/lib/perl5/5.8.5/i386-linux-thread-multi/.packlist /usr/lib/perl5/vendor_per
          l/5.8.3/i386-linux-thread-multi/auto/NKF/.packlist /lib/modules/2.6.10-1.741_FC3
          /build/.config /lib/modules/2.6.10-1.741_FC3/build/scripts/basic/.split-include.
          cmd /lib/modules/2.6.10-1.741_FC3/build/scripts/basic/.docproc.cmd /lib/modules/
          2.6.10-1.741_FC3/build/scripts/basic/.fixdep.cmd /lib/modules/2.6.10-1.741_FC3/b
          uild/scripts/.conmakehash.cmd /lib/modules/2.6.10-1.741_FC3/build/scripts/.kalls
          yms.cmd /lib/modules/2.6.10-1.741_FC3/build/scripts/.pnmtologo.cmd /lib/modules/
          2.6.10-1.741_FC3/build/scripts/genksyms/.genksyms.cmd /lib/modules/2.6.10-1.741_
          FC3/build/scripts/genksyms/.genksyms.o.cmd /lib/modules/2.6.10-1.741_FC3/build/s
          cripts/genksyms/.lex.o.cmd /lib/modules/2.6.10-1.741_FC3/build/scripts/genksyms/
          .parse.o.cmd /lib/modules/2.6.10-1.741_FC3/build/scripts/kconfig/.mconf.o.cmd /l
          ib/modules/2.6.10-1.741_FC3/build/scripts/kconfig/.conf.cmd /lib/modules/2.6.10-
          1.741_FC3/build/scripts/kconfig/.conf.o.cmd /lib/modules/2.6.10-1.741_FC3/build/
          scripts/kconfig/.zconf.tab.o.cmd /lib/modules/2.6.10-1.741_FC3/build/scripts/mod
          /.elfconfig.h.cmd /lib/modules/2.6.10-1.741_FC3/build/scripts/mod/.empty.o.cmd /
          lib/modules/2.6.10-1.741_FC3/build/scripts/mod/.file2alias.o.cmd /lib/modules/2.
          6.10-1.741_FC3/build/scripts/mod/.mk_elfconfig.cmd /lib/modules/2.6.10-1.741_FC3
          /build/scripts/mod/.modpost.cmd /lib/modules/2.6.10-1.741_FC3/build/scripts/mod/
          .modpost.o.cmd /lib/modules/2.6.10-1.741_FC3/build/scripts/mod/.sumversion.o.cmd
          
          [root@station chkrootkit-0.45]# cd
          [root@station ~]# umount /media/floppy
          [root@station ~]#
          
          ラベルに「レスキューchkrootkit」と書いてFDをしまって下さい(笑)

        Create DATE : 2004.12.15
        インストール方法の変更とバージョン相違による若干の訂正(旧版はこちら) : 2005.03.24


      • 以上、ftpなどでウイルスを拾って来てしまうなど内部から外部へのアクセスを前提としたセキュリティを意識しています。
        サーバーPCを直接操作してローカル環境での使用を前提としています。


      • 以下、外部から内部(家サーバー)へアクセスが発生します。
        ルーターに穴あけの設定も必要となります。 外部からの不正アクセスを十分意識して作業を進めて下さい。