ルートがSSH経由でログインできないようにCentOS Webサーバーをロックしました。私のウェブサイトのディレクトリとファイルはルートの所有です。したがって、ファイルをアップロードするプロセスは2つのステップで行われます。 WinSCPを使用して/ homeディレクトリにアップロードします。その後、SSHを介してログインし、ファイルを必要な場所に移動しました。
もっと良い方法がありますか? root以外のユーザーはWebサイトファイルを所有する必要がありますか?
他の質問を見ると、これこれは、私のユーザーをネットワークユーザーグループの一部にし、そのグループにすべてのWebサイトファイルを所有させる必要があることを示しているようです。これは典型的ですか?これにセキュリティ問題がありますか?
ベストアンサー1
簡単に言うと: root:root rwxr-xr-x
、ディレクトリへの書き込みアクセスが必要ない場合は、root:www-data rwxrwxr-x
Webディレクトリのパスワード(データベースパスワードなど)を保護する必要があります。この場合はroot:www-data rwxr-x---
書き込みアクセスが必要です。そしてこの場合、秘密を保護する必要がありますroot:www-data rwxrwx---
。
はい、理想的には、ウェブサイトファイルをルートが所有する必要があります。これは最小権限の原則によるものです。権限の観点からは、ルートはとにかく何でもできるので、ルートとして何かを持つことは、実際にはルートに追加の権限を与えずに他のアカウントから権限を奪うだけです。それは良いことです™。
最小権限の原則が何であるかわからない場合は、基本的にプロセスに必要な最小権限のみを付与し、それ以上は付与しません。プロセスがパスワードを取得し、攻撃者がパスワードを使用して権限を取得した場合、ダメージを制限したいからです。彼はちょうどプロセスから継承した光沢のある新しい権限を得ました。これがやる気SELinux、デーモンは次のことができます。特権を放棄する、Linuxの機能、chroot 刑務所1 - これはすべて、攻撃者がプロセスを制御するときに発生する可能性があるダメージを制限するために行われます。
一般的なシナリオでは、誰もが読み取りアクセス権を持ち、ルートにのみ書き込みアクセス権を与えたいと思います。この場合、www-data
両方のr-x
グループが所有するようにWebディレクトリを設定したかどうかは、実際には重要ではありません。なぜならどちらも権限を得ることになるからです。
ただし、ディレクトリツリーを照会して、Apacheがアクセスできるものと一般の人がアクセスできるものを区別する必要があるより複雑なシナリオがあります。これがwww-data
-as-groupが入ってくるところです。 Apacheには書き込みアクセス権を付与できますが、一般ユーザーには付与できません。または、データベースパスワードを保護する必要がある場合は、誰もが読み取りアクセスを拒否しながらApacheがコンテンツを表示できるようにすることもできます。
1:これは少し間違った情報です。システムchroot()
コールは実際にセキュリティ機能で設計されたことはなく、chroot Jailはchroot()
最初に登場するまで発明されていません。したがって、いくつかの制限があります。たとえば、rootユーザーの場合chroot刑務所から脱出することができます。同じ内容が適用されます。Linuxコンテナ(Docker、systemd-nspawn
私はあなたを見ています)。絵BSD刑務所そしてソラリスゾーン基本的にchroot刑務所の概念を取得し、実際に作成します。働く安全に - カーネルセキュリティの脆弱性を排除するため。できないBSD刑務所から脱出してください。あなたがその根であっても。
2 : ネットワークサーバのグループ名は、展開によって異なる場合があります。 Debianとその派生製品にありますが、www-data
RHELシリーズの機能が何であるかわかりません。