レンタルサーバ + Webシステム開発 = E-business

■レンタルサーバご利用参考資料
サーバご利用の参考にJF Project によるJF (Japanese FAQ)を掲載しています。

Linux JF(Japanese FAQ)Project.
JF は, Linux に関する解説文書・FAQ などを作成・収集・配布するプロジェクトです.

グリーンネット・トップページへ戻る


一覧に戻る
Linux Intrusion Detection System FAQ

Omo Kazuki - Translator, v.20J, August 8th, 2003

       omok AT honto DOT info
      

Kurashiki Satoru - Translator, v.17J, Mar 8th, 2002

       ouka AT fx DOT sakura DOT ne DOT jp
      

Sander Klein

lids AT roedie DOT nl

v.20, May 19th, 2003

これは、Linux 侵入検知システム (LIDS) のFAQ です。これらの質問は、主に
LIDS-mailling-list で質問されたものです。  

このドキュメントの時点でリリースされているLIDS のバージョンは以下になり
ます:

 ・ Kernel 2.4: 1.1.1 (stable) 1.1.2-rc6 (developement)
   
 ・ Kernel 2.2: 0.11.0r2 (stable) 0.11.1pre1 (development)
   
 ・ Kernel 2.5: 2.0.3rc1 (development)
   
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 

Table of Contents
1. LIDS 入門
   
    1.1. LIDS とは何ですか?
    1.2. なぜLIDS を使うのですか?
    1.3. LIDS はどこで入手することができますか?
    1.4. どのバージョンのLinux カーネルがサポートされていますか?
    1.5. LIDS のメーリングリストはありますか?
    1.6. アーカイブはどうなっていますか?
    1.7. 著作権と注意書き
    1.8. フィードバック
    1.9. クレジット
    1.10. 翻訳
    1.11. 更新履歴
    1.12. To-do
    1.13. この FAQ はどこから入手できますか?
   
2. LIDS のインストール
   
    2.1. LIDS カーネルパッチはどうやって当てるのですか?
    2.2. LIDS の管理ユーティリティ (lidsadm と lidsconf) をインストール
        する方法は?
    2.3. 次は?
    2.4. lidsadm をコンパイルしようとしたら、gcc に lidstext.h がない、
        といわれました。この問題はどうやって解決すればいいの?
    2.5. Debian ユーザへの注意……
    2.6. LIDS のパッチを RedHat のカーネル 2.x.x-x にあてようとしたら、
        エラーになりました。何が悪いの?
   
3. lidsadm と lidsconf
   
    3.1. lidsadm とは何ですか?
    3.2. lidsconf とは何ですか?
    3.3. lidsadm で使えるオプションは何がありますか?
    3.4. lidsconf で使えるオプションは何がありますか?
    3.5. 素晴らしい。で、これらの権限はどういうものなの?
   
4. LIDS の管理
   
    4.1. LIDS のパスワードを設定するにはどうすればいいですか?
    4.2. 一度設定された LIDS パスワードを変更するにはどうすればよいです
        か?
    4.3. LIDS フリーセッションとは何? どうやって作ればいいの?
    4.4. LIDS フリーセッションを作ったけど、LIDS がまだ有効になってるみ
        たい! 何がまずいの?
    4.5. LIDS に設定ファイルをリロードさせるにはどうすればいいの?
    4.6. 助けて!!! 私のシステムが完全に使えなくなってしまいました!
         どうすればいいでしょう?
    4.7. システムバイナリを変更/移動しました。ファイルが変更/移動したこ
        とを LIDS に教えるにはどうするのですか?
    4.8. じゃあ、再起動せずに LIDS を完全に無効にする方法は?
    4.9. "カーネルを封印する"とはどういうことですか?
    4.10. LIDS システムの状態を見るにはどうすればいいの?
    4.11. LIDS のポートスキャン検知を設定するにはどうすればいいですか?
    4.12. LIDS の --> --ACL における subject とobject とはなんですか?
    4.13. /etc/lids/lids.cap を修正して設定ファイルをリロードする以外に
        システムの権限を有効/無効にすることはできますか?
    4.14. LIDS の ACL を再設定したのに、変更が反映されていないように見
        えます。何が悪いのでしょう?
    4.15. lidsconf -L が私の ACL を表示してくれないのですが?
    4.16. コンソールに報告されるたくさんの LIDS 違反をどうにかして減ら
        せないの?
    4.17. LIDS を使う時は、LD_PRELOAD 環境変数に注意した方がいいですか
        ?
    4.18. 起動した時、"read password file error" というメッセージが表示
        されます。この問題を直すにはどうすればよいでしょう?
    4.19. LIDS が有効か無効かを調べるにはどうすればいいの?
   
5. LIDS の設定
   
    5.1. ファイルを読みとり専用にして保護する方法は?
    5.2. OK, じゃあディレクトリを読みとり専用にするにはどうすれば?
    5.3. 誰からもファイル/ディレクトリを隠すことはできますか?
    5.4. 追記しかできないようにログファイルを保護する方法は?
    5.5. /etc/shadow ファイルを読むのに、何も許可がなければ、どうやって
        私はシステムに認証されるの?
    5.6. /etc を読みとり専用で保護したら、mount はどうやって /etc/mtab
        へ書きこみをするのでしょう?
    5.7. LIDS が、起動時に modules.dep ファイルに書きこめない、と文句を
        言います。何が悪いのですか?
    5.8. ログを追記専用で保護していると、logrotated はどうやってログを
        ローテートするのでしょう?
    5.9. なぜ、単純にログローテーションユーティリティにログファイルのあ
        るディレクトリへの書きこみ許可を与える方法で、それらをローテー
        トするようにしてはいけないのですか?
    5.10. LIDS が有効な時、シャットダウンまでファイルシステムがアンマウ
        ント出来ません。どうすればよいでしょう?
    5.11. なぜ特権ポートを使うサービスが root で開始できないのですか?
    5.12. なぜ特権ポートを使うサービスを LFS から開始できないのですか?
    5.13. 権限を無効/有効にする方法は?
    5.14. LIDS が有効になっていると X Window System が動作しないのはな
        ぜですか?
    5.15. これら ACL 全てに対して、私は一体全体どうやって自分の設定を把
        握しておけばよいのでしょう?
    5.16. 起動とシャットダウンの時に LIDS が文句を言わないように、init
        に /etc/initrunlvl への書きこみアクセスを許すにはどうすればいい
        ですか?
    5.17. プロセスは、親プロセスからそのファイル ACL を継承できますか?
    5.18. 助けて! LIDS のもとでは、プログラム xyz が動作しないようで
        す。どのファイル/権限にアクセスする必要があるのか、どうやって決
        めるのでしょう?
    5.19. /etc/shadow ファイルを更新する適切なパーミッションを passwd
        に与えるにはどうすればいいですか?
    5.20. LIDS が有効になっていると、ssh や scp が動作しないのは何故で
        すか?
    5.21. OpenSSH が起動時に開始されません。LIDS は bash が隠しファイル
        にアクセスしようとしている、とレポートを出しています。これはど
        うすれば直りますか?
    5.22. 隠しプロセスが走っているため、シャットダウン時にファイルシス
        テムのいくつかがアンマウントできません。どうすればそれらを kill
        できますか?
    5.23. 基本的な設定から始めたいだけなんです。追加の保護を提供してく
        れて、さらにシステムの機能のほとんどを通常通りにしておいてくれ
        るお勧めのセットアップはありますか?
    5.24. 日時をもとにしてアクセスを制限することはできますか?
    5.25. プログラムがバインドできるポートを制限するにはどうすればいい
        の?
    5.26. /etc/mtab を /proc/mounts へのシンボリックリンクにしても、ユ
        ーザクオータは機能しますか?
    5.27. LIDS が保護しているファイルを編集すると、LIDS に保護されなく
        なるようです。なぜですか?
    5.28. LIDS の設定を更新したら、いくつかのプロセスが権限を失っちゃう
        ようです
   
6. セキュリティ警告の設定
   
    6.1. ネットワーク越しにセキュリティ警告を送るには、どのカーネル設定
        オプションが必要ですか?
    6.2. LIDS の警告を送るメールサーバと e-mail アドレスの情報は、どこ
        で指定すればいいのですか?
    6.3. LIDS が、私の qmail SMTP サーバには警告を配信してくれないよう
        です。これは直せますか?
   
7. 設定のサンプル
   
    7.1. 基本的なシステムのセットアップ
    7.2. Apache
    7.3. Qmail
    7.4. Dnscache & Tinydns (djbdns)
    7.5. Courier-imap
    7.6. MySQL
    7.7. OpenSSH (3.4p1)
    7.8. OpenLDAP (slapd)
    7.9. Port Sentry
    7.10. Samba
    7.11. Linux HA heartbeat
    7.12. Bind 9.x
    7.13. Sendmail
    7.14. Apcupsd
    7.15. Pump
    7.16. Snort
    7.17. Getty
    7.18. Login
    7.19. Su
    7.20. Exim
    7.21. Qpopper
    7.22. Proftp
    7.23. Aproxy
    7.24. Squid
    7.25. Innd
    7.26. Postfix
   
8. LIDS テクニカル
   
    8.1. LIDS は ext2 以外のファイルシステムでも動作しますか?
    8.2. LIDS は SMP のシステムで動作しますか?
    8.3. LIDS は Solar Designer の Openwall パッチと共存しますか?
    8.4. LIDS は非インテルなハードウェア上で動作しますか?
    8.5. LIDS のバージョン 0.x, 1.x と 2.x との違いは何ですか?
   
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 

Chapter 1. LIDS 入門

1.1. LIDS とは何ですか?

 LIDS は、Xie Huagang  とPhilippe Biondi
 によって書かれた、Linux カーネル
の拡張です。素のLinux カーネルにはない、いくつかのセキュリティ機能を実
装します。これらは、−強制アクセス制御(MAC)、ポートスキャン検知、ファイ
ル保護(root からも保護します)、プロセス保護などです。

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 

1.2. なぜLIDS を使うのですか?

現在のLinux の機構は、たくさんの *nix に由来する、多くの問題を抱えてい
ます。おそらく、唯一にして最大の問題は、root アカウントが "全能であるこ
と" です。プロセスやユーザがroot 特権を持っていて、そのプロセスやユーザ
がシステムを完全に破壊しようとしたら、誰にも止められません。悪意のある
ユーザ/侵入者によるroot アクセスは、我々多忙な管理者に、多大な心労をも
たらしかねません。LIDS は、強大なroot アカウントを使える人でさえシステ
ムに対し大混乱をひきおこせないような仕組みであるアクセス制御リスト(ACL)
を実装しています。こういったACL により、LIDS はプロセスのみならずファイ
ルをも保護することができるのです。

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 

1.3. LIDS はどこで入手することができますか?

http://www.lids.org か、もしくはミラーサイトからダウンロードできます。
ミラーサイトのリストは、 http://www.lids.org/mirrors.htmlにあります。

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 

1.4. どのバージョンのLinux カーネルがサポートされていますか?

 現在、LIDS は新しい 2.4 カーネルの他に、2.2 カーネルもサポートしていま
す。 LIDS の開発は 2.5 カーネルを使って行われています。ですから、新しい
機能は先にそちらで実装されます。とはいえ、ユーザのニーズによって、2.4
あるいは 2.2 カーネルにバックポートされる機能もあります。LIDSの最新バー
ジョンでは、LSM (Linux Security Modules )の機能
も取り込んでいます。

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 

1.5. LIDS のメーリングリストはありますか?

あります。いつでも lids-users@lists.sourceforge.net に e-mail すれば、
メーリングリストへの投稿になります。ただし、メーリングリストへポストさ
れたメッセージを受けとりたいならば、登録する必要があります。登録するに
は、http://lists.sourceforge.net/lists/listinfo/lids-user < http://
lists.sourceforge.net/lists/listinfo/lids-user> へ行き、フォームを埋め
てください。すると、確認要求が届きますので、それに返信してください。そ
のページから、登録解除とメーリングリストオプションの変更もできます。

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 

1.6. アーカイブはどうなっていますか?

メーリングリストのアーカイブは http://www.geocrawler.com/lists/3/
SourceForge/9348/0/  にあります。古いアーカイブは http://groups.yahoo.com/group/
lids に置いてあります。

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 

1.7. 著作権と注意書き

この文書は、copyright(c) 2000, 2001, 2002 Steve Bremer -- 2002, 2003
for Sander Klein で、FREE なものです。GNU General Public License のもと
に再配布することができます。 

この文書にある情報は、Sander の知識の限りにおいて、正確です。とはいえ人
間ですから、その時々において誤りやバグなどはあり得ます。

どんな個人やグループ、あるいは他の主体も、この文書にある情報を使うこと
によるあなたのコンピュータへの被害や何か他の損失の責任を負うことはあり
ません。すなわち−

"著者および全メンテナは、この文書にある情報に基いてなされた行動により被
ったいかなる被害にも責任を負いません。"

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 

1.8. フィードバック

この文書に対して質問、コメント、提案や修正があるなら、お気軽に lids AT
roedie DOT nl で私にコンタクトをとってくださ
い。良いものであれ悪いものであれ、いつでもフィードバックは歓迎します!

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 

1.9. クレジット

特別の謝意を−

 ・ Xie Huagang - テクニカルエディタであり、LIDS の作者
   
     □ LIDS versionについての質問
       
     □ Subject/objectについての質問
       
 ・ Philippe Biondi - LIDS の作者
   
 ・ Andy Harrelson - 文法/綴りの監修
   
 ・ Rob Willis - Open-SSH, OpenLDAP, それと Port Sentry の設定例
   
 ・ Fred Mobach - ひらめきと訂正
   
 ・ David Ranch - 私は、sgml のテンプレートに、彼の素晴らしい Linux IP
    Masquerade HOWTO  を使いました。
   
 ・ Austin Gonyou -
   
     □ FAQ への有益なフィードバック
       
     □ lidsadm のコンパイルの問題への新しい修正
       
     □ /etc/passwd ファイルの i ノード更新についての警告
       
 ・ Pavel Epifanov - lidsadm のコンパイルの問題への簡単な修正
   
 ・ Justus Pendleton - Samba の設定サンプル
   
 ・ Nenad Micic
   
     □ 隠しプロセスを kill するスクリプトの例
       
     □ シャットダウン時に隠しプロセスを kill する C プログラム
       
     □ LD_PRELOAD 警告
       
 ・ Bill Phillips - PDF バージョンにおける、多数の参照ミスの指摘
   
 ・ Szymon Juraszczyk
   
     □ LD_PRELOAD 警告
       
 ・ Lorn Kay -
   
     □ Linu HA 用のハートビートの設定
       
     □ Sendmail の設定
       
 ・ Bill McKenzie - Portsentry の設定に対する追加
   
 ・ Sander Klein
   
     □ LIDS が有効か無効かのチェックに関する質問.
       
     □ Apcupsd の設定
       
     □ Pump の設定
       
     □ Snort の設定
       
     □ getty の設定
       
     □ login の設定
       
     □ su の設定
       
 ・ David Spreen - 時間限定の警告と crontab へのアクセス制限.
   
 ・ Thomas Linden - BIND 9.x の設定を提供
   
 ・ Mathias Gygax - exim, qpopper と proftp のサンプル設定を提供
   
 ・ Dimitri Goldin - /dev/ptsがマウントされていて、保護されていない状態
    では、rootユーザーがLIDSのパスワードを取得できてしまう事を指摘
   
 ・ BigSam - Innd の設定.
   
 ・ Ralf Dreibrodt - Innd の設定.
   
 ・ Steve Bremer - この文書を書きはじめてくれたことに。私が LIDSを初め
    て使用した時に、とても助けになりました
   
" Linux は Linus Torvalds の登録商標です "

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 

1.10. 翻訳

次のリストは、この文書の翻訳です

 ・ Japanese -- http://www.linux.or.jp/JF/JFdocs/LIDS-FAQ.html
   
 ・ Polish -- http://www.linuxpub.pl/man/lidsfaq/.
   
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 

1.11. 更新履歴

