가장 좋은 방법은 각 응용 프로그램에 대해 별도의 시스템 계정을 만드는 것입니다. 그러면 보안 위반이 발생하면 공격자가 특정 계정 내에 격리되어 더 이상 해를 끼칠 수 없게 됩니다.
홈 디렉토리와 시스템의 사용자 수에 관한 모범 사례가 무엇인지 묻고 싶습니다.
Node.js 애플리케이션이 여러 개 있지만 모두 내 서버가 소유한 하나의 사용자 계정에서 실행됩니다.
각 애플리케이션에 대해 사용자를 생성하고 관련 파일을 홈 디렉터리에 저장해야 합니까, 아니면 모든 Node.js 애플리케이션에 대해 하나의 사용자를 생성해야 합니까? 내가해야합니까아니요홈 디렉터리를 만들고 각 응용 프로그램을 시스템 디렉터리에 넣으시겠습니까?
어떤 조언*이라도 주시면 감사하겠습니다.
답변1
이상적으로는 다음과 같은 경우 서로 다른 애플리케이션을 분리해야 합니다.
- 예를 들어 서비스를 실행하는 사용자
http
- 데이터가 필요한 경우 특정 홈 디렉터리를 확보하세요.다른
httpadmin
적절한 파일 시스템 권한을 가진 사용자(예:) 및 사용자httpgroup
에 대한 그룹을 설정하면 애플리케이션이 파일을 읽을 수는 있지만 변경할 수는 없습니다.http
httpadmin
permission user group file
-rw-r--r-- httpadmin httpgroup somefile
가장 중요한 것은 이러한 사용자가 사용하는 리소스(CPU, 메모리, 프로세스, 디스크 공간)도 제한해야 한다는 것입니다. 이는 상당히 복잡해질 수 있으며 컨테이너와 같은 기술이 도움이 될 수 있습니다.
이것들은 모두 기본적으로최소 권한의 원칙