Gentoo Logo

1.  /etc/security/limits.conf

リソースを制御する手法はローカルからのDOS攻撃を防ぐ場合や、グループやユーザで許可される最大同時ログイン数を制限する場合に効果的です。 しかし、厳しすぎる設定はシステムの動作の妨げになり、結果としてプログラムの実行が失敗するため、最初にそれぞれの設定をチェックしてください。

コード表示 1.1: /etc/security/limits.conf

*    soft core 0
*    hard core 0
*    hard nproc 15
*    hard rss 10000
*    -    maxlogins 2
@dev hard core 100000
@dev soft nproc 20
@dev hard nproc 35
@dev -    maxlogins 10

nprocmaxloginsを0に設定するなら、その代わりにユーザを削除した方が良いでしょう。 上記の例ではdevグループのプロセス、coreファイルとmaxloginsの設定を行っています。 残りの部分はデフォルト値です。

注意: /etc/security/limits.confはPAMパッケージの一部で、PAMを使うパッケージにのみ適用されます。

1.  /etc/limits

/etc/limitsは制限を行うファイル/etc/security/limits.confと大変似ています。 ただ一つの違いはフォーマットで、この制限はユーザもしくはワイルドカードでの指定でしか機能しません(グループで指定できません)。 サンプルの設定を見てみましょう。

コード表示 1.1: /etc/limits

*   L2 C0 U15 R10000
kn L10 C100000 U35

これはデフォルトのセッティングと、ユーザknに対する設定です。 この制限はsys-apps/shadowパッケージの一部です。 /etc/make.confpamを有効にしている場合、このファイルに制限を設定する必要はありません。

1.  Quota

警告: あなたが使用しているファイルシステムがquotaをサポートしているか確かめてください。 ReiserFSでquotaを使用するためには、Namesysにあるパッチをkernelに当てる必要があります。 ユーザ用のツールはthe Linux DiskQuotaprojectにあります。 ReiserFSでquotaを使用している間は、他の問題に遭遇する場合があります。注意してください。

ファイルシステムにquotaを設定することは、ユーザ毎あるいはグループ毎にディスクの使用を制限することです。 quotaはkernelで有効にし、/etc/fstabのマウントポイントに設定を追加します。 kernelの設定でkernelオプションのFile systems->Quota supportにある設定を有効にします。 以下の設定を適用し、kernelをリビルドして、新しいkernelを使ってリブートしてください。

最初にemerge quotaを実行してquotaをインストールします。 そして、/etc/fstabを編集して以下の例のように、ディスクの使用に制限をかけたいパーティションにusrquotagrpquotaを追加します。

コード表示 1.1: /etc/fstab

/dev/sda1 /boot ext2 noauto,noatime 1 1
/dev/sda2 none swap sw 0 0
/dev/sda3 / reiserfs notail,noatime 0 0
/dev/sda4 /tmp ext3 noatime,nodev,nosuid,noexec,usrquota,grpquota 0 0
/dev/sda5 /var ext3 noatime,nodev,usrquota,grpquota 0 0
/dev/sda6 /home ext3 noatime,nodev,nosuid,usrquota,grpquota 0 0
/dev/sda7 /usr reiserfs notail,noatime,nodev,ro 0 0
/dev/cdroms/cdrom0 /mnt/cdrom iso9660 noauto,ro 0 0
proc /proc proc defaults 0 0

quotaを有効にしたパーティションすぺてについて、quotaファイル(aquota.useraquota.group)を作成してください。 そして、各パーティションのルートに置いてください。

コード表示 1.1: quotaファイルの作成

# touch /tmp/aquota.user
# touch /tmp/aquota.group
# chmod 600 /tmp/aquota.user
# chmod 600 /tmp/aquota.group

この手順はquotaを有効にした全てのパーティションで行う必要があります。 quotaの設定を追加した後、quotaスクリプトをbootランレベルに加える必要があります。

重要: XFSは内部的にすべてのquotaをチェックしますので、quotaスクリプトをbootランレベルへ追加する必要はありません。 このドキュメントで記述されていないファイルシステムで同じような振る舞いをするものがあるかもしれません。 お使いのファイルシステムでquotaチェックをどのように行うのかより知るためにmanページを読んでください。

コード表示 1.1: quotaをbootランレベルに追加

# rc-update add quota boot

quotaを一週間毎にチェックするようにシステムを設定するために、/etc/crontabに以下の行を追加します。

コード表示 1.1: crontabにquotaのチェックを追加

0 3 * * 0 /usr/sbin/quotacheck -avug.

マシンを再起動した後、ユーザとグループのquotaが設定します。 edquota -u knを実行すると、$EDITORに定義されたエディタが起動し (デフォルトはnano)、ユーザknに対するquotaの設定を行います。 edquota -gを実行すればグループに対して同様の事を行います。

コード表示 1.1: ユーザknに対するquotaの設定

Quotas for user kn:
/dev/sda4: blocks in use: 2594, limits (soft = 5000, hard = 6500) 
         inodes in use: 356, limits (soft = 1000, hard = 1500)

さらに詳しい情報はman edquotaQuota mini howto(訳注:Linux JF Projectによる日本語訳)を参照してください。

1.  /etc/login.defs

セキュリティポリシーとしてユーザが隔週でパスワードを変更するよう定めている場合、PASS_MAX_DAYSの値を14に、PASS_WARN_AGEの値を7に変更してください。 十分な時間をがあると、総当たり攻撃によってパスワードが発見することができるため、使用しているパスワードに時効を設定する事が推奨されています。 また、LOG_OK_LOGINSをyesに設定することをお薦めします。

1.  /etc/login.access

login.accessファイルもsys-apps/shadowの一部ですが、ログインアクセスをコントロールするテーブルを提供します。 このテーブルはユーザ名やグループ名、ホスト名によって、ログインの可否ををコントロールするために使用されます。 デフォルトではファイルはコメントと例しか含んでいないため、システム上の全てのユーザはログイン可能です。 サーバやワークステーションがセキュアにするつもりがあろうとなかろうと、あなた(管理者)以外の誰も、コンソールからアクセスするできないように、このファイルを設定する事をお薦めします。

注意: これらの設定はrootには適用されません。

コード表示 1.1: /etc/login.access

-:ALL EXCEPT wheel sync:console
-:wheel:ALL EXCEPT LOCAL .gentoo.org

重要: これらのオプションを設定する時は注意してください。あなたがroot権限を持っていない場合は、設定ミスをするとマシンにアクセスする手段を失います。

注意: SSHはデフォルトでは/bin/loginを実行しないため、これらの設定はSSHには適用されません。 /etc/ssh/sshd_configUseLogin yesを設定すると、有効にすることができます。

これにより、wheelグループのメンバーはローカルまたはgentoo.orgドメインからのログインだけ可能になるよう設定されます。 神経質かも知れませんが、後悔するより安全な方が良いでしょう。

ページの更新日 2007年 7月 8日

このドキュメントのオリジナルバージョン の更新日は2011年 11月 15日

Donate to support our development efforts.

Copyright 2001-2012 Gentoo Foundation, Inc. Questions, Comments? Contact us.