푸른청년 푸르게 살고있나?  
home | 살아가기 | news | 세상보기 | tip&tech | 방명록 |  
   전체
   asp
   php
   jsp
   mssql
   mysql
   informix
   linux
   unix
   win2000
   javascript
   html
   oracle
   java
   etc
    
:: Tip&Tech > etc
[펌] 웹호스팅 제공 요주의 사항
웹호스팅 제공 요주의 사항. 조회수:1548 


DukeEYS



모처럼 이시간에 글을 써보내요 초저녁부터 자다가 이제 일어났는데 잠이 안와서
저번에 쓸려다가 못쓴 글 올려놓고 갑니다.

쓰기전에.

저는 98년부터 자체 서버를 이용하기 때문에 웹호스팅을 이용할일이 없었습니다.
그런데 지난번에 super****.co.kr 에 계정을 가질 일이 있어서 사용해 보게 되었습니다.

서버관리자들에게 어느정도 정보를 제공하는 곳에서 운영하는 웹호스팅도 문제가 심각한것을
보고 다른 곳은 어떨지 궁금하기도 합니다. 이 내용을 전달했지만 보안에 아무런 문제가 없다는 회신을 받았습니다. ^^;;

돌려서 말씀 드리지않고 제가 ssh 로그인후 한 일련의 내용을 그대로 올려드립니다.
웹호스팅 제공측에서는 유저의 그룹을 하나의 그룹으로 묶은 다음 웹호스팅디렉토리에서는
항상 chmod -R g-wrx 를 해주시길 당부드립니다.


내용에서 사용자의 아이디는 *** 처리하였습니다.
제꺼만 고대로 올립니다 ^^;;


-bash-2.05b$ id
uid=516(dukeeys) gid=516(dukeeys) groups=516(dukeeys)

위의 내용은 보통의 설정들이 저러하죠 개인아이디와 개인 그룹으로 보통 설정돼죠...
개인적으로 호스팅에서는 아주 안좋은 설정이란 생각합니다....

-bash-2.05b$ ls -al
합계 36
drwx-----x 5 dukeeys dukeeys 4096 2월 29 03:05 .
drwxr-xr-x 38 root root 4096 2월 28 15:08 ..
-rw------- 1 dukeeys dukeeys 2502 2월 22 01:45 .bash_history
-rw-r--r-- 1 dukeeys dukeeys 1280 2월 16 02:33 .cshrc
-rw------- 1 dukeeys dukeeys 2608 2월 22 01:45 .history
-rw------- 1 dukeeys dukeeys 0 1월 30 06:27 .mysql_history
drwx------ 2 dukeeys dukeeys 4096 2월 16 01:42 .ssh
-rw------- 1 dukeeys dukeeys 1162 2월 21 21:32 .viminfo
drwx------ 2 dukeeys dukeeys 4096 2월 17 04:30 .w3m
drwx-----x 3 dukeeys dukeeys 4096 2월 5 05:04 www
-bash-2.05b$ pwd
/home/home2/dukeeys

디렉토리 구조와 저의 포지션을 한번보고


-bash-2.05b$ ls /home/home2
*** *** *** *** dukeeys

한번 떠봅니다 home2 에 대서 ls 가 되는군요 *** 은 아이디들이겠죠? 제 아이디도 보입니다.

-bash-2.05b$ ls /home/home2/***
ls: /home/home2/***: 허가 거부됨

하나를 골라서 ls 먹이니 허가가 거부되네요

-bash-2.05b$ cd /home/home2/***
-bash-2.05b$ cd www
-bash-2.05b$ ls
그럼 cd 는 될라나? 해보니 쏙 들어가 지길래 ls 도 먹여봅니다

bbs index.html info.php mainimg weblog zb41pl4.tar.Z

음 죽 뜨네요 bbs 가 보이길래 제로보드일까 하는데 마침 제로보드 설치 파일이 보입니다.
그럼 어디 cat 해볼까?

-bash-2.05b$ cat bbs/config.php
<?
localhost
***
*********
***
?>
-bash-2.05b$

음... 죽 뜨네요....
디렉토리에서 ls 가 안되도 cat /home/home2/***/bbs/config.php 하면 나오겠죠?
경로는 어떻게 아느냐... 호스팅 게시판에 올라오는 사용자 아이디 보고 대충 뚜드리면
여러개 걸리고 홈보면 거의 제로보드 사용하니 경로하는거야 안어렵겠죠.....
누군가 작정을 하고 덤비면 제로보드나 기타 config 경로야 쉽게 알수있겠지요....

