OpenSSH는 당신의 시스템에 보안을 제공하는 것을 의미한다. 만약 당신이 어떻게 사용하는지 똑바로 이해하지 못한다면 문제가 있는 것이다. 이러한 문제는 당신의 책임이다.
당신이 ssh를 설치하기 전에 아래의 설명서를 충분히 그리고 주의 깊게 읽어 주길 바란다.
ssh 와 sshd를 실행시키기 위해서는 다수의 패키지를 설치해야 할 필요가 있다. 네트워크 많은 곳에서 이 순서에 대해 자세하게 나올 것이다. 그중 가장 좋은 방법은 선 블루 프린트 웹 페이지와 Solaris 운영체제상의 ssh에 대한 문서를 참조하는 것이다.
나는 sun사의 블루 프린트 방법을 사용하지 않았다 왜냐하면 어떠한 것들이 문서가 만들어진 후로부터 바뀌었기 때문이다
ssh 는 각 머신이 정리된 random을 요구한다. Solaris9는 /dev/random 과 /dev/urandom이 built-in되어 있지 않다 그러나 패치를 하면 그 문제는 해결된다. 만약 패치를 설치하기 원하지 않고 고유의 패키지를 설치하기 원한다면 grngd 소프트웨어를 우선적으로 대신해서 사용할 것이다.
당신의 시스템에서 ssh를 사용하기 위해서는 일곱 개의 소프트웨어가 필요할 수 있을 것이다 opens니, OpenSSH, zlib, libgcc(만약 gcc3.2.3이 인스톨되어 있다면 필요없다)그리고
부 가적으로 egd, grngd, perl 그리고 tcp_wrappers. 또한 소스를 다운로드 하여 c컴파일러가 있다면 컴파일 해도 되고 sunfreeware.com에 가서 이미 컴파일 되어 패키지 화 되어 있는 것을 다운로드하여 사용할 수도 있다. 만약 시스템의 보안에 걱정이 되거나 어떤 사람이 이미 컴파일해서 패키지화 시켜놓은 것을 신뢰할 수 없다면 가장 좋은 방법은 소프트웨어를 직접 컴파일 하는 것이다. 직접 컴파일 하는 것은 큰 경험을 배우는 것이다.
이 각 다른 프로그램의 소스는 sunfreeware.com 혹은 각 소프트웨어의 홈페이지에 가면 직접 구할 수 있다
http://www.zlib.org zlib
http://www.perl.org perl
http://www.aet.tu-cottbus.de/personen/jaenicke/postfix_tls/prngd.html prngd
http://www.openssl.org openssl
http://www.OpenSSH.org OpenSSH
http://www.lothar.com/tech/crypto/ egd
ftp://ftp.porcupine.org/pub/security/index.html tcp_wrappers
나 는 부가적으로 tcp_wrappers 프로그램을 사용하였다.(향상된 방법을 사용하는 것이다) 이 tcp_wrappers 프로그램은 hosts.allow와 hosts.deny파일에 정의된 컴퓨터들이 ssh로그인을 제한할 수 있도록 도와준다.
--------------------------------------------------------------------
설치 과정
--------------------------------------------------------------------
처음 과정 : Solaris 8 random 패치하기
패치 파일을 구하는 사이트는 아래와 같다
http://www.sunmanagers.org/pipermail/summaries/2002-April/002956.html
이 과정을 절대로 뛰어넘어서는 않 된다. 이 버전의 OpenSSH는 /dev/random 패치가 설치되어 있어야 한다. 만약 구동중인 시스템에 패치를 적용해서 재 시작을 하더라도 끝나는 것은 아니다. 재 시작을 하지 않아도 패치 적용은 가능하다.
SPARC Solaris 8 패치 112438-01찾으려면, 112438-01 종류를 PatchID의 검색 창에 입력하거나 패치 찾기 버튼을 클릭해라. 그러면 패치가 설명되어 있는 페이지나 패치가 링크되어 있는 곳이 나타날 것 이다. 패치를 다운로드하고 설명서가 가리키는 대로 설치해라.
패치를 적용하기 위해서는 시스템의 재 시작이 필요할 수도 있다.
INTEL Solaris 8 패치를 위해서는 112439-01을 대신해서 찾고 같은 설명서를 참조하여 설치하라 많은 뉴스그룹에서 이러한 패치에 대해 게시물을 게시해 놓았을 것이다. google 그룹에 가서 112438-01 또는 112439-01 패치를 조사해라 그러면 도움 줄 만한 많은 이야기들을 발견 할 수 있을 것이다
1 단계 : 패키지 얻기
sunfreeware.com 에서의 OpenSSH 버전을 인스톨하기 위해서는 처음 화면으로 이동하여 오른쪽에 SPARC/Solaris8에 가서 해당 파일을 선택하라 SPARC에 대해 필요한 파일을 필요하다면 여기에서 다운로드 받아라.
OpenSSH-3.7.1p2-sol8-sparc-local.gz
openssl-0.9.7b-sol8-sparc-local.gz
tcp_wrappers-7.6-sol8-sparc-local.gz (optional, but recommended)
(unless you are using IPV6 - see the tcp_wrappers listing for details on this issue)
zlib-1.1.4-sol8-sparc-local.gz
libgcc-3.2.3.2-sol8-sparc-local.gz
perl-5.8.0-sol8-sparc-local.gz (optional)
prngd-0.9.25-sol8-sparc-local.gz (optional)
egd-0.8-sol8-sparc-local.gz (optional)
-INTEL의 경우
OpenSSH-3.7.1p2-sol8-intel-local.gz
openssl-0.9.7b-sol8-intel-local.gz
tcp_wrappers-7.6-sol8-intel-local.gz (optional, but recommended)
(unless you are using IPV6 - see the tcp_wrappers listing for details on this issue)
zlib-1.1.4-sol8-intel-local.gz
libgcc-3.2.3.2-sol8-intel-local.gz
perl-5.8.0-sol8-intel-local.gz (optional)
prngd-0.9.25-sol8-intel-local.gz (optional)
egd-0.8-sol8-intel-local.gz (optional)
만약 위의 파일 몇 개가 설치되어 있다면 다운로드하지 않아도 된다. 그렇지만 설치된 패키지 버전이 가장 최신 것이어야 된다.
-패키지 인스톨하기
파일 다운로드가 끝났으면 다운로드 받은 파일들이 저장되어 있는 디렉토리로 이동해라 그리고 그것들을 설치해라( INTEL 시스템이면 INTEL 패키지로 설치해야 된다)
# gunzip OpenSSH-3.7.1p2-sol8-sparc-local.gz
# gunzip openssl-0.9.7b-sol8-sparc-local.gz
# gunzip zlib-1.1.4-sol8-sparc-local.gz
# gunzip libgcc-3.2.3-sol8-sparc-local.gz(if you don't already have gcc 3.2.3 installed)
# gunzip tcp_wrappers-7.6-sol8-sparc-local.gz (again optional)
# pkgadd -d OpenSSH-3.7.1p2-sol8-sparc-local
# pkgadd -d openssl-0.9.7b-sol8-sparc-local
# pkgadd -d zlib-1.1.4-sol8-sparc-local
# pkgadd -d libgcc-3.2.3-sol8-sparc-local (if you don't already have gcc 3.2.3 installed)
# pkgadd -d tcp_wrappers-7.6-sol8-sparc-local (optional)
INTEL의 경우
# gunzip OpenSSH-3.7.1p2-sol8-intel-local.gz
# gunzip openssl-0.9.7b-sol8-intel-local.gz
# gunzip zlib-1.1.4-sol8-intel-local.gz
# gunzip libgcc-3.2.3-sol8-intel-local.gz(if you don't already have gcc 3.2.3 installed)
# gunzip tcp_wrappers-7.6-sol8-intel-local.gz (again optional)
# pkgadd -d OpenSSH-3.7.1p2-sol8-intel-local
# pkgadd -d openssl-0.9.7b-sol8-intel-local
# pkgadd -d zlib-1.1.4-sol8-intel-local
# pkgadd -d libgcc-3.2.3-sol8-intel-local (if you don't already have gcc 3.2.3 installed)
# pkgadd -d tcp_wrappers-7.6-sol8-intel-local (optional)
위의 패키지가 설치되었다면 /usr/local/밑에 다양한 서브디렉토리에 파일이 있을 것이다.
이제 ssh는 /usr/local/bin 그리고 sshd는 /usr/local/sbin안에 서 찾을 수 있을 것이다. /usr/local/bin 과 /usr/local/sbin의 경로는 확실하게 지정해라.
펄 스크립트는 부가적으로 egd 패키지안에 /usr/local/bin에서 찾을 수 있을 것이다.
만약 선 펄을 사용한다면 펄 프로그램은 /usr/bin 디렉토리에서 시작될 것이다.
3단계 : sshd 사용자 와 /var/empty 디렉토리 세팅하기
OpenSSH 에 새로운 보안 방법 설정은 privilege separation라고 불린다. 자세한 것은 ssh 소스 안의 README.privsep 파일에서 찾을 수 있을 것 이다. 이 방법은 ssh의 기본 값이다. 다른 것을 하기 전에 위의 README.privsep 문서를 읽기를 바란다. 이 과정은 루트 권한으로 실행해야 한다.
# 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
/var/empty는 반드시 어떠한 파일도 있어서는 안 된다.
만약 위 과정을 하지 않고 sshd를 시작하려고 시도한다면 에러 메시지가 뜨고 데몬은 시작되지 않을 것이다
4 단계 : tcp_wrapper 세팅
다음 과정은 tcp_wrappers 준비하는 것이다. tcp_wrappers가 어떻게 움직이는 것을 알기
위 하여 먼저 README.tcpwrappers를 읽어봐라 기본적으로 tcp_wrappers는 sshd 프로그램이 사용하는 포트 22번과 같이 통신포트에 한정된 컴퓨터 그룹들이 접근하는 것을 제한 하도록 사용되어진다. 만약 tcp_wrappers가 이미 구동되었다면 /etc/hosts.allow와 /etc/hosts.deny 파일에 당신이 원하는 설정을 정확히 설정하기만하면 된다. 만약 tcp_wrappers가 구동되지 않는다면 /etc/hosts.deny을 생성하고 한 줄을 입력하라
sshd: ALL
이 의미는 모든 접속을 차단하는 것이다
그 다음 /etc/hosts.allow 파일을 생성하고 입력하라 예를 들면
sshd: 203.241.228.58
위와 같이 접속을 허락하는 기계의 IP주소를 입력하라. 만약 hosts.deny에 ALL을 입력하고 hosts.allow에 아무것도 입력하지 않았다면 어떠한 접속도 허용되지 않을 것 이다.)
5단계 : ssh와 sshd 설치
마지막 과정이다 README.openssl와 INSTALL.openssl와 아울러 OpenSSH 문서
README.OpenSSH and INSTALL.OpenSSH을 꼭 읽어 보길 바란다.
ssh 클라이언트를 경유하여 통신하고 싶다면 sshd 데몬을 구동시켜야 된다. 그러나 첫 번째로 서버 머신에 대한 키 정보를 아래 세 줄을 이용하여 생성해야 된다. 다시 /usr/local/bin 과 /usr/local/sbin 경로를 확실히 해야 된다. 만약 sshd가 실행되기 전에 /usr/local/etc안에 키를 가지고 있다면 아래의 명령은 기존에 가진 키를 덮어 쓰게 될 것이다. 루트 권한으로 아래의 3줄의 명령어를 입력하라
# 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 ""
그 리고 명령어 실행이 끝 날 때 까지 기다려라. 이 작업은 시스템 상황에 따라 몇 분이 걸릴 수도 있다. /usr/local/etc/ssh_config 와 /usr/local/etc/sshd_config 파일을 주의 깊게 살펴야 된다. 두 설정 파일은 각각 다른 설정 파일이다. sun사의 ssh와 sshd 버전은 /etc/ssh 안에 키 파일과 구성이 있다.
스 크립트를 완성시킴으로 sshd 데몬을 시작 시킬 수 있다. 여기서는 /etc/init.d 디렉토리 안에 존재하는 sshd라고 불리는 스크립트를 사용했다. 이 안의 스크립트는 몇몇은 수정이 되었을 것이다 자세한 것은 sun사의 홈페이지를 참조 바란다. (설치가 성공적으로 이루어졌다면 대부분 시스템에서는 이 스크립트는 만들어져 있을 것이다)
#!/bin/sh
pid=`/usr/bin/ps -e | /usr/bin/grep sshd | /usr/bin/sed -e 's/^ *//' -e 's/ .*//'`
case $1 in
'start')
/usr/local/sbin/sshd
;;
'stop')
if [ "${pid}" != "" ]
then
/usr/bin/kill ${pid}
fi
;;
*)
echo "usage: /etc/init.d/sshd {start|stop}"
;;
esac
끝으로 아래와 같이 하자
# chown root /etc/init.d/sshd
# chgrp sys /etc/init.d/sshd
# chmod 555 /etc/init.d/sshd
# ln -s /etc/init.d/sshd /etc/rc2.d/S98sshd
# /etc/rc2.d/S98sshd start
이렇게 수동으로 프로세스를 시작시킬 수 있다
# /etc/rc2.d/S98sshd stop
데몬은 정지될 것이다. 아래의 ps명령어로 확인할 수 있을 것이다
# ps -e | grep sshd
sshd 가 실행되는 것을 볼 수 있다. sshd는 실행되었다 그리고 tcp_wrappers는 여러분들이 원하는 방법으로 설정했다면 시스템을 테스트해보자. 물론 반드시 다른 ssh가 인스톨되어 있는 기계가 필요하다 sshd가 실행중인 시스템과 통신하기 위해서이다. OpenSSH 문서의 더욱 자세하게 봐라. tcp_wrappers가 실행중인지 시험하기 위해서는 기계의 IP주소를 hosts.allow 안에 입력하라 그리고 서버와 클라이언트간에 ssh가 되는지 봐라 그리고 기계의 IP주소를 hosts.allow에서 삭제시키고 다시 ssh로 접속해서 접근 거부가 되는지 봐라
만 약 이 프로그램의 자세한 사용법에 대해 궁금증이 있다면 OpenSSH의 웹사이트로 가서 문서를 읽어보길 바란다. 보안과 여러분의 시스템의 자세한 부분을 알기를 원하지 않는다. 보안 문제는 매우 중요하다고 강하게 주장한다. 나는 이 명령서를 만드는데 충분히 건설적인 제안을 기분 좋게 받아 드릴 수 있다.
--------------------------------------------------------------------
ⓒ Copyright 2003 Steven M. Christensen and Associates, Inc.
This page was last updated on November 11, 2003.
[출처] SPARC / INTEL Solaris OpenSSH 패키지 설치하기 |작성자 맑은향기
댓글 없음:
댓글 쓰기