遊ぶ 悪魔の支持者 、
ホスティングプロバイダーからLinuxサーバーを購入するとします。 rootユーザーのパスワードが与えられ、SSHを使用してログインできると言われます。このサーバーの唯一の目的は、1つまたは複数のWebサイトをホストすることです。
私の最初のログインは、(よくレビューされ、広く使用されているパッケージ管理システムを介して)インストールおよび構成(/etc
)Webサーバー、データベース、インターネットにアクセスしないいくつかのソフトウェア、およびWebアプリケーションサーバー(PHP-FPM、Unicornなど)。パッケージ管理は、権限のないユーザーがサーバーを実行するようにセットアップするのに十分スマートであり、私が維持している構成です。次に、いくつかのWebサイトファイル(PHP、Ruby、Pythonなど)を/var/www
、およびchown
実行する同じ非特権ユーザーが所有するすべてのファイルは、Webサーバープロセスとして実行されます(つまり、www-data
)。
将来的には、私だけがログインし、Webサイトのファイルを更新し、ログの確認などの読み取り専用操作を実行するだけです。
上記のシナリオで、セキュリティ関連の理由はありますか、なぜ非rootユーザーではなくrootユーザーアカウントを使用しますか?結局のところ、root以外のユーザーでログインした場合、ほとんどすべてのコマンドはSudo
で実行されます。
ご注意ください:非rootユーザーを使用することには、多くの普遍的な説得力のあるセキュリティおよびセキュリティ以外の理由があることを理解しています。非rootユーザーアカウントの必要性については尋ねていません。私の質問は、上記の限られたセットアップに厳密に限定されています。私の例は限られていますが、非常に一般的であるため、これは関連があると思います。
いくつかの理由があります。
traceabilty:Sudoで実行されたコマンドがログに記録されます。 bashで実行されるコマンドはときどきログに記録されますが、詳細は少なく、ブロックしやすいメカニズムを使用しています。
特権の分離:ほとんどすべてのコマンドはeveryコマンド。ルートを必要としないものはまだたくさんあります
ファイル編集:Webファイルは非rootユーザーが所有し、非rootユーザーが実行します...では、なぜrootで編集するのですか?
攻撃の軽減:次の完全に偶数ではない仮説のシナリオを検討してください:ワークステーションがマルウェアを取得し、適切なクライアントから保存されている認証データベースからFTP/SCP/SFTP/SSHログインを取得します。攻撃者に送信します。攻撃者はデバイスにログオンして、いたずらをします。さて、彼らは彼らのトラックをカバーすることができますか?私はこれが最近起こった新しい人に毎週1回以上誰かと話します。
自動化された攻撃の軽減:ブラジルのハッキングされたサーバーがネットワークをスキャンして、リスニングSSHサーバーをプルアップします。攻撃者が自動攻撃に使用するユーザー名は何ですか?多分webuser
、またはtest
、またはwww
またはadmin
-しかし、他の何よりも:root
。
確かにもっと多くの理由がありますが、これらは私の頭に浮かんだ最初の理由です。
これを見ただけで、少し遅れましたが...
No-シンプルなWebサーバーをrootが管理でき、基本的に安全です。
非ルートとして管理することにはいくつかの利点があることは事実ですが、これらはマイナーであり、ほとんどのセキュリティアドバイスでは非常に誇張されています。ネットワークに面したサービスを保護することは、はるかに重要です。 Webサーバーにパッチを適用し、Webアプリのアプリケーション層の欠陥を確認します。
タイラーのポイントに応答するには:
トレーサビリティ-複数の管理者がいる場合、これは有効かもしれませんが、それがあなただけの場合は、ルートとして機能して完全に追跡可能です。
特権の分離-実際には、root以外の場合とほとんど変わらないので、違いはありません。
ファイル編集-上記を参照
攻撃軽減-ワークステーションにマルウェアが存在する場合、すべての賭けは無効になります。パスワードなしのSudoを使用する場合、彼が言及する攻撃は依然として機能します。 suを使用すると、マルウェアはキーロガーを使用してパスワードを取得できます。
自動化された攻撃の緩和-強力なパスワードを使用する(または代わりにSSHキーを使用する)の標準的なアドバイスに従う場合、ブルートフォーサーはとにかく侵入しません。
Root以外のユーザーを日常の活動に使用する最も良い理由は、* nixシステムで実際に何かをしているときなどに、良い習慣と知識を構築することです。それがなければ、ファイルのアクセス許可やグループなどを考える必要はありません。
さらに、関連するもう1つの質問は、rootに独自のパスワードが必要かどうかということです。 Sudoを使用するためにrootパスワードを提供する習慣をつけることは良い習慣です。実行していることがOS構成の整合性に影響することをよく思い出してください。システム管理者でさえ、ランダムユーザーだけでなくSudo rm -R /コマンドを使用してシステム全体を攻撃できることを知っています。 * nixは、別のWordを返さずにそれを実行します。
それはまた文化に帰着します。遊んでいるだけでどのように表示されるかを確認するには、それが1つの方法です。virtualboxでそれを実行し、心の底から悪用してください。 (特にrm -R /を実行してから、htopで何が機能しなくなったのかを確認するのが好きです。しかし、常にバックアップから復元するか再インストールするという2つの結果のいずれかにつながることがわかったら、すぐに古くなります。)
* nixマシンを使用するビジネス上の目的がある場合は、たとえ管理者であっても、同じシステムを使用している他の人の文化に適合させることをお勧めします。