このFAQの最新版は http://www.roedie.nl/lids-faq/にあります。バグを報告
する前に、最新バージョンをチェックしてください

 ・ May 19th, 2003. Version .20
   
     □ Postfix の例を追加
       
     □ Openssh の例を更新
       
     □ 1.1.0以前のバージョンのlidsの、コンパイル箇所を削除
       
     □ '/etc/lidsディレクトリが見えません'の箇所を削除
       
     □ 権限の喪失に関する質問を追加
       
     □ 権限セクションの修正
       
     □ さまざまな細かい修正
       
 ・ December 22th, 2002. Version .19
   
     □ これは私(Sander Klein)がリリースする最初のバージョンのLIDS FAQ
        です。Steveに感謝
       
     □ lidsadm -Pをlidsconf -Pに置き換えた
       
     □ さまざまな箇所を最新の情報に書き換えた
       
     □ ドキュメントをdocbookフォーマットのldpスタイルに書き換えた
       
     □ 権限セクションの追加
       
     □ いくつかのURLを正しいものに変更した
       
 ・ April 27th, 2002. Version .18
   
     □ これは、私 (Steve Breme)が提供する最後のLIDS FAQになります。
        Sander KleinがこのFAQの、新しいメンテナンス者になります。
       
     □ aproxy 設定例の追加
       
     □ /dev/pts 警告の追加
       
     □ squid 設定例の追加
       
     □ PowerPC status のアップデート
       
     □ Innd 設定例の追加
       
     □ その他の細かい訂正
       
 ・ January 28th, 2002. Version .17
   
     □ "READ" から "READONLY" への変更
       
 ・ January 12th, 2002. Version .16
   
     □ バージョン1.1.0用の、様々な変更
       
     □ 細かな修正
       
     □ exim, qpopper, と proftpの、設定例の追加
       
     □ console logging の質問のアップデート
       
     □ LD_PRELOAD 警告のアップデート
       
     □ file ACL inheritance の質問のアップデート
       
     □ ファイルの編集の、質問の追加
       
 ・ November 12th, 2001. Version .15
   
     □ 多くの(Sendmail,apcupsd,pump,snort,getty,login,su)設定例の追加
        。Sander Klein と Lorn Kayに感謝
       
     □ Red Hat Kernel パッチの質問を追加
       
     □ User の容量制限質問の追加
       
 ・ August 26th, 2001. Version .14
   
     □ LIDS enabled/disabled 質問の追加
       
     □ basic configuration 質問の追加
       
     □ Debian ユーザーの注意点を追加
       
     □ 時間制限の質問を追加
       
     □ 新しい時間制限方法を使って、ログローテーションをする方法の質問
        を更新
       
     □ 非Intel ハードウェアの質問を更新
       
     □ 翻訳セクションの追加
       
     □ ポート制限の質問を追加
       
     □ BIND 9.x の設定を追加
       
 ・ May 20th, 2001. Version .13
   
     □ HA Linux 用のハートビート設定を追加
       
     □ read password error の質問を追加
       
     □ 基本設定の質問を追加
       
     □ portsentry の設定への細かい追加
       
     □ パスワード更新の質問の拡張
       
     □ その他の細かな修正
       
 ・ April 1st, 2001. Version .12
   
     □ 新しいバージョンのLIDS (1.0.6+ and 0.9.14+)用に FAQ を更新
       
     □ LD_PRELOAD 環境での警告の追加
       
     □ ハードウェアの質問を更新
       
 ・ March 10th, 2001. Version .11
   
     □ PDF バージョンでの幾つかの参照エラーを修正(まだ、幾つかの、変
        換されたドキュメントは注意する必要がある)
       
     □ 基本的なシステムのセットアップ設定を明白にした
       
     □ メイリングリスト情報の更新
       
     □ パスワードとログローテーションの、質問の更新
       
 ・ March 1st, 2001. Version .10
   
     □ Samba 設定例の追加
       
     □ シャットダウン時に隠しプロセスを kill する方法の例
       
     □ ssh keygen question の追加
       
     □ パスワード更新の質問を拡張
       
 ・ February 10th, 2001. Version .09
   
     □ ssh/scp の質問を追加
       
     □ メーリングリスト情報の更新
       
     □ LIDS SMP status の更新
       
 ・ January 27th, 2001. Version .08
   
     □ "Server Root" が DENY として保護されるようにApache の設定を変更
       
     □ デフォルトのディレクトリが DENY として保護されるようにmysql と 
        courier-imap の設定を変更
       
     □ ssh の設定を、パスワード認証が動くように変更
       
     □ ACL の再設定に関する質問を追加
       
 ・ January 25th, 2001. Version .07
   
     □ lidsadm のコンパイル問題を修正。 Clarified the カーネルの封印の
        質問を (願わくば)明白にした。細かな修正
       
 ・ January 24th, 2001. Version .06
   
     □ /etc/mtab はシステム起動時に再作成され、ファイルシステムはアン
        マウントされるので、/etc/mtab マウントの ACL 設定例を削除した
       
     □ lidsadm コンパイル問題の修正を追加
       
     □ 細かな修正
       
 ・ January 22nd, 2001. Version .05
   
     □ 基本的なシステムセットアップの設定例を追加。e-mail アラートの設
        定のセクションを追加
       
 ・ January 19th, 2001. Version .04
   
     □ lidsadm コンパイル問題の細かな修正
       
 ・ January 17th, 2001. Version .03
   
     □ LIDS-0.9.12 での新しいfile ACL の "-i" オプションに関する情報を
        追加。また、"-i" オプションが必要になった時の使用例を更新。その
        他、lidsadm コンパいつ問題の情報や、権限の有効/無効や、新しいプ
        ログラムに対するACLのセットアップ方法に関する細かな更新。
       
 ・ January 15th, 2001. Version .02
   
     □ 細かな修正
       
 ・ January 15th, 2001. Version .01
   
     □ 最初のリリース
       
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 

1.12. To-do

このドキュメントの時点でもまだ必要なこと:

 ・ LIDS-LSM への追加
   
 ・ おそらく、他にももっと。
   
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 

1.13. この FAQ はどこから入手できますか?

HTML 版の LIDS-FAQ はLIDS 
のサイトに有ります。その他のフォーマットは、 http://www.roedie.nl/
lids-faq/ からダウンロードできます。

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 

Chapter 2. LIDS のインストール

2.1. LIDS カーネルパッチはどうやって当てるのですか?

Xie は instructions  にLIDS をダウン
ロードして、カーネルにパッチをあてる方法をもりこんでいます。とはいえ、
必要な手順について簡単におさえておくことにします。この例では、カーネル
ソースが /usr/src/linux にインストールされていると想定しています。

カーネルに対応している LIDS の最新版を使用しているかどうか、常に気をつ
けましょう。LIDS は急ピッチで開発されており、ドキュメントも、それに伴っ
て変わります。

 ・ 最初に、LIDS のパッチを www.lids.org/download.html  からダウンロードする必要があります。カ
    ーネルに合ったバージョンを入手するように注意してください。(それぞ
    れのディストリビューション用のカーネルを使用している方は、 
    following を読んでください。)
   
 ・ 次に、tarball を展開します−
   
    ┌──────────────────────────────────┐
    │bash$ tar -zxvf lids-lids のバージョン-カーネルのバージョン.tar.gz  │
    │                                                                    │
    └──────────────────────────────────┘
   
 ・ 既存のカーネルソースに lids のパッチを適用します−
   
    ┌────────────────────────────────────────────┐
    │bash$ cd /usr/src/linux                                                                 │
    │bash$ patch -p1 < /path/to/lids/patch/lids-lids のバージョン-カーネルのバージョン.patch │
    │                                                                                        │
    └────────────────────────────────────────────┘
   
 ・ それから、カーネルの設定をします。Linux カーネルの再コンパイルにお
    ける素晴らしい情報源としては、Linux Kernel HOW-TO  を参照してください。
   
LIDS 用に、いくつかのカーネル設定オプションがあります。LIDS が動作する
ためには、以下のオプションが有効になっていることを確認してください−
┌──────────────────────────────────┐
│  [*]   Prompt for development and/or incomplete code/drivers       │
│  [*]   Sysctl Support                                              │
└──────────────────────────────────┘

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 

2.2. LIDS の管理ユーティリティ (lidsadm と lidsconf) をインストールする
方法は?

 ・ LIDS 1.1.2+
   
注意: LIDS をアップグレードしているなら、最初に /etc/lids ディレクトリ
を全てバックアップしてください)

LIDS のソースディレクトリで、こう入力します−
┌──────────────────────────────────┐
│bash$ tar -zvxf lidstools- バージョン .tar.gz                       │
│bash$ cd lidstools- バージョン                                      │
│bash$ ./configure                                                   │
│bash$ make                                                          │
│bash$ su -                                                          │
│bash# make install                                                  │
└──────────────────────────────────┘
これで lidsadm と lidsconf が /sbin ディレクトリにインストールされます
。さらに、/etc/lids ディレクトリが作られ、デフォルトの設定ファイルがい
くつかそこに置かれます。設定ファイルは、システムの適切な i ノード及びデ
バイス情報で更新されます。また、この時点で LIDS のパスワードを入力する
ように求められます。 i ノードの更新プロセス時に、システムに存在していな
いファイルを見ようとしているときには、いくつかのエラーを出します。これ
らのエラーは有害なものではありません。

lidsadm の参照オプション (-V) を有効にしたくないなら、--disable-view を
指定して configure を実行してください。

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 

2.3. 次は?

再起動して LIDS で強化されたカーネルにする前に、まず LIDS の ACL を設定
せねばなりません。さもなければ、再起動するとシステムが使いものにならな
くなります。LIDS の ACL を設定する方法については後ほど。

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 

2.4. lidsadm をコンパイルしようとしたら、gcc に lidstext.h がない、とい
われました。この問題はどうやって解決すればいいの?

これは、/usr/include/linux が /usr/src/linux/include/linuxへのシンボリ
ックリンクではないシステムにおいて発生します。完全なエラーメッセージは
こうです−
┌───────────────────────────────────────────┐
│lidsadm.c:30: linux/lidsext.h: No such file or directory make: *** [lidsadm.o] Error 1│
└───────────────────────────────────────────┘
この問題を解決するには、lidsadm のソースディレクトリにある Makefile を
編集して、CFLAGS オプションに -I/usr/src/linux/include を加えてください
。この時点で、普通に lidsadm をコンパイルできるはずです。 

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 

2.5. Debian ユーザへの注意……

David Spreen は LIDS の Debian パッケージを保守しています。パッケージ固
有の LIDS の設定を netzwurm@debian.org  宛てにメー
ルすると喜ぶでしょう。Debian 固有の修正が含まれているため、Debian ユー
ザは LIDS の Debian パッケージを使うようにも彼は勧めています。

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 

2.6. LIDS のパッチを RedHat のカーネル 2.x.x-x にあてようとしたら、エラ
ーになりました。何が悪いの?

LIDS は Linus が開発した "普通の" カーネルを使って開発されています。
RedHat や Debian、Suse を含む多くのディストリビューションでは、カーネル
をカスタマイズしています。これは悪いことではありませんが、それらのカー
ネルが Linus のものと同じではない、ということは知っておいてください。
(Debian ユーザは上の注意を見てください。)

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 

Chapter 3. lidsadm と lidsconf

3.1. lidsadm とは何ですか?

lidsadm は LIDS の管理ユーティリティで、これを使ってシステムの LIDS を
管理します。これには、LIDS を有効/無効にしたり、カーネルを封印したり、
LIDS の状況を見たりすることが含まれます。

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 

3.2. lidsconf とは何ですか?

lidsconf は LIDS のアクセス制御リスト (ACL) を設定するのに使います。ま
た、LIDS のパスワードをセットするのにも使います。注意:LIDS 1.1.0 より
前のバージョンでは、現在 lidsconf が行っている仕事も全て lidsadm がこな
します。

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 

3.3. lidsadm で使えるオプションは何がありますか?

利用可能なオプションを一覧するには、こう入力してください−
┌──────────────────────────────────┐
│bash# lidsadm -h                                                    │
└──────────────────────────────────┘
これによって、以下の出力が返ってきます−
┌─────────────────────────────────────────┐
│lidsadm version 0.4.1 for LIDS project                                            │
│       Huagang Xie                                              │
│       Philippe Biondi                                        │
│                                                                                  │
│Usage: lidsadm -[S|I] -- [+|-][LIDS_FLAG] [...]                                   │
│       lidsadm -V                                                                 │
│       lidsadm -h                                                                 │
│                                                                                  │
│Commands:                                                                         │
│       -S  To submit a password to switch some protections                        │
│       -I  To switch some protections without submitting password (sealing time)  │
│       -V  To view current LIDS state (caps/flags)                                │
│       -v  To show the version                                                    │
│       -h  To list this help                                                      │
│                                                                                  │
│Available capabilities:                                                           │
│           CAP_CHOWN chown(2)/chgrp(2)                                            │
│    CAP_DAC_OVERRIDE DAC access                                                   │
│ CAP_DAC_READ_SEARCH DAC read                                                     │
│          CAP_FOWNER owner ID not equal user ID                                   │
│          CAP_FSETID effective user ID not equal owner ID                         │
│            CAP_KILL real/effective ID not equal process ID                       │
│          CAP_SETGID set*gid(2)                                                   │
│          CAP_SETUID set*uid(2)                                                   │
│         CAP_SETPCAP transfer capability                                          │
│ CAP_LINUX_IMMUTABLE immutable and append file attributes                         │
│CAP_NET_BIND_SERVICE binding to ports below 1024                                  │
│   CAP_NET_BROADCAST broadcasting/listening to multicast                          │
│       CAP_NET_ADMIN interface/firewall/routing changes                           │
│         CAP_NET_RAW raw sockets                                                  │
│        CAP_IPC_LOCK locking of shared memory segments                            │
│       CAP_IPC_OWNER IPC ownership checks                                         │
│      CAP_SYS_MODULE insertion and removal of kernel modules                      │
│       CAP_SYS_RAWIO ioperm(2)/iopl(2) access                                     │
│      CAP_SYS_CHROOT chroot(2)                                                    │
│      CAP_SYS_PTRACE ptrace(2)                                                    │
│       CAP_SYS_PACCT configuration of process accounting                          │
│       CAP_SYS_ADMIN tons of admin stuff                                          │
│        CAP_SYS_BOOT reboot(2)                                                    │
│        CAP_SYS_NICE nice(2)                                                      │
│    CAP_SYS_RESOURCE setting resource limits                                      │
│        CAP_SYS_TIME setting system time                                          │
│  CAP_SYS_TTY_CONFIG tty configuration                                            │
│           CAP_MKNOD mknod operation                                              │
│           CAP_LEASE taking leases on files                                       │
│          CAP_HIDDEN hidden process                                               │
│  CAP_KILL_PROTECTED kill protected programs                                      │
│       CAP_PROTECTED Protect the process from signals                             │
│                                                                                  │
│Available flags:                                                                  │
│                LIDS de-/activate LIDS locally (the shell & childs)               │
│         LIDS_GLOBAL de-/activate LIDS entirely                                   │
│         RELOAD_CONF reload config. file and inode/dev of protected programs      │
└─────────────────────────────────────────┘

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 

3.4. lidsconf で使えるオプションは何がありますか?

