LIDSCONF(8) | FreeBSD System Manager's Manual | LIDSCONF(8) |
名前
lidsconf - Linux Intrusion Detection System 用の設定ツール書式
lidsconf -A [-s subject] -o object [-d] [-t from-to] [-i level] -j ACTION説明
lidsconf は、Linux Intrusion Detection System (LIDS) の設定ツールである。オプション (ACL の)
ACL は "Access Control List"の略である。LIDS のACL では、Subject がどの様にObject に対してアクセス出来るのかを定義している。 Subject は、システム上の、任意のプログラムファイルを指している。Object はファイルや、ディレクトリや、その他の特別なオプション (MEM デバイス、RAW IO、隠しプロセス)を指している。Target は、Sbject のObject に対するアクセスタイプを定義している。- ACL の書式は
- [-s subject] [-d|-i TTL] -o object [-t timescale] -j TARGET
- Subject を省略すると、ACL はそのObject に対するデフォルトのアクセスを
- 定義する。
- -s subject
- Subject とは、システム上の"/bin/login"のような、任意のプログラムである。
- -o object [portscale]
- Object はファイルや、ディレクトリや、その他の特別なオプション (CAP_SYS_RAWIO, CAP_HIDDEN, CAP_INIT_KILL, など) である。. Object が CAP_NET_BIND_SERVICE の場合には、例えば、"20-299,400-1002"のように、続けてポート番号の範囲を指定する必要がある。
- -d
- これは、DOMAIN 設定用である。これを指定すると、Subject はDomain で定義されているObject にのみアクセスが可能になる。このDomain 以外のObject に関する全てのアクセスは、できなくなる。
- -i <inheritance level>
-
これで、Subjectの子プロセスに対してのACL の継承を指定する。
inheritance level は、どれぐらいまでACL が影響するのかを表している。継承レベル"-1"は、無制限の継承を表す。継承レベル1 は、親プロセスにより発生された、同じプログラムでは無い子プロセスがACL を継承するが、子プロセスが発生した子プロセス(すなわち、オリジナルのプロセスから見た孫プロセス)には、ACL は継承されないということを表している。継承レベルは、親プロセスとは異なるプログラムの、子プロセスにのみ有効になる。もし子プロセスが親プロセスと同じ場合には、親プロセスと完全に同じ権限が与えられる。
- -t タイムスケール
-
これは、ACL に対する時間制限である。この制限は、Subject 付きのACL にのみ、作用する。時間制限とは、ACL が有効になる時間帯である。タイムスケールの書式は、"hourminute-hourminute"になる。例えば、"0905-1021"は、 "9 時5 分から、10 時21 分まで"となる。
- -j Target
-
Target には、通常のファイルアクセスACL に対してREAD, APPEND, WRITE, あるいは IGNORE が設定できる。特殊なObject に対しては、Target はGRANT だけが設定できる。
使用可能な権限
LIDS で使われる権限には、下記のものがある。封印して切替えをするときに、権限を有効や無効にするために名前を使用することができる。さらに、権限がシステム全体で無効になっているときでも、プログラムに権限を与えることができる。- CAP_CHOWN
- chown(2)/chgrp(2)
- CAP_DAC_OVERRIDE
- DAC access.
- CAP_DAC_READ_SEARCH
- DAC read.
- CAP_FOWNER
- ユーザーID とオーナーID が等しくない
- CAP_FSETID
- 実行ユーザーID とオーナーID が等しくない
- CAP_KILL
- 実/有効ID とプロセスID が等しくない
- CAP_SETGID
- setgid(2)
- CAP_SETUID
- set*uid(2)
- CAP_SETPCAP
- 転送権限
- CAP_LINUX_IMMUTABLE
- 不変か、付け加えられるファイル特性
- CAP_NET_BIND_SERVICE
- 1024 未満のポートへのバインディング
- CAP_NET_BROADCAST
- マルチキャストのブロードキャスト/リスニング
- CAP_NET_ADMIN
- インターフェース/ファイアーウォール/ルーティング変更
- CAP_NET_RAW
- RAW ソケット(ping)
- CAP_IPC_LOCK
- 共有メモリーセグメントのロック
- CAP_IPC_OWNER
- IPC 所有者のチェック
- CAP_SYS_MODULE
- カーネルモジュールの挿入と削除
- CAP_SYS_RAWIO
- ioperm(2)/iopl(2) アクセス
- CAP_SYS_CHROOT
- chroot(2)
- CAP_SYS_PTRACE
- ptrace(2)
- CAP_SYS_PACCT
- プロセスアカウンティングの設定
- CAP_SYS_ADMIN
- 管理者の重み
- CAP_SYS_BOOT
- reboot(2)
- CAP_SYS_NICE
- nice(2)
- CAP_SYS_RESOURCE
- リソース制限の設定
- CAP_SYS_TIME
- システム時間の設定
- CAP_SYS_TTY_CONFIG
- TTY 設定
- CAP_MKNOD
- mknod() の特別な許可
- CAP_LEASE
- ファイルにリースを許可
- CAP_HIDDEN
- システムからプログラムを隠す
- CAP_KILL_PROTECTED
- プロセスに、保護されているプロセスをkill させることを許可/不許可
- CAP_PROTECTED
-
シグナルからプロセスを保護
例
以下に、いくつかのlidsconf を使った例を示す。これらは簡単/平易なものから、複雑/難解なものまである。実際のファイル名はもっと具体的なものが使われることに注意すること。 実際のシステム に合わせてファイル/ディレクトリを置き換えること。- lidsconf -A -o /sbin -j READ
- このACL は、/sbin ディレクトリを読込み専用に保護する。
- lidsconf -A -o /var/log/message -j APPEND
- /var/log/messages を付加専用にする。
- lidsconf -A -o /sbin/test -j IGNORE
- /sbin を読込専用で保護するが、/sbin/test は保護しない。
- lidsconf -A -o /etc/passwd -j DENY
- /etc/passwd を全てのユーザーから隠す。ファイルを見るようなこと (open, stat, など)は、できなくなる。
- lidsconf -A -s /bin/login -o /etc/passwd -j READ
- /bin/login プログラムに、先ほどの設定で隠しファイルにされている /etc/passwd を読み込むことを許可する。この場合、/bin/login のみが/etc/passwd を読むことができる。その他のプログラムやユーザーは、そのファイル(/etc/passwd) を見ることはできない。
- lidsconf -A -o /home/httpd -j DENY
- lidsconf -A -s /usr/sbin/httpd -o /home/httpd -j READ
- lidsconf -A -s /usr/sbin/httpd -o CAP_NET_BIND_SERVICE 80 -i -1 -j GRANT
- Web サーバーのServerROOT (/home/httpd) をDENY で保護し、httpd バイナリー(/usr/sbin/httpd) のみがServerROOT (/home/httpd) を読み込むことを許可して、さらにhttpd がポート番号80 番にのみバインドできるようにすることを許可する。
- lidsconf -A -s /bin/program -i 2 -o CAP_NET_ADMIN -j GRANT
- /bin/program にCAP_NET_ADMIN の権限を与え、継承レベルを2 に設定している。
- lidsconf -A -s /usr/X11/bin/XF86_SVGA -o CAP_SYS_RAWIO -j GRANT
- XF86_SVGA にCAP_SYS_RAWIO の権限を、CAP_SYS_RAWIO が/etc/lids/lids.cap で無効になっているときにも、与える。
- lidsconf -A -s /usr/sbin/httpd -d -o /home/httpd -j READ
- httpd の実行ドメインを/home/httpd として定義している。/home/httpd 以外からの、どのようなオペレーションも、httpd が動いているときには許可しない。
- lidsconf -A -s /bin/login -o /etc/shadow -t 0900:1800 -j READ
- /bin/login に/etc/shadow ファイルを、09:00 から18:00 の間だけ読み込ませることを許可する。これにより、ユーザーのログインを、この時間だけに制限することができる。
- lidsconf -A -s /usr/sbin/sshd -o CAP_NET_BIND_SERVICE 10-22,300-1020 -j GRANT
-
/usr/sbin/sshd がポート番号10 から22 までと、300 から1020 までバインドすることができるように定義している。このケースでは、ssh はこの番号の範囲のみでしかバインドできない。
その他の情報源
- メーリングリスト
-
参加、退会するときには、次のサイトを参照-
http://lists.sourceforge.net/lists/listinfo/lids-user
- LIDS FAQ
-
LIDS FAQ は次のところにある-
バグ
LIDS に関するバグは、Xie やPhil に送るか、あるいはメーリングリスト (lids-user@lists.sourceforge.net) に送ってほしい。カーネルをコンパイルするときに使った、.config ファイルと、/etc/lids にあるlids.conf とlids.cap ファイルを一緒に送ること。また、このマニュアルページでエラーを見付けたら、Sander Klein まで知らせて欲しい。ファイル
/etc/lids/lids.conf - LIDS 設定ファイル関連項目
lidsadm(8)AUTHORS
Huagang Xie <xie@lids.org>Philippe Biondi <biondi@cartel-securite.fr>
マニュアルページは、Sander Klein によって書かれた。 <roedie@roedie.nl>