私は家庭用にNATを作成しました(Ubuntu + Samba + Greyhole + Apache + MySQL +その他のWebサーバーに関するトピック)。私が保存したファイルの90%は失われたくない写真です(Greyholeです)。画像ギャラリーが大きくなるにつれて、後で検索などのために画像をタグで並べ替えることができるWeb画像ギャラリーを作成することを考えました。私はphp/mysql/css/jsにとても上手いので、ギャラリーを作ることは実際には問題になりませんでした。
私の質問は、セキュリティとシステムレベルのファイル共有とアクセシビリティです。
Webアプリケーション(ギャラリー)ディレクトリは
var/www/html
www-data:www-dataが所有しています。
そして、画像はそこにあります/LandingZone/images
(まあ、画像自体が灰色の穴を介してコピーされ移動されたので、画像へのシンボリックリンクがあります)。
/LandingZone/images
所有権はmyusername1:greyholeです(灰色の穴はmyusername1ユーザーとmyusername2ユーザーを持つグループです。どちらのユーザーも共有の読み取り/書き込みにアクセスできる必要があります)。
今やるべきことは、/LandingZone/images
画像を危険にさらすことなくwww-dataユーザーへの読み取り専用アクセスを有効にすることです。そして、快適に感じたいので、Linuxグループ/ユーザー権限がどのようにできたのかわかりません。私自身をテストします。 。
dyndnsなどのサービスを設定するとき、Webサーバー自体はインターネット経由でアクセスできるため、www-dataユーザーをグレイホールグループに配置して、攻撃者がすべての画像または同様のものを削除できるようにしたくありません。
このフォルダへの読み取り専用シンボリックリンクを作成し、wwwユーザーにこのフォルダからファイルを読み取る権限を付与する方法はありますか?
/var/www/html/gallery/images
私は以下を使用して何とか「良い」共有を得ました。
$ mount --bind /LandingZone/images /var/www/html/gallery/images
$ mount -o remount,ro /var/www/html/gallery/images
しかし、私のWebサーバーは所有権の問題のためにファイルにアクセスできません。
今この問題をどのように処理する必要がありますか? Webサーバーがファイルにアクセスしながら安全であるように、www-dataユーザーをグレイホールグループに配置して、ギャラリーソフトウェアを制御する攻撃者が画像を削除できないようにすることはできますか?または、インストールを使用せずに別の方法で実行する必要がありますか?
私は提案で開いています。
答え1
mysql
ネットワークファイルの最良のセキュリティタイプは、データベースから読み取ることです。可能であれば同じデータベースにインポートし、postgresql
ユーザーが要求するとデータベースからインポートします。
2種類の画像ファイルがあります。
- ファイルはhtmlの一部と見なされます。
### you have to save as file no db
- コンテンツの一部としてファイルが生成されています。
### you have to save-restore into/from db