강좌
클라우드/리눅스에 관한 강좌입니다.
해킹&보안 분류

리눅스마스터1급 : 시스템 보안을 위한 파일 및 파일 시스템 보안

작성자 정보

  • 관리자 작성
  • 작성일

컨텐츠 정보

본문

리눅스마스터1: 시스템 보안을 위한 파일 및 파일 시스템 보안

 

 





실제로 대부분의 경우 인트라넷 혹은 인터넷을 위한 서버로 작동하는 컴퓨터를 설정할 것이다.

 

 

 

이러한 경우 간단한 사전 작업만으로 시스템의 안전성을 보다 향상 시킬 수 있다.

 

 

 

파일 시스템의 설정에는 다음과 같은 일반적인 원칙을 준수 하는 것이 좋다.

 

 

 

 

 

SetUID/SetGID를 사용자의 홈 디렉토리에 사용하지 말아야 한다.

 

 

 

시스템 운영시 이러한 형태로 운영해야할 이유도 없으며 필요에 따라서는 해당 디바이스 마운트시 nosuid 옵션을 이용하여 원천적으로 봉쇄할 필요가 있다.

 

 

 

 

 

NFS를 제공하는 경우 /etc/exportfs에서 외부에서 접속할 수 있는 호스트들을 제한하며 옵션을 이용하여 권한을 최소한으로 유지한다.

 

 

 

그리고 가능하면 읽기 전용으로 설정하며 와일드 카드는 사용하지 않도록 한다.

 

 

 

 

 

사용자의 파일생성 umask를 가능한 제한된 값으로 조정한다.

 

 

 

 

 

모든사용자의 접속 기록을 가지고 있는 /var/log/wtmp, utmp 로그이다.

 

 

 

여기는 누가, 언제, 어디서 접속하였는지에 대한 정보가 담겨 있다.

 

 

 

따라서 시스템 작동에 문제가 생기지 않도록 644의 권한을 부여 하여야 한다.

 

 

 

 

 

보호되어야 할 파일을 위해서 특수 비트인 변경 불가 비트(Immutable Bit)를 사용할 수 있다.

 

 

 

이러한 방법은 /etc/profile /etc/rc.d/rc.local 파일 등의 변조 방지를 위해 사용될 수 있다.

 

 

 

 

 

SetUID/SetGID는 잠재적인 보안 위험 요소를 안고 있기 때문에 철저히 감시 되어야 한다.

 

 

 

이러한 설정이 되어있는 응용프로그램의 경우 사용자에게 해당 응용프로그램이 구동될 동안 아주 특별한 권한을 부여하기 때문에 특별히 사용되는 몇 가지를 제외하고 추가적으로 사용하는 것은 자제해야 한다.

 

 

 

외부 침입자들의 경우 SetUID를 이용한 백도어 설치나 권한 침탈등이 이루진다.

 

 

 

SetUID/SetGID는 다음과 같은 명령으로 찾을 수 있다.

 

 

 

[root@RockyLinux01 ~]# find / -type f \( -perm -04000 -o -perm -02000 \)

 

 

 

 

참고로, perm 옵션에 대해 04000과 같이 -(하이픈)을 붙이지 않는 경우에는 동일한 퍼미션을 가진 파일만 검색하고, -를 붙이면 해당 퍼미션을 포함하는 파일을 검색하며, /(역슬래시)를 붙이면 소유자, 그룹, 기타 일반 사용자 각각에 대해 퍼미션이 하나라도 일치하는 파일들을 찾는다.

 

 

 

 

 

누구나 쓸 수 있는 파일이나 디렉토리가 있다.

 

 

 

이 부분이 시스템 운영에 반드시 필요한 부분을 제외하고는 추가적으로 생성하게 된다면 보안상에 상당한 문제가 발생 하게 된다.

 

 

 

이러한 파일이나 디렉토리를 찾고자 한다면 다음과 같은 명령어로 찾을 수 있다.

 

 

 

 

 

 

 

 

 

[root@sulinux]# find / -perm -1000 -ls

[root@sulinux]# find / -perm -0007 -ls

 

 

 

 

 

 

 

소유자가 없는 파일이 존재한다면 이는 침해의 흔적일 수 있다.

 

 

 

다음과 같은 파일을 찾기 위해서는 아래와 같은 명령어로 확인 가능하다.

 

 

 

 

 

 

 

 

 

[root@sulinux]# find / -nouser o nogroup print

 

 

 

 

 

 

 

.rhosts 관련 파일은 없는 지 확인 해야한다.

 

 

 

물론 정상적으로 사용 되는 경우도 있겠지만 첫 글짜가 r로 시작하는 명령은 보안에 취약한 부분이 많다.

 

 

 

.rhosts의 경우도 상당히 보안에 취약한 프로그램 중에 하나이며 가급적 이러한 것은 사용하지 않는 것이 좋다.

 

 

 

혹시나 관련 파일이 존재하는지 확인해야 하며 있다면 사용되지 않도록 조치하여야 한다.

 

 

 

 

 

 

 

 

 

[root@sulinux]# find /home name .rhosts -print

 

 

 

 

 

 

 

파일의 권한을 변경하기 전에 해당 파일의 권한의 변경이 반드시 필요한지 한번 더 생각해야한다.

 

 

 

많은 경우가 어플리케이션 설치 시 불필요하게 많은 권한을 요구하기도 한다.

 

 

 

 

 

데이터 공유 영역의 경우 별도의 파티션을 생성하여 관리자외에는 읽기의 권한만 부여하고 만약 공유 영역에 데이터를 기록해야 할 일이 있다면 관리자가 진행해야 한다.

 

 

 

사용자의 경우 홈디렉토리를 제외한 곳에서 쓰기권한을 갖지 않도록 한다.

 

 

 

 

 

위와 같은 기본적인 몇 가지 원칙만 지킨다면 시스템의 안전성이 상당히 높아진다.

 

 

 

생각보다 상당히 많은 노력이 필요한 일이지만 사소한 것부터 보안에 허점이 생기지 않도록 노력해야 한다.

 

 

 

 

관련자료

댓글 0
등록된 댓글이 없습니다.

공지사항


뉴스광장


  • 현재 회원수 :  60,043 명
  • 현재 강좌수 :  35,853 개
  • 현재 접속자 :  74 명