LANDISK HACKING DIARY
Since2005/8/17
TOPへ戻る

   INDEX
 
1. debパッケージの作成
2. iplog のインストールと設定




 
   debパッケージの作成


ここでは、オリジナルな deb パッケージを作成する方法について説明していく。deb パッケージの作成に関しては、Linuxな生活さんの「debパッケージの作成方法(個人利用レベル)」を参考にしました。このページよりも全然詳しく書かれているので是非読んでみてください。ここでは、iplog の deb パッケージを作成してみることにする。iplog は、ポートスキャンを監視できるソフトで、いつ、誰が(IP)、どこを(PORT)攻撃したかを監視することができるようになる。当然ながら、iplog の deb パッケージは公式サイトには用意されていないのでこちらからソースパッケージをダウンロードしてきます。

追記:結局、iplog は正常に起動しなかったので deb パッケージ作成の参考にでもしてください。

landisk:~# wget http://jaist.dl.sourceforge.net/sourceforge/ojnk/iplog-2.2.3.tar.gz
landisk:~# tar xzvf iplog-2.2.3.tar.gz
landisk:~# cd iplog-2.2.3

iplog を展開し、ソースディレクトリに移動したら以下のコマンドを発行する。-e オプションの後には自分のメールアドレスを記述してください。パッケージのタイプを聞かれたら、「S」(Single Binary)とタイプしてください。[ ENTER ] を押し、コマンドが終了したら、カレントディレクトリ内に debian ディレクトリが作成されています。

landisk:~# apt-get install dh-make
landisk:~# dh_make -e xxx@kororo.jp

Type of package: single binary, multiple binary, library, or kernel module?
[s/m/l/k] s

Maintainer name : root
Email-Address : kororo@kororo.jp
Date : Sat, 10 Sep 2005 18:24:57 +0900
Package Name : iplog
Version : 2.2.3
License : blank
Type of Package : Single
Hit <enter> to confirm:
Done. Please edit the files in the debian/ subdirectory now. iplog
uses a configure script, so you probably don't have to edit the Makefiles.

さっそく debian ディレクトリに移動してみる。

landisk:~# pwd
/usr/local/src/iploger/iplog-2.2.3
landisk:~# cd debian

