본문 바로가기
Server&OS/Linux

solairs10 + openssh + rssh 설치 Linux

by 백룡화검 2010. 5. 19.
사용자 요구 사항

- ssh 사용은 못하고 sftp 만 사용하게 한다.
- 자신의 홈디렉토리를 벗어나지 못하게 한다.

요구 사항에 맞게 최대한 간단하게 설정할 수 있는 방법을 정리해 보고자 하는 생각에 이 글을 작성한다.

rssh 는 ssh 사용을 못하게 하는데 사용하며 자신의 홈디렉토리를 벗어나지 못하게 하는 것은 openssh 에 들어 있는 sftp-server  파일을 패치하여 사용한다.

1. rssh, openssh 설치

http://sunfreeware.com/ 에서 관련 패키지 다운로드 및 설치

libintl-3.4.0-sol10-x86-local.gz
libiconv-1.11-sol10-x86-local.gz
openssh-4.7p1-sol10-x86-local.gz
rssh-2.3.2-sol10-x86-local.gz
gcc-3.4.6-sol10-x86-local.gz
zlib-1.2.3-sol10-x86-local.gz
openssl-0.9.8f-sol10-x86-local.gz

# gunzip *.gz
# pkgadd -d 패키지명

2. openssh  설정

# mkdir /var/empty
# chown root:sys /var/empty
# chmod 755 /var/empty
# groupadd sshd
# useradd -g sshd -c 'sshd privsep' -d /var/empty -s /bin/false sshd

cd /usr/local/bin
# ssh-keygen -t rsa1 -f /usr/local/etc/ssh_host_key -N ""
# ssh-keygen -t dsa -f /usr/local/etc/ssh_host_dsa_key -N ""
# ssh-keygen -t rsa -f /usr/local/etc/ssh_host_rsa_key -N ""

default ssh 서비스 삭제
# svcadm disable ssh
# svccfg delete netowrk/ssh:default

openssh 서비스 등록 및 실행

ossh 파일을 다운 받은 후에 /lib/svc/method/ 디렉토리로 옮겨 놓는다.
그리고 퍼미션을 555 로 설정

ossh.xml 파일을 다운 받은 후에 /var/svc/manifest/network/디렉토리로 옮겨 놓는다.
그리고 아래의 명령 실행
# svccfg import /var/svc/manifest/network/ossh.xml
# svcadm enable ossh
3. chroot jail 설정

openssh 소스 파일 다운로드
sftp-server.c 파일 다운로드

압축을 푼 후 해당 디렉토리로 이동.
위에서 다운 받은 sftp-server.c 파일로 대체 후 컴파일 한 다음 sftp-server 파일을 복사해서 사용함.
(configure 에서 ar 에러 발생시 PATH 에 /usr/ccs/bin 추가하고 재실행 하면 됨.)

# cd openssh-4.7p1
# mv sftp-server.c sftp-server.c.orig
# mv ../sftp-server.c .
# ./configure
# make
# mv /usr/local/libexec/sftp-server /usr/local/libexec/sftp-server.orig
# cp sftp-server /usr/local/libexec
# chmod u+s /usr/local/libexec/sftp-server

마지막으로 변경 해야할 설정 파일들과 예제를 보자.

/usr/local/etc/rssh.conf 파일에서 sftp 만 사용할 것이므로 allowsftp 앞에 주석을 해제하자.

# grep -v '^#' rssh.conf | grep -v '^$'
logfacility = LOG_USER
allowsftp
umask = 022

testuser 사용자 추가 (홈디렉토리는 /users/testuser)

# useradd -m -d /users/testuser testuser
# usermod -s /usr/local/bin/rssh testuser

/etc/passwd 파일에서 사용자 홈디렉토리를 아래와 같이 변경.

testuser:x:101:10::/users/testuser/./:/usr/local/bin/rssh


참고 사이트

http://www.sunfreeware.com/sshsol10.html
http://www.sunfreeware.com/openssh9.html
http://www.minstrel.org.uk/papers/sftp/

출처 : http://linuxer.pe.kr/163