(U-56/중) 리눅스 보안 파일 및 디렉토리 관리 UMASK 설정 관리

U-56

안녕하세요 IT몽상가입니다.

리눅스 보안에 두번째 중 분류인 파일 및 디렉토리 관리에 대해서 알아보고 있는데요.

이번에 확인해보고자 하는 항목은 “UMASK 설정 관리” 항목인데요.

파일을 생성하는 과정에서 안전한 파일 생성을 하기 위한 설정이라고 할 수 있는데요.

파일을 생성할때 파일의 권한은 777로 생성되는데요

UMASK를 022로 설정하는 경우 777-022=755로 나오는데요.

사실 파일의 권한은 666으로 666-022=644로 생성되게 됩니다.

이처럼 생성하는 과정에서 기본 값을 지정하는 것이라고 보면 되는데요.

“UMASK 설정 관리”에 대해서 알아보도록 하겠습니다.

– UMASK 설정 관리 내용 및 목적

시스템 UMASK 값이 022 이상인지 점검하는 것인데요.

잘못 설정된 UMASK 값으로 인해 신규 파일에 대한 과도한 권한 부여되는 것을 방지하기 위함인데요.

진단 항목 중 (U-15/상) 리눅스 보안 파일 및 디렉토리 관리 world writable 파일 점검은 일반 파일에 쓰기 권한을 점검하는 것인데요.

이렇게 쓰기 권한을 일반 사용자에게 주는 것이 위험할 수 있는데요

그렇기에 이러한 부분을 예방하기 위해서 파일을 생성 과정에서 쓰기 권한을 기본 값으로 주지 않게 설정하는 것입니다.

– UMASK 설정 관리 보안 위협

잘못된 UMASK 값으로 인해 파일 및 디렉터리 생성시 과도하게 퍼미션이 부여 될 수 있는 것을 방지 하는 것인데요.

기본 값이 777 이기에 누구나 쓰기 권한을 부여 받아 파일을 수정 할 수 있기에 UMASK 값이 필요한데요.

앞서 이야기 했던 것 처럼 666(파일기본값)-022(UMASK)=644 이렇게 쓰기 권한을 부여하지 않게 하는 것으로 다른 진단 항목인 (U-15/상) 리눅스 보안 파일 및 디렉토리 관리 world writable 파일 점검에도 연결된 부분이기에 해당 UMASK 설정은 필요합니다.

– UMASK 설정 관리 방법 및 점검 방법

UMASK는 파일을 생성하는 과정에서 권한을 부여하는 것인데요.

파일의 최대 권한은 666 이고 디렉터리의 최대 권한은 777인데요.

그렇기에 가이드에서 이야기 하는 022를 설정하면, 파일은 644, 디렉터리는 755로 생성되어야 합니다.

그리고 또한 계정 별로 설정할 수 있는데요.

하지만 계정 별로 따로 설정하는 것이 아니라 동일하게 022으로 하거나 022 이상으로 설정하여야 하는데요.

설정 방법 부터 알아보도록 하겠습니다.

  • SOLARIS, LINUX, AIX, HP-UX

* 설정 방법

계정별 설정하는 것은 각 시스템 마다 조금 다른데요.

한번에 설정하는 것은 동일합니다.

vi /etc/profile 입력하여 설정 값을 넣으면 되는데요.

요즘 시스템에서는 해당 파일에 if문으로 구성되어 있는 경우가 있습니다.

하단에 테스트에서 확인하시면 되는데요.

if문으로 구성되어 있는 경우에는 둘다 0022로 입력하면 되는데요.

요기서 0022 이상 입력하면 됩니다.

하지만 이렇게 해도 설정되지 않은 경우가 있는데요.

이때는 vi /etc/bashrc 에서 설정하면 됩니다.

두개 파일 모두 존재하는 경우 /etc/bashrc가 우선되기에 해당 파일에 설정하여야 합니다.

* 점검 방법

점검 방법은 어렵지 않은데요.

일단 계정에서 확인하는 방법은 umask라고 입력하면 설정값을 확인 할 수 있습니다.

하지만 계정 별로 확인하기 어렵다면 설정 파일을 확인해보면 조금 더 확실한데요.

cat /etc/profile와 cat /etc/bashrc 해당 파일을 확인하면 되는데요.

앞서 이야기 드린것처럼 /etc/bashrc 파일이 우선적용 되기에 해당 파일만 확인해도 됩니다.

설정 값은 0022 이상으로 설정되어 있으면 됩니다.

– UMASK 설정 관리 방법 및 점검 테스트

실제 서버에서 확인해 보겠는데요.

우선 테스트 환경은 제가 작성하였던  VMware 다운로드 및 설치 방법(무료 설치)와 CentOS Linux Containers 설치하기!를 참조하시면 됩니다.

테스트 환경은 CentOS 7 버전에서 진행 됩니다.

fe999981 7e37 43bf 9541 d1307a1be68e

제가 일단 설정을 변경해 놓은것인데요.

기본값은 일반 계정은 0002, root는 0022로 되어 있습니다.

그러면 설정 파일을 확인해 보겠는데요.

image 42

해당 명령어를 입력 합니다.

image 43

기본값은 002, 022 이렇게 되어 있었는데 제가 테스트를 위하여 변경해 놓았는데요.

앞서 umask 값은 0022, 0022 였는데 설정 파일은 현재 000, 000으로 되어 있습니다.

그렇기에 현재 제가 테스트 하고 있는 버전은 가이드대로 설정하는 경우 변경되지 않은데요.

그래서 cat /etc/bashrc 해당 파일에서 수정 합니다.

image 44

이렇게 명령어를 이용하여 bashrc 파일을 확인합니다.

image 45

해당 설정 값이 현재 일반 계정과 root 계정의 umask가 적용되어 있는 것이 확인 되는데요.

이처럼 가이드에서 이야기하는 파일이 아닌 /etc/bashrc 파일에서 설정 하여야 합니다.

– 마무리

“UMASK 설정 관리”에 대해서 알아봤는데요.

파일이 생성되는 과정에서 기본 값으로 파일 권한에 쓰기 권한을 빼는 설정이라고 할 수 있는데요.

가이드에서 /etc/profile에서 설정하는 경우 centos7에서는 적용되지 않는데요.

다른 서버를 테스트 해보지 못해서 모르겠지만 최근 서버들은 /etc/bashrc에서 설정하는게 맞을거 같네요.

점검하거나 설정하는 경우 /etc/bashrc 해당 파일이 있다면 해당 파일도 적용 및 점검이 필요할 거 같습니다.

00.IT몽상가가로 3

Leave a Comment