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″]