[산대특]클라우드기반 빅데이터 활용 정보 시스템보안과정/Linux

[산대특] chroot, chcon, SetUID, SetGID, Sticky bit, SSL

어라연히프제 2024. 9. 4. 20:16

0904

 

 

  chroot (directory traversal 을 막는다)
  관리자는 서버 시스템에 서버 서비스를 설정해두고, 클라이언트들이 서버에 연결해서

파일을 업/다운로드 하게 하는데 디렉터리로 들어와서 cd ../ 나 ls ../ 식의

Directory Traverse 공격으로 오픈된 pub 나 html 디렉터리의 상위 디렉터리로

이동하거나 살펴보게 되면 보안상 문제가될 수 있다. 


  chroot

이 명령어는 어느 디렉터리를 가상의 최상위 / 디렉터리로 만들어서

더 이상 상위 디렉터리로 이동하지 못하게 해서 보안을 증진시킨다. 

 

 

  chcon(change context)(selinux와 관계) 과 restorecon
  chcon 명령어는 보안속성 설정과 동일하게 설정되게 해주는 기법이다. 
  보안 속성설정 확인은 ‘ls -lZ|dZ 파일|디렉터리_명’으로 확인할 수 있다.

  이는 서버에서 SELinux 를 enforcing 으로 해둬도 Context가 맞으면 외부에서 서버로 접속되게 해줌.

restorecon 은 이름대로 변경된 보안 context 속성을 원래대로 복구

getsebool -a 해보면 on OR off 로 되어 있다.

on인 경우 SELinux 의 보안설정 레벨과 일치하는 클라이언트만 서비스를 이용할 수 있게 한다. 


SELinux 는 enforcing/permissive/disabled 가 있다. 


서버에서 SELinux 를 enforcing 로 해두고, sebool 에서 서비스를 on

서버 서비스의 Context 보안 레벨과 맞는 클라이언트만 접속


서버에서 SELinux 를 permissive 로 해두고, sebool 에서 서비스를 on

서버 서비스의 Context 보안 레벨과 맞지 아니어도 클라이언트는 접속  

 

=> ls -dZ /var/www/html 했을때
system_u:object_r:httpd_sys_content_t:s0 
로 보이는데 

u user system
r role object
t type httpd_sys_content
s0 DAC(Discretionary Access Control)
s1 MAC(Mandatory Access Control)
이다.
 

 

  SetUID, SetGID, StickyBit
user 에 대해 SetUID

group 에 대해 SetGID

other 에 대해 Sticky bit 


setuid 와 setgid 는 파일에 설정

sticky bit 는 디렉터리에 설정

 

실행 권한(x)이 있을때만 적용

읽기와 쓰기 r, w 권한과는 무관

 

chmod 명령어 뒤에

4xxx(SetUID), 2xxx(SetGID), 그리고 1xxx(Sticky bit)(OR +t)를 붙이면

SetUID(user에 s), SetGID(group에 s), 그리고 Sticky bit(other에 t)가 설정

0xxx를 붙이면 이들 설정이 해제된다. 

 

SSL(Secure Socket Layer)를 활용한 Key
  SSL 로 생성한 키로 ssh, scp, https, sftp 등에 키를 사용하는 암호화된 연결하여 보안에 좋다.

  어느 인증서안에는 CN(Common Name), O(Organixation), OU(Organizational Unit) 등과 

Finger prints 에서 SHA-256 과 같은 암호화 알고리즘, Period of Validity 에서 키의 유효기간 등을 볼 수 있다.

 

  SSL는 인증서는 생성 후 클라이언트들의 웹브라우저에게 배포하여

서버 인터페이스(소켓)로 접속하는 클라이언트들을 인증해주는 모듈이다.

 

서버에 자체적으로 생성한 (사설) 인증서를 두거나 공적 인증기관에서 발행한 인증서를 두고  

클라이언트가 다운받아서 자신의 웹 브라우저에 넣어두고 접속하게 한다.

   
  추가적으로 웹 서버 머신에 사용자가 들어올 때 사용자를 별도로 인증받게 해서 웹 페이지가 있는 서버의 보안을 더욱 증가시켜준다면 .htpasswd를 사용하면 된다. 그리고 .htaccess 파일 설정도 있는데 이는 특정 웹 서버의 디렉터리 접속을 제한하는 도구이다. 하지만 리소스를 많이 사용하기 때문에 잘 사용하지 않는다.