리눅스 분류
apache 웹서버 jail project
작성자 정보
- 웹관리자 작성
- 작성일
컨텐츠 정보
- 11,799 조회
- 0 추천
- 목록
본문
웹서버 jail project
0.개요
jail project 란 말그대로 감옥을 만드는 것을 의미하며
웹서비스에 대해서 시스템에 대한 접근을 힘들게 만듬으로 해서
보다 안전한 웹서비스를 가능하도록 하는 것이다
여기서 가장 필요한 부분은 chroot 로 최상의 /의 위치를 변경하여
가상의 공간에서 웹서비스르 운영함으로
웹으로 침투하는 해킹에 대해 제한을 가함으로 웹해킹의 피해를
최소화하는데 그 목적이 있다
1. chroot란
실행 명령어나 사용되는 쉘에 대해 실제 / 디렉토리가 아닌 특정위치를 /로
지정하여 실행되도록 하는 것이다
예를 들어 bind의 경우 chroot 를 적용하는 패키지를 설치하게되면
named 가 실행시 /var/named/chroot 가 named에서는 / 로 인식하게 된다
위와 같이 / 의 위치를 변경하여 시스템 접근에 데한을 두는 것이다.
2. 적용시 고려 사항
먼저 몇가지 가정을 두자
1) /home 디렉토리에 사용자 웹프로그램소스가 저장된다
2) apache의 경우 컴파일한것이며 /usr/local/apache 에 설치되어있다
3) 관련 라이브러리는 rpm 으로 설치되어 있다
4) 웹소스에서 특별한 외부 명령어를 호출하지 않는다
적용시 고려사항
/를 웹서버에서는 /chroot_web/ 으로 인식되도록 한다
3. 적용 방법
생성되는 디렉토리처럼 기본적으로 사용할 디렉토리를 생성한다
# mkdir /chroot_web/
# mkdir /chroot_web/etc/
# mkdir /chroot_web/dev/
# mkdir /chroot_web/home/
# mkdir /chroot_web/tmp/ && chmod 1777 /chroot_web/tmp/
# 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/
# mkdir /chroot_web/var/spool/mqueue/
# mkdir /chroot_web/var/spool/clientmqueue/
실재 시스템과 공유 되어야 디렉토리를 바인딩 한다
# mount --bind /home/ /chroot_web/home/
# mount --bind /var/spool/mqueue/ /chroot_web/var/spool/mqueue/
# mount --bind /var/spool/clientmqueue/ /chroot_web/var/spool/clientmqueue/
서비스시 필요한 라이브러리를 복사한다
# rsync -av /lib/ /chroot_web/lib/
# rsync -av /usr/lib/ /chroot_web/usr/lib/
구동될 웹서버를 카피한다
# rsync -av /usr/local/ /chroot_web/usr/local/
기본적인 쉘을 복사한다
# cp -Rp /bin/sh /chroot_web/bin/sh
# cp -Rp /bin/bash /chroot_web/bin/bash
시스템의 가장 기본적인 설정파일 복사
# 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/
기본적인 디비이스 생성
# mknod /chroot_web/dev/zero c 1 3
# mknod /chroot_web/dev/null c 1 3
# mknod /chroot_web/dev/random c 1 3
웹에서 메일 발송이 필요하다면 sendmail을 카피한다
# cp -Rp /usr/sbn/sendmail.sendmail /chroot_web/usr/sbin/sendmail
4. 웹서비스 구동 방법
apache 데몬을 구동하기
# chroot /chroot_web /usr/local/apache/bin/apachectl start
apache 데몬을 중단하기
# chroot /chroot_web /usr/local/apache/bin/apachectl stop
5. 마무리
위와 같이 웹서비스에 대해 chroot를 적용하게되면
웹서비스상에서 사용할 수 있는 시스템명령어는 bash 외에는 없다
이렇경우 웹쉘이나 명령어로는 외부에서 파일을가져온다는등의 부분의
많이 힘들어지며 침투를 하기위해서는 일차적으로
가용한 명열어가없으며 이차적으로 감옥에 있는것처럼 제한된 공간만이 열려 있는 상태이다
물롱 100% 안전한것은 아니지만 침투및 변조가 발생하더라도 제한된 공안이 오염되기에 복원이 용의하며
보다 안전한 상태에서 운영이 가능하다
0.개요
jail project 란 말그대로 감옥을 만드는 것을 의미하며
웹서비스에 대해서 시스템에 대한 접근을 힘들게 만듬으로 해서
보다 안전한 웹서비스를 가능하도록 하는 것이다
여기서 가장 필요한 부분은 chroot 로 최상의 /의 위치를 변경하여
가상의 공간에서 웹서비스르 운영함으로
웹으로 침투하는 해킹에 대해 제한을 가함으로 웹해킹의 피해를
최소화하는데 그 목적이 있다
1. chroot란
실행 명령어나 사용되는 쉘에 대해 실제 / 디렉토리가 아닌 특정위치를 /로
지정하여 실행되도록 하는 것이다
예를 들어 bind의 경우 chroot 를 적용하는 패키지를 설치하게되면
named 가 실행시 /var/named/chroot 가 named에서는 / 로 인식하게 된다
위와 같이 / 의 위치를 변경하여 시스템 접근에 데한을 두는 것이다.
2. 적용시 고려 사항
먼저 몇가지 가정을 두자
1) /home 디렉토리에 사용자 웹프로그램소스가 저장된다
2) apache의 경우 컴파일한것이며 /usr/local/apache 에 설치되어있다
3) 관련 라이브러리는 rpm 으로 설치되어 있다
4) 웹소스에서 특별한 외부 명령어를 호출하지 않는다
적용시 고려사항
/를 웹서버에서는 /chroot_web/ 으로 인식되도록 한다
3. 적용 방법
생성되는 디렉토리처럼 기본적으로 사용할 디렉토리를 생성한다
# mkdir /chroot_web/
# mkdir /chroot_web/etc/
# mkdir /chroot_web/dev/
# mkdir /chroot_web/home/
# mkdir /chroot_web/tmp/ && chmod 1777 /chroot_web/tmp/
# 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/
# mkdir /chroot_web/var/spool/mqueue/
# mkdir /chroot_web/var/spool/clientmqueue/
실재 시스템과 공유 되어야 디렉토리를 바인딩 한다
# mount --bind /home/ /chroot_web/home/
# mount --bind /var/spool/mqueue/ /chroot_web/var/spool/mqueue/
# mount --bind /var/spool/clientmqueue/ /chroot_web/var/spool/clientmqueue/
서비스시 필요한 라이브러리를 복사한다
# rsync -av /lib/ /chroot_web/lib/
# rsync -av /usr/lib/ /chroot_web/usr/lib/
구동될 웹서버를 카피한다
# rsync -av /usr/local/ /chroot_web/usr/local/
기본적인 쉘을 복사한다
# cp -Rp /bin/sh /chroot_web/bin/sh
# cp -Rp /bin/bash /chroot_web/bin/bash
시스템의 가장 기본적인 설정파일 복사
# 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/
기본적인 디비이스 생성
# mknod /chroot_web/dev/zero c 1 3
# mknod /chroot_web/dev/null c 1 3
# mknod /chroot_web/dev/random c 1 3
웹에서 메일 발송이 필요하다면 sendmail을 카피한다
# cp -Rp /usr/sbn/sendmail.sendmail /chroot_web/usr/sbin/sendmail
4. 웹서비스 구동 방법
apache 데몬을 구동하기
# chroot /chroot_web /usr/local/apache/bin/apachectl start
apache 데몬을 중단하기
# chroot /chroot_web /usr/local/apache/bin/apachectl stop
5. 마무리
위와 같이 웹서비스에 대해 chroot를 적용하게되면
웹서비스상에서 사용할 수 있는 시스템명령어는 bash 외에는 없다
이렇경우 웹쉘이나 명령어로는 외부에서 파일을가져온다는등의 부분의
많이 힘들어지며 침투를 하기위해서는 일차적으로
가용한 명열어가없으며 이차적으로 감옥에 있는것처럼 제한된 공간만이 열려 있는 상태이다
물롱 100% 안전한것은 아니지만 침투및 변조가 발생하더라도 제한된 공안이 오염되기에 복원이 용의하며
보다 안전한 상태에서 운영이 가능하다
"무단배포금지: 클라우드포털(www.linux.co.kr)의 모든 강좌는 저작권에 의해 보호되는 콘텐츠입니다. 무단으로 복제하여 배포하는 행위는 금지되어 있습니다."
관련자료
-
이전
-
다음
댓글 0
등록된 댓글이 없습니다.