scponly를 이용해서 sftp만 제공하고 chroot로 다른 디렉토리 접근 막기

Posted at 2009/01/22 15:56 // in Tips // by Daniel

http://ubuntuforums.org/showthread.php?t=451510 (원출처 포스트)

http://geekzine.org/2007/09/28/easy-sftp-and-chroot-sftp-with-scponly/

항상 실패했었는데 좋은 패키지가 있군요

외부 사용자에게 셸은 안주고 sftp만 제공해서 다운로드/업로드만 되게 하고 싶을 때가 있습니다. ftp는 보안상 피하고 싶구요.

그때 잘 쓸 수 있겠네요.

간단하게 설명하면 (데비안/우분투 기준입니다)

1. scponly 패키지를 설치한다.

2. 거기서 제공하는 스크립트로 chroot jail을 만들고 사용자를 추가한다.

끝.

입니다.

자세한 설명은 위 링크에 돼 있구요

제가 한 스샷과 함께 보면,

1. scponly 패키지 설치

$ sudo apt-get install scponly

이러면 됩니다.

테스트로 일단 테스트할 사용자를 만들었다 치고

그 사용자의 shell을 scponly로 바꿔줍니다.

$ sudo chsh -s /usr/bin/scponly username

그리고 sftp 해보기

$ sftp username@서버

image

2. Chroot로 경로 제한해주기

chroot로 안해주면 sftp로 서버의 모든 경로를 다 이동해다닐 수 있습니다.

꼭 해줘야겠죠.

$ sudo dpkg-reconfigure -plow scponly

해줍니다. 그러면 뭐라뭐라 경고가 뜰텐데. chroot쓸라면 꼭 suid를 세팅 해야 하기 때문입니다. yes를 선택

image

그리고 제공된 스크립트를 압축 풀어서 실행해줍니다.

$ cd /usr/share/doc/scponly/setup_chroot
$ sudo gunzip setup_chroot.sh.gz
$ sudo chmod +x setup_chroot.sh
$ sudo ./setup_chroot.sh

실행하면 새로 추가할 사용자 이름, chroot 경로등을 물어보고 셋업해줍니다.

image

암호까지 입력했으면 이제 셋업 된 겁니다.

접속해봅시다 ^^

우분투에선(저는 8.04) 잘 되는데 제 VM(데비안) 오류가 나네요

아항~ 보니깐 dev/null이 없어요. 아마 데비안의 버전에서 스크립트 버그인 듯.

$ mkdir /home/scponly/dev
$ mknod -m 666 /home/scponly/dev/null c 1 3

이렇게 하니 접속 되네요.

image

그리고 유저 이름이 긴 경우인 것 같은데 winscp에서 에러메시지 같은게 납니다.(제가 테스트한 데비안 버전의 경우)

이 때는 제공된(/usr/share/doc/scponly/group.c)를 빌드해서 카피해주면 되나봐요. 그러나 쓰는 데 문제 없는 거 같아서 놔뒀습니다.

크리에이티브 커먼즈 라이센스
Creative Commons License

데비안 패키지 사용

Posted at 2008/08/14 00:30 // in Tips // by Daniel

필요할 때 까먹어서 찾아야되는 내용들


단순히 패키지 찾고 싶을 때

apt-cache search 관련이름

(예를 들어 apt-cache search "web browser")

이러면 리스트가 쫙 나온다.

패키지의 정보를 프린트할 때

apt-cache show 패키지이름

패키지 이름과 저자, 의존성, 설명 등등 다 나온다.

패키지를 소스로 받아서 컴파일까지 하고 싶을 때(설치는 안하고)

apt-get source -b 패키지 이름


dpkg

설치된 패키지의 정보를 프린트할 때

dpkg-query -s 패키지이름

패키지 이름과 저자, 의존성, 설명 등등 다 나온다.

특정 패턴이 포함된 파일이 어느어느 패키지들에 있는 지 볼 때

dpkg-query -S 패턴

여러 파일들이 쫙 검색되고 어느 패키지에 있는 파일인지 나온다.


패키지가 설치됐는지, 상태가 어떤지 볼 때

dpkg-query -l 패키지이름

정확한 이름 입력해야 함. 설치여부, 이름, 버전, 설명이 나온다.

패키지에 들어있는 파일들이 무엇인지 볼 때

dpkg-query -L 패키지 이름

패키지에 소속된 파일들이 쫙 리스트된다.


데모화면(플래시 동영상)

크리에이티브 커먼즈 라이센스
Creative Commons License

emdebian setup

Posted at 2008/03/22 13:36 // in Tips // by Daniel

http://wiki.debian.org/EmdebianToolchain

gpg --recv-key 0x97BB3B58
gpg -a --export 0x97BB3B58 > emdebian.key
apt-key add emdebian.key
apt-get update

--------------------
vi sources.list
--> add
################################
# EmDebian Toolchain [i386 and AMD64]
# Etch
# deb http://www.emdebian.org/debian/ stable main
# Sid
deb http://www.emdebian.org/debian/ unstable main
# Lenny
# deb http://www.emdebian.org/debian/ testing main

------------------------------

apt-cache search armel

apt-get install libc6-armel-cross libc6-dev-armel-cross
apt-get install binutils-arm-linux-gnueabi
apt-get install dpkg-cross
(inserted ubuntu cdrom)

apt-get -s install libgomp1 (for dependency.. but not worked)
apt-get install gcc-4.2-arm-linux-gnueabi
-> gcc-4.2-arm-linux-gnueabi: Depends: libgomp1 (>= 4.2.2-3) but 4.2.1-5ubuntu4 is to be installed

added sources.list
##########################333
# debian
deb http://ftp.kr.debian.org/debian/ testing main
deb-src http://ftp.kr.debian.org/debian/ testing main

크리에이티브 커먼즈 라이센스
Creative Commons License