discourse-setup에 SELinux 시스템용 컨텍스트를 추가할 수 있을까요? RHEL 사용자(CentOS, Fedora 등)의 보안을 크게 향상시킬 것입니다.
여기서 주목을 받는 가장 좋은 방법은 개념 증명(Proof of Concept) PR을 만드는 것입니다.
소스 저장소 루트에서 discourse-setup을 찾을 수 없습니다. sh 스크립트가 아닌가요?
수정: 찾았습니다. discourse/discourse 대신 discourse/discourse-docker를 봐야 했었네요.
SELinux가 제공하는 강화된 보안과 그로 인해 수반되는 것들을 많은 분들이 필요로 한다는 점을 이해합니다.
컨테이너화 아키텍처(Docker와 같은)의 주요 목적 중 하나이자 강력한 장점은 컨테이너 관리 시스템(이 Discourse의 경우 Docker)이 정상적으로 작동하는 한, 컨테이너화된 애플리케이션이 어떤 기반 아키텍처에서도 실행될 수 있다는 것입니다.
제 개인적인 생각은, 애플리케이션 개발 팀이 요청되는 모든 (비표준) OS 배포판의 Docker 설치 환경을 지원하는 미로 같은 길로 들어서는 것은 컨테이너화 아키텍처 실행의 주요 목적 중 하나를 무색하게 만든다는 것입니다.
제 의견으로는, 시스템 관리자가 Docker 설치 환경이 표준 방식으로 작동하도록 보장하는 것이 더 유지보수하기 쉽습니다. 그리고 그들의 Docker 설정이 "Discourse 표준"과 일치하지 않는다면, 주류 표준 Docker 구성에 맞추기 위해 바이너리, 파일 및 디렉토리에 심볼릭 링크를 추가해야 합니다.
OS 배포판은 언제든지 변경될 수 있으며, 설치된 애플리케이션의 구성도 포함됩니다. 만약 애플리케이션 팀(예를 들어 Discourse)이 다양한 Docker 구성에 적응하기 위해 설정 파일을 확장하기 시작한다면, 각 OS 배포판 릴리스마다 해당 배포판의 변경 사항을 추적해야 할 것입니다.
우리의 경우, SELinux에서 Discourse를 실행하기로 결정한다면(참고로 우리는 Ubuntu를 사용 중입니다), Discourse가 지원하는 표준 배포판에 설치 및 구성되었듯이 SELinux가 필요한 Docker 파일과 일치하도록 필요한 심볼릭 링크를 생성하는 스크립트를 작성하는 것으로 시작할 가능성이 높습니다.
저를 위해 몇몇 VPS 제공업체를 간단히 확인해 보았고, 저렴한 VPS에서 SELinux 배포판 환경을 설정할 수 있다면 이 작업(스크립트 작성)을 해볼 수도 있겠다고 생각했습니다. 불행히도 제가 사용하는 VPS 제공업체(Linode와 Digital Ocean)는 SELinux를 제공하지 않아 이 아이디어를 포기했습니다.
저를 위해 SELinux를 빠르게 설정할 수 있는 “저렴하고 신뢰할 수 있는 VPS” 제공업체를 아시나요?
Discourse가 Ubuntu를 권장하고 있으므로, SELinux에 시간을 쓰기 전에 AppArmor 지원을 주장하는 것이 맞지 않나요?
고맙습니다. 이제 기억났네요. 지적해 주셔서 감사합니다.
Security-Enhanced Linux(SELinux)은 Linux 커널의 보안 모듈로, 강제 접근 제어(MAC)를 포함한 접근 제어 보안 정책을 지원하는 메커니즘을 제공합니다.
SELinux은 설치된 소프트웨어가 취할 수 있는 동작을 제한하는 문제에 대한 여러 가능한 접근 방식 중 하나를 대표합니다. 또 다른 인기 있는 대안은 AppArmor이며, SUSE Linux Enterprise Server(SLES), openSUSE, Debian 기반 플랫폼에서 사용할 수 있습니다. AppArmor는 현재 폐지된 Immunix Linux 플랫폼의 구성 요소로 개발되었습니다. AppArmor와 SELinux는 근본적으로 다르기 때문에 소프트웨어 제어를 위한 별개의 대안을 형성합니다. SELinux가 더 표현력 있는 정책 선택 집합에 대한 액세스를 제공하기 위해 특정 개념을 재발명하는 반면, AppArmor는 DAC에 사용되는 동일한 관리 세맨틱을 강제 접근 제어 수준까지 확장하여 단순함을 목표로 설계되었습니다.
솔직히 SELinux가 배포판이 아니라 모듈이라는 사실을 잊고 있었습니다. 제 실수였습니다.
@GalacticLion7 님, 이 수준의 접근 제어가 필요하시다면 Ubuntu에서 SELinux를 고려해 보셨나요?
예를 들어 다음을 참조하세요:
https://www.linode.com/docs/quick-answers/linux/how-to-install-selinux-on-ubuntu-18-04/
@GalacticLion7 님, 선택할 수 있는 옵션이 매우 많으신 것 같습니다.
Discourse가 Ubuntu를 “공식적으로” 지원하므로, Ubuntu와 함께 설계되거나 작동하는 옵션을 선택하는 것이 좋은 아이디어라고 생각하시지 않나요?
@neounix 하지만 말했듯이 어떤 배포판인지 중요하지 않습니다. SELinux가 있는 시스템, 즉 내장되어 있거나 수동으로 설치된 경우를 가리키는 것입니다.
그래서 제 제안은 Ubuntu(Discourse에서 공식적으로 지원됨)를 사용하고, SELinux를 설치한 후 개념 증명(PoC)을 해보라는 것입니다. 그리고 잘 작동하면 PR을 제출하고 dev에서 이에 대한 토론을 여는 것을 고려해 보라는 것입니다.
어떻게 생각하시나요?