利用できるオプションを一覧するには、こう入力してください−
┌──────────────────────────────────┐
│bash# lidsconf -h                                                   │
└──────────────────────────────────┘
これによって、以下の出力が返ってきます−
┌─────────────────────────────────────────┐
│lidsconf version 0.4.1 for the LIDS project                                       │
│       Huagang Xie                                              │
│       Philippe Biondi                             │
│                                                                                  │
│Usage: 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]                                                            │
│                                                                                  │
│Commands:                                                                         │
│       -A,--add To add an entry                                                   │
│       -D,--delete      To delete an entry                                        │
│       -Z,--zero        To delete all entries                                     │
│       -U,--update      To update dev/inode numbers                               │
│       -L,--list        To list all entries                                       │
│       -P,--passwd      To encrypt a password with RipeMD-160                     │
│       -v,--version     To show the version                                       │
│       -h,--help        To list this help                                         │
│       -H,--morehelp    To list this help with CAP/SOCKET name                    │
│                                                                                  │
│subject: -s,--subject subj                                                        │
│       can be any program, must be a file                                         │
│object: -o,--object [obj]                                                         │
│       can be a file, directory or Capability, Socket Name                        │
│ACTION: -j,--jump                                                                 │
│       DENY     deny access                                                       │
│       READONLY read only                                                         │
│       APPEND   append only                                                       │
│       WRITE    writable                                                          │
│       GRANT    grant capability to subject                                       │
│       IGNORE   ignore any permissions set on this object                         │
│       DISABLE  disable some extersion feature                                    │
│OPTION:                                                                           │
│      -d,--domain       The object is an EXEC Domain                              │
│      -i,--inheritance Inheritance level                                          │
│      -t,--time Time dependency                                                   │
│      -e,--extended     Extended list                                             │
└─────────────────────────────────────────┘

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 

3.5. 素晴らしい。で、これらの権限はどういうものなの?

