바이너리에 대한 권한을 변경해야 합니까?

바이너리에 대한 권한을 변경해야 합니까?

루트로 실행 CentOS 6.2하고 설치합니다 nginx. 설치 후 보안을 강화하기 위해 설치 소유자와 그룹을 자체 사용자 및 그룹으로 변경했습니다.

루트로 로그인하여 yum update업데이트를 실행했는데 nginx, 많은 파일 소유자 그룹이 루트로 되돌아가는 것을 발견했습니다.

업데이트를 수행하는 동안 원하는 소유권을 유지할 수 있는 방법이 있습니까? nginx사용자로 로그인하여 업데이트를 수행할 수도 있습니다 (이것이 가능하거나 권장됩니까?)

답변1

당신이 한 일은 끔찍했습니다. 멈추다.

응용 프로그램을 nginx사용자가 소유 nginx하고 해당 사용자로 실행하는 경우 nginx응용 프로그램이 악용될 때 자체 파일을 덮어쓸 수 있습니다. 당신은 이것을 원하지 않습니다.

애플리케이션 바이너리는 거의 항상 에서 소유해야 합니다 root. 서비스는 거의 항상 nobody권한이 없는 다른 유사한 계정으로 실행되어야 합니다.

마찬가지로 웹 서버를 실행하는 동일한 사용자가 웹 콘텐츠를 소유하는 것을 원하지 않을 것입니다. 그렇게 하면 공격자가 귀하의 콘텐츠를 변경할 수 있습니다(즉, 사이트를 손상시킬 수 있습니다).

가능한 한 많은 권한 분리를 사용하고 가능한 한 적은 권한을 사용하려고 합니다.

  • 애플리케이션 소유자 root(따라서 root수정만 허용됨)
  • 권한이 없는 사용자가 수행하는 서비스(따라서 시스템에 거의 또는 전혀 액세스할 수 없음)
  • 가능하다면 서비스 사용자는 서비스 콘텐츠를 소유해서는 안 됩니다.

답변2

nginx는 사용자가 지정한 파일에 쓸 수 있을 필요가 없습니다. 실제로 그렇게 하는 능력은 보안상 위험합니다. nginx를 손상시키는 공격자는 웹 디렉터리나 구성 파일에 원하는 모든 것을 쓸 수 있습니다. 그렇기 때문에 처음에는 루트가 소유합니다.

따라서 서버를 더 안전하게 만드는 것이 아니라 덜 안전하게 만드는 것처럼 보입니다.

웹 디렉터리의 경우 실제로 기본 디렉터리를 이동할 필요가 없습니다. 대신, 새로운 nginx server구성 블록을 생성하고 웹 사이트의 파일을 사용자의 홈 디렉터리나 /srv.

관련 정보