웹마스터 팁

서버를 셋팅하고 계정을 추가하고, SSH 엡속하니
 
이게 웬일, /까지 모두 이동 가능하다,, 물론 수정은 할 수 없으나,
 
cat 을 이용하여 내용까지 확인 가능하다,
 
퍼미션으로 막아보려 했으나,, 경로만 알면 다 소용없는짓,,
 
그러다보니 CHROOT 를 알게 되었는데, 한국에 돌아다니는 CHROOT는
계속해서 /bin/bash 파일이 없다면서,,제대로 적용이 되질 않더군요,,
 
안되는 영어 막 끌어내서,,찾아보고 설치해보니,,드디어 성공했답니다.
 
잡소리가 너무 길었군요,,
 
# /etc/rc.d/init.d/sshd stop
 
# rpm -e --nodeps openssh-server openssh-clients openssh
 Sulinux 에 설치된 ssh 패키지를 모두 삭제 합니다.
 이러한 이유때문에 모든 작업은 원격으로 설정하시면 ㅠ 안됨,
 
# tar jxvf openssh*
# vi openssh-4.5p1-chroot/contrib/redhat/openssh.spec
 
%define no_x11_askpass 0 -> %define no_x11_askpass 1
%define no_gnome_askpass 0 -> %define no_gnome_askpass 1
 위와같이 변경합니다.
# rm -rf openssh-4.5p1-chroot/contrib/aix/
# rm -rf openssh-4.5p1-chroot/contrib/hpux/
# rm -rf openssh-4.5p1-chroot/contrib/caldera/
# rm -rf openssh-4.5p1-chroot/contrib/suse/
# rm -rf openssh-4.5p1-chroot/contrib/cygwin/
# rm -rf openssh-4.5p1-chroot/contrib/solaris/
 
# mv openssh-4.5p1-chroot openssh-4.5p1
# tar czvf openssh-4.5p1.tar.gz openssh-4.5p1/
# rm -rf openssh-4.5p1
# yum -y install openssl-devel
# rpmbuild -tb --clean openssh-4.5p1.tar.gz
 설치 시 Zlib 버전때문에 오류가 뜰경우,,,
 zlib 최신 버전을 설치하시고 rpmbuild 하세요^^.
# rpm -Uvh /usr/src/redhat/RPMS/i386/openssh-4.5p1-1.i386.rpm
# rpm -Uvh /usr/src/redhat/RPMS/i386/openssh-server-.i386.rpm
# rpm -Uvh /usr/src/redhat/RPMS/i386/openssh-clients-386.rpm
# rm -f openssh-4.5p1.tar.gz
# rm -f openssh-4.5p1-chroot-tar.bz2
 
# vi /etc/yum.conf
 
exclude=openssh  를 추가해주세요,
 
# vi /etc/rc.d/init.d/sshd
 
initlog -c "$SSHD $OPTION" && success || failure
->  $SSHD $OPTION && success || failure
 로 수정해주세요,,
# vi /usr/sbin/chroot-useradd
 