権限によって、システムが明白に、どのような行為を許可し、あるいは許可し
ないのかということを定義できます。仮りに CAP_SETUID を無効にすると、ど
のようなプログラムも UID を渡す事が出来なくなります。LIDSを用いると、明
白なプログラムに対して、明白に権限を有効/無効にする事が出来ます。それぞ
れの権限については、/etc/lids/lids.cap の中か、(もし、まだ LIDS をイン
ストールしていないのであれば /path/to/lidstools/example/lids.cap にあり
ます。

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 

Chapter 4. LIDS の管理

4.1. LIDS のパスワードを設定するにはどうすればいいですか?

インストール時に、パスワードの設定について聞かれなかった場合には、LIDS
によって拡張されたカーネルで再起動する前に、コマンドプロンプトでこのよ
うに入力します−
┌──────────────────────────────────┐
│bash# lidsconf -P                                                   │
└──────────────────────────────────┘
すると、LIDS のパスワードを求められます−
┌──────────────────────────────────┐
│MAKE PASSWD                                                         │
│enter new password:                                                 │
│reenter new password:                                               │
│wrote password to /etc/lids/lids.pw                                 │
└──────────────────────────────────┘
これで、/etc/lids/lids.pw ファイルに RipeMD-160 で暗号化されたパスワー
ドが書きこまれます。このパスワードは、ACL の権限を変えたい時や、LIDS
free session を開始する時に必要です。

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 

4.2. 一度設定された LIDS パスワードを変更するにはどうすればよいですか?

最初に、LIDS フリーセッションを作成しなくてはなりません。それから、最初
にやったように "-P" オプションを使ってパスワードを設定します (現在のパ
スワードはきかれません)。LIDS パスワードを再設定した後で、LIDS に設定フ
ァイルのリロードをさせる必要があります。 

注意:/dev/pts がマウントされている時には、root権限を持ったものが、LIDS
パスワードを得る事が可能です。これを防ぐために、/dev/pts をアンマウント
しておくか、保護をしておいてください。

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 

4.3. LIDS フリーセッションとは何? どうやって作ればいいの?

LIDS フリーセッション (LFS) は LIDS からの制限を受けない端末セッション
です。このオプションがあるため、非 LIDS のカーネルで再起動せずにシステ
ムを管理することができます。これを機能させるには、LIDS で拡張したカーネ
ルをコンパイルする時に、このオプションを選択している必要があります−
┌──────────────────────────────────┐
│  [*] Allow switching LIDS protections                              │
└──────────────────────────────────┘
LFS を作るには、プロンプトでこのように入力します−
┌──────────────────────────────────┐
│bash# lidsadm -S -- -LIDS                                           │
└──────────────────────────────────┘
すると、LIDS パスワードを訊ねられます。この端末は、もう LIDS から独立し
ています。以下の操作をするまでは、LIDS から独立したままです−

 ・ LIDS を再び有効にする (lidsadm -S -- +LIDS).
   
 ・ ターミナルからログアウトする
   
一度にアクティブにできる LFS は 1 つだけです。別の端末に入っても
lidsadm -S -- -LIDS は無効にならないとはいえ、LFS はただ 1 つしか持てま
せん。 

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 

4.4. LIDS フリーセッションを作ったけど、LIDS がまだ有効になってるみたい
! 何がまずいの?

これは、LFS を仮想端末上で作ってから別の仮想端末に移動してマシンを管理
しようとすると発生します。解決するためには、LIDS を有効にしてみて、それ
からもう一度無効にします (プロンプトが出たらパスワードを入力します)。
┌──────────────────────────────────┐
│# lidsadm -S -- +LIDS                                               │
│# lidsadm -S -- -LIDS                                               │
└──────────────────────────────────┘
注意: LFS に他の管理者がいた場合には、その人の LFS も閉じてしまうので
、他の管理者が居ないことをチェックしてください!

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 

4.5. LIDS に設定ファイルをリロードさせるにはどうすればいいの?

LIDS にその設定ファイルをリロードさせるには、LIDS で拡張したカーネルを
設定する時に、このオプションを有効にする必要があります。
┌───────────────────────────────────┐
│  [*]  Allow switching LIDS protections                               │
│  (3)    Number of attempts to submit password                        │
│  (30)     Time to wait after a fail (seconds)                        │
│  [ ]    Allow remote users to switch LIDS protections                │
│  [ ]    Allow any program to switch LIDS protections                 │
│  [*]    Allow reloading config. file   <---------------------------- │
└───────────────────────────────────┘
注意:設定ファイルをリロードできるようにするには、LIDS の保護を切り換え
られるようにする必要があります。 LFS (あるいは LIDS_GLOBAL を無効にし
て) から、これらのコマンドを実行して LIDS に設定ファイルをリロードする
よう指示します−
┌──────────────────────────────────┐
│# lidsadm -S -- +RELOAD_CONF                                        │
└──────────────────────────────────┘
これで、以下の設定ファイルがリロードされます−

 ・ /etc/lids/lids.conf - LIDS ACL の設定ファイルです。
   
 ・ /etc/lids/lids.cap - LIDS の権限ファイルです。
   
 ・ /etc/lids/lids.pw - LIDS のパスワードファイルです。
   
 ・ /etc/lids/lids.net - LIDS のメールによる警告を設定するファイルです
    。
   
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 

4.6. 助けて!!! 私のシステムが完全に使えなくなってしまいました! ど
うすればいいでしょう?

再起動して LIDS で強化されていないカーネルにするか、LIDS を無効にして
LIDS で強化されたカーネルを起動し、解決を試みることができます。LIDS を
無効にして起動するには、lilo プロンプトに security=0 と指定します。例え
ば、LIDS で強化されたカーネルが lids-kernel だとすると、lilo プロンプト
でこのように入力するのです−
┌──────────────────────────────────┐
│lilo: lids-kernel lids=0                                            │
└──────────────────────────────────┘
これは簡単な部分です。難しいのは、LIDS を有効にしたシステムをシャットダ
ウンさせることです。LIDS の設定によっては、うまくシャットダウンできない
かもしれません。 

警告:適切に設定されていない状態で LIDS が有効になったカーネルを再起動
させると、ファイルシステムがおかしくなったり、データが失われるかも知れ
ません。

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 

4.7. システムバイナリを変更/移動しました。ファイルが変更/移動したことを
LIDS に教えるにはどうするのですか?

ファイルが存在しているデバイス、あるいはファイルの iノード番号が変わっ
た時にはいつでも、/etc/lids/lids.conf ファイルを適切な情報で更新しなけ
ればなりません。幸運なことに、Xie はこういう時のためのオプションを用意
してくれています−
┌──────────────────────────────────┐
│bash# lidsadm -U                                                    │
└──────────────────────────────────┘
それから、設定ファイルをリロードする必要があります。

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 

4.8. じゃあ、再起動せずに LIDS を完全に無効にする方法は?

LFS を使う以外にも、LIDS を全体的に停止させることはできます。これには、
オプション込みでカーネルをコンパイルしている場合のみ機能します。
┌──────────────────────────────────┐
│bash# lidsadm -S -- -LIDS_GLOBAL                                    │
└──────────────────────────────────┘
LIDS_GLOBAL が無効になっていると、システムは "通常の" Linux システムの
ように稼働します。LIDS を全体的に再び有効にするには、反対のことをします
−
┌──────────────────────────────────┐
│bash# lidsadm -S -- +LIDS_GLOBAL                                    │
└──────────────────────────────────┘
注意:今 LFS を有効にしているなら、これによって LFS が影響をうけること
はありません。

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 

4.9. "カーネルを封印する"とはどういうことですか?

起動プロセスの最後に、カーネルを封印する必要があります。これにより、シ
ステムに /etc/lids/lids.cap ファイルでのグローバルな権限がセットされま
す。ただし、ファイルの ACL はカーネルが封印される前でも執行されます。カ
ーネルを封印するには、rc.local(SysV スタイルの init の場合) の最後に、
これをつけたしてください−
┌──────────────────────────────────┐
│/sbin/lidsadm -I                                                    │
└──────────────────────────────────┘
"-I" オプションは、カーネルを封印する時のみ使われます。封印された後は、
システムに変更を加えるために "-S" オプションを使う必要があります。警告
:起動時にカーネルを封印しなかった場合、LIDS で強化されたシステムの恩恵
を完全に受けることはできません。 

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 

4.10. LIDS システムの状態を見るにはどうすればいいの?

"-V" オプションを使うためには、lidsadm を view オプションを enable にし
た状態でコンパイルしておく必要があります。(通常の振舞は、上記参照)コ
マンドラインで、こう入力します−
┌──────────────────────────────────┐
│bash# lidsadm -V                                                    │
└──────────────────────────────────┘
こうすると、2.4.x カーネルの場合、このような出力が得られます−
┌──────────────────────────────────┐
│VIEW                                                                │
│                     CAP_CHOWN 0                                    │
│              CAP_DAC_OVERRIDE 0                                    │
│           CAP_DAC_READ_SEARCH 0                                    │
│                    CAP_FOWNER 0                                    │
│                    CAP_FSETID 0                                    │
│                      CAP_KILL 0                                    │
│                    CAP_SETGID 0                                    │
│                    CAP_SETUID 0                                    │
│                   CAP_SETPCAP 0                                    │
│           CAP_LINUX_IMMUTABLE 0                                    │
│          CAP_NET_BIND_SERVICE 0                                    │
│             CAP_NET_BROADCAST 0                                    │
│                 CAP_NET_ADMIN 0                                    │
│                   CAP_NET_RAW 0                                    │
│                  CAP_IPC_LOCK 0                                    │
│                 CAP_IPC_OWNER 0                                    │
│                CAP_SYS_MODULE 0                                    │
│                 CAP_SYS_RAWIO 0                                    │
│                CAP_SYS_CHROOT 0                                    │
│                CAP_SYS_PTRACE 0                                    │
│                 CAP_SYS_PACCT 0                                    │
│                 CAP_SYS_ADMIN 0                                    │
│                  CAP_SYS_BOOT 1                                    │
│                  CAP_SYS_NICE 0                                    │
│              CAP_SYS_RESOURCE 1                                    │
│                  CAP_SYS_TIME 0                                    │
│            CAP_SYS_TTY_CONFIG 0                                    │
│                     CAP_MKNOD 0                                    │
│                     CAP_LEASE 0                                    │
│                    CAP_HIDDEN 1                                    │
│            CAP_KILL_PROTECTED 0                                    │
│                 CAP_PROTECTED 0                                    │
│                          LIDS 0                                    │
│                   LIDS_GLOBAL 1                                    │
│                   RELOAD_CONF 0                                    │
└──────────────────────────────────┘
上記の出力から読みとれるように、このシステムでは LFS が有効になっていま
す。ただし、LIDS はグローバルに有効になっています。次に 1 がきている項
目は有効なもので、0 がきているものは無効のものです。最後の 2 つの権限を
除いて、root は通常これら全ての権限を持っています。LIDS のおかげで、こ
の特定の状況において root は CAP_SYS_BOOT, SAP_SYS_RESOURCE, CAP_HIDDEN
(注:CAP_HIDDEN は通常の Linux カーネルが提供する権限ではありません) と
いった権限のみを持っています。

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 

4.11. LIDS のポートスキャン検知を設定するにはどうすればいいですか?

必要ありません。LIDS で拡張したカーネルを設定するときにオプションを選ん
でいれば、ポートスキャン検知は有効になっています。
┌──────────────────────────────────┐
│   [*]  Port Scanner Detector in kernel                             │
└──────────────────────────────────┘

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 

4.12. LIDS の --> --ACL における subject とobject とはなんですか?

subject はバイナリやシェルスクリプトといった、Linux システム上で実行で
きるプログラムのことです。object は、subject がアクセスしようとするもの
です。これには、ファイル、ディレクトリ、権限といったものがあります。

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 

4.13. /etc/lids/lids.cap を修正して設定ファイルをリロードする以外にシス
テムの権限を有効/無効にすることはできますか?

できます。ただし、この方法だとシステムのシャットダウン後に変更が保存さ
れません。権限を有効にするには−
┌──────────────────────────────────┐
│bash# lidsadm -S -- +CAP_SYS_ADMIN                                  │
└──────────────────────────────────┘
権限を無効にするには−
┌──────────────────────────────────┐
│bash# lidsadm -S -- -CAP_SYS_ADMIN                                  │
└──────────────────────────────────┘

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 

4.14. LIDS の ACL を再設定したのに、変更が反映されていないように見えま
す。何が悪いのでしょう?

LIDS を再設定する時には、するべきことが 2 つあります−

 1. 設定ファイルのリロード
   
 2. 変更によって影響を受けるサービス(群)の再起動
   
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 

4.15. lidsconf -L が私の ACL を表示してくれないのですが?

lidsconf -L は LFS 上からか、LIDS_GLOBAL が無効になっている時に使わなけ
ればなりません。どちらの状態でもないなら、このエラーメッセージを見るこ
とになります−
┌──────────────────────────────────┐
│lidsconf: can not open conf file                                    │
│reason:: Permission denied                                          │
│LIST                                                                │
└──────────────────────────────────┘

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 

4.16. コンソールに報告されるたくさんの LIDS 違反をどうにかして減らせな
いの?

できます。syslog の初期化スクリプトを修正して、klogd を "-c" オプション
つきで起動させることができます。このオプションは、コンソールに記録され
るシステムメッセージのデフォルトレベルを設定するものです。指定された値
よりも低い値をもつメッセージがコンソールに表示されます (include/linux/
kernel.h参照)。例えば−
┌──────────────────────────────────┐
│klogd -c 4                                                          │
└──────────────────────────────────┘
klogd にレベル 4 以下の全メッセージをコンソールに記録するように指示しま
す。

コンソールのログレベルを変更するには、/proc/sys/kernel/printk の値を修
正するという方法もあります。詳細については、/usr/src/linux/
Documentation/sysctl/kernel.txt で提供される文書を参照してください。

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 

4.17. LIDS を使う時は、LD_PRELOAD 環境変数に注意した方がいいですか?

はい。1.1.1preX よりも古いバージョンの LIDS を使用している場合には、読
んでください。

setuid されたプログラムについて、LD_PRELOAD 環境変数は "未定義" ですか
ら、プログラムによってロードされるライブラリに影響を及ぼすことはできま
せん (最近の glibc の脆弱性といった例外はあります)。 

問題が発生するのは、setuid されていないバイナリに特別な権限やファイルア
クセス許可を与えたときです。LD_PRELOAD 環境変数はライブラリをロードする
前は "未定義" ではないため、悪意のある誰かがトロイのライブラリをロード
させることができる上に、それはオリジナルのプログラムに与えられたのと同
じ特別な権限/ファイルアクセス許可をもつことになってしまいます。

リスクを減らすために可能なオプションは−

 ・ 特別な権限やファイルアクセス許可をもつプログラムは全て通常の unix
    ファイルパーミッションで制限されねばなりません。それにより、全員が
    実行できないようにします (e.g. chmod o-rwx /path/to/program )。
   
 ・ 別解としては、ファイルを setuid した上で所有権を root 以外のユーザ
    に変えるというのもあります。こうすると、プログラムの実行前に、
    LD_PRELOAD 環境変数は "未定義" となります。
   
セキュリティ上の更新:LIDS 1.1.1preX 以降から、LD_PRELOAD 環境変数は
LIDS から特権を与えられる全てのプログラムに対して、自動的に無効になりま
す。これは、LIDS 0.10.3 にもバックポートされています。

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 

4.18. 起動した時、"read password file error" というメッセージが表示され
ます。この問題を直すにはどうすればよいでしょう?

これは、最初に LIDS を起動する前に、LIDS のパスワードを設定し忘れた場合
に発生します。問題を修正するには、マシンを再起動して (使用できないシス
テムの起動参照)、 LIDS パスワードを設定してください。

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 

4.19. LIDS が有効か無効かを調べるにはどうすればいいの?

lidsadm を 'make VIEW=1' としてコンパイルしてあれば、'lidsadm -V' を使
って LIDS が有効になっているか知ることができます。'LIDS_GLOBAL 0' と表
示されれば、LIDS は無効になっています。'LIDS 0' と表示されれば、誰かが
LIDS フリーセッションを使っています。 lidsadm を VIEW オプションつきで
コンパイルしていなかった場合は、LIDS が実行中か調べる方法はいくつか存在
します。

 1. dmesg に 'Linux Intrusion Detection System  for
     doesn't start' という行がないか調べることができま
    す。もちろん、'Linux Intrusion Detection System  for
     starts' と出ていた場合には、LIDS は実行されていま
    す。
   
 2. 本来ならできないはずの何事かをしでかして、LIDS が行動を起こすかを試
    すことができます。もし何も反応がなければ、LIDS は動作していません。
   
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 

Chapter 5. LIDS の設定

5.1. ファイルを読みとり専用にして保護する方法は?

┌──────────────────────────────────┐
│bash# lidsconf -A -o /some/file -j READONLY                         │
└──────────────────────────────────┘
これにより、LIDS が有効になっていれば、(root を含む) 何者かが /some/
file を変更したり削除したりするのを防ぐことができます。LFS にいるなら、
適切なファイルパーミッションがあり、パーティションが読みとり専用で
mount されているのでなければ、自由に /some/file を変更することができま
す。

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 

5.2. OK, じゃあディレクトリを読みとり専用にするにはどうすれば?

上と同じですが、指定するのは /some/directory です。
┌──────────────────────────────────┐
│bash# lidsconf -A -o /some/directory     -j READONLY                │
└──────────────────────────────────┘
オブジェクトがディレクトリの場合、LIDS はディレクトリそのものと、再帰的
にその下の同じファイルシステム上にあるものを保護します。(e.g. LIDS の
ACL はファイルシステムの境界を越しません!) これは覚えておくべき非常に
重要なことで、それにより、はからずもシステムの一部を保護されないままに
しておくことがなくなります。

読みとり専用として保護しておきたいと思うディレクトリは、/etc でしょう。
┌──────────────────────────────────┐
│bash# lidsconf -A -o /etc -j READONLY                               │
└──────────────────────────────────┘

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 

5.3. 誰からもファイル/ディレクトリを隠すことはできますか?

┌──────────────────────────────────┐
│bash# lidsconf -A -o /some/file_or_directory   -j DENY              │
└──────────────────────────────────┘
繰り返しますが、これで、root すらアクセスが出来なくなります。さらに、も
しこれがディレクトリであれば、その下にある全てのファイルとディレクトリ
も隠されます (もちろん、同じファイルシステムにあれば、です)。

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 

5.4. 追記しかできないようにログファイルを保護する方法は?

┌──────────────────────────────────┐
│bash# lidsconf -A -o /some/log/file  -j APPEND                      │
└──────────────────────────────────┘
これにより、同時に誰かがファイルの末尾に書きこんでも、既存の内容を消し
たり変更したりできないようになります。システムログを追記専用として保護
する簡単な方法はこうです−
┌──────────────────────────────────┐
│bash# lidsconf -A -o /var/log  -j APPEND                            │
└──────────────────────────────────┘

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 

5.5. /etc/shadow ファイルを読むのに、何も許可がなければ、どうやって私は
システムに認証されるの?

ユーザが自分自身をシステムに認証させるには、いくつかのプログラムに /etc
/shadow への読みとり専用のアクセスをさせる必要があります。読みとりアク
セスを与えるように考慮するかも知れないプログラムとしては− login, sshd,
su, vlock などがあります。 login プログラムが /etc/shadow を読めるよう
にするには、この ACL を使います−
┌──────────────────────────────────┐
│bash# lidsconf -A -s /bin/login -o /etc/shadow -j READONLY          │
└──────────────────────────────────┘
この場合、"-s" オプションは subject である /bin/login を指定しています
。subject に対して、object (/etc/shadow) への読みとり専用アクセスを与え
ていることになります。これにより、/var/log 以下にある全てのファイルが追
記専用として保護されます。READ や DENY と同様に、このターゲットも再帰的
です。

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 

5.6. /etc を読みとり専用で保護したら、mount はどうやって /etc/mtab へ書
きこみをするのでしょう?

できません。この問題を修正するには、/etc/mtab ファイルを削除して、/proc
/mounts へのシンボリックリンクに置きかえる方法があります。これを機能さ
せるためには、起動スクリプトを修正して、全ての mount と umount コマンド
が "-n" オプションを使うようにする必要があります。これにより、mount と
umount は /etc/mtab ファイルを更新しなくなります。 

例えば、こういうものを−
┌──────────────────────────────────┐
│mount -av -t nonfs,noproc                                           │
└──────────────────────────────────┘
起動スクリプトの中に見つけたなら、このように変更します−
┌──────────────────────────────────┐
│mount -av -n -t nonfs,noproc                                        │
└──────────────────────────────────┘
こういった mount コマンドは、起動スクリプト全体に散在しているでしょう。
それら全てを捕まえるために、grep を使ってください。同じ方法で、全
umount コマンドの修正もしたいと思うでしょう。 

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 

5.7. LIDS が、起動時に modules.dep ファイルに書きこめない、と文句を言い
ます。何が悪いのですか?

これは、/lib が読みこみ専用で保護されている時に (そうするのは、よいこと
です) 発生します。受けとるエラーは、こういう感じになります−
┌───────────────────────────────────────────────────────────────┐
│LIDS: depmod (3 12 inode 16119) pid 13203 user (0/0) on tty2: Try to open /lib/modules/2.2.18/modules.dep for writing,flag=578│
└───────────────────────────────────────────────────────────────┘
これは、起動時に /etc/rc.d/rc.sysinit 起動スクリプトがモジュールの依存
性を再構築しようとするからです。通常、これは必要ありません。というのも
、モジュールを追加したり変更したり削除したりしない限り、モジュールの依
存性は変化しないからです。エラーは無害ですが、見るのがいやなら単純に /
etc/rc.d/rc.sysinitスクリプト中でモジュールの依存性を再構築している行
(depmod -a といったものを探してください) をコメントアウトすることができ
ます。 

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 

5.8. ログを追記専用で保護していると、logrotated はどうやってログをロー
テートするのでしょう?

なされません。ログのローテーションは、LIDS_GLOBAL が無効になっている時
に、ログローテーションユーティリティを手動で実行してなされるべきもので
す。ログのローテーションを生起する cron のジョブは無効にするべきです。
(別解については下記を参照してください)

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 

5.9. なぜ、単純にログローテーションユーティリティにログファイルのあるデ
ィレクトリへの書きこみ許可を与える方法で、それらをローテートするように
してはいけないのですか?

しても構いませんが、お勧めしません。誰かがシステムに侵入し、例え彼らが
ログを変更することができなくても、侵入の間に集められた情報を持ったログ
が地上から姿を消すまで、(ログローテーションユーティリティを手動で実行し
て) ローテートを必要なだけ繰り返すことができます。これは、高度なセキュ
リティのために支払うべき代価の一部なのです。 

ログローテーションユーティリティに /var/log への書きこみアクセスをさせ
る別解としては、cron デーモンに /var/log への書きこみ許可を与え、それを
継承可能とする方法があります。
┌──────────────────────────────────┐
│lidsconf -A -s /usr/sbin/crond -i -o /var/log   -j WRITE            │
└──────────────────────────────────┘
これで、誰かが手動でログローテーションユーティリティを実行することはで
きませんが、cron デーモンによって実行された時は動作するようになります。
警告: cron デーモンに脆弱性が見つかった場合は、誰かがそこを突くと、
cron が /var/log への書きこみ権をもっているためにログを一掃できてしまい
ます。これは、そもそも MAC を用いる目的を無為にします。なにしろ、脆弱性
が見つかれば、今やアクセス制御は迂回され得るのですから。このオプション
は自己責任のもとに使うように!

更新:新しい時間制限機能のため、crond が /var/log に書きこみ権限をもっ
ているなら、それを特定の時間帯に制限するのをお勧めします。例えば、
logrotated が crond によって毎日 6:00 AM に実行されるなら、crond の書き
こみ権限を 1 分間に制限します−
┌──────────────────────────────────────┐
│/sbin/lidsconf -A -s /usr/sbin/crond -i 2 -o /var/log -t 0600-0601 -j WRITE │
└──────────────────────────────────────┘
1 分が十分な長さでないなら、logrotated が無事実行を終えるまで、時間を 1
分づつ増やしてください。

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 

5.10. LIDS が有効な時、シャットダウンまでファイルシステムがアンマウント
出来ません。どうすればよいでしょう?

これは、CAP_SYS_ADMIN 権限を全体で無効にしていて、かつファイルシステム
をアンマウントするための適切な権限を shutdown スクリプトに与えていない
場合におこります。例えば、Red Hat6.2 では、/etc/rc.d/init.d/halt スクリ
プトがファイルシステムのアンマウントを行います。それに CAP_SYS_ADMIN 権
限を与える必要があります。そうして、ファイルシステムのアンマウントが可
能になるのです−
┌─────────────────────────────────────┐
│bash# lidsconf -A -s /etc/rc.d/init.d/halt -o CAP_SYS_ADMIN -i 1 -j GRANT │
└─────────────────────────────────────┘
ターゲット "GRANT" は LIDS に subject (この場合、/etc/rc.d/init.d/halt)
に CAP_SYS_ADMIN 権限を許可するように伝えます。 "-i 1" オプションは、
ACL の "継承レベル" を 1 にセットします。 

これにより、/etc/rc.d/init.d/halt スクリプトを実行できる誰かにも、ファ
イルシステムのアンマウントが可能になることに注意してください。もしマシ
ンに物理的にアクセスできるなら、シャットダウンスクリプトに権限を与える
よりも、シャットダウンの前に LIDS_GLOBAL を無効にするだけの方がいいかも
しれません。とはいえ、停電時にシステムをシャットダウンさせることができ
る UPS を持っているなら、LIDS_GLOBAL を無効にするわけにはいかないでしょ
う。 

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 

5.11. なぜ特権ポートを使うサービスが root で開始できないのですか?

特権ポート (1024 以下のもの) で走るサービスは、ポートにバインドするため
に CAP_NET_BIND_SERVICE 権限を必要とします。/etc/lids/lids.cap ファイル
でこの権限を全体的に無効にしているなら、プログラム毎にその権限を許可せ
ねばなりません。
┌───────────────────────────────────────┐
│bash# lidsconf -A -s /usr/local/bin/apache -o CAP_NET_BIND_SERVICE 80 -j GRANT│
└───────────────────────────────────────┘
あるいは、LIDS_GLOBAL が無効なときにサービスを開始してください。

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 

5.12. なぜ特権ポートを使うサービスを LFS から開始できないのですか?

LFS は、単一の端末セッションに適用されます。デーモンは、制御端末から自
分を切り離すために、自分自身を fork します。こうなると、それはもはや端
末の LFS には接続されておらず、ゆえに LIDS に保護されることになるのです
。

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 

5.13. 権限を無効/有効にする方法は?

/etc/lids/lids.cap ファイルが LIDS で強化された Linux カーネルで利用で
きる全権限のリストを保持しています。頭に "+" のあるものが、有効になって
いるもので、"-" が頭についているものは、無効なものです。権限の状態を変
更するには、単にテキストファイルを編集して "+" を "-" に変えれば権限は
無効になりますし、逆だと有効になります。ファイルの編集が終わったら、
LIDS に設定ファイルをリロードさせる必要があります。

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 

5.14. LIDS が有効になっていると X Window System が動作しないのはなぜで
すか?

使用している X サーバには CAP_SYS_RAWIO 権限が必要です。
┌───────────────────────────────────┐
│bash# lidsconf -A -s /path/to/your/X_server -o CAP_SYS_RAWIO -j GRANT │
└───────────────────────────────────┘

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 

5.15. これら ACL 全てに対して、私は一体全体どうやって自分の設定を把握し
ておけばよいのでしょう?

あなたが望む全ての ACL をシステムに追加するシェルスクリプトを作成するの
をお勧めします。こうすれば、システムを変更した時に、はからずも何かを保
護されないままにしておくことはありません。スクリプトは、古い ACL を消す
ことから始めれば、2 重に設定することもありません。
┌──────────────────────────────────┐
│bash# lidsconf -Z                                                   │
└──────────────────────────────────┘
このシェルスクリプトを保護するには、それへのアクセスを DENY する ACL を
作ったり、/etc/lids ディレクトリへ配置して自動的に DENY で保護されるよ
うにもできます。 

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 

5.16. 起動とシャットダウンの時に LIDS が文句を言わないように、init に /
etc/initrunlvl への書きこみアクセスを許すにはどうすればいいですか?

不幸にも、これについて出来ることはそう多くありません。init は起動の度に
このファイルを再作成するので、毎回 iノード番号が変化するのです。これに
より、そのファイルは LIDS には扱いにくくなります。このエラーは無害です
し、/etc/initrunlvl がなくてもシステムは適切に機能します。

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 

5.17. プロセスは、親プロセスからそのファイル ACL を継承できますか?

できます。バージョン 0.9.12 から 2.2.18 までは、これがデフォルトの動作
でした。現在は、デフォルトでは、子はその親からファイル ACL を継承しませ
ん。親プロセスから子プロセスへファイル ACL が移行できるようにするには、
"-i <継承レベル>" オプションを使う必要があります。 

"継承レベル" (別名 TTL) とは、ACL が継承される世代数を決定します。TTL
に 1 が指定されれば、ACL で指定された subject とその子全ては ACL を継承
します。しかし、子の子 (別の言い方をすれば ACL の subject の孫) は ACL
を継承しません (こうなるようにするには、TTL を 2 にする必要があります)
。

注意:権限を許可する ACL にも、これらと同じ継承のルールが適用されます。

セキュリティ上の更新 LIDS 1.1.1prex 及び 0.10.1 以降では、保護されたプ
ログラムのみがその親から ACL を継承することができます。保護されていない
プロセスに ACL の継承を許すと、exploit の原因となります。

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 

5.18. 助けて! LIDS のもとでは、プログラム xyz が動作しないようです。
どのファイル/権限にアクセスする必要があるのか、どうやって決めるのでしょ
う?

最初にするべきことは、単純にプログラムを実行して、LIDS がどんな違反を通
告してくるかを見ることです。とはいえ、何度これをやっても、十分な情報は
得られません。これが起きた時は、strace を使ってプログラムを追いかけて、
どのシステムコールが失敗しているのか見ることができます。こうすると、た
いていの場合はどの権限が違反しているのか、よい示唆を得ることができます
。 

注意:全体で CAP_SYS_PTRACE を無効にしているなら、LIDS が有効な状態でプ
ログラムの追跡ができるように、一時的に strace に CAP_SET_PTRACE 権限を
与える必要があります。

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 

5.19. /etc/shadow ファイルを更新する適切なパーミッションを passwd に与
えるにはどうすればいいですか?

残念ながら、簡単な解は存在しません。これは、passwd ユーティリティがパス
ワードを変更するたびに /etc/shadow ファイルを再作成するからです。これに
より、passwd ユーティリティを成功裏に使う度に、違う i ノードからファイ
ルが始まるのです。

システム管理者には、簡単な解決法があります。LFS を開始して、LFS の中か
ら passwd ユーティリティを使うのです。パスワードを変更する必要のあるユ
ーザがいる場合、LDAP を使えば、ユーザが自分のパスワードを変更できるクラ
イアント認証手段を提供してくれます。

標準的 unix システムファイルを使って、UNIX 認証をする時に、ユーザが自分
のシステムパスワードを変更できるようにする選択肢があります。ですが、お
勧めはできません。/usr/bin/passwd に /etc への書きこみアクセスを与えれ
ば、いつでも shadow ファイルをその i ノード番号に関わらず修正できるよう
になります。

警告:誰かが /usr/bin/password や、それが使うライブラリ/PAM モジュール
の何れかに脆弱性を発見すれば、その人は潜在的に /etc ディレクトリへの書
きこみアクセスを得ることができます。脆弱性が見つかれば、あなたのアクセ
ス制御を出し抜くことができるわけで、これはそもそも MAC を用いる目的を無
駄にするものです。このオプションは自己の裁量で使うようにしてください。

/usr/bin/passwd に /etc への書きこみアクセスを与えることにしたのなら、/
etc の下にあって、/usr/bin/passwd が修正できるようにしたくないファイル
とディレクトリ全てを保護する ACL を作成することをお勧めします。これによ
り、上記のリスクが著しく減少します (しかも正確に行えば、完全に取り除く
こともできます)。例えば:
┌───────────────────────────────────────┐
│/sbin/lidsconf -A -s /usr/bin/passwd -o /etc                     -j WRITE     │
│/sbin/lidsconf -A -s /usr/bin/passwd -o /etc/hosts.allow         -j READONLY  │
│/sbin/lidsconf -A -s /usr/bin/passwd -o /etc/hosts.deny          -j READONLY  │
│/sbin/lidsconf -A -s /usr/bin/passwd -o /etc/rc0.d               -j READONLY  │
│/sbin/lidsconf -A -s /usr/bin/passwd -o /etc/rc1.d               -j READONLY  │
│/sbin/lidsconf -A -s /usr/bin/passwd -o /etc/rc2.d               -j READONLY  │
│/sbin/lidsconf -A -s /usr/bin/passwd -o /etc/rc3.d               -j READONLY  │
│/sbin/lidsconf -A -s /usr/bin/passwd -o /etc/rc4.d               -j READONLY  │
│/sbin/lidsconf -A -s /usr/bin/passwd -o /etc/rc5.d               -j READONLY  │
│/sbin/lidsconf -A -s /usr/bin/passwd -o /etc/rc6.d               -j READONLY  │
│/sbin/lidsconf -A -s /usr/bin/passwd -o /etc/init.d              -j READONLY  │
│/sbin/lidsconf -A -s /usr/bin/passwd -o /etc/cron.d              -j READONLY  │
│/sbin/lidsconf -A -s /usr/bin/passwd -o /etc/pam.d               -j READONLY  │
│...                                                                           │
└───────────────────────────────────────┘
上は、どんなに想像力を逞しくしたところで完全なリストではありませんが、
きっかけにはなります。/etc に passwd にアクセスさせたくないファイルやデ
ィレクトリを追加したときはいつでも、それを保護する新しい ACL を作らねば
ならないことも、頭に入れておいてください。

i ノードの更新に関するメモ: /etc/shadow や /etc/passwd へのアクセスを
許可する ACL を定義したなら、LIDS にi ノードを更新したことを知らせ、そ
れから設定ファイルをリロードするのを忘れないようにしなければなりません
。さもないと、問題が生じることになります。

例えば:/etc/passwd が DENY で保護されており、/bin/login は /etc/passwd
を読めるものとします。パスワードを変更した後、i ノードが更新されなけれ
ば、誰かが次回ログインしようとした時に問題が発生します。/bin/login は /
etc/passwd を読みこむことができず、ログインが不可能になります。あるいは
さらに酷く、単に  キーを押すだけでログインできるようになってしま
うのです。 

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 

5.20. LIDS が有効になっていると、ssh や scp が動作しないのは何故ですか
?

デフォルトでは、ssh/scp は外向きのコネクションを作成する時に、ソースポ
ートとして特権ポートを使おうとします。これには、CAP_NET_BIND_SERVICE 権
限が必要です。ですが、ソースポートとして 1023 以上のポートを使うように
強いるため、ssh_config 中でこのオプションを指定することができます−
┌──────────────────────────────────┐
│UsePrivilegedPort no                                                │
└──────────────────────────────────┘
あるいは、ssh (scp は ssh を使うので、これも動作します) に
CAP_NET_BIND_SERVICE を許可することもできます−
┌──────────────────────────────────┐
│lidsconf -A -s /usr/bin/ssh -o CAP_NET_BIND_SERVICE 22 -j GRANT     │
└──────────────────────────────────┘

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 

5.21. OpenSSH が起動時に開始されません。LIDS は bash が隠しファイルにア
クセスしようとしている、とレポートを出しています。これはどうすれば直り
ますか?

これは、デフォルトポリシーを DENY として秘密鍵を保護している時に発生し
ます。openssh-server の RPM で提供される init スクリプトは /etc/ssh 下
に秘密鍵ファイルがあるかチェックします。スクリプトは発見できなかった場
合、それを生成するために ssh-keygen を実行します。Beckeygenthe 鍵は実際
にはそこにあるので、ssh-keygen は失敗して、起動スクリプトは終了します。

これを修正するには、起動スクリプトから鍵ファイルのチェックを削除します
−
┌──────────────────────────────────┐
│start)                                                              │
│      # Create keys if necessary                                    │
│      #do_rsa_keygen;  <------------ Comment out these lines        │
│      #do_dsa_keygen;                                               │
│                                                                    │
│      echo -n "Starting sshd: "                                     │
│      if [ ! -f $PID_FILE ] ; then                                  │
│              sshd                                                  │
│              RETVAL=$?                                             │
│              if [ "$RETVAL" = "0" ] ; then                         │
│                      success "sshd startup"                        │
│                      touch /var/lock/subsys/sshd                   │
│              else                                                  │
│                      failure "sshd startup"                        │
│              fi                                                    │
│      fi                                                            │
│      echo                                                          │
│      ;;                                                            │
└──────────────────────────────────┘
注意:これが意味するのは、sshd が起動するより前に、手動で秘密鍵を作る必
要がある、ということです。さもなければ、起動は失敗します。 

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 

