공유 호스팅 서버를 설정하는 방법에 대한 튜토리얼을 찾을 수 없습니다.
내가 놓치고 있는 부분은 사이트 관리자가 서로의 디렉터리를 볼 수 없도록 권한을 설정하는 방법입니다.
이전의:
이를 위해 OVH는 SSH 서버를 어떻게 구성합니까?
저는 각 사용자가 SSH 및 SFTP를 사용하여 연결할 수 있지만 가장 중요한 것은 자신의 디렉터리만 볼 수 있도록 하는 다중 사용자 웹 서버를 설정하려고 합니다. OVH는 이 작업을 수행했지만 6시간 동안 검색하고 시도한 후(chroot 감옥 생성) 어떻게 수행했는지 이해할 수 없습니다. 어쩌면 사소한 것일 수도 있지만 나는 그것을 볼 수 없습니다.
OVH 계정에 로그인하면 다음을 수행할 수 있습니다.
pwd
내 홈 디렉토리를 알려주세요 (/homez.52/creak
)/homez.52/creak
실제로 심볼릭 링크/home/creak
cd
모든 일반적인 Linux 디렉터리(/bin
, , , ..) 로 이동할 수 있지만 매번 다음 오류가 발생합니다/usr
./home
ls
ls: cannot open directory .: Permission denied
/homez.52/creak
내 모든 파일을 동시에 탐색할 수 있습니다./home/creak
그들은 이것을 어떻게 하는가? chroot? 전방십자인대?
감사해요
답변1
공유 웹 호스팅 환경에서는 즉시 해결해야 할 몇 가지 문제가 있습니다.
디렉터리 권한 및 파일에만 액세스할 수 있는 경우: 원하는 작업은 "기타" 그룹이 권한을 갖지 않도록 홈 디렉터리 권한을 설정하는 것입니다. 디렉터리에 CD를 넣으려면 eXecute 권한이 필요하지만 해당 권한 자체로는 내용을 읽을 수 없습니다. 따라서 /home은 루트가 소유해야 하며 rwxr-x--x를 가져야 합니다. 따라서 사용자는 시스템에 몇 명의 사용자가 있는지 둘러보고 알 수 없이 "맹목적으로" 홈 폴더로만 이동할 수 있습니다. 다음과 같습니다(명확성을 위해 날짜, 치수 등은 생략됨).
# ls -la /home
drwxr-x--x root root .
drwxr-xr-x root root ..
drwxr-x--- usr1 usr1 usr1
drwxr-x--- usr2 usr2 usr2
...
사용자가 등과 같은 디렉토리의 내용을 읽을 수 없도록 하려면 /bin
"기타" 그룹에 대한 "읽기" 권한 비트를 제거하면 됩니다. 사전에 전체 경로를 알고 있는 한, 포함된 바이너리를 사용하는 능력에는 영향을 미치지 않습니다.
SSH 및 FTP 액세스의 경우 파일 시스템 권한을 올바르게 구성하면 적절한 SSH 또는 FTP 구현이 이미 안전합니다. FTP에는 vsftpd를, SSH에는 OpenSSH를 추천하지만 이것이 유일한 올바른 옵션이라는 의미는 아닙니다. 이러한 서비스에 대한 구성 옵션을 조정해야 합니다(특히 SSH를 통한 루트 로그인을 허용하지 않고 sudo 기능이 있는 모든 사람의 비밀번호 로그인을 비활성화하는 등).
까다로운 부분은 특히 동적 웹사이트에 대해 CGI 스크립트를 실행해야 하는 경우 웹 서버를 올바르게 구성하는 것입니다. 요즘에는 모두와 그들의 할머니가 PHP를 원하는데, /home/dumbuser/public_html/php_shell.php
Apache/Nginx를 생성한 동일한 사용자로 실행할 수는 없습니다. 그렇죠?
Apache 웹 서버를 실행하는 경우 가능한 해결책은 다음을 사용하는 것입니다.su 실행 모듈, 그러면 CGI 스크립트가 실행 파일을 소유한 사용자로 실행됩니다(setuid 비트를 생각해 보세요). HTTP 서버가 실제 파일에 액세스할 수 있도록 하려면 서버가 실행되는 사용자(일반적으로 www-data
)를 시스템의 모든 사용자 그룹에 추가하는 것을 고려하십시오("그룹별"은 사용자 계정별이 아니라 공유 환경을 사용하는 모든 사용자를 나타냅니다). 체계).
이는오직공유 서버를 올바르게 구성하고 강화하기 위해 수행해야 하는 모든 작업에 대해 간략하게 설명합니다. 실행 중인 각 서비스의 구성 파일을 완전히 이해해야 하며 필요에 맞게 수정해야 할 수도 있습니다. 특히 웹 서버의 구성 옵션을 읽고 개발/테스트 환경에서 시험해 보는 데 일주일을 투자할 수도 있습니다.
답변2
r
디렉터리에 대한 권한은 없고 x
권한만 있는 경우 디렉터리를 "검색"할 수는 없지만 이름을 알고 있는 모든 파일에 액세스할 수 있습니다.
이렇게 하면 ls -ld /bin
모드가 drwxr-x--x
보기 "기타" 로 설정되어 /bin
그 안에 있는 프로그램을 사용할 수 있지만(예 /bin/ls
: 스캔의 디렉터리에 액세스(보기))할 수 없는 것을 볼 수 있습니다.
사용자 간, 즉 /home/*
디렉토리 간 권한을 포기 x
하여 교차 액세스를 완전히 금지하는 것도 가능합니다.