ABOUT ME

삶의 기록장

Today
Yesterday
Total
  • [산대특] chroot, chcon, SetUID, SetGID, Sticky bit, SSL
    [산대특]클라우드기반 빅데이터 활용 정보 시스템보안과정/Linux 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 파일 설정도 있는데 이는 특정 웹 서버의 디렉터리 접속을 제한하는 도구이다. 하지만 리소스를 많이 사용하기 때문에 잘 사용하지 않는다.  

연의 취업 도전기.