5.22. 隠しプロセスが走っているため、シャットダウン時にファイルシステム
のいくつかがアンマウントできません。どうすればそれらを kill できますか
?

隠しプロセスでも、そのプロセス id (pid) がわかれば kill できます。多く
のシステムでは、起動時に開始された全プロセスの pid を、/var (普通 /var/
run が使われます) の下のどこかに保存します。シャットダウンスクリプトを
修正して、これらのファイルから pid を読み、適切なシグナルを送るようにで
きます。 

例えば、システムが pid を /var/run/<プロセス名>.pid に保存しているなら
、以下の行をシャットダウンスクリプトに追加することができます−
┌──────────────────────────────────┐
│for p in `ls /var/run/*.pid`                                        │
│do                                                                  │
│   kill -15 `cat $p`                                                │
│done                                                                │
│sleep 5                                                             │
│sync;sync;sync                                                      │
│                                                                    │
│for p in `ls /var/run/*.pid`                                        │
│do                                                                  │
│   kill -9 `cat $p`                                                 │
│done                                                                │
│sleep 5                                                             │
│sync;sync;sync                                                      │
└──────────────────────────────────┘
これらの行を含むシャットダウンスクリプトに、CAP_KILL と CAP_INIT_KILL
権限を許可しなければなりません。/var/run ディレクトリを init スクリプト
群以外の全てから隠すのも、おそらくよい考えです。

別解としては、全てのプロセスに、TERM と KILL のシグナルを単に送るという
のもあります。
┌──────────────────────────────────┐
│MAX_PROC=65535                                                      │
│trap : 1 2 15                                                       │
│I=1;while (( $I < $MAX_PROC ));do                                   │
│        I=$(($I+1));                                                │
│        if (( $$ != $I ));then                                      │
│                kill -15 $I;                                        │
│        fi;                                                         │
│done                                                                │
│sleep 5                                                             │
│sync;sync;sync;                                                     │
│I=1;                                                                │
│while (( $I < $MAX_PROC ));do                                       │
│        I=$(($I+1));                                                │
│        if (( $$ != $I ));then                                      │
│                kill -9 $I;                                         │
│        fi;                                                         │
│done                                                                │
│sync;sync;sync                                                      │
└──────────────────────────────────┘

Nenad Micic はシャットダウン時に隠れプロセスを kill する独自の C プログ
ラム  を書き
ました。

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 

5.23. 基本的な設定から始めたいだけなんです。追加の保護を提供してくれて
、さらにシステムの機能のほとんどを通常通りにしておいてくれるお勧めのセ
ットアップはありますか?

これらのカーネルオプションを選択するようにしてください−
┌─────────────────────────────────────┐
│  ...                                                                     │
│  [*]    Security alert when execing unprotected programs before sealing  │
│  [*]      Do not execute unprotected programs before sealing lids        │
│  ...                                                                     │
│  [*]    Allow switching LIDS protections                                 │
│  ...                                                                     │
│  [*]      Allow reloading config. file                                   │
└─────────────────────────────────────┘
出発点としてよいのは、init スクリプトやシステムバイナリ、ライブラリを保
護するものでしょう (ディストロによってこれらは変化することに注意) −
┌──────────────────────────────────┐
│/sbin/lidsconf -A -o /etc/rc0.d                  -j READONLY        │
│/sbin/lidsconf -A -o /etc/rc1.d                  -j READONLY        │
│/sbin/lidsconf -A -o /etc/rc2.d                  -j READONLY        │
│/sbin/lidsconf -A -o /etc/rc3.d                  -j READONLY        │
│/sbin/lidsconf -A -o /etc/rc4.d                  -j READONLY        │
│/sbin/lidsconf -A -o /etc/rc5.d                  -j READONLY        │
│/sbin/lidsconf -A -o /etc/rc6.d                  -j READONLY        │
│/sbin/lidsconf -A -o /etc/init.d                 -j READONLY        │
│/sbin/lidsconf -A -o /etc/rc                     -j READONLY        │
│/sbin/lidsconf -A -o /etc/rc.local               -j READONLY        │
│/sbin/lidsconf -A -o /etc/rc.sysconfig           -j READONLY        │
│                                                                    │
│/sbin/lidsconf -A -o /bin                        -j READONLY        │
│/sbin/lidsconf -A -o /sbin                       -j READONLY        │
│/sbin/lidsconf -A -o /lib                        -j READONLY        │
│                                                                    │
│/sbin/lidsconf -A -o /usr/bin                    -j READONLY        │
│/sbin/lidsconf -A -o /usr/sbin                   -j READONLY        │
│/sbin/lidsconf -A -o /usr/lib                    -j READONLY        │
└──────────────────────────────────┘
/usr/local が別のパーティションにあるなら、以下の ACL も加えてください
−
┌──────────────────────────────────┐
│/sbin/lidsconf -A -o /usr/local/bin              -j READONLY        │
│/sbin/lidsconf -A -o /usr/local/sbin             -j READONLY        │
│/sbin/lidsconf -A -o /usr/local/lib              -j READONLY        │
└──────────────────────────────────┘

/etc/lids/lids.cap ファイルで、CAP_SYS_RAWIO と CAP_SYS_PTRACE も無効に
するべきです。CAP_SYS_RAWIO を無効にしなければ、デバイスに直接書きこむ
ことで、誰でも上記のファイル保護を無視できてしまいます。

X Window System を実行しているなら、LIDS の下で X を動作させることにつ
いて、上記も参照するようにしてください。 

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 

5.24. 日時をもとにしてアクセスを制限することはできますか?

できます。LIDS バージョン 0.10.1 for 2.2.19 とバージョン 1.0.10 for
2.4.5 での新しい機能で、ACL の記載を時間制限できるようにします。例えば
、ログインを 9:00 AM から 6:00 PM (18:00) までの時間のみ許すには−
┌────────────────────────────────────┐
│/sbin/lidsconf -A -s /bin/login -o /etc/shadow -t 0900-1800 -j READONLY │
└────────────────────────────────────┘
これで、/bin/login は /etc/shadow ファイルを指定された時間帯にのみ読む
ことができるので、その時間帯以外のあらゆるログインの試みは失敗します。
否定のために "!" 演算子を使うこともできます (例えば、ACL がリストされた
時間帯以外の全アクセスを許容する、など)。

crond に時間制限された権限を与えるなら、(root を含む)全員から crontab
を隠し、crond のみがそれらを読めるようにすることを特にお勧めします。さ
もなければ、その crontab を見て、どの時間に何かを試して食いものにすれば
いいか、誰かが検討をつけてしまうかも知れません。ユーザのものだけでなく
、システムの crontab を守ることも忘れないでください。

例えば、これらは隠すべきです−
┌──────────────────────────────────┐
│/var/spool/cron/                                                    │
│/etc/crontab                                                        │
│/etc/cron.hourly/                                                   │
│/etc/cron.daily/                                                    │
│/etc/cron.weekly/                                                   │
│/etc/cron.monthly/                                                  │
│/etc/cron.d/                                                        │
└──────────────────────────────────┘

警告:この新しい機能はシステムの時刻に依存しているので、システムの時刻
を変更し得るどんなプログラム (例えば /sbin/hwclock) にも、CAP_SYS_RAWIO
を与えるべきではありません。これによって、誰かがシステムの時刻を変更し
て、時間制限をすり抜けてしまうかもしれません。

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 

5.25. プログラムがバインドできるポートを制限するにはどうすればいいの?

バージョン 0.10.1 for 2.2.19 とバージョン 1.0.11 for 2.4.6 からは、プロ
グラムがバインドできる特権ポートを制限できます。プログラムに
CAP_NET_BIND_SERVICE 権限を与える場合には、プログラムがバインドできるポ
ート (群) をその後に指定します。次のようにします−
┌───────────────────────────────────┐
│/sbin/lidsconf -A -s /bin/httpd -o CAP_NET_BIND_SERVICE 80-80 -j GRANT│
└───────────────────────────────────┘
または、SSL 用に 443 ポートもバインドする必要があるなら−
┌───────────────────────────────────────┐
│/sbin/lidsconf -A -s /bin/httpd -o CAP_NET_BIND_SERVICE 80-80,443-443 -j GRANT│
└───────────────────────────────────────┘
プログラムがポートの範囲を必要とするなら、このようにしてみて下さい−
┌───────────────────────────────────────┐
│/sbin/lidsconf -A -s /path/to/program -o CAP_NET_BIND_SERVICE 423-867 -j GRANT│
└───────────────────────────────────────┘

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 

5.26. /etc/mtab を /proc/mounts へのシンボリックリンクにしても、ユーザ
クオータは機能しますか?

はい、"-a" オプションで quotaon を開始すればよいのです。

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 

5.27. LIDS が保護しているファイルを編集すると、LIDS に保護されなくなる
ようです。なぜですか?

多くのエディタ (例えば vi) は、編集中のファイルをテンポラリファイルにコ
ピーします。変更は全てそのテンポラリファイルに対してなされるのです。エ
ディタを終了すると、テンポラリファイルがオリジナルのファイルを上書きし
ます。これによってオリジナルファイルの i ノードが変わり、そのファイルに
関係していた以前の LIDS ACL はもう機能しなくなるのです。こう入力して−
┌──────────────────────────────────┐
│/sbin/lidsconf -U                                                   │
└──────────────────────────────────┘
lids.conf 内のファイルの i ノードを更新してください。 

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 

5.28. LIDS の設定を更新したら、いくつかのプロセスが権限を失っちゃうよう
です

これは、プロセスが権限を継承によって得た時に起きます。次の状況を考えて
みてください−

親プロセスが、その権限を子プロセスに与えたのち、親プロセスが終了して、
子プロセスがまだ残っているとします。この時に LFS を開始して、 ACL を変
更して設定をリロードすると、 LIDS は再び、親プロセスの権限とそのプロセ
ス自身の権限に基づいて、権限を与えます。このとき、親プロセスが動いてい
ないときには、プロセスはそれらの権限を受け取る事が出来ずに、エラーを返
します。

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 

