보안 강화 리눅스

리눅스 커널 보안 모듈의 하나

보안 강화 리눅스(Security-Enhanced Linux, 간단히 SELinux)는 미국 국방부 스타일의 강제 접근 제어(MAC)를 포함한 접근 제어 보안 정책을 지원하는 매커니즘을 제공하는 리눅스 커널 보안 모듈이다. 다양한 리눅스 배포판에 추가할 수 있는 커널 수정 및 사용자 공간 도구들의 모임이다. 보안 강화 리눅스는 보안 결정 진행을 보안 정책과는 별개로 함과 동시에 보안 정책의 영향을 받는 소프트웨어의 양을 간소화하는 것을 시도하는 구조를 이룬다.[2][3] 보안 강화 리눅스의 기반이 되는 주요 개념들은 미국 국가안보국의 일부 초기 프로젝트들로 거슬러 올라간다.

보안 강화 리눅스
원저자레드햇, 미국 국가안보국
발표일1998년 1월 1일(26년 전)(1998-01-01)
안정화 버전
3.3 / 2021년 10월 22일(2년 전)(2021-10-22)[1]
저장소
프로그래밍 언어C
운영 체제리눅스
종류보안, 리눅스 보안 모듈 (LSM)
라이선스GNU GPL
상태개발 중
웹사이트selinuxproject.org/page/Main_Page

이 보안 모듈은 2003년 8월 8일 버전 2.6을 기점으로 주류 리눅스 커널에 통합되어 있다.

사용법 편집

SELinux는 매우 정밀한 상세 설정을 포함하여 어떠한 활동을 시스템이 개별 사용자, 프로세스, 데몬에 허용할 것인지를 잠재적으로 제어할 수 있다. 일반적으로 사용자 프로세스는 주로 SELinux에 제한되지 않는 영역에서 실행되지만 고전적인 리눅스 접근 권한에 제한을 받는다.

명령 줄 유틸리티는 다음을 포함한다: chcon,[4] restorecon,[5] restorecond,[6] runcon,[7] secon,[8] fixfiles,[9] setfiles,[10] load policy,[11] booleans,[12] getsebool,[13] setsebool,[14] togglesebool[15] setenforce, load policy, setfiles,[16] semodule, postfix-nochroot, check-selinux-installation, semodule package, checkmodule, selinux-config-enforcing,[17] selinuxenabled,[18] selinux-policy-upgrade,[19] security set boolean.[20]

사용 예 편집

SELinux를 강제 모드로 설정하는 방법:

$ sudo setenforce 1

SELinux 상태를 확인하는 방법:

$ getenforce

기타 시스템 편집

여러 프로세스를 분리하는 일은 가상화와 같은 매커니즘을 통해 구현할 수 있는데, 예를 들어 OLPC의 경우 경량 V서버의 개별 응용 프로그램들을 샌드박스화한 최초의 구현 사례이다.[21]

보안 강화 안드로이드 편집

미국 국가 안보국은 보안 강화 안드로이드에 SELinux의 개념들 가운데 일부를 채택하였다.[22]

참조 편집

  1. “SELinux userspace release 20211022 / 3.3”. SELinux Project. 2022년 4월 4일. 2022년 4월 4일에 확인함. 
  2. “SELinux Frequently Asked Questions (FAQ) - NSA/CSS”. National Security Agency. 2013년 2월 6일에 확인함. 
  3. http://www.nsa.gov/research/_files/selinux/papers/slinux.pdf
  4. “chcon”. Linuxcommand.org. 2004년 10월 24일에 원본 문서에서 보존된 문서. 2013년 2월 6일에 확인함. 
  5. “restorecon(8) - Linux man page”. Linux.die.net. 2013년 2월 6일에 확인함. 
  6. “restorecond(8) - Linux man page”. Linux.die.net. 2013년 2월 6일에 확인함. 
  7. “runcon(1) - Linux man page”. Linux.die.net. 2013년 2월 6일에 확인함. 
  8. “secon(1) - Linux man page”. Linux.die.net. 2013년 2월 6일에 확인함. 
  9. “fixfiles(8): fix file SELinux security contexts - Linux man page”. Linux.die.net. 2013년 2월 6일에 확인함. 
  10. “setfiles(8): set file SELinux security contexts - Linux man page”. Linux.die.net. 2013년 2월 6일에 확인함. 
  11. “load_policy(8) - Linux man page”. Linux.die.net. 2013년 2월 6일에 확인함. 
  12. “booleans(8) - Linux man page”. Linux.die.net. 2013년 2월 6일에 확인함. 
  13. “getsebool(8): SELinux boolean value - Linux man page”. Linux.die.net. 2013년 2월 6일에 확인함. 
  14. “setsebool(8): set SELinux boolean value - Linux man page”. Linux.die.net. 2013년 2월 6일에 확인함. 
  15. “togglesebool(8) - Linux man page”. Linux.die.net. 2013년 2월 6일에 확인함. 
  16. “setfiles(8): set file SELinux security contexts - Linux man page”. Linux.die.net. 2013년 2월 6일에 확인함. 
  17. “Ubuntu Manpage: selinux-config-enforcing - change /etc/selinux/config to set enforcing”. Canonical Ltd. 2012년 12월 20일에 원본 문서에서 보존된 문서. 2013년 2월 6일에 확인함. 
  18. “Ubuntu Manpage: selinuxenabled - tool to be used within shell scripts to determine if”. Canonical Ltd. 2013년 2월 9일에 원본 문서에서 보존된 문서. 2013년 2월 6일에 확인함. 
  19. “Ubuntu Manpage: selinux-policy-upgrade - upgrade the modules in the SE Linux policy”. Canonical Ltd. 2012년 4월 4일에 원본 문서에서 보존된 문서. 2013년 2월 6일에 확인함. 
  20. “security_set_boolean(3) - Linux man page”. Linux.die.net. 2013년 2월 6일에 확인함. 
  21. OLPC/Sugar Rainbow
  22. “SE Android”. 2014년 3월 7일에 원본 문서에서 보존된 문서. 2013년 11월 7일에 확인함. 

외부 링크 편집