#!/bin/bash
#
# Usage: ./chroot-useradd username [shell]
#
# Here specify the apps you want into the enviroment
CMD="bash ls touch mkdir tar gzip cp mv rm pwd chmod cat vi id rsync ssh scp ping ssh-keygen perl"
APPS=`which $CMD`
# Sanity check
if [ "$1" = "" ] ; then
echo " Usage: ./chroot-useradd username [shell]"
exit 1
fi
# Obtain username and HomeDir
CHROOT_USERNAME=$1
if [ "$2" = "" ] ; then
useradd $CHROOT_USERNAME
else
useradd -s $2 $CHROOT_USERNAME
fi
[ $? -ne 0 ] && exit 1
usermod -d /home/$CHROOT_USERNAME/./ $CHROOT_USERNAME
passwd $CHROOT_USERNAME
chown $CHROOT_USERNAME /home/$CHROOT_USERNAME
chgrp $CHROOT_USERNAME /home/$CHROOT_USERNAME
rm -f /home/$CHROOT_USERNAME/.* > /dev/null 2>&1
HOMEDIR=`grep /etc/passwd -e "^$CHROOT_USERNAME" | cut -d':' -f 6`
cd $HOMEDIR
# Create Directories no one will do it for you
mkdir -pv $HOMEDIRetc
mkdir -pv $HOMEDIRbin
mkdir -pv $HOMEDIRusr/bin
mkdir -pv $HOMEDIRusr/libexec/openssh
mkdir -pv $HOMEDIRusr/local/bin
mkdir -pv $HOMEDIRdev
mkdir -pv $HOMEDIRlib
# Make /dev/null or sftp won't work
mknod $HOMEDIRdev/null c 1 3 -m 666
# Create short version to /usr/bin/groups
# On some system it requires /bin/sh, which is generally unnessesary in a chroot cage
echo "#!/bin/bash" > $HOMEDIRusr/bin/groups
echo "id -Gn" >> $HOMEDIRusr/bin/groups
chmod 755 $HOMEDIRusr/bin/groups
# Add some users to ./etc/paswd
grep /etc/passwd -e "^root" -e "^$CHROOT_USERNAME" > $HOMEDIRetc/passwd
grep /etc/group -e "^root" -e "^$CHROOT_USERNAME" > $HOMEDIRetc/group
# Copy the apps and the related libs
for prog in $APPS;
do
cp $prog $HOMEDIR.$prog
# obtain a list of related libraryes
ldd $prog > /dev/null
if [ "$?" = 0 ] ; then
LIBS=`ldd $prog | awk '{ print $3 }'`
for l in $LIBS;
do
mkdir -pv $HOMEDIR.`dirname $l`
cp $l $HOMEDIR.$l
# mkdir -p $HOMEDIR`dirname $l` > /dev/null 2>&1
# cp $l $HOMEDIR$l > /dev/null 2>&1
done
fi
done
# From some strange reason these libraries are not in the ldd output, but without them
# some stuff will not work, like usr/bin/groups
cp /lib/libnss_compat.so.2 $HOMEDIRlib/
cp /lib/libnsl.so.1 $HOMEDIRlib/
cp /lib/libnss_files.so.2 $HOMEDIRlib/
cp /lib/ld-linux.so.2 $HOMEDIRlib/
cp /lib/libc.so.6 $HOMEDIRlib/
cp /lib/libm.so.6 $HOMEDIRlib/
cp /lib/libpthread.so.0 $HOMEDIRlib/
cp /lib/librt.so.1 $HOMEDIRlib/
cp /lib/libthread_db.so.1 $HOMEDIRlib/
cp /etc/termcap $HOMEDIRetc/
cp /usr/libexec/openssh/sftp-server $HOMEDIRusr/libexec/openssh
exit 0
 
저장하시고
# chmod 700 /usr/sbin/chroot-useradd
 
# chroot-useradd 유저아이디
  이제 유저가 생성이 되고, SSH 접속해서
 
 pwd 하시면 전에는 /home/아이디 였지만 / 로 바뀌신걸 확인 하 실 수 있을 겁니다.
제목 글쓴이 날짜
나만의 미니홈 만들기 ㅡ 메인 기초 설계 .home.php [12] file 예뜨락 2004.11.17
OpenID 적용 [6] file 맑은하늘75 2007.08.20
1.3.0 버전에서 모듈설치 방법과 시작 모듈 설정하기 [21] file 스타호스트 2009.11.11
"제로보드 XE 기본 개념을 이해하자" 문서화 [3] file amd짱좋아 2009.11.13
파일질라에서 html 파일 수정법 불패의초인 2010.11.11
IIS5,6 용 Rewrite Module [1] file MuzEye 2009.04.10
DNIP.NET 으로 유저.내도메인.dnip.net 세팅방법점.. [1] 키스더데이트 2009.01.09
아파치 웹 서버 설정 == httpd.conf [2] 김병화999 2009.01.02
httpd.conf 의 환경설정파일 안의 내용 [2] 김병화999 2009.01.02
Ubuntu Server - SSH, APM, DNS, FTP 설치하기 [2] file ruo91 2008.08.09
Ubuntu 웹서버 구축 2. APM 환경 구축 [4] [1] earthian 2008.05.23
Ubuntu 웹서버 구축 1. 우분투 설치 하기 [4] file earthian 2008.05.23
내컴퓨터를 FTP 서버로 만들어보자 [6] 서기 2008.03.30
MySQL 암호화함수를 큐브리드 JSP로 사용하기 [3] file 야라바 2008.01.24
lighttpd + php fastcgi + xcache 설치하기 [7] zero 2007.12.24
한방에 제로보드 설치를 위한 서버 환경 준비하기-RWAPC Server 1.0 [6] 야라바 2007.11.28
SVN Commit 정보 출력 설정 (CIA Script) DroArc 2007.11.25
phpCubAdmin으로 큐브리드 DBMS관리하기 [2] 야라바 2007.10.22
리눅스 APM/AP 환경에 큐브리드 추가 설치하기 [2] 야라바 2007.10.22
Chroot 로 루트디렉토리 접근 금지,, [2] Nefree 2007.08.18