root以外のユーザーアカウントでデーモンを実行することをお勧めしますか?


13

NTPを使用してネットワーク時間を変更し、2台のコンピューターを同期するアプリケーションを開発しました。rootLinuxで時刻と日付を変更できるのは後者だけなので、として実行されます(推測します)。

今、私はユーザーとしてそれを実行したい。しかし、私は時間にアクセスする必要があります。

  • root以外のユーザーアカウントでデーモンを実行することをお勧めしますか?
  • アプリケーションに次のような機能を与えましょうCAP_SYS_TIMEか?
  • セキュリティの脆弱性は発生しませんか?
  • もっと良い方法はありますか?

通常、NTPデーモンはntp(少なくともLinuxシステムでは)ユーザーアカウントとして実行されることになっているため、この変更を行う必要はありません。どのNTPパッケージをインストールしましたか?

6
非rootアカウントでデーモンを実行することは「root権限を落とす」と呼ばれ、デーモンのセキュリティ脆弱性の潜在的な損害を制限するため、一般的に知られている良い習慣です。

1
権限分離」については、ウィキペディアを参照してください。
クサラナナンダ

ソースからNTPをコンパイルしました。私は、NTPグループを持っていない
Anonymous12223

@xhaltar NTPグループとユーザーを作成できます。サービスの開始方法(ユーザー、グループなど)を構成するには、サービス初期化スクリプトを作成/編集するか、systemdユニットを作成/構成します。
Pl4nk

回答:


15

root以外のユーザーアカウントでデーモンを実行することをお勧めしますか?

はい、これは一般的です。たとえば、Apacheはルートとして起動してから、新しいプロセスをwww-dataとしてフォークします(デフォルト)。
前に述べたように、プログラムがハッキングされた場合(例:コードインジェクション)、攻撃者はルートアクセスを取得できませんが、この特定のユーザーに与えた特権に制限されます。

「CAP_SYS_TIME」などの「機能」を指定しますか?

setuidの使用を避け、この非常に特殊な機能にアクセス許可を制限するため、これは良いアイデアです。

別の方法で「グッドプラクティス」と見なされますか?

たとえば、セキュリティを強化できます。

  • シェルなしで、特権のないユーザーとしてサービスを実行します。
  • 使用すると、chrootしてのホームディレクトリ内のユーザーをロックします。

注:rootでLinuxを実行している場合、Chrootはセキュリティを提供しません。rootユーザーは、chrootにディレクトリを作成し、chrootのルートディレクトリを開き、新しいディレクトリにchrootし、実際のルートに戻るまでchdirし、次に実際のルートにchrootできます。BSDは、ディレクトリfdのchrootへの取り込みを禁止することにより、これを修正します。
ケビン

@Kevinあなたがrootである場合、chrootの外部でプロセスをptraceすることもできます。これを回避する方法は他にもたくさんあります。単なるchrootがでルートを維持することはできません。
ジル「SO-停止されて悪」

//、emp.jar.stは、実際にはセキュリティ上の理由のために自分自身のためにユーザーが作成されます。非常に良い習慣です。
ネイサンバサネーゼ

私がUSERの場合、特定のディレクトリにUSERをロックできますか?「/ opt」など(たとえば)?
Anonymous12223

@xhaltar USERディレクトリで実行されるプロセスをロックするには、使用しますchroot(rootユーザーとして実行します)。ただし、事前にjail(ディレクトリ)を作成して初期化する必要があります。つまり、プロセスに必要なライブラリとバイナリをこのjailに配置してから、を呼び出す必要がありますchroot <path/to/jail> <command>。必要なサンプルを含む優れたチュートリアルはこちらから
Pl4nk

13
  • 別の方法で「グッドプラクティス」と見なされますか?

強い反論できない理由がない限り、GNU / Linuxディストリビューションに付属しているNTPパッケージを使用する必要があります。標準のNTPデーモンは成熟するまでに何年もかかり、システムのクロックをネットワーククロックまたはGPSクロックと同期させるために、システムのクロックを減速または高速化するなどの高度な機能を備えています。クロックを同期するように調整されているため、その目的に最も適したツールである可能性高いです

ntpd最近の更新(この投稿を書いている時点)から判断すると、まだ維持されています。さらに機能が必要な場合は、開発者に直接連絡することをお勧めします。開発者はそれについて何を言わなければならないかを信頼してください。


5

機能Xを実行する必要があるプログラム (クロックを操作するなど)があり、機能Xを実行する特権/パワーを与えることができる場合、それはアルファベットの缶全体を提供するよりも優れていますスープ。これは、最小特権原則として知られています。プログラムにバグがある場合、通常のプログラミングエラーまたは悪用可能なセキュリティの脆弱性のいずれかを考えてください。「root」として実行されている場合、全員のファイルを削除するか、攻撃者に送信する可能性があります。プログラムが実行できるのがクロック(およびロックダウンディレクトリ内のファイルの操作などの非特権機能)を操作することだけである場合、プログラムが不正になった場合に発生する可能性がある最悪の事態です。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.