전용 사용자 대 selinux

전용 사용자 대 selinux

전용(루트가 아닌) 사용자와 SELinux(SE 사용자가 Linux 사용자에 바인딩될 수 있음)로 프로세스를 실행하는 것의 장점과 단점은 무엇입니까?

답변1

짧은 답변: 각 서비스에 대해 전용 selinux 사용자를 사용하면 보안이 향상되고 권한이 분리된다는 이점이 있습니다. 반면에 이는 대부분의 Linux 배포판에 기본적으로 적용되지 않는 침입적인 변경입니다.

이러한 이유로 서비스는 종종 전용 사용자 계정(예: httpd)으로 실행되며 전용 selinux 프로필을 통해 액세스/청취할 수 있는 항목이 추가로 제한되지만 특정 selinux 사용자/역할은 포함되지 않습니다(예: httpd_t시스템 기본 system_u사용자 로 실행) 전담 역할보다는 역할). 이는 일반 사용자의 작업 방식을 너무 침해하지 않고 시스템 보안을 강화하기 위해 수행됩니다.

긴 답변:주요 차이점은 다음과 같습니다.임의 액세스 제어(DAC)그리고강제 액세스 제어(MAC)

첫 번째(DAC)는 사용자가 자신이 소유한 모든 파일의 권한을 변경할 수 있는 전통적인 Unix 권한 시스템입니다. 또한 애플리케이션은 "일반 사용자" 수준에서 부여된 모든 작업(예: 높은 TCP 포트에서 수신 대기)을 수행할 수 있는 권한을 갖습니다. 매우 직관적이고 합리적이지만 DAC 자체는 사용자의 잘못된 구성(예: 실수로 중요한 파일에 대한 액세스 제공) 또는 악성 소프트웨어(예: 원격 제어를 위해 수신 포트를 여는 쉘코드를 실행하는 버퍼 오버런)에 대한 가능성을 열어 둡니다. 대상 호스트).

시스템 관리자만이 수행할 수 있는 작업과 수행할 수 없는 작업에 대한 규칙을 지시하는 MAC을 입력하세요. 예를 들어 시스템 관리자는 selinux를 통해 사용자(파일 소유자!)가 변경할 수 있는 파일 또는 "기타" 비트 세트가 될 수 있는 파일을 제한할 수 있습니다. 비슷한 방식으로 응용 프로그램은 기본 Unix 권한 시스템에 관계없이 제한된 포트 집합 이외의 모든 항목을 수신하지 못하도록 차단할 수 있습니다.

여기에서 특정 시스템이 어떻게 DAC나 MAC에 올인될 수 있는지 쉽게 확인할 수 있습니다. 첫 번째 경우, 사용자는 자신이 할 수 있는 일을 완전히 제어할 수 있으며, 전통적으로 루트로 제한되었던 일을 금지합니다. "일반"(읽기: selinux/apparmor/grsec/무엇이든 없음) Linux 시스템은 DAC 전용 설정의 좋은 예입니다. 다른 극단인 MAC 전용 시스템에서는어느사용자는 민감한 정보와 실제로 상호 작용할 가능성이 전혀 없이 잠재적으로 권한 있는 사용자가 될 수 있습니다(이러한 시스템에서는 특별히 지정된 "진정한" 루트 계정만 MAC 정책 자체를 수정할 수 있습니다).

즉,DAC와 MAC는 사실상 직교합니다. 즉, 전반적인 시스템 보안을 강화하기 위해 둘 다 동시에 사용될 수 있으며 종종 사용됩니다.이것이 selinux 정책의 핵심 이유입니다 targeted. MAC 전용 시스템에서 Linux를 변환하는 것은 너무 침입적이므로(99%의 경우에는 실제로 필요하지 않음) RedHat은 다음과 같은 정책을 제공합니다.가장 민감한 서비스에 더 제한적인 규칙을 선택적으로 적용합니다. 대화형 사용자는 대부분 영향을 받지 않습니다.이것이 기본적으로 사용자가 unconfined_uselinux 사용자에게 할당되고 system_r역할 을 갖게 되는 이유입니다 unconfined_r.

답변2

전용 사용자:

전용 사용자는 특정 목적이나 서비스에만 사용되는 계정입니다. 이러한 유형의 사용자 계정은 일반적으로 특정 서비스나 응용 프로그램 실행과 같은 특정 기능이나 서비스에 대한 보안 환경을 제공하기 위해 생성됩니다.

SELinux:

SELinux(Security-Enhanced Linux)는 MAC(필수 액세스 제어)를 포함하여 액세스 제어 보안 정책을 지원하기 위한 메커니즘을 제공하는 Linux 커널 보안 모듈입니다. 이는 사용자, 프로세스 또는 응용 프로그램으로 인해 발생하는 악의적이거나 우발적인 손상으로부터 시스템과 해당 응용 프로그램을 보호하도록 설계되었습니다. 또한 시스템 리소스 및 응용 프로그램에 대한 액세스를 제한하여 시스템 관리자와 사용자에게 안전한 환경을 제공하기 위한 것입니다.

전용 사용자로 프로세스를 실행하는 이점:

  • 보안 강화:전용 사용자로 프로세스를 실행하면 특정 리소스에 대한 프로세스의 액세스를 제한하고 손상된 프로세스로 인해 발생할 수 있는 잠재적 피해를 제한할 수 있습니다.
  • 향상된 성능:전용 사용자는 루트 사용자가 보안 관련 작업에 소비하는 시간을 줄여 시스템 성능을 향상시키는 데 도움을 줄 수 있습니다.
  • 단순화된 유지 관리:전담 사용자는 각 프로세스에 대해 격리된 컨텍스트를 제공하여 시스템 유지 관리를 단순화할 수 있으므로 문제를 신속하게 식별하고 해결할 수 있습니다.

전용 사용자를 사용한 프로세스 실행의 단점:

  • 복잡성 증가:전용 사용자로 프로세스를 실행하면 사용자의 권한과 권한을 관리해야 하므로 시스템 관리가 더 복잡해질 수 있습니다.
  • 제한된 기능:전용 사용자에게는 권한 있는 시스템 리소스에 대한 액세스와 같이 일부 프로세스에 필요한 기능이 부족할 수 있습니다.

SELinux를 사용한 프로세스 실행의 장점:

  • 보안 강화:SELinux는 프로세스를 격리하고 악성 프로세스로 인한 피해를 제한하는 데 사용할 수 있는 강력한 액세스 제어 메커니즘을 제공합니다.

  • 향상된 성능:SELinux는 보안 관련 작업에 소요되는 시간을 제한하여 시스템 성능을 향상시키는 데 도움을 줄 수 있습니다.

  • 유연성 향상:SELinux를 사용하면 SE 사용자를 Linux 사용자에 바인딩하여 액세스 및 권한을 보다 세밀하게 제어할 수 있습니다.

SELinux를 사용한 프로세스 실행의 단점:

  • 복잡성 증가:SELinux는 복잡하고 구성하기 어려울 수 있으므로 시스템 관리가 더 어려워집니다.
  • 제한된 호환성:SELinux는 모든 애플리케이션과 호환되지 않으므로 특정 상황에서는 유용성이 제한됩니다.

관련 정보