저는 가정용으로 NAT를 만들었습니다(Ubuntu+Samba+Greyhole+Apache+MySQL+기타 웹 서버 관련 항목). 내가 저장하는 파일의 90%는 잃어버리고 싶지 않은 사진입니다(그래서 Greyhole입니다). 이미지 갤러리가 커짐에 따라 나중에 검색 등을 위해 이미지를 태그별로 정렬할 수 있는 웹 이미지 갤러리를 만드는 것을 생각했습니다. 나는 php/mysql/css/js에 매우 능숙하기 때문에 갤러리를 만드는 것은 실제로 문제가 되지 않았습니다.
내 질문은 보안과 시스템 수준 파일 공유 및 접근성입니다.
웹 애플리케이션(갤러리) 디렉터리는
var/www/html
www-data:www-data 소유입니다.
그리고 이미지가 거기에 있습니다 /LandingZone/images
(음, 이미지 자체가 회색 구멍을 통해 복사되고 이동되었기 때문에 이미지에 대한 심볼릭 링크가 거기에 있습니다).
/LandingZone/images
소유권은 myusername1:greyhole입니다(회색 구멍은 myusername1 및 myusername2 사용자가 있는 그룹입니다. 두 사용자 모두 공유 읽기/쓰기에 대한 액세스 권한이 필요함).
이제 내가 해야 할 일은 /LandingZone/images
이미지를 위험에 빠뜨리지 않고 www-data 사용자에 대한 읽기 전용 액세스를 활성화하는 것입니다. 그리고 편안하게 느끼고 싶기 때문에 Linux 그룹/사용자 권한이 어떻게 생겼는지 모르겠습니다. 내 자신을 테스트합니다. .
dyndns와 같은 서비스를 설정할 때 웹 서버 자체는 인터넷을 통해 액세스할 수 있으므로 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
하지만 내 웹서버는 소유권 문제로 인해 파일에 액세스할 수 없습니다.
이제 이 문제를 어떻게 처리해야 합니까? 웹 서버가 파일에 액세스하면서도 안전할 수 있도록 www-data 사용자를 그레이홀 그룹에 넣어 갤러리 소프트웨어를 제어하는 공격자가 이미지를 삭제할 수 없도록 할 수 있습니까? 아니면 설치를 사용하지 않고 다른 방법으로 수행해야 합니까?
나는 제안에 열려 있습니다.
답변1
mysql
네트워크 파일에 대한 가장 좋은 보안 유형은 데이터베이스에서 읽는 것입니다. 가능하면 또는 같은 데이터베이스로 가져오고, postgresql
사용자가 요청하면 데이터베이스에서 가져옵니다.
두 가지 유형의 이미지 파일이 있습니다.
- 파일은 html의 일부로 간주됩니다.
### you have to save as file no db
- 콘텐츠의 일부로 파일이 생성되고 있습니다.
### you have to save-restore into/from db