달력

07

« 2010/07 »

  •  
  •  
  •  
  •  
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
  • 31
2008/03/04 22:38

solairs10 + openssh + rssh 설치 Linux2008/03/04 22:38

사용자 요구 사항

- 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/


Posted by shsch