Chapter 6. セキュリティ警告の設定

6.1. ネットワーク越しにセキュリティ警告を送るには、どのカーネル設定オプ
ションが必要ですか?

┌──────────────────────────────────┐
│[*]   Send security alerts through network                          │
│[ ]      Hide klids kernel thread                                   │
│(3)      Number of connection tries before giving up                │
│(30)     Sleep time after a failed connection                       │
│(16)     Message queue size                                         │
│[*]      Use generic mailer pseudo-script                           │
└──────────────────────────────────┘
最初のオプションで、セキュリティ警告が使えるようになります。2 番目のオ
プションでは、警告を送るプロセスを隠すことができます。メールでの通知が
動作するまでは、このオプションは無効なままにしておくことをお勧めします
。なぜなら、これはエラーメッセージのログ取りも妨げるからです。最後のオ
プションは、あらゆる警告メッセージをあなたのメールサーバに送るために、
LIDS が提供する一般的なメーラスクリプトを使うよう、LIDS に指示するもの
です。これは今のところ唯一のオプションです。

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 

6.2. LIDS の警告を送るメールサーバと e-mail アドレスの情報は、どこで指
定すればいいのですか?

セキュリティ警告を送信するのに必要な全ての情報は、/etc/lids/lids.net フ
ァイルで設定される必要があります。各オプションの説明は、設定ファイルそ
のもので提供されます。e-mail アドレスを指定する時は、 e-mail アドレスの
前後に、どんなスペースも残さないように気をつけてください。これにより、
配送に問題が生じる可能性があります。例えば、次に挙げる 2 つのMAIL_TO の
例は、機能しません−
┌──────────────────────────────────┐
│"MAIL_TO= steve@somedomain.org"                                     │
│"MAIL_TO=steve@somedomain.org "                                     │
└──────────────────────────────────┘
注意:二重引用符は、後に続くスペースを視覚化するためだけに使われていま
す。実際の設定ファイルには含めていはいけません。

/etc/lids/lids.net ファイルに変更を行った後は、LIDS に設定ファイルのリ
ロードを指示するようにしてください。

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 

6.3. LIDS が、私の qmail SMTP サーバには警告を配信してくれないようです
。これは直せますか?

直せます。LIDS のバージョン 0.9.12 以前だと、LIDS の e-mail 警告を
qmail SMTP サーバで機能させるにはパッチが必要です。パッチはここにありま
す− http://www.egroups.com/message/lids/1896.

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 

Chapter 7. 設定のサンプル

注意: LIDS の開発は急速に進んでおり、実際ソフトウェアパッケージも変化
しているため、これらの設定の幾つかは、きちんと動かずに"もう駄目"になっ
ているかもしれません。しかしながら、これらの設定は、ここに載っているサ
ービスの設定に興味がある人にとって、良いスタートポイントになるでしょう
。 

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 

7.1. 基本的なシステムのセットアップ

次のものは、基本的なシステムをセットアップする設定のサンプルです。
┌───────────────────────────────────────┐
│# Protect System Binaries                                                     │
│# システムバイナリの保護                                                      │
│#                                                                             │
│/sbin/lidsconf -A -o /sbin                               -j READONLY          │
│/sbin/lidsconf -A -o /bin                                -j READONLY          │
│                                                                              │
│# Protect all of /usr and /usr/local                                          │
│# (This assumes /usr/local is on a separate file system).                     │
│# /usr と /usr/local の保護                                                   │
│# (ここでは /usr/local は別のファイルシステム上にあると想定しています)        │
│#                                                                             │
│/sbin/lidsconf -A -o /usr                                -j READONLY          │
│/sbin/lidsconf -A -o /usr/local                          -j READONLY          │
│                                                                              │
│# Protect the System Libraries                                                │
│#(/usr/lib is protected above since /usr/lib generally isn't                  │
│# on a separate file system than /usr)                                        │
│# システムライブラリの保護                                                    │
│# (/usr/lib は普通 /usr と別のファイルシステム上にはないので、                │
│#  すでに上で保護されています)                                                │
│#                                                                             │
│/sbin/lidsconf -A -o /lib                                -j READONLY          │
│                                                                              │
│# Protect /opt                                                                │
│# /opt を保護                                                                 │
│#                                                                             │
│/sbin/lidsconf -A -o /opt                               -j READONLY           │
│                                                                              │
│# Protect System Configuration files                                          │
│# システムの設定ファイルを保護                                                │
│#                                                                             │
│/sbin/lidsconf -A -o /etc                                -j READONLY          │
│/sbin/lidsconf -A -o /usr/local/etc                      -j READONLY          │
│/sbin/lidsconf -A -o /etc/shadow                         -j DENY              │
│/sbin/lidsconf -A -o /etc/lilo.conf                      -j DENY              │
│                                                                              │
│# Enable system authentication                                                │
│# システムの認証を有効に                                                      │
│#                                                                             │
│/sbin/lidsconf -A -s /bin/login -o /etc/shadow           -j READONLY          │
│/sbin/lidsconf -A -s /usr/bin/vlock -o /etc/shadow       -j READONLY          │
│/sbin/lidsconf -A -s /bin/su -o /etc/shadow              -j READONLY          │
│/sbin/lidsconf -A -s /bin/su \                                                │
│                  -o CAP_SETUID                          -j GRANT             │
│/sbin/lidsconf -A -s /bin/su \                                                │
│                  -o CAP_SETGID                          -j GRANT             │
│                                                                              │
│# Protect the boot partition                                                  │
│# boot パーティションの保護                                                   │
│#                                                                             │
│/sbin/lidsconf -A -o /boot                               -j READONLY          │
│                                                                              │
│# Protect root's home dir, but allow bash history                             │
│# root のホームディレクトリを保護するが、bash の履歴は許可                    │
│#                                                                             │
│/sbin/lidsconf -A -o /root                               -j READONLY          │
│/sbin/lidsconf -A -s /bin/bash -o /root/.bash_history    -j WRITE             │
│                                                                              │
│# Protect system logs                                                         │
│# システムログの保護                                                          │
│#                                                                             │
│/sbin/lidsconf -A -o /var/log                            -j APPEND            │
│/sbin/lidsconf -A -s /bin/login -o /var/log/wtmp         -j WRITE             │
│/sbin/lidsconf -A -s /bin/login -o /var/log/lastlog      -j WRITE             │
│/sbin/lidsconf -A -s /sbin/init -o /var/log/wtmp         -j WRITE             │
│/sbin/lidsconf -A -s /sbin/init -o /var/log/lastlog      -j WRITE             │
│/sbin/lidsconf -A -s /sbin/halt -o /var/log/wtmp         -j WRITE             │
│/sbin/lidsconf -A -s /sbin/halt -o /var/log/lastlog      -j WRITE             │
│/sbin/lidsconf -A -s /etc/rc.d/rc.sysinit \                                   │
│                  -o /var/log/wtmp -i 1                  -j WRITE             │
│/sbin/lidsconf -A -s /etc/rc.d/rc.sysinit \                                   │
│                  -o /var/log/lastlog -i 1               -j WRITE             │
│                                                                              │
│# Startup                                                                     │
│#                                                                             │
│/sbin/lidsconf -A -s /sbin/hwclock -o /etc/adjtime       -j WRITE             │
│                                                                              │
│                                                                              │
│# Shutdown                                                                    │
│#                                                                             │
│/sbin/lidsconf -A -s /sbin/init -o CAP_INIT_KILL         -j GRANT             │
│/sbin/lidsconf -A -s /sbin/init -o CAP_KILL              -j GRANT             │
│                                                                              │
│# Give the following init script the proper privileges to kill processes and  │
│# unmount the file systems.  However, anyone who can execute these scripts    │
│# by themselves can effectively kill your processes.  It's better than        │
│# the alternative, however.                                                   │
│# これらの起動スクリプトに、プロセスを kill したり ファイルシステムを         │
│# アンマウントするための適切な権限を与えてください。とはいえ、これらの        │
│# スクリプトを自分で実行る人はみな、効果的にプロセスを kill することが        │
│# できます。ですが、他の方法よりはマシなはずです。                            │
│#                                                                             │
│# Any ideas on how to get around this are welcome!                            │
│# これを解決するアイデアを歓迎します!                                         │
│#                                                                             │
│/sbin/lidsconf -A -s /etc/rc.d/init.d/halt \                                  │
│                  -o CAP_INIT_KILL -i 1                  -j GRANT             │
│/sbin/lidsconf -A -s /etc/rc.d/init.d/halt \                                  │
│                  -o CAP_KILL -i 1                       -j GRANT             │
│/sbin/lidsconf -A -s /etc/rc.d/init.d/halt \                                  │
│                  -o CAP_NET_ADMIN -i 1                  -j GRANT             │
│/sbin/lidsconf -A -s /etc/rc.d/init.d/halt \                                  │
│                  -o CAP_SYS_ADMIN -i 1                  -j GRANT             │
│                                                                              │
│# Other                                                                       │
│#                                                                             │
│/sbin/lidsconf -A -s /sbin/update -o CAP_SYS_ADMIN       -j GRANT             │
└───────────────────────────────────────┘

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 

7.2. Apache

この設定サンプルでは、Apache が /usr/local/apache に、ログディレクトリ
が /var/log/httpd に、設定ディレクトリが /etc/httpd にインストールされ
ていることを前提にしています。ACL 中のパスを、各自の設定に合うように調
整しなくてはなりません。この設定では、ポート 80 (ことによると 443 も)
をバインドできるように、Apache はカーネルを封印するより前か、
LIDS_GLOBAL が無効な時に起動する必要があります。
┌───────────────────────────────────┐
│/sbin/lidsconf -A -s /usr/local/apache/bin/httpd \                    │
│                  -o CAP_SETUID                          -j GRANT     │
│/sbin/lidsconf -A -s /usr/local/apache/bin/httpd \                    │
│                  -o CAP_SETGID                          -j GRANT     │
│                                                                      │
│# Config files                                                        │
│/sbin/lidsconf -A -o /etc/httpd                          -j DENY      │
│/sbin/lidsconf -A -s /usr/local/apache/bin/httpd \                    │
│                  -o /etc/httpd                          -j READONLY  │
│                                                                      │
│# Server Root                                                         │
│/sbin/lidsconf -A -o /usr/local/apache                   -j DENY      │
│/sbin/lidsconf -A -s /usr/local/apache/bin/httpd \                    │
│                  -o /usr/local/apache                   -j READONLY  │
│                                                                      │
│# Log Files                                                           │
│/sbin/lidsconf -A -o /var/log/httpd                      -j DENY      │
│/sbin/lidsconf -A -s /usr/local/apache/bin/httpd \                    │
│                  -o /var/log/httpd                      -j APPEND    │
│/sbin/lidsconf -A -s /usr/local/apache/bin/httpd \                    │
│                  -o /usr/local/apache/logs              -j WRITE     │
└───────────────────────────────────┘

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 

7.3. Qmail

これらの ACL は、Dave Sill の Life with qmail  によってインストールされた qmail のセットアップ向けに
書かれています。この設定では、tcpserver がポート 25 をバインドできるよ
うに、qmail はカーネルを封印するより前か、LIDS_GLOBAL が無効な時に起動
する必要があります。
┌───────────────────────────────────────┐
│# setup                                                                       │
│/sbin/lidsconf -A -o /var/qmail                          -j READONLY          │
│/sbin/lidsconf -A -s /usr/local/bin/multilog \                                │
│                  -o /var/log/qmail                      -j WRITE             │
│/sbin/lidsconf -A -s /usr/local/bin/svc \                                     │
│                  -o /var/qmail/supervise                -j WRITE             │
│                                                                              │
│# queue access                                                                │
│# キューへのアクセス                                                          │
│#                                                                             │
│/sbin/lidsconf -A -s /var/qmail/bin/qmail-inject \                            │
│                  -o /var/qmail/queue                    -j WRITE             │
│/sbin/lidsconf -A -s /var/qmail/bin/qmail-rspawn \                            │
│                  -o /var/qmail/queue                    -j WRITE             │
│/sbin/lidsconf -A -s /var/qmail/bin/qmail-lspawn \                            │
│                  -o /var/qmail/queue                    -j WRITE             │
│/sbin/lidsconf -A -s /var/qmail/bin/qmail-queue \                             │
│                  -o /var/qmail/queue                    -j WRITE             │
│/sbin/lidsconf -A -s /var/qmail/bin/qmail-clean \                             │
│                  -o /var/qmail/queue                    -j WRITE             │
│/sbin/lidsconf -A -s /var/qmail/bin/qmail-send \                              │
│                  -o /var/qmail/queue                    -j WRITE             │
│/sbin/lidsconf -A -s /var/qmail/bin/qmail-remote \                            │
│                  -o /var/qmail/queue                    -j WRITE             │
│                                                                              │
│# Access to local mail boxes                                                  │
│# ローカルメールボックスへのアクセス                                          │
│/sbin/lidsconf -A -s /var/qmail/bin/qmail-lspawn \                            │
│                  -o CAP_SETUID                          -j GRANT             │
│/sbin/lidsconf -A -s /var/qmail/bin/qmail-lspawn \                            │
│                  -o CAP_SETGID                          -j GRANT             │
│/sbin/lidsconf -A -s /var/qmail/bin/qmail-lspawn \                            │
│                  -o CAP_DAC_OVERRIDE                    -j GRANT             │
│/sbin/lidsconf -A -s /var/qmail/bin/qmail-lspawn \                            │
│                  -o CAP_DAC_READ_SEARCH                 -j GRANT             │
│                                                                              │
│                                                                              │
│# Remote delivery                                                             │
│# リモート配送                                                                │
│/sbin/lidsconf -A -s /var/qmail/bin/qmail-rspawn \                            │
│                  -o CAP_NET_BIND_SERVICE -i -1          -j GRANT             │
│                                                                              │
│# supervise                                                                   │
│                                                                              │
│/sbin/lidsconf -A -s /usr/local/bin/supervise \                               │
│                  -o /var/qmail/supervise/qmail-smtpd/supervise     -j WRITE  │
│/sbin/lidsconf -A -s /usr/local/bin/supervise \                               │
│                  -o /var/qmail/supervise/qmail-smtpd/log/supervise -j WRITE  │
│/sbin/lidsconf -A -s /usr/local/bin/supervise \                               │
│                  -o /var/qmail/supervise/qmail-send/supervise      -j WRITE  │
│/sbin/lidsconf -A -s /usr/local/bin/supervise \                               │
│                  -o /var/qmail/supervise/qmail-send/log/supervise  -j WRITE  │
└───────────────────────────────────────┘

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 

7.4. Dnscache & Tinydns (djbdns)

これらの ACL は、Jeremy Rauch の Installing djbdns (DNScache) for Name
Service のパート 1  & 2  をもとにした djbdns のセットアップ向けに書かれています
。この設定では、 dnscache と tinydns はカーネルを封印する前に開始されて
いるか、それらのプログラムがポート 53 をバインドする時に LIDS_GLOBAL が
無効になっていなければなりません。
┌───────────────────────────────────┐
│# dnscache                                                            │
│#                                                                     │
│/sbin/lidsconf -A -o /var/dnscache                        -j READONLY │
│/sbin/lidsconf -A -s /usr/local/bin/supervise \                       │
│                  -o /var/dnscache/dnscache/supervise     -j WRITE    │
│/sbin/lidsconf -A -s /usr/local/bin/supervise \                       │
│                  -o /var/dnscache/dnscache/log/supervise -j WRITE    │
│/sbin/lidsconf -A -s /usr/local/bin/multilog \                        │
│                  -o /var/dnscache/dnscache/log/main      -j WRITE    │
│                                                                      │
│# tinydns                                                             │
│#                                                                     │
│/bin/echo "tinydns"                                                   │
│                                                                      │
│/sbin/lidsconf -A -s /usr/local/bin/supervise \                       │
│                  -o /var/dnscache/tinydns/supervise      -j WRITE    │
│/sbin/lidsconf -A -s /usr/local/bin/supervise \                       │
│                  -o /var/dnscache/tinydns/log/supervise  -j WRITE    │
│/sbin/lidsconf -A -s /usr/local/bin/multilog \                        │
│                  -o /var/dnscache/tinydns/log/main       -j WRITE    │
└───────────────────────────────────┘

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 

