상호 운용성

Mac에서 루트 암호 관리

Chris Stoneff

 

한 눈에 보기:

  • Mac에서의 권한 승격
  • 루트 계정 사용
  • 사용자 항목에 대해 sudo 명령을 사용할 수 있도록 설정

UAC(사용자 계정 컨트롤)가 계속 활성화된 상태에서 OS X를 실행하는 Macintosh 환경은 기본적으로 Windows Vista와 다르지 않습니다. 관리 권한이 상실되고 루트 또는 관리 계정을 사용할 수 없으며 관리 권한이 필요한 작업을 수행하려 하면 권한을 승격하라는 메시지가 표시됩니다. Windows Vista에서는 관리 계정을 관리하고 필요 시 사용하는 방법을 알고 있을 것입니다. 그러나 Mac을 처음 사용하는 경우라면 갈피를 못 잡을 수도 있습니다.

Mac에서 관리 기능을 수행하려면(특히 터미널에서) sudo 명령을 실행할 수 있어야 하는데, 그러려면 인증이 필요합니다. 이것은 간단한 일입니다. Mac이 기본적으로 구성되어 있는 상태에서 자신의 암호를 다시 입력하여 필요한 인증을 제공하면 됩니다.

어찌 보면 너무 쉽다고도 하겠습니다. Windows에서처럼 누군가가 그 암호를 추측하거나 훔치거나 해킹하여 로컬이나 SSH를 통해 해당 시스템에 액세스하게 될 경우 마치 루트를 활성화한 것처럼(루트는 Windows의 관리자에 해당) 그 공격자는 시스템을 완전히 장악하게 됩니다. 설상가상으로 공격자가 "sudo –s"를 사용하여 셸을 시작할 경우 시스템 로그에는 사실상 아무것도 입력되지 않습니다.

그렇다면 필요에 따라 Mac 사용자에게 알맞은 권한을 부여하면서 동시에 보안을 향상시키려면 어떻게 해야 합니까? 방법은 의외로 간단합니다. 루트 계정을 사용하면 됩니다.

기본적으로 일반적인 안전 정책에 따라 OS X은 루트 계정이 비활성화되어 있습니다. 앞서 말한 대로 그런 상태에서 사용자가 승격된 권한을 얻으려면 자신의 자격 증명을 다시 입력해야 한다는 것이 문제입니다. 사용자가 그저 자격 증명을 다시 입력하는 방법으로 루트 수준(관리자) 액세스를 얻을 수 있는 상황을 방지하려면 계정 "루트"에 암호를 부여하여 루트 계정을 활성화해야 합니다. 그러기 위해 디렉터리 유틸리티를 사용하거나 터미널에서는 다음 명령을 실행합니다.

sudo passwd root

그런 다음 프롬프트의 지시대로 새 암호를 입력합니다(그림 1 참조). 반드시 정기적으로 암호를 변경하십시오.

fig1.gif

그림 1 루트 암호 만들기(더 크게 보려면 이미지를 클릭하십시오.)

루트 계정이 활성화되면 사용자는 더 이상 자신의 암호를 다시 입력하는 것으로 루트 수준(관리자) 권한을 얻을 수 없습니다. 따라서 더 세분화된 권한 설정이 가능합니다. 이제는 관리 기능을 수행하려면 별도의 승격된 계정을 호출해야 하기 때문입니다. 이 계정은 일반 사용자 계정과는 별도로 관리하고 보호할 수 있습니다. 계정 암호를 불규칙화하고 필요에 따라 암호를 얻을 수 있도록 위임 및 감사가 이루어지는 인터페이스를 제공하는 타사 솔루션을 사용하면 됩니다.

이 문제는 해결했으므로 sudo 명령을 필요로 하는 사용자가 이 명령을 사용할 수 있게 해야 합니다. OS X에는 세 가지 수준의 사용자가 있습니다. 사용자, 관리자 그리고 루트입니다. 기본적으로 사용자는 sudo 명령을 실행할 수 없으며, 관리자 및 루트 사용자만 가능합니다. 어떤 사용자에게 루트 권한을 주고 싶지 않지만 필요한 경우 sudo 명령을 실행할 수 있게 하려면 OS X 시스템에서 그 사용자에 대해 sudo를 활성화해야 합니다. 이를 위해 /private/etc/sudoers 파일을 편집하여 그 사용자를 포함시키거나 그림 2에서 '%wheel'로 시작하는 예제 행을 주석 해제한 다음 그 사용자를 wheel 그룹에 추가하면 됩니다.

fig2.gif

그림 2 지정된 사용자에 대한 sudo 활성화(더 크게 보려면 이미지를 클릭하십시오.)

이 글의 내용대로 수행하면 정기적으로 또는 암호 복구 후에 임의의 새 암호를 생성하는 자동화된 프로세스를 통해 Mac 시스템의 루트 암호를 관리할 수 있습니다. 따라서 시스템은 회사의 정책뿐 아니라 PCI(Payment Card Industry) Data Security Standard, SOX(Sarbanes-Oxley), HIPAA(Health Insurance Portability and Accountability Act)와 같은 규정도 계속 준수할 수 있습니다. 또한 사용자와 관리자가 그저 암호를 다시 입력하는 방법으로 무분별하게 권한을 승격하는 상황을 방지할 수 있습니다.

Chris Stoneff는 보안 및 시스템 관리 소프트웨어 개발업체인 Lieberman Software에서 제품 관리자로 일하고 있습니다. 그의 이러한 추진력을 뒷받침하는 가장 큰 힘은 어떤 일이 특정한 방향으로 일어나는 방식뿐만 아니라 그 이유에 대해서까지 알아내고자 하는 열정입니다.