*더 고급 사용자라면 cat /etc/passwd 를 하겠지요?
당근 그래서 chmod 641 /etc/passwd 를 해야합니다..... 실행만 줘도 아무런 지장이 없습니다.

여기 까지 보시고도 뭐가 문제 인지를 모르신다면 웹호스팅은 무리가 아닐까 합니다.
설마 이걸 보고 보안에 아무런 문제가 없습니다 라고 하실 분은 안계시겠죠?

호스팅용인 경우

퍼미션 설정은 아래와 같아야 한다고 생각합니다. 제가 사용하는 것중에
chroot jail 등을 이용한것과 일반적인 퍼미션만으로 하는것이 있습니다만
손쉽게 일반적인 퍼미션 설정만으로 한 것을 예로 적습니다 ( FreeBSD 기준 )

# chown root:www /
# chmod 751 /
# chmod 641 /etc/passwd
# chown www:nogroup /home /home1 /home2...n
# chmod 701 /home /home1 /home2...n
# chgrp -R private /home/* /home1/* /home2/*...n/*
# chmod -R g-wrx /home /home1 /home2...n

기본 디렉토리와 설정파일도 계정 생성시 추가한다면..

프비인경우
# chmod -R g-wrx /usr/share/skel/*

GNU 의 리눅스 커널인경우
( 리눅스는 운영체제가 아닙니다. ^^;; 또한 GNU는 유닉스가 아니라는 뜻입니다 )

# chmod -R g-wrx /etc/skel/*

요정도만 되도 위와 같은 일은 생기지 않겠죠....

* www 는 아파치 실행자 *
* 최상의 디렉토리 그룹에 nogroup 을 주지 않고 private 를 주면 사용자가 못들어 가죠?
* 그래서 최상위는 nogroup을 주고 그 하위(사용자디렉토리) 디렉토리 그룹은 private 로 합니다.
* 디렉토리 인덱싱 서비스를 하는 경우 반드시 www 는 최상위 디렉토에 대해서 ls 가 가능해야합니다.
* 그래서 / 의 그룹에 www 를 추가하고 5 를 주고 각 호스팅 파티션의 최상위 디렉의 오너로
추가줍니다.

그리고 나서 사용자 추가시 항상 g 아이디는 private 로 해야겠지요
그리고 ftp 설정에서 업로드되는 파일 umask를 디렉토리는 072 파일은 173 으로 해놓고
쉘설정 파일에는 umask 072 로 해놓고 그리고 마지막으로 크론탭에서는

0 0,6,12,18 * * * chmod -R g-wrx /home/* /home1/* /home2/*...n/*
0 0,6,12,18 * * * chown -R user1:private ~user1

위의 내용을 적당히 응용해서 사용자추가 스크립트에 추가하면 되겠지요.....
크론에 적당하게 등록하면 적어도 사용자가 뭐가 안지워진다거나 권한이 없다거나
그런말은 하지않겠지요.....

* 만약 quota 를 사용하는 경우에는 home/*/public_html 과 같이 해서
/home/quota.user home/.snap 파일의 권한은 건드리지 않으면 되겠죠......



날짜: 2004-03-02 13:11:05, 조회수: 4658

다음글 SOA, SOAP, UDDI, WSDL은 무엇인가?
이전글 [웹일반] 스트레스 테스트하기

꼬리말
글쓴이 비밀번호 #스팸글방지(주인장 닉네임을 쓰시오)

  
since by 2003.03.23 / 3th 2005.07.26 / 4th 2009.04.22 made by bluesoul