7.5. Courier-imap

これらの ACL は、courier-imap が /usr/local/courier-imap にインストール
されていることを前提にしています。この設定では、ポート 143 をバインドで
きるように、courier-imap はカーネルを封印する前か、LIDS_GLOBAL が無効な
時に起動する必要があります。
┌───────────────────────────────────────┐
│/sbin/lidsconf -A -o /usr/local/courier-imap                     -j DENY      │
│                                                                              │
│/sbin/lidsconf -A -s /usr/local/courier-imap/sbin/imaplogin \                 │
│                  -o /etc/shadow                                 -j READONLY  │
│/sbin/lidsconf -A -s /usr/local/courier-imap/libexec/authlib/authpam \        │
│                  -o /etc/shadow                                 -j READONLY  │
│/sbin/lidsconf -A -s /usr/local/courier-imap/libexec/couriertcpd \            │
│                  -o /usr/local/courier-imap                     -j READONLY  │
│                                                                              │
│/sbin/lidsconf -A -s /usr/local/courier-imap/libexec/couriertcpd \            │
│                  -o CAP_SETUID -i 3                             -j GRANT     │
│/sbin/lidsconf -A -s /usr/local/courier-imap/libexec/couriertcpd \            │
│                  -o CAP_SETGID -i 3                             -j GRANT     │
│/sbin/lidsconf -A -s /usr/local/courier-imap/libexec/couriertcpd \            │
│                  -o CAP_DAC_OVERRIDE -i 3                       -j GRANT     │
│/sbin/lidsconf -A -s /usr/local/courier-imap/libexec/couriertcpd \            │
│                  -o CAP_DAC_READ_SEARCH -i 3                    -j GRANT     │
└───────────────────────────────────────┘

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 

7.6. MySQL

これらの ACL は、MySQL が /usr/local/mysql にインストールされていること
を前提にしています。
┌───────────────────────────────────┐
│/sbin/lidsconf -A -o /usr/local/mysql/var                -j APPEND    │
│                                                                      │
│/sbin/lidsconf -A -o /usr/local/mysql                    -j DENY      │
│/sbin/lidsconf -A -s /usr/local/mysql/libexec/mysqld \                │
│                  -o /usr/local/mysql                    -j READONLY  │
│/sbin/lidsconf -A -s /usr/local/mysql/libexec/mysqld \                │
│                  -o /usr/local/mysql/var                -j WRITE     │
└───────────────────────────────────┘

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 

7.7. OpenSSH (3.4p1)

これらの設定は、sshd に CAP_NET_BIND_SERVICE 権限を与えていますので、起
動後、LIDS_GLOBAL が有効な時に機能します。
┌──────────────────────────────────┐
│/sbin/lidsconf -A -s /usr/sbin/sshd -o /etc/shadow      -j READONLY │
│                                                                    │
│/sbin/lidsconf -A -o /etc/ssh/sshd_config               -j DENY     │
│/sbin/lidsconf -A -o /etc/ssh/ssh_host_key              -j DENY     │
│/sbin/lidsconf -A -o /etc/ssh/ssh_host_dsa_key          -j DENY     │
│                                                                    │
│/sbin/lidsconf -A -s /usr/sbin/sshd \                               │
│                  -o /etc/ssh/sshd_config               -j READONLY │
│/sbin/lidsconf -A -s /usr/sbin/sshd \                               │
│                  -o /etc/ssh/ssh_host_key              -j READONLY │
│/sbin/lidsconf -A -s /usr/sbin/sshd \                               │
│                  -o /etc/ssh/ssh_host_dsa_key          -j READONLY │
│                                                                    │
│/sbin/lidsconf -A -s /usr/sbin/sshd \                               │
│                  -o /var/log/wtmp                      -j WRITE    │
│/sbin/lidsconf -A -s /usr/sbin/sshd \                               │
│                  -o /var/log/lastlog                   -j WRITE    │
│                                                                    │
│/sbin/lidsconf -A -s /usr/sbin/sshd \                               │
│                  -o CAP_SETUID                         -j GRANT    │
│/sbin/lidsconf -A -s /usr/sbin/sshd \                               │
│                  -o CAP_SETGID                         -j GRANT    │
│/sbin/lidsconf -A -s /usr/sbin/sshd \                               │
│                  -o CAP_FOWNER                         -j GRANT    │
│/sbin/lidsconf -A -s /usr/sbin/sshd \                               │
│                  -o CAP_CHOWN                          -j GRANT    │
│/sbin/lidsconf -A -s /usr/sbin/sshd \                               │
│                  -o CAP_DAC_OVERRIDE                   -j GRANT    │
│/sbin/lidsconf -A -s /usr/sbin/sshd \                               │
│                  -o CAP_NET_BIND_SERVICE 22-22         -j GRANT    │
│/sbin/lidscond -A -s /usr/sbin/sshd \                               │
│                  -o CAP_SYS_CHROOT                     -j GRANT    │
│/sbin/lidscond -A -s /usr/sbin/sshd \                               │
│                  -o CAP_SYS_RESOURCE                   -j GRANT    │
│/sbin/lidscond -A -s /usr/sbin/sshd \                               │
│                  -o CAP_SYS_TTY_CONFIG                 -j GRANT    │
└──────────────────────────────────┘

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 

7.8. OpenLDAP (slapd)

これらの設定は、slapd に CAP_NET_BIND_SERVICE 権限を与えていますので、
起動後、LIDS_GLOBAL が有効な時に機能します。
┌────────────────────────────────────┐
│/sbin/lidsconf -A -s /usr/local/libexec/slapd \                         │
│                  -o /usr/local/ldapdb                  -j WRITE        │
│/sbin/lidsconf -A -s /usr/local/libexec/slapd \                         │
│                  -o CAP_NET_BIND_SERVICE                -j GRANT       │
│/sbin/lidsconf -A -s /usr/local/libexec/slapd \                         │
│                  -o CAP_INIT_KILL                       -j GRANT       │
│/sbin/lidsconf -A -s /usr/local/libexec/slapd \                         │
│                  -o CAP_SYS_MODULE                      -j GRANT       │
└────────────────────────────────────┘

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 

7.9. Port Sentry

これらの設定は、portsentry に CAP_NET_BIND_SERVICE 権限を与えていますの
で、起動後、LIDS_GLOBAL が有効な時に機能します。portsentry にやらせよう
と思っている内容によって、これらの ACL 全ては必要だったり不要だったりす
るかもしれません。
┌────────────────────────────────────────────────────────────────────┐
│/sbin/lidsconf -A -s /usr/local/psionic/portsentry/portsentry \                                                                         │
│                  -o /usr/local/psionic/portsentry                                      -j WRITE                                        │
│/sbin/lidsconf -A -s /usr/local/psionic/portsentry/portsentry \                                                                         │
│                  -o /var/log                                                                                           -j WRITE        │
│/sbin/lidsconf -A -s /usr/local/psionic/portsentry/portsentry \                                                                         │
│                  -o CAP_NET_BIND_SERVICE                        -j GRANT                                                               │
│                                                                                                                                        │
│# For portsentry to be able to update the firewall:                                                                                     │
│# portsentry がファイアウォールを更新するため:                                                                                         │
│/sbin/lidsconf -A -s /usr/local/psionic/portsentry/portsentry \                                                                         │
│                  -o CAP_NET_RAW -i 1                            -j GRANT                                                               │
│                                                                                                                                        │
│# For portsentry to be able to update /etc/hosts.allow and/or /etc/hosts.deny:                                                          │
│# portsentry が /etc/hosts.allow や/etc/hosts.deny を更新するため:                                                                     │
│/sbin/lidsconf -A -s /usr/local/psionic/portsentry/portsentry \                                                                         │
│                  -o /etc/hosts.allow                           -j WRITE                                                                │
│/sbin/lidsconf -A -s /usr/local/psionic/portsentry/portsentry \                                                                         │
│                  -o /etc/hosts.deny                            -j WRITE                                                                │
└────────────────────────────────────────────────────────────────────┘

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 

7.10. Samba

この設定では、ポート 137 & 139 をバインドできるように、Samba はカーネル
を封印するより前か、LIDS_GLOBAL が無効になっている時に起動する必要があ
ります。
┌──────────────────────────────────┐
│/sbin/lidsconf -A -o /etc/samba -j READONLY                         │
│/sbin/lidsconf -A -o /var/samba -j READONLY                         │
│/sbin/lidsconf -A -s /usr/sbin/smbd -o /var/samba -j WRITE          │
│/sbin/lidsconf -A -s /usr/sbin/nmbd -o /var/samba -j WRITE          │
│                                                                    │
│# smbd needs write access to smbpasswd to chmod it.  i think it     │
│# also needs access to MACHINE.SID                                  │
│# smbd は chmod するために smbpasswd への書きこみ権限が必要です。   │
│# MACHINE.SID にも同様に必要だと思います。                          │
│/sbin/lidsconf -A -s /usr/sbin/smbd -o /etc/samba -j WRITE          │
│/sbin/lidsconf -A -s /usr/sbin/smbd -o /etc/shadow -j READONLY      │
│                                                                    │
│/sbin/lidsconf -A -s /usr/sbin/smbd -o CAP_SETUID -j GRANT          │
│/sbin/lidsconf -A -s /usr/sbin/smbd -o CAP_SETGID -j GRANT          │
│/sbin/lidsconf -A -s /usr/sbin/smbd -o CAP_HIDDEN -j GRANT          │
│                                                                    │
│# LIDS complains about smbd trying to chroot to /                   │
│# everything still seems to work without it, though                 │
│# (and isn't chrooting to / kinda pointless anyway?)                │
│# LIDS は smbd が /  に chroot しようとする旨文句を言います。       │
│# ただ、それなしでも全てうまく機能しているようには見えます。        │
│# (しかも / に chroot してはいないのに、ちょっと無駄じゃない?)     │
│#/sbin/lidsconf -A -s /usr/sbin/smbd -o CAP_SYS_CHROOT -j GRANT     │
│/sbin/lidsconf -A -s /usr/sbin/nmbd -o CAP_HIDDEN -j GRANT          │
└──────────────────────────────────┘

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 

7.11. Linux HA heartbeat

┌───────────────────────────────────────┐
│/sbin/lidsconf -A -o /usr/lib/heartbeat/heartbeat                -j READONLY  │
│/sbin/lidsconf -A -s /usr/lib/heartbeat/heartbeat \                           │
│                  -o CAP_NET_BIND_SERVICE -i -1                  -j GRANT     │
│/sbin/lidsconf -A -s /usr/lib/heartbeat/heartbeat \                           │
│                  -o CAP_SYS_RAWIO -i -1                         -j GRANT     │
│/sbin/lidsconf -A -s /usr/lib/heartbeat/heartbeat \                           │
│                  -o CAP_NET_BROADCAST -i -1                     -j GRANT     │
│/sbin/lidsconf -A -s /usr/lib/heartbeat/heartbeat \                           │
│                  -o CAP_NET_ADMIN -i -1                         -j GRANT     │
│/sbin/lidsconf -A -s /usr/lib/heartbeat/heartbeat \                           │
│                  -o CAP_NET_RAW -i -1                           -j GRANT     │
│/sbin/lidsconf -A -s /usr/lib/heartbeat/heartbeat \                           │
│                  -o CAP_SYS_ADMIN -i -1                         -j GRANT     │
│                                                                              │
│# For sending Gratuitous Arps                                                 │
│# 余計な Arp を送るため                                                       │
│                                                                              │
│/sbin/lidsconf -A -o /usr/lib/heartbeat/send_arp                 -j READONLY  │
│/sbin/lidsconf -A -s /usr/lib/heartbeat/send_arp \                            │
│                  -o CAP_NET_RAW -i -1                           -j GRANT     │
│                                                                              │
│# For modifying the routing table when the IP address changes                 │
│# IP アドレス変更時にルーティングテーブルを修正するため                       │
│                                                                              │
│/sbin/lidsconf -A -o /sbin/route                                 -j READONLY  │
│/sbin/lidsconf -A -s /sbin/route -o CAP_NET_ADMIN -i 0           -j GRANT     │
│                                                                              │
│#                                                                             │
│# Protect the heartbeat configuration and authentication key.                 │
│# heartbeat の設定と認証キーを保護します                                      │
│#                                                                             │
│/sbin/lidsconf -A -o /etc/ha.d/ha.cf                             -j READONLY  │
│/sbin/lidsconf -A -o /etc/ha.d/haresources                       -j READONLY  │
│/sbin/lidsconf -A -o /etc/ha.d/authkeys                          -j DENY      │
│                                                                              │
│#                                                                             │
│# Only heartbeat can see the authkey                                          │
│# hertbeat のみが authkey を読めます                                          │
│#                                                                             │
│/sbin/lidsconf -A -s /usr/lib/heartbeat/heartbeat \                           │
│                  -o /etc/ha.d/authkeys                          -j READONLY  │
└───────────────────────────────────────┘

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 

7.12. Bind 9.x

┌─────────────────────────────────────┐
│/sbin/lidsconf -A -s /usr/sbin/named  -o CAP_NET_BIND_SERVICE 53 -j GRANT │
│/sbin/lidsconf -A -s /usr/sbin/named  -o CAP_SETPCAP             -j GRANT │
│/sbin/lidsconf -A -s /usr/sbin/named  -o CAP_SYS_CHROOT          -j GRANT │
│/sbin/lidsconf -A -s /usr/sbin/named  -o CAP_SYS_RESOURCE        -j GRANT │
│/sbin/lidsconf -A -s /usr/sbin/named  -o CAP_SETUID              -j GRANT │
│/sbin/lidsconf -A -s /usr/sbin/named  -o CAP_SETGID              -j GRANT │
└─────────────────────────────────────┘

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 

7.13. Sendmail

┌───────────────────────────────────────────┐
│# Sendmail LIDS rules (using infinite inheritance for the sendmail                    │
│# children and delivery agents to work properly, but a lower inheritance              │
│# like 2 or 3 would probably work as well.)                                           │
│# Sendmail 用 LIDS ルール                                                             │
│# (sendmail の子孫や配送エージェントが適切に動作するように                            │
│# 無限の継承を使っていますが、2, 3 のより低い継承でもおそらく                         │
│# 同じように動作するでしょう。)                                                       │
│                                                                                      │
│# Lock down /etc/mail if it's not already done elseware                               │
│# どこか他で既になされていないなら、/etc/mail を読めるようにします                    │
│/sbin/lidsconf -A -o /etc/mail -j READONLY                                            │
│                                                                                      │
│/sbin/lidsconf -A -o /usr/sbin/sendmail -j READONLY                                   │
│/sbin/lidsconf -A -s /usr/sbin/sendmail -o /etc/shadow -j READONLY -i -1              │
│/sbin/lidsconf -A -s /usr/sbin/sendmail -o /etc/passwd -j READONLY -i -1              │
│/sbin/lidsconf -A -s /usr/sbin/sendmail -o /etc/mail   -j READONLY -i -1              │
│/sbin/lidsconf -A -s /usr/sbin/sendmail -o /etc/mail/aliases   -j WRITE -i -1         │
│/sbin/lidsconf -A -s /usr/sbin/sendmail -o /etc/mail/aliases.db   -j WRITE -i -1      │
│/sbin/lidsconf -A -s /usr/sbin/sendmail -o CAP_SETUID -j GRANT -i -1                  │
│/sbin/lidsconf -A -s /usr/sbin/sendmail -o CAP_SETGID -j GRANT -i -1                  │
│/sbin/lidsconf -A -s /usr/sbin/sendmail -o CAP_SYS_ADMIN -j GRANT -i -1               │
│/sbin/lidsconf -A -s /usr/sbin/sendmail -o CAP_NET_BIND_SERVICE 25-25 -j GRANT -i -1  │
│                                                                                      │
│# Depending on how you have the log files secured                                     │
│# (The maillog will normally get rotated out and this                                 │
│# rule will stop working when that happens unless you                                 │
│# stop the log rotation.)                                                             │
│# ログファイルをどのように安全にしているかによって                                    │
│# (mail ログは通常ローテートされているでしょう。このルールは                          │
│# ログのローテーションをやめない限り、それが起きた時点で機能                          │
│# しなくなります。                                                                    │
│                                                                                      │
│/sbin/lidsconf -A -s /usr/sbin/sendmail -o /var/log/maillog -j APPEND -i -1           │
└───────────────────────────────────────────┘

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 

