フォークボムを防ぐ方法は?


14

フォーク爆弾を防ぐために、私はこのhttp://www.linuxhowtos.org/Tips%20and%20Tricks/ulimit.htmをフォローしました

ulimit -aは新しい設定を反映しますが、(のようrootbash)実行すると:(){ :|:&};:、VMは最大CPU + RAMのままになり、システムがフリーズします。

フォークボムを使用したり、バグのあるアプリケーションを実行したりして、ユーザーがシステムをダウンさせないようにする方法は?

OS:RHEL 6.4


ここでは再現できません。root万が一それを試みていますか?どのシェルから試していますか?(後に不足しているスペースが{示唆zshされますが、そこにも再現できません)。
ステファンシャゼラス

Stephane Chazelas:1]私はrootとして実行していました。通常のユーザーで動作させてみました。2]不足しているスペースはタイプミスです。bash.Sorryを使用しています。3] ulimitは「root」ユーザーをモデレートできないのですか?
user44441

@ stephane-chazelas 1] rootで実行していたので、通常のユーザーで試してみました。2]不足しているスペースはタイプミスです。bash.Sorryを使用しています。3] ulimitは「root」ユーザーをモデレートできないのですか?
user44441

回答:


8

スーパーユーザーまたはCAP_SYS_ADMINまたはCAP_SYS_RESOURCE機能を持つプロセスはその制限の影響を受けません。これは変更できるものではありません。root常にプロセスを分岐できます。

一部のソフトウェアが信頼されていない場合、rootとにかく実行されるべきではありません。


3
何か特別なことをしない限り、ルートとして実行されるものはほとんどありません。rootは、それを把握するために必要な特権/権利または基本的なシステムサービスを把握しようとするのにうんざりしているときに使用するアカウントです。
ブラッチリー

11

この変更を浸透させるには、これらの制限を環境全体に追加する必要があります。このulimitコマンドを使用した変更は、現在の環境のみに適用されます。

注:これは、rootユーザーには影響しません!

このファイルを編集します。特定のユーザーまたはユーザーのグループが許可さvi /etc/security/limits.confれるプロセスの数を制限するエントリをファイルに追加します(nproc)。

vivek hard nproc 300
@student hard nproc 50
@faculty soft nproc 100
@pusers hard nproc 200

注:そのファイルにはさらに例があります。「すべて」(別名*)の使用には注意してください。これにより、システムアカウントも制限されます。

参照資料


「すべて」はシステムアカウントを制限しますが、それらのシステムアカウントで実行されるほとんどのサービスは通過しませんpam_limits
ヨルダン

ulimitは「root」ユーザーをモデレートできないのですか?
user44441

投稿にさらに追加するための一般的なアイデアと同じように、OPのプラットフォームがサポートしているためpam_cgroupに関する何かを投稿に追加することをお勧めpam_limitsます。
ブラッチリー

さらに、OPはリソース使用ポリシーで遊んでいるように聞こえるのでcgroups、ネットワークおよびCPU使用率のより良いノブをそれらに与えるでしょう。
ブラッチリー
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.