SSH chroot 적용 ssh/sftp 상위폴더 이동 금지 > server

본문 바로가기
사이트 내 전체검색

server

SSH chroot 적용 ssh/sftp 상위폴더 이동 금지

페이지 정보

작성자 서방님 댓글 0건 조회 245회 작성일 15-07-22 14:38

본문

출처 : http://chess72.tistory.com/107


대부분의 사용자가 ssh접속시 자기 홈 디렉토리를 벗어나지 못하게 하고 싶다.

ftp는 그게 기본적으로 가능하지만, ssh는 chroot 패치를 하므로 가능하다.

예전부터 하고 싶었지만, 못 했던것을 진행 해 보려 한다.!


1. 설치

wget http://chrootssh.sourceforge.net/download/openssh-4.2p1-chroot.tar.gz 
tar xvfz openssh-4.2p1-chroot.tar.gz 
cd openssh-4.2p1-chroot 
./configure --exec-prefix=/usr --sysconfdir=/etc/ssh --with-pam --without-zlib-version-check 
## 옵션설명: 
## --with-pam PAM 인증사용 
## --without-zlib-version-check : 이놈은 zlib 최신버전을 찾지만.. 하지 않게 하려고 한다. 
make 
make install


2. 설정

1) chroot 적용된 사용자를 /home/chroot에 가둬둔다^^; 그럼 이 디렉토리에 필수파일들을 만든다.

mkdir -p /home/chroot/home/ 
cd /home/chroot 
mkdir -p etc bin lib usr/bin dev 
mknod dev/null c 1 3 
mknod dev/zero c 1 5

2) 가둬진 사용자가 사용할 수 있는 명령어를 복사해 준다.

APPS="/bin/bash /bin/ls /bin/mkdir /bin/mv /bin/pwd /bin/rm /usr/bin/id /usr/bin/ssh /bin/ping /usr/bin/dircolors /usr/bin/vim" 
unalias cp 
for prog in $APPS; do 
cp $prog ./$prog
# 관련라이브러리복사. 
ldd $prog > /dev/null 
if [ "$?" = 0 ] ; then 
LIBS=`ldd $prog | awk '{ print $3 }'` 
for l in $LIBS; do 
mkdir -p ./`dirname $l` > /dev/null 2>&1 
cp $l ./$l 
done 
fi 
done


3) 다음단계?

cp /lib/libnss_compat.so.2 /lib/libnsl.so.1 /lib/libnss_files.so.2 ./lib/ 
echo '#!/bin/bash' > usr/bin/groups 
echo "id -Gn" >> usr/bin/groups 
touch etc/passwd 
grep /etc/passwd -e "^root" > etc/passwd 
grep /etc/group -e "^root" -e "^users" > etc/group 
/etc/init.d/ssh restart

댓글목록

등록된 댓글이 없습니다.

회원로그인

접속자집계

오늘
27
어제
190
최대
1,347
전체
167,435
Latest Crypto Fear & Greed Index

그누보드5
Copyright © 서방님.kr All rights reserved.