7.14. Apcupsd

┌───────────────────────────────────────────┐
│/sbin/lidsconf -A -o /etc/apcupsd                                        -j DENY      │
│/sbin/lidsconf -A -s /sbin/apcupsd -o /etc/apcupsd                       -j READONLY  │
│/sbin/lidsconf -A -s /sbin/apcupsd -o CAP_HIDDEN -i -1                   -j GRANT     │
└───────────────────────────────────────────┘

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 

7.15. Pump

┌─────────────────────────────────────────┐
│/sbin/lidsconf -A -s /sbin/pump -o CAP_NET_BIND_SERVICE 68-68            -j GRANT │
│/sbin/lidsconf -A -s /sbin/pump -o CAP_NET_RAW                           -j GRANT │
│/sbin/lidsconf -A -s /sbin/pump -o CAP_HIDDEN                            -j GRANT │
└─────────────────────────────────────────┘

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 

7.16. Snort

┌─────────────────────────────────────────┐
│/sbin/lidsconf -A -s /usr/sbin/snort -o CAP_DAC_OVERRIDE                 -j GRANT │
│/sbin/lidsconf -A -s /usr/sbin/snort -o CAP_NET_RAW                      -j GRANT │
│/sbin/lidsconf -A -s /usr/sbin/snort -o CAP_HIDDEN                       -j GRANT │
│/sbin/lidsconf -A -s /usr/sbin/snort -o CAP_SETUID                       -j GRANT │
│/sbin/lidsconf -A -s /usr/sbin/snort -o CAP_SETGID                       -j GRANT │
└─────────────────────────────────────────┘

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 

7.17. Getty

┌─────────────────────────────────────────┐
│/sbin/lidsconf -A -s /sbin/getty -o CAP_DAC_OVERRIDE                     -j GRANT │
│/sbin/lidsconf -A -s /sbin/getty -o CAP_HIDDEN                           -j GRANT │
└─────────────────────────────────────────┘

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 

7.18. Login

┌───────────────────────────────────────────┐
│/sbin/lidsconf -A -s /bin/login -o /etc/shadow                           -j READONLY  │
│/sbin/lidsconf -A -s /bin/login -o CAP_SETUID                            -j GRANT     │
│/sbin/lidsconf -A -s /bin/login -o CAP_SETGID                            -j GRANT     │
│/sbin/lidsconf -A -s /bin/login -o CAP_CHOWN                             -j GRANT     │
│/sbin/lidsconf -A -s /bin/login -o CAP_FSETID                            -j GRANT     │
└───────────────────────────────────────────┘

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 

7.19. Su

┌───────────────────────────────────────────┐
│/sbin/lidsconf -A -s /bin/su -o /etc/shadow                              -j READONLY  │
│/sbin/lidsconf -A -s /bin/su -o CAP_SETUID                               -j GRANT     │
│/sbin/lidsconf -A -s /bin/su -o CAP_SETGID                               -j GRANT     │
└───────────────────────────────────────────┘

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 

7.20. Exim

┌──────────────────────────────────┐
│/sbin/lidsconf -A -s /usr/sbin/exim -o CAP_SETGID -j GRANT          │
│/sbin/lidsconf -A -s /usr/sbin/exim -o CAP_SETUID -j GRANT          │
└──────────────────────────────────┘

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 

7.21. Qpopper

┌──────────────────────────────────┐
│/sbin/lidsconf -A -s /usr/sbin/in.qpopper -o /etc/shadow -j READONLY│
└──────────────────────────────────┘

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 

7.22. Proftp

┌──────────────────────────────────┐
│/sbin/lidsconf -A -s /usr/sbin/proftpd  -o CAP_SETGID -j GRANT      │
│/sbin/lidsconf -A -s /usr/sbin/proftpd  -o CAP_SETUID -j GRANT      │
│/sbin/lidsconf -A -s /usr/sbin/proftpd  -o CAP_SYS_CHROOT -j GRANT  │
│/sbin/lidsconf -A -s /usr/sbin/proftpd  -o /etc/shadow -j READONLY  │
└──────────────────────────────────┘

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 

7.23. Aproxy

┌───────────────────────────────────────────┐
│/sbin/lidsconf -A -s /path/to/aproxy -i 2 -o CAP_NET_BIND_SERVICE 25,110,119 -j GRANT │
└───────────────────────────────────────────┘

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 

7.24. Squid

┌────────────────────────────────────────────┐
│/sbin/lidsconf -A -o /var/spool/squid -j DENY                                           │
│/sbin/lidsconf -A -s /usr/sbin/squid   -i 2 -o /var/spool/squid               -j WRITE  │
│/sbin/lidsconf -A -s /usr/sbin/squid   -i 2 -o /var/log/squid                 -j WRITE  │
│/sbin/lidsconf -A -s /etc/init.d/squid -i 2 -o /var/spool/squid               -j WRITE  │
│/sbin/lidsconf -A -s /usr/sbin/squid        -o CAP_NET_BIND_SERVICE 3128,3130 -j GRANT  │
└────────────────────────────────────────────┘

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 

7.25. Innd

┌───────────────────────────────────────────┐
│/sbin/lidsconf  -A -o /usr/local/news -j DENY                                         │
│                                                                                      │
│/sbin/lidsconf  -A -s /usr/local/news/bin/ctlinnd    -o /usr/local/news      -j WRITE │
│/sbin/lidsconf  -A -s /usr/local/news/bin/innd       -o /usr/local/news      -j WRITE │
│/sbin/lidsconf  -A -s /usr/local/news/bin/nnrpd      -o /usr/local/news      -j WRITE │
│/sbin/lidsconf  -A -s /usr/local/news/bin/nnrpd \                                     │
│                                          -o /usr/local/news/spool/overview  -j WRITE │
│/sbin/lidsconf  -A -s /usr/local/news/bin/rc.news    -o /usr/local/news      -j WRITE │
│/sbin/lidsconf  -A -s /usr/local/news/bin/shlock     -o /usr/local/news/run/ -j WRITE │
│/sbin/lidsconf  -A -s /usr/local/news/bin/innwatch   -o /usr/local/news/run/ -j WRITE │
│/sbin/lidsconf  -A -s /usr/local/news/bin/innconfval -o /usr/local/news/     -j WRITE │
│/sbin/lidsconf  -A -s /usr/local/news/bin/innmail    -o /usr/local/news/     -j WRITE │
│/sbin/lidsconf  -A -s /usr/local/news/bin/inndstart  -o /usr/local/news/     -j WRITE │
│                                                                                      │
│/sbin/lidsconf  -A -s /usr/local/news/bin/inndstart \                                 │
│                                       -o CAP_NET_BIND_SERVICE 119 -j GRANT           │
│/sbin/lidsconf  -A -s /usr/local/news/bin/inndstart  -o CAP_SETGID -j GRANT           │
│/sbin/lidsconf  -A -s /usr/local/news/bin/inndstart  -o CAP_SETUID -j GRANT           │
│/sbin/lidsconf  -A -s /usr/local/news/bin/nnrpd      -o CAP_SETUID -j GRANT           │
│/sbin/lidsconf  -A -s /usr/local/news/bin/nnrpd      -o CAP_SETGID -j GRANT           │
└───────────────────────────────────────────┘

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 

7.26. Postfix

下記、Debian GNU/Linux Woody (3.0) システム上で全ての権限が不可になって
いる時の、postfixの設定例です。CAP_HIDDEN パートは、もちろん任意です。
┌──────────────────────────────────┐
│/sbin/lidsconf -A -o /etc/postfix               -j DENY             │
│/sbin/lidsconf -A -o /var/spool/postfix         -j DENY             │
│                                                                    │
│/sbin/lidsconf -A -s /etc/init.d/postfix \                          │
│                  -o /etc/postfix               -j READONLY -i 1    │
│/sbin/lidsconf -A -s /etc/init.d/postfix \                          │
│                  -o /var/spool/postfix         -j WRITE    -i 1    │
│/sbin/lidsconf -A -s /usr/sbin/postfix   \                          │
│                  -o /etc/postfix               -j READONLY -i 4    │
│/sbin/lidsconf -A -s /usr/sbin/postfix   \                          │
│                  -o /var/spool/postfix         -j WRITE    -i 4    │
│                                                                    │
│/sbin/lidsconf -A -s /usr/lib/postfix/master \                      │
│                  -o CAP_SETGID                 -j GRANT    -i 1    │
│/sbin/lidsconf -A -s /usr/lib/postfix/master \                      │
│                  -o CAP_SETUID                 -j GRANT    -i 1    │
│/sbin/lidsconf -A -s /usr/lib/postfix/master \                      │
│                  -o CAP_HIDDEN                 -j GRANT    -i 1    │
│/sbin/lidsconf -A -s /usr/lib/postfix/master \                      │
│                  -o CAP_DAC_OVERRIDE           -j GRANT    -i 1    │
│/sbin/lidsconf -A -s /usr/lib/postfix/master \                      │
│                  -o CAP_SYS_CHROOT             -j GRANT    -i 1    │
│                                                                    │
│/sbin/lidsconf -A -s /usr/lib/postfix/master \                      │
│                  -o /etc/aliases.db            -j READONLY -i 1    │
│/sbin/lidsconf -A -s /usr/lib/postfix/master \                      │
│                  -o /var/spool/postfix         -j WRITE    -i 1    │
│/sbin/lidsconf -A -s /usr/lib/postfix/master \                      │
│                  -o /etc/postfix               -j READONLY -i 1    │
│                                                                    │
│/sbin/lidsconf -A -s /usr/sbin/postdrop \                           │
│                  -o /etc/postfix               -j READONLY         │
│/sbin/lidsconf -A -s /usr/sbin/postdrop \                           │
│                  -o /var/spool/postfix         -j WRITE            │
│                                                                    │
│/sbin/lidsconf -A -s /usr/sbin/sendmail \                           │
│                  -o /etc/postfix               -j READONLY         │
│/sbin/lidsconf -A -s /usr/sbin/sendmail \                           │
│                  -o /var/spool/postfix         -j WRITE            │
└──────────────────────────────────┘

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 

Chapter 8. LIDS テクニカル

8.1. LIDS は ext2 以外のファイルシステムでも動作しますか?

はい。LIDS の共著者である Philippe Biondi の言葉を借ります− ""LIDS は
VFS レイヤの最上部で動作しますので、Linux がサポートするあらゆる fs を
扱うことができます。" "

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 

8.2. LIDS は SMP のシステムで動作しますか?

SMP システムで LIDS を実行することについては、障害報告がなされています
。問題の多くは修正されていますので、最新バージョンを試してみるのをお勧
めします。Xie と Philippe はこの手の問題を修正するのに、非常に注力して
いますので、LIDS のメーリングリストに報告するようにしてください。

更新 (2/10/01):多くのユーザから、LIDS-1.0.5 を使って SMP システムの
2.4.x カーネルでうまくいったというレポートがなされています。 

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 

8.3. LIDS は Solar Designer の Openwall パッチと共存しますか?

大丈夫です。LIDS と Openwall パッチを両方適用すれば、1 hunk が失敗しま
す (カーネル 2.2.18 用リリース 0.9.11 の時点)。このエラーはささいなもの
で、システムのセキュリティには影響しないと思います。とはいえ、エラーが
気に入らないなら、http://root-it.be/community/lids へいって、LIDS +
Openwall 統合パッチをダウンロードしてください。Wim Vandersmissen が素晴
らしいことに、私達のためにパッチを統合してエラーを修正してくれています
。Wim は彼のサイトで、他にも LIDS を含んだ統合パッチをいくつか提供して
います。

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 

8.4. LIDS は非インテルなハードウェア上で動作しますか?

私は、確認できる形で、別のハードウェアプラットフォームで成功したという
話は聞いていません。もし LIDS を別のアーキテクチャで動作させたなら、是
非みんなにその努力を知らせるようにしましょう。

更新: Johannes Helje はLIDS を SUN IPX のペアにインストールすることに
成功しました。彼は、2.2.18 カーネルで Debian を使っています。 

更新: Joseph P. Garcia ( jpgarcia@execpc.com ) は
LIDS を PowerPC ベースのPowerBook G3 にインストールしようとしましたが、
うまくいきませんでした。ここに、問題の詳細を彼のメールから引用します−
┌───────────────────────────────────────────────────────────────┐
│私は、30ヶ月前の PowerPC ベース の Macintosh PowerBook G3 (知る人ぞ知る「旧時代」の powermac) で LIDS を試そうとしています。  │
│起動には BootX ブートローダを使い、LinuxPPC 2000 Q4 をベースにした Linux で                                                   │
│カーネル 2.4.7pre3 と glibc2.2.3、gcc2.95.4 を使っています。                                                                  │
│                                                                                                                              │
│LIDS を自分のシステムで使うという私の目論見は、ほとんど報われていません。                                                     │
│パッチを適用して、設定で LIDS を無効にしていればカーネルはちゃんと動きます。                                                  │
│わずかでも LIDS を有効にすると、CONFIG_LIDS と security=0 だけでさえ、                                                        │
│私のカーネルは起動しません。通常のルーチンは、BootX が MacOS をクリアし、                                                     │
│ハードウェアをセットアップ (ハードディスクをスピンダウンするとか) し、                                                        │
│カーネルが画面をクリアして 'BootX text' で簡単な設定を表示し、それから                                                        │
│フレームバッファコンソールへの出力とともに起動する、というものです。                                                          │
│LIDS を有効にすると、カーネルは画面のクリアさえ行いません。                                                                   │
│これを行うコードを眺めてみましたが、理解の及ぶ範囲では、メモリに                                                              │
│書き込みしているだけです。これがどれほど核心に近いかはわかりません。                                                          │
│                                                                                                                              │
│                                                                                                                              │
│私の知る限り、LIDS はずっと後になるまでアクティブにはならないはずです。                                                       │
│ですから、これは LIDS が行う、私には理解できない基本的なコード変更か、                                                        │
│カーネルが私のシステム上で起動するのを妨げる機能かによって起きている                                                          │
│のでしょう。                                                                                                                  │
│                                                                                                                              │
│                                                                                                                              │
│現時点において、PowerPC 上で LIDS を動かそうとしているという話を私は                                                          │
│知りません。誰かが、ますます広がりつつある PowerPC アーキテクチャ用に                                                         │
│LIDS をサポートせねばならないかも知れないなら、その構想や修正をテストする時間があれば、喜んでさし出すつもりです。             │
│                                                                                                                              │
│                                                                                                                              │
│現状では、これを書いた後で、BootX の text オプションを無効にしてみて、                                                        │
│何がおきるか見てみようと思っています。添付したのは、この修正を行う前の                                                        │
│カーネルコンフィグ (bz2) です。                                                                                               │
│                                                                                                                              │
│                                                                                                                              │
│日頃のご厚情に感謝します。                                                                                                    │
└───────────────────────────────────────────────────────────────┘

更新: Joseph P. Garcia は、 PowerPC 上で LIDS を動かす事に成功しました
。彼はカーネル設定の中で、 LIDS が管理する object を 1024 から 512 に減
らしたそうです。

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 

8.5. LIDS のバージョン 0.x, 1.x と 2.x との違いは何ですか?

LIDS 0.x は Linux カーネル 2.2.x 向け、LIDS 1.x は Linux カーネル 2.4.x
向け、LIDS 2.x は Linux カーネル 2.5.x 向けです。 

一覧に戻る
グリーンネット・トップページへ戻る

http://www.green.ne.jp/