신화 또는 현실 : SELinux는 루트 사용자를 제한 할 수 있습니까?


20

루트 사용자의 암호도 제공되는 온라인 Linux 서버가 있는지 어딘가에서 읽거나 들었습니다 ( LinuxCBT의 SELinux 과정에 있지만 확실하지는 않습니다). Linux 서버는 SELinux 규칙을 사용하여 강화되어 모든 사용자가 루트 사용자로 로그인 할 수 있지만 OS에 아무런 해를 끼치 지 않습니다.

나에게는 신화처럼 보이지만 나는 확신하고 싶다 : 루트 사용자조차도 특정 악의적 인 활동을 할 수 없도록 Linux 상자 (SELinux로 가능)를 강화 할 수 있습니까? (예 : 시스템 파일 삭제, 로그 파일 지우기, 중요한 서비스 중지 등)

이러한 리눅스 박스는 허니팟 을 구축하기위한 훌륭한 출발점이 될 것이다 .

편집 : 답변 (현재 삭제됨)과 약간의 인터넷 검색을 기반으로 강화 된 Linux 서버를 가리키는 링크가 두 개 이상 있습니다. 불행히도 두 서버가 다운되었습니다. 기록을 위해 여기에 설명을 복사하여 붙여 넣습니다.

1) http://www.coker.com.au/selinux/play.html에서 :

SE Linux 시스템에서 무료 루트 액세스!

root 로 play.coker.com.au에 데비안 플레이 머신 ssh에 액세스하려면 비밀번호는 ...

이러한 머신을 성공적으로 실행하려면 많은 기술이 필요합니다. 당신이 하나를 실행해야하는지 물어봐야한다면 대답은 "아니오"입니다.

이것의 목적은 모든 필요한 보안이 Unix 권한없이 SE Linux에 의해 제공 될 수 있음을 보여주기위한 것입니다 (그러나 실제 서버에도 Unix 권한을 사용하는 것이 좋습니다). 또한 SE 시스템에 로그인하여 어떤 모습인지 확인할 수 있습니다.

SE Linux 재생 시스템에 로그인 할 때 -x 옵션을 사용하여 X11 전달을 비활성화하거나 로그인하기 전에 / etc / ssh / ssh_config 파일에서 ForwardX11 no를 설정 해야합니다. 또한 로그인하기 전에 -a 옵션을 사용하여 ssh 에이전트 전달을 비활성화하거나 / etc / ssh / ssh_config 파일에서 ForwardAgent no 를 설정 하십시오. 이 설정을 올바르게 비활성화하지 않으면 플레이 머신에 로그인하면 SSH 클라이언트를 통해 공격받을 위험이 있습니다.

이에 대해 논의하기위한 IRC 채널이 있으며 irc.freenode.net의 #selinux 입니다 .

빠른 FAQ입니다

2) http://www.osnews.com/comments/3731에서

강화 된 젠투 의 목적은 젠투를 높은 보안 성, 안정성이 높은 프로덕션 서버 환경에서 사용할 수 있도록하는 것입니다. 이 프로젝트는 젠투와 분리 된 독립형 프로젝트가 아닙니다. 강력한 보안과 안정성을 제공하는 솔루션을 젠투에 제공하는 데 중점을 둔 젠투 개발자 팀이 될 것입니다. 이 머신은 Hardened Gentoo의 SELinux 데모 머신입니다 . 기본 용도는 SELinux 통합 및 정책을 테스트하고 감사하는 것입니다.


2
여기에서도 청구 되었습니다 . 이론적으로는 가능하지만 나에게 어려운 것 같습니다 (루트 사용자를 너무 많이 제한하여 유용한 것을 할 수 없다면). 실제로 설정 한 작업을 수행하는 SELinux 규칙을 작성하는 것은 최선의 경우에 어렵습니다.
Gilles 'SO- 악의를 멈춰라'

4
최근 커널을 사용하면 루트가 아닌 사용자는 UID 0이있는 네임 스페이스를 만들 수 있습니다. 최상위 네임 스페이스에서 UID 0이 아니기 때문에 시스템을 손상시킬 수 없습니다. 이러한 기회를 모두 제거해야하는 SELinux 접근 방식과 달리 본질적으로 피해를 입을 기회는 없습니다. 참조 네임 스페이스 지원 : 커널별도의 운영 체제를 설치하지 않고 완전 분리 된 두 개의 계정을?
질 'SO-정지 존재 악마'

실제로 안전한지 그래픽 드라이버에 따라 다릅니다.
Joshua

답변:


17

현실 : 예, SELinux는 루트 사용자를 제한 할 수 있습니다.

SELinux는 현재 Unix 사용자를 실제로 신경 쓰지 않기 때문에 가능합니다. 도메인 필드 를 포함하여 컨텍스트라는 추가 메타 데이터 만 있고 SELinux가 요청 된 조치를 승인 할 수 있는지 여부를 결정할 수 있습니다. 아니.

일반적으로 루트 사용자로 생각되는 것은 SELinux에서 unconfined_t또는 sysadm_tSELinux 도메인을 실행하는 루트 Unix 사용자로 SELinux에 매핑됩니다 . 고전적인 전능 한 전능 한 루트 사용자입니다.

