LIDSCONF(8)

名前
lidsconf - Linux Intrusion Detection System 用の設定ツール

書式
lidsconf -A [-s subject] -o object [-d] [-t from-to] [-i level] -j ACTION
lidsconf -D [-s file] [-o file]
lidsconf -Z
lidsconf -U
lidsconf -L [-e]
lidsconf -P
lidsconf -v
lidsconf [-h|H]

説明
lidsconf は、Linux Intrusion Detection System (LIDS) の設定ツールである。 LIDS は現在のLinux カーネルを拡張する、カーネルパッチである。LIDS によっ て、重要なファイルや、ディレクトリや、デバイスを保護することができる。 さらにシステム全体に対して、アクセス制限をかけるACL を定義することもで きる。LIDS の詳しい情報に関しては、 http://www.lids.org を参照のこと。 lidsconf はLIDS に対してのアクセス制限情報を設定するために使用される。それに 関する全ての情報は、"/etc/lids/lids.conf" に保存される。

オプション (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-user@lists.sourceforge.net
    最新のLIDS メーリングリストのアーカイブは、次のところにある- http://www.geocrawler.com/redir-sf.php3?list=lids-user
    古いアーカイブは、次のところにある- http://groups.yahoo.com/group/lids

LIDS FAQ
    LIDS FAQ は次のところにある-
    http://www.lids.org/lids-faq/lids-faq.html
    あるいは、
    http://www.roedie.nl/lids-faq

バグ
LIDS に関するバグは、Xie やPhil に送るか、あるいはメーリングリスト (lids-user@lists.sourceforge.net) に送ってほしい。 カーネルをコンパイルするときに使った、.config ファイルと、/etc/lids に あるlids.conf とlids.cap ファイルを一緒に送ること。また、このマ ニュアルページでエラーを見付けたら、Sander Klein まで知らせて欲しい。

ファイル
/etc/lids/lids.conf - LIDS 設定ファイル
/etc/lids/lids.cap - 全体の権限の定義
/etc/lids/lids.net - e-mail アラートの設定
/etc/lids/lids.pw - 暗号化されたLIDS パスワード

関連項目
lidsadm(8)

AUTHORS
Huagang Xie <xie@lids.org>

Philippe Biondi <biondi@cartel-securite.fr>

マニュアルページは、Sander Klein によって書かれた。 <roedie@roedie.nl>

配布
LIDS の最新のバージョンは、 http://www.lids.org/ か、ミラーからダウンロードできる。

LIDS その他の注意点は、lidsadm (8) のマニュアルを参照のこと。