사용자 요구 사항
- 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
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
- 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 ossh3. 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
'Server&OS > Linux' 카테고리의 다른 글
리눅스에 하드디스크 추가 시키기 (0) | 2010.05.27 |
---|---|
리눅스에서 ZIP 압축파일 풀기 (0) | 2010.05.25 |
gcc 정적 라이브러리와 동적 라이브러리 (.a .so 파일) (0) | 2010.05.18 |
usermod ( 생성된 계정사용자 설정변경 ) (0) | 2010.05.13 |
[보안] 자동공격 봇 막기.2 (0) | 2010.04.24 |