回答:
すべてのサーバーでルートアカウントが無効になっています(にsp_pwdp
設定されています*
)。これはsudo
、すべてのルートアクセスに必要です。[1] これの目的は、すべてのスーパーユーザーアクティビティを監査することです。これにより、システムに対して行われたことを確認できます。
よりハードコアなオプションについてはsudo
、ログファイルに書き込みを行って(ではなくsyslog
)、ファイルを追加専用にする(chattr
Linuxまたはchflags
BSDで使用)ことができます。この方法では、誰も監査を後で編集できません。
[1]ルートシェルを実行しない、またはルートプロセスからシェルエスケープを実行するというポリシーもあります。(sudo sh -c '...'
ただし、パイプラインまたはリダイレクトを行うために使用しても構いません。)
rootユーザーを無効にすることを強くお勧めします。または無効にrootログインを制限する(securettyを経由し、 sshd_configファイルを経由し、 PAM経由して、あなたが持っているものを経由して)あなたのシステムがそれを許可する場合は、制限ルートの権限またはルートの役割を分割(どのように似RSBACはそれをしない。)しかし、してください、してください、やりますパスワードを削除してルートアカウントを無効にしないでください。無効にすると、経由でシステムにログインできなくなりますsulogin
。sulogin
fsckによって報告された重大なエラーの場合に知っているすべてのinitscriptによって使用されます。つまり、ルートファイルシステムが破損した場合、システムからロックアウトされます。
明確にするために:「パスワードを削除してルートアカウントを無効にする」とは、最終的に!または/ etc / shadowなどのパスワードフィールドに*を付けます。「ルートログインメカニズムを変更して、パスワードの入力を求められないようにする」という意味ではありません。
su
か、sudo
より多くのセキュリティはあなたが唯一の専用のrootユーザーを持っている場合は、避けることができるリスクのユーザ手段が利用できるお使いのシステムでは。それはフクロウ安全に配布(およびそれらの間の太陽のデザイナー)の著者が提唱する位置だ- unix.stackexchange.com/questions/8581/...参照して自分の位置を提示しようとします。
fastboot
オプションを使用して障害のあるLinuxをブートし、rootアカウントのロックを解除し、再起動して最終的にfsck
手動で実行できました。
すべてのサーバーでルートアカウントを有効にしています。すべての管理者は独自のユーザーを持ち、それを介してログインする必要があります。そこからルートに切り替えます。(ルートsshは無効です)
管理者の数を少なくしてください。そのサーバーで実際にルートアクセスが必要な人だけがパスワードを持っています。
私はsudoのファンではありません。ルートシェルに対して 'sudo bash'を実行するのは簡単すぎます。私はこれを無効にできることを知っていますが、なぜ気にしますか?管理者タスクを実行し、互いに対話できるユーザーを制限するだけです。ルート端末を無人で開かないようにするポリシーがあります。ログインして、su、作業をして、ログアウトします。
注:私はかなり小さな会社(従業員数50人)で働いており、2人のパートタイム管理者(1 Windows / 1 Linux)だけで回ります。この方法は、桁違いに多くのユーザーがいる場合に最適ではない場合があります。個人的にはまだsudoを使用しないでしょう。ルートアクティビティを記録する方法は他にもあります。
ルートパスワードを無効にすることは、誤った「良いアイデア」です。あなたがそれを必要とする日、あなたは本当にそれを必要とします。(構成によっては、例としてシングルユーザーモードでログインする必要があります)
ルートリモートログインを無効にすることは、ローカルでログオンできる場合にのみ関係します。
はい、すべてのサーバーにsudoをインストールする必要があります。便利で設定も簡単です。なぜそれを使用したくないのですか?
Disabling root remote login might be relevant but only if you are able to log on locally.
これは明らかに露骨に間違っています。任意のアカウントでリモートでログインできます。ルートリモートログインを無効にしても、ローカルアクセスに制限されることはありません。
ルートのSSHアクセスを無効にし、ユーザー(多くの場合は開発者)にsshキーの使用を要求します。辞書攻撃が多すぎるため、SSHポートを変更することは選択肢ではありません。
そうすれば、良いパスワードを書くために誰かの能力を信頼する必要はありません。内部に入ると、管理者だけがsudoの権限を持ちます。
私はこのスレッドが本当に古いことを知っていますが、リンクされた記事のロジックにいくつかの重大な欠陥があり、「暴言」を感じています-sudoはホワイトリストとブラックリストの両方を許可します。リンクされた記事で指定されている黒だけではありません-これはAAA(認証、承認、および監査)の概念をスキップします-suおよびsudoは、段階的な認証と説明責任の両方を許可します。
シナリオ1管理者が誤っていくつかの不正なコードをシステムに導入し、rootとしてログインするとコードに完全なアクセス権が与えられ、管理者は何が起こったのかわからなくなる可能性があります。少なくとも段階的なログイン(例:su / sudo)では、不正なコードが昇格した権限を使用しようとした場合、管理者は認証を求められます。
シナリオ2不正な管理者が情報の取得/変更を希望しています。コンソールに接続し(物理コンソールアクセス、HP iLo / similar、またはvGuestコンソールアクセス)、rootとしてログインし、必要な操作を行います。コンソールアクセスを取得するために使用される名前付きのアカウント/アクセスカードがない限り、おそらく監査証跡の多くはありません。
Owlセキュア配布の作成者(およびソーラー設計者)は、反対の慎重に正当化された視点を持っています。例えば、答えを参照してください/unix/8581/which-is-the-safest-way-to-get-root-privileges-sudo-su-or-login/8660#8660ため彼らの主張のプレゼンテーション。スーパーユーザーのアクション(誰が何をしたか)を監査する問題も、彼らの観点で対処されています(基本的に、解決策は、異なる名前を持つ複数のrootユーザーを持つことです)。