sshのrootアクセスを無効にする必要があるのはなぜですか?これはセキュリティ上の理由からです。しかし、私はそれを理解していません。非ルートとしてログインすることと何が違うのsudo su -
ですか?特権権限を必要とするタスクを処理するための好ましい方法は何ですか?
ありがとう
トーマス
sshのrootアクセスを無効にする必要があるのはなぜですか?これはセキュリティ上の理由からです。しかし、私はそれを理解していません。非ルートとしてログインすることと何が違うのsudo su -
ですか?特権権限を必要とするタスクを処理するための好ましい方法は何ですか?
ありがとう
トーマス
回答:
Sudoは、監査性と豊富な細分性のため、管理タスクを委任する必要がある場合に推奨される方法です。Sudoを使用すると、すべてのコマンドをログに記録でき、管理者は個人またはグループ用にさまざまなsudoプロファイルをセットアップできます。
suまたはrootアクセスはオールオアナッシング
sudo -s
またはで簡単sudo bash
です。でコマンドのセットを制限することについて話しているのでない限り/etc/sudoers
、sudoがインタラクティブに使用される実稼働環境にデプロイされたことはありません。sudoが有効になっている場合、悪意のあるソフトウェア(たとえば、入力するmake
かpython setup.py
、GitHubからクローンしたばかりのランダムリポジトリで実行される)には、実質的にroot権限があります。これを、sudoが無効になっていて、代わりにrootとしてコマンドを実行するために別のSSH接続が使用されるシナリオと比較してください。
rootは、すべての単一のUNIXマシンで有効であり、有効になっていることが保証されている1つのアカウントであるため、パスワードをブルートフォースにしようとするのは簡単です。外部ツール(明らかなスキャナーを殺すラッパー、侵入者防御デバイスなど)がなければ、パスワードが解読されるのは時間の問題です。この種の動作を防止する外部ツールがある場合でも、受信ユーザーに通常のユーザーとしてログインさせ、次にsu / sudo / pfexecを強化された特権まで強制することをお勧めします。はい、これは追加の手順です。つまり、ルートユーザー間で共有されるマシンにユーザーアカウントを作成する必要がありますが、攻撃者とボックスの無制限の制御の間のもう1つの障壁です。
主な違いは、攻撃者がユーザー名も推測する必要があることです。rootにログインを許可すると、彼はパスワードを推測する必要があります。
また、man-in-the-middleアプローチを使用して、sshキーを取得するユーザーのログインを偽装したり、データを再送信したりすることができ、パスワードを入力しなくてもシステムにログインできます。しかし、ユーザーとしてログインする場合、コマンドをsudo化する必要があるため、手動でパスワードを入力する必要があります。ルートとしてログに記録された場合、sudo化する必要がないため、セキュリティのステップが1つ少なくなります。
何十万ものマシンがsshdをスキャンしてブルートフォースを強制しています。「root」は、最初に試すのに適したアカウントです。壊れた場合は、完全にマシンを所有しているからです。rootログインを無効にしない限り、すべての* nixシステムに共通のアカウントでもあります。これを行うのは非常に良いセキュリティ慣行です。
これの主な利点は、より柔軟なアクセス制御が可能になることです。ユーザーがsudoを介してroot権限を持っている場合、root権限を簡単に付与したり、必要に応じて削除したりできます。逆に、実際に人々にルートpwを渡した場合、それを奪うことはできません(Men In Blackでない限り;-))、ルートpwのみを変更でき、これは全員に影響します。
そのコンテキストでは、直接のrootログインは不要ですb / c誰もroot pwを持っていません。
(シングルユーザーモードのコンソールで緊急アクセスするためには引き続きルートパスワードが必要ですが、そのための特別な準備が必要です)。