메뉴 닫기

apache 웹서버 jail 설정에 대하여

jail설정이란 chroot을 기반으로 /가 아닌 가상의 공간에서 웹서비스를 제공하여 웹서버의 시스템의 접근을

제한하고 보호하는 말그대로 감옥을 만드는 것을 의미하며 이설정을 통하여 웹 쉘상에서 사용할 수 있는

시스템 명령어는 bash외엔 존재하지 않게되므로 침투를 위한 수단자체를 제공하지 않게 된다.

 

이설정만으로는 원천적인 차단에는 다소 제한이 있지만 침투 및 변조를 허용하게 되더라도 제한된 공간만이

오염되기 때문에 복원에도 용이한 장점이 있다. 적용방법에 앞서 테스트에  웹서버의 소스는 /home에

저장되고 아파치는 /usr/local/apache에소스컴파일 되어 있으며 관련 라이브러리는 rpm으로 설치되었다 가정한다.

 

1. /chroot_web이라는 디렉토리를 생성하여 이 디렉토리를 로컬시스템의 /과 동일하게 하위 디렉토리를 생성한다

ex) # mkdir /chroot_web/ 

      # mkdir /chroot_web/etc/ 
      # mkdir /chroot_web/dev/ 
      # mkdir /chroot_web/home/ 
      # mkdir /chroot_web/usr/ 
      # mkdir /chroot_web/usr/lib/ 
      # mkdir /chroot_web/usr/bin/ 
      # mkdir /chroot_web/usr/sbin/ 
      # mkdir /chroot_web/var/ 
      # mkdir /chroot_web/var/spool/ 

 

2. 실제 로컬 시스템의 디렉토리와 바인딩한다

ex) # mount –bind /home/ /chroot_web/home/ 

 

3. 웹서버 구동에 필요한 관련 라이브러리들을 복사한다.

ex) # rsync -av /lib/ /chroot_web/lib/ 
      # rsync -av /usr/lib/ /chroot_web/usr/lib/ 

 

4. 구동할 웹서버를 복사한다.

ex) # rsync -av /usr/local/ /chroot_web/usr/local/ 

 

5.  기본적인 쉘을 복사한다.

ex) # cp -Rp /bin/sh /chroot_web/bin/sh 
      # cp -Rp /bin/bash /chroot_web/bin/bash 

 

6. 시스템의 기본 설정파일들을 복사한다.

ex)  # cp -Rp /etc/passwd /chroot_web/etc/ 
      # cp -Rp /etc/shadow /chroot_web/etc/ 
      # cp -Rp /etc/group /chroot_web/etc/ 
      # cp -Rp /etc/hosts /chroot_web/etc/ 
      # cp -Rp /etc/ld.so.conf /chroot_web/etc/ 
      # cp -Rp /etc/ld.so.conf.d /chroot_web/etc/ 
      # cp -Rp /etc/mail /chroot_web/etc/ 
      # cp -Rp /etc/nsswitch.conf /chroot_web/etc/ 
      # cp -Rp /etc/resolv.conf /chroot_web/etc/ 
      # cp -Rp /etc/aliases /chroot_web/etc/ 
      # cp -Rp /etc/localtime /chroot_web/etc/ 
      # cp -Rp /etc/aliases.db /chroot_web/etc/ 

 

7. 서비스에 필요한 기본 디바이스를 생성한다.

ex) # mknod /chroot_web/dev/zero c 1 3 
      # mknod /chroot_web/dev/null c 1 3 
      # mknod /chroot_web/dev/random c 1 3

 

8. 웹서비스를 구동한다.

시작할때는 # chroot /chroot_web /usr/local/apache/bin/apachectl start 

중지할때는 # chroot /chroot_web /usr/local/apache/bin/apachectl stop

 

 

 [polldaddy rating=”7739789″]

 

 

 

 

답글 남기기

이메일 주소는 공개되지 않습니다. 필수 항목은 *(으)로 표시합니다