그러나 제한된 사용자 user_tSELinux 도메인을 실행하는 루트 쉘 (루트 유닉스 사용자 쉘을 의미 함)을 생성하도록 시스템을 완벽하게 설정할 수 있습니다. SELinux 정책에 따라 이러한 셸은 다른 제한된 사용자 셸과 다르지 않으며 시스템에 대한 특별한 권한이 없으므로 루트 사용자를 효과적으로 제한합니다.

실험적인 관점에서 아파트는 말 그대로 그런 일을하는 것은 쓸모가 없지만, 비슷한 관행은 현실 세계에서 찾아옵니다. 전형적인 예는 데이터베이스 데몬을 중지 / 시작하거나 구성 파일을 편집 할 수 있어야하는 데이터베이스 관리자입니다. SELinux가 없으면 이러한 모든 조치를 수행하려면 사용자가 루트 권한으로 에스컬레이션해야합니다 (일반적으로 단일 권한 인 경우에도) sudo예를 들어, 공구를 통한 명령 행 .

SELinux 덕분에이 사용자에게 진정한 루트 셸을 제공 할 수 있지만 실행 unconfined_t또는 sysadm_t도메인 대신 도메인을 실행 dbadm_t합니다. 이는 제한된 사용자보다 더 많은 권한을 가지지 만 이러한 새로운 권한은 데이터베이스 서버를 관리하는 데 필요한 것으로 제한됩니다.이 사용자는 다른 서비스, 파일을 조작하거나 다른 관리 명령을 실행할 수 없습니다. 그의 일을 엄격히 요구했다.

같은 방법으로 웹 서버와 다른 서비스 관리자가 동일한 시스템에서 다른 루트 셸을 병렬로 실행할 수 있습니다. 모든 사용자는 현재 Unix 사용자가 root 인 것을 볼 수 있지만 SELinux 덕분에 각각의 다른 권한을 다른 사람에게 제한적으로 제한합니다. 그들 자신의 목적을 위해 필요합니다 .


1

네 가능합니다. 그러나별로 유용하지는 않습니다.

이론적으로 루트 사용자가 악의적 인 목적으로 사용될 수있는 바이너리를 실행하지 못하도록하여 SELinux와 같은 것을 통해 정책을 시행 할 수 있습니다. 그러나 이것은 루트 사용자가 처음에 무언가를 할 수 없어도 SELinux 정책을 변경하거나 제거하기 위해 다른 방법을 사용할 수 있다는 문제가 있습니다. 이 문제로 인해 루트 사용자가 작업을 전혀 수행하지 못하게함으로써 매우 유용하지 않게됩니다.


첫째, 나는 당신처럼 비관적이었습니다. 그러나 더 많은 지식을 얻으면 "루트 사용자가 어떤 조치도 수행하지 못하도록"할 필요가없는 것 같습니다. 개념 증명에 대한 링크 및 정보가 포함 된 편집 된 답변을 확인하십시오. 불행히도 더 이상 사용할 수 없습니다. 그러나 구현이 엄격하게 제한적이지 않은 것으로 보입니다.
MS Dousti 2016

-5

루트 사용자조차도 특정 악의적 인 활동을 수행 할 수 없도록 Linux 상자 (SELinux로 가능)를 강화할 수 있습니까?

이것은 저렴하게 들릴 수 있지만 쉽습니다. 사용자 루트의 uid를 0이 아닌 값으로 변경하십시오. / etc / passwd 및 / etc / shadow로 이동하여 기존 uid = 0 항목을 "root"에서 다른 것으로 수정 한 다음 uid가 0이 아니고 사용되지 않는 "root"라는 계정을 추가하십시오.

그것은없이 목적을 달성합니다. 또한 실제로 에스컬레이션 된 권한을 제공하지 않고도 누구나 "루트 액세스"권한을 가질 수 있다고 주장 하는 방법 입니다.


3
예, 그러나 root사용자는 단순히 루트 사용자가 아닙니다. 문제는 실제 수퍼 유저가 그러한 방식으로 제한 될 수 있는지를 묻는 것입니다.
terdon

위험하게 들립니다. 물론 uid 0으로 다른 계정을 만드는 경우는 예외입니다. 그러나 이것은 루트 이름을 바꾸고 "root"라는 이름을 재사용하는 것과 같습니다.
Volker Siegel

질문은 "루트"만을 의미하며, 이는 반드시 수퍼 유저와 동일하지는 않습니다 (예 : uid = 0). 드문 경우이지만 이것은 유용한 구별입니다.
Otheus

2
그럼에도 불구하고, 상황에 따라 OP는 수퍼 유저인지 묻고 있으며, 사용자 이름을 가진 임의의 사용자는 root그러한 방식으로 제한 될 수 없습니다.
terdon

1
승인. 적어도 답변을 수정하고 제안한 사항을 어떻게 달성 할 수 있는지 보여주세요. 길이가 길어 품질이 낮은 것으로 계속 표시됩니다. 그것이 다운 보트를 얻는 이유입니다.
terdon
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.