web-dev-qa-db-ja.com

デーモンのどのくらい複雑なものをinetdで実行する必要がありますか?

inetdを介してデーモンを起動する必要がある一般的なルールは何ですか?現在、私のサーバーでは、sshdApache、およびsendmailが常に実行されるように設定されており、単純な* NIXサービスがinetdによって開始されるように設定されています。

コンピューターでsshを使用しているのは私だけです。非標準のポートで実行しているため、侵入の試みは問題になりません。HTTPサーバーは1日に5回ヒットし、GoogleBotではありません。 。

私の質問は、スーパーサーバーデーモンを介してsshdやApacheなどの複雑なデーモンを実行することに関連する利点とパフォーマンスの低下は何ですか?また、この方法で独自のデーモンを実行した場合の成功または失敗は何ですか?

3
amphetamachine

状況はケースごとの状況になります。一般的に言って、スーパーサーバー内で実行する特別な理由がない限り、実行しないことをお勧めします。スーパーサーバー内で実行すると、すべての接続が新しいプロセスを生成するため、高負荷でオーバーヘッドが追加されます。

Apacheは常に実行されるように設計されています。スレッド化され、システムリソースをインテリジェントに管理します。

inetdやその他のスーパーサーバーは、元々、ネイティブコード内のソケットと対話する機能を持たないデーモンに適していました。

4
Warner

デーモンの複雑さは実際には問題ではありません。使用頻度はです。 xinetdを使用すると、ロギングを増やすことができ、構成によってはセキュリティの追加レイヤーを取得できます。あなたが言及したすべてのデーモンは、いくつかの構成ではスーパーサーバーの下で実行でき、実行されます。

デーモンをめったに使用しない場合は、スーパーサーバーで実行することを検討してください。これにより、実行中のデーモンの数とその結果生じるオーバーヘッドを減らすことができます。

inetdとxinetdには、いくつかの非常に単純なサービスが組み込まれています。これらのサービスは、必要な場合を除いて無効にする必要があります。他のサービスにはデーモンインターフェイスがないため、スーパーサーバーで実行する必要があります。ネットワークデーモン機能を備えた多くのサービスには、inetdで実行されていることを示すフラグがあります。

スーパーサーバーでデーモンを実行する前に、起動のオーバーヘッドと構成の安定性を考慮する必要があります。起動時のオーバーヘッドが大きいことが、めったに使用されないサービスをデーモンとして実行する理由の1つです。リストしたサービスは通常、インストール時に比較的頻繁に使用されるため、デーモンとして実行されます。

Apacheは、デーモンとして実行するように最適化されています。頻繁に使用する場合は、デーモンとして実行するのが最適です。

メールサーバーは通常、着信ごとに新しいサーバーをフォークします。これは、ほとんどのOSでオーバーヘッドが低くなっています。メールハブまたはリモートサイトからの配信として使用されていない場合は、ローカルホスト以外のアドレスでリッスンしてはなりません。 TCP/IPを使用してローカルホスト経由で電子メールを送信するプログラムがサーバー上で実行されていない限り、これを行う必要はありません。

sshdは、暗号化用のランダムデータを除いて、起動時のオーバーヘッドが比較的低くなっています。かなりの量のランダムデータが必要ですが、スーパーサーバーで実行するとすぐに利用できない場合があります。

1
BillThor