中には、control、 rules 、copyright、changelog などが入っており、それらを手動で編集していく。まず、 control を編集していく。Section には、main, non-free, contrib のいずれかを指定する。あるいは、sound, graphic, base, x11, libs, mail, net などの Subsection を指定しても構わない。で、iplogがどのセクションに属するかということだが…よくわからないので取りあえず、main にでも設定しておく (いいのか?個人利用だからいいのです…(^_^;)。Priority は、優先度を表す。control ファイルは、単に形式的なものだろうから、とりあえずは Section だけ変更しておいてファイルを保存する。

landisk:~# vi control
Source: iplog
Section: main
Priority: optional
Maintainer: root <kororo@kororo.jp>
Build-Depends: debhelper (>= 4.0.0), autotools-dev
Standards-Version: 3.6.1

Package: iplog
Architecture: any
Depends: ${shlibs:Depends}, ${misc:Depends}
Description: <insert up to 60 chars description>
<insert long description, indented with spaces>

次に、rules ファイルを編集する。このファイルでconfigure オプションやCFLAGSを変更したりすることができる。ここでは、なにもいじらずにファイルを閉じる。

landisk:~# vi rules

copyright、changelog なども一応目を通しておく。ここまで終えたら(といってもほぼ何もしてないが)ビルドしてみる。ビルドが終了したら、iplog_2.2.3-1_sh4.deb というdebパッケージが出来上がっている。ちょっと感動である。

landisk:~# cd ../
landisk:~# dpkg-buildpackage -rfakeroot
landisk:~# cd ../ ; ls | grep deb
iplog_2.2.3-1_sh4.deb

緊張の一瞬。インストール成功したみたい。簡単すぎてなにか罠があるような気がする。

landisk:~# dpkg -i iplog*.deb

さっそく、/etc/iplog.conf の設定に入る…あれ?/etc に iplog.conf がインストールされてないのか。そういえば、ソースから make install するときも、コンフィグファイルだけは手動でサンプルファイルをコピーしていたな…。ということは、deb パッケージを作成する前に iplog.conf のサンプルファイルを /etc コピーするようにどこかのファイルに命令しなければいけないわけか。きっと rules に記述すればいいんだろう…と思ったらビンゴだった。rules に以下の赤い行を加えてみた。

landisk:~# vi debian/rules

# Add here commands to install the package into debian/iplog.
$(MAKE) install DESTDIR=$(CURDIR)/debian/iplog
cp -f $(CURDIR)/example-iplog.conf $(CURDIR)/debian/iplog/etc/iplog.conf

でも、これだけではダメだった。debian/iplog/ 以下に /etc ディレクトリが存在しないからという理由だ。というわけで、/etc ディレクトリを作成するようにするには、debian/dir を編集する。準備万端、ビルドしてみます。無事にiplog.conf も deb パッケージに格納されたようだ。

landisk:~# vi debian/dir
usr/bin
usr/sbin
etc/
landisk:~# dpkg-buildpackage -rfakeroot
landisk:~# cd ../
landisk:~# dpkg -c iplog*.deb | grep -i iplog.conf
-rw-r--r-- root/root 3985 2005-09-10 20:02:11 ./usr/share/man/man5/iplog.conf.5.gz
-rw-r--r-- root/root 1674 2005-09-10 20:02:11 ./etc/iplog.conf

landisk:~# dpkg -i iplog*.deb  //再度インスト〜る♪


 
     iplog のインストールと設定
 
それでは、さっそく iplog.conf を編集する。user と group は実行させるユーザとグループを明示的に指定している。root 権限を奪取されたときの事を考慮にいれればユーザ権限で動作させるべきだろう。「ignore tcp from 172.16.50.0/27」は自ネットワーク内からの TCP ポートスキャンは無視するという意味になる。Web サーバーを立てている場合は、ignore tcp dport 80 などとしておかないと返って無駄なログが残ってしまうので要注意。BIND のログが1番多いので、DNSを構築しているなら53番も ignore にしておくべきだろう。より細かな説明は、 man iplog.conf で調べて欲しい(最近、こんな手抜きばっかりだな)。

landisk:~# vi debian/dir
user                    iplog
group                   nogroup
logfile                 /var/log/iplog
pid-file                /var/run/iplog/iplog.pid
facility                log_daemon
priority                log_info
interface               eth0
set log_ip              true
set ignore_dns

ignore                  tcp sport 25
ignore                  tcp dport 25
ignore                  udp sport 53
ignore                  udp dport 53
ignore                  tcp sport 80
ignore                  tcp dport 80

ignore                  tcp from 172.16.50.0/27
ignore                  udp from 172.16.50.0/27
ignore                  icmp from 172.16.50.0/27

iplog を起動させる前にユーザーを作成しておこう。

landisk:~# adduser --shell /bin/false --home /dev/null --disabled-password --disabled-login iplog
landisk:~# mkdir /var/run/iplog
landisk:~# chown iplog.nogroup /var/run/iplog

いざ、起動させる。あれ?起動していない。なぜ…?

landisk:~# /usr/sbin/iplog
# ps aux | grep iplog
root 18755 0.0 1.1 2532 752 ttyp0 S+ 21:46 0:00 grep iplog

いろいろ試行錯誤しましたが、結局起動までには至りませんでした。Fedora Core にインストールした時は普通に動いたんだけど…。むむむ…。まぁ、2001年以来更新されていないソフトウェアだししょうがないのかな…(ということにしておこう)。





TOPへ戻る
 
Copyright © KORO All Rights Reserved.