Solaris7 에서 SSH(openssh) 설치
Posted 2009. 2. 17. 11:47밑에 보시면 Solaris 8 에서 설치하는 글이 있는데 또 적는 이유는 Solaris 8에서 조금 더 수정 및 추가가 되어야 하는 부분이 있어서 이렇게 다시 적습니다. (2009.01.23)
환경 : Solaris7 SPARC
1. SSH 설치에 필요한 Package 다운로드
http://sunfreeware.com 에서 접속하여 오른쪽에 있는 Solaris7 x86, Solaris8 SPARC 중 해당 시스템 사항에 맞추어서 클릭하여 아래에 적힌 목록들을 다운
egd-0.8-sol7-sparc-local
gcc-3.4.6-sol7-sparc-local.gz
libgcc-3.4.6-sol7-sparc-local.gz
openssh-5.1p1-sol7-sparc-local.gz
openssl-0.9.8i-sol7-sparc-local.gz
perl-5.8.8-sol7-sparc-local
prngd-0.9.25-sol7-sparc-local.gz
tcp_wrappers-7.6-sol7-sparc-local.gz
zlib-1.2.3-sol7-sparc-local.gz
위에 리스트중에 이미 설치되어있는것은 생략하셔도 됩니다.
혹시 이 버젼보다 상위 버젼이 나왔다면 그것을 받아서 설치하셔도 됩니다.
2. Package 압축 해제 및 설치
위의 파일들은 모두 패키지 형식이기 때문에 gzip으로 압축만 풀고 간단한 명령어가 치면 자동으로
설치 됩니다.
예) # gzip -d openssh-5.1p1-sol7-sparc-local.gz
이렇게 모두 압축을 풀어주세요
압축을 풀게 되면 openssh-5.1p1-sol7-sparc-local 이렇게만 남습니다.
그다음 패키지를 풀면됩니다.
예) # pkgadd -d openssh-5.1p1-sol7-sparc-local
The following packages are available:
1 SMCosh511 openssh
(sparc) 5.1p1
Select package(s) you wish to process (or 'all' to process
all packages). (default: all) [?,??,q]: all
Processing package instance <SMCosh511> from </home/kuma/openssh-5.1p1-sol7-sparc-local>
openssh
(sparc) 5.1p1
The OpenSSH Group
Using </usr/local> as the package base directory.
## Processing package information.
## Processing system information.
6 package pathnames are already properly installed.
## Verifying disk space requirements.
## Checking for conflicts with packages already installed.
## Checking for setuid/setgid programs.
Installing openssh as <SMCosh511>
## Installing part 1 of 1.
/usr/local/bin/scp
/usr/local/bin/sftp
/usr/local/bin/slogin <symbolic link>
/usr/local/bin/ssh
/usr/local/bin/ssh-add
/usr/local/bin/ssh-agent
/usr/local/bin/ssh-keygen
/usr/local/bin/ssh-keyscan
/usr/local/doc/openssh/CREDITS
/usr/local/doc/openssh/ChangeLog
/usr/local/doc/openssh/INSTALL
/usr/local/doc/openssh/LICENCE
/usr/local/doc/openssh/OVERVIEW
/usr/local/doc/openssh/README
/usr/local/doc/openssh/README.dns
/usr/local/doc/openssh/README.platform
/usr/local/doc/openssh/README.privsep
/usr/local/doc/openssh/README.smartcard
/usr/local/doc/openssh/README.tun
/usr/local/doc/openssh/TODO
/usr/local/doc/openssh/WARNING.RNG
/usr/local/doc/openssh/contrib/Makefile
/usr/local/doc/openssh/contrib/README
/usr/local/doc/openssh/contrib/aix/README
/usr/local/doc/openssh/contrib/aix/buildbff.sh
/usr/local/doc/openssh/contrib/aix/inventory.sh
/usr/local/doc/openssh/contrib/aix/pam.conf
/usr/local/doc/openssh/contrib/caldera/openssh.spec
/usr/local/doc/openssh/contrib/caldera/ssh-host-keygen
/usr/local/doc/openssh/contrib/caldera/sshd.init
/usr/local/doc/openssh/contrib/caldera/sshd.pam
/usr/local/doc/openssh/contrib/cygwin/Makefile
/usr/local/doc/openssh/contrib/cygwin/README
/usr/local/doc/openssh/contrib/cygwin/ssh-host-config
/usr/local/doc/openssh/contrib/cygwin/ssh-user-config
/usr/local/doc/openssh/contrib/cygwin/sshd-inetd
/usr/local/doc/openssh/contrib/findssl.sh
/usr/local/doc/openssh/contrib/gnome-ssh-askpass1.c
/usr/local/doc/openssh/contrib/gnome-ssh-askpass2.c
/usr/local/doc/openssh/contrib/hpux/README
/usr/local/doc/openssh/contrib/hpux/egd
/usr/local/doc/openssh/contrib/hpux/egd.rc
/usr/local/doc/openssh/contrib/hpux/sshd
/usr/local/doc/openssh/contrib/hpux/sshd.rc
/usr/local/doc/openssh/contrib/redhat/gnome-ssh-askpass.csh
/usr/local/doc/openssh/contrib/redhat/gnome-ssh-askpass.sh
/usr/local/doc/openssh/contrib/redhat/openssh.spec
/usr/local/doc/openssh/contrib/redhat/sshd.init
/usr/local/doc/openssh/contrib/redhat/sshd.init.old
/usr/local/doc/openssh/contrib/redhat/sshd.pam
/usr/local/doc/openssh/contrib/redhat/sshd.pam.old
/usr/local/doc/openssh/contrib/solaris/README
/usr/local/doc/openssh/contrib/ssh-copy-id
/usr/local/doc/openssh/contrib/ssh-copy-id.1
/usr/local/doc/openssh/contrib/sshd.pam.freebsd
/usr/local/doc/openssh/contrib/sshd.pam.generic
/usr/local/doc/openssh/contrib/suse/openssh.spec
/usr/local/doc/openssh/contrib/suse/rc.config.sshd
/usr/local/doc/openssh/contrib/suse/rc.sshd
/usr/local/doc/openssh/contrib/suse/sysconfig.ssh
/usr/local/etc/moduli
/usr/local/etc/ssh_config
/usr/local/etc/sshd_config
/usr/local/libexec/sftp-server
/usr/local/libexec/ssh-keysign
/usr/local/libexec/ssh-rand-helper
/usr/local/sbin/sshd
/usr/local/share/Ssh.bin
/usr/local/share/man/man1/scp.1
/usr/local/share/man/man1/sftp.1
/usr/local/share/man/man1/slogin.1 <symbolic link>
/usr/local/share/man/man1/ssh-add.1
/usr/local/share/man/man1/ssh-agent.1
/usr/local/share/man/man1/ssh-keygen.1
/usr/local/share/man/man1/ssh-keyscan.1
/usr/local/share/man/man1/ssh.1
/usr/local/share/man/man5/ssh_config.5
/usr/local/share/man/man5/sshd_config.5
/usr/local/share/man/man8/sftp-server.8
/usr/local/share/man/man8/ssh-keysign.8
/usr/local/share/man/man8/ssh-rand-helper.8
/usr/local/share/man/man8/sshd.8
[ verifying class <none> ]
Installation of <SMCosh511> was successful.
#
이렇게 위의 리스트에 적혀있는 파일들을 예)를 보시고 설치 하시면 됩니다.
3. SSH 접속 환경 구성
# mkdir /var/empty
# chown root:sys /var/empty
소유자와 그룹을 root:sys로 변경
# chmod 755 /var/empty
empty 사용 권한은 755(rwxr-xr-x)
# groupadd sshd
그룹 sshd 만들기
# useradd -g sshd -c 'sshd privsep' -d /var/empty -s /bin/false sshd
4. Getting Entropy (Solaris 8버젼 이상에서는 필요가 없는 부분입니다.)
만약 이부분을 하지않고 진행할 경우 ssh-keygen 명령어 사용시 에러가 발생하게 됩니다.
# ssh-keygen -t rsa1 -f /usr/local/etc/ssh_host_key -N ""
PRNG is not seeded
여기 진행부분은 필히 순서를 지켜서 사용하셔야 합니다.
먼저 /var/log or /var/adm 로 이동하세요
# cd /var/log
# cat syslog > /usr/local/etc/prngd/prngd-seed
or
# cd /var/adm
# cat messages > /usr/local/etc/prngd/prngd-seed
# mkdir /var/spool/prngd
# /usr/local/sbin/prngd /var/spool/prngd/pool
이부분이 prngd 실행하는 부분입니다.
# ln -s /var/spool/prngd/pool /dev/egde-pool
그다음 /etc/init.d 디렉토리에서 prngd 파일을 하나 생성해야합니다.
# vi prngd or # cat >> prngd
#!/bin/sh
pid=`/usr/bin/ps -e | /usr/bin/grep prngd | /usr/bin/sed -e 's/^ *//' -e 's/ .*//'`
case $1 in
'start')
/usr/local/sbin/prngd /var/spool/prngd/pool
;;
'stop')
if [ "${pid}" != "" ]
then
/usr/bin/kill ${pid}
fi
;;
*)
echo "usage: /etc/init.d/prngd {start|stop}"
;;
esac
이 파일은 제가 첨부파일로 올려놓겠습니다.
# chown root:sys /etc/init.d/prngd
prngd 파일의 소유자 및 그룹을 root:sys 로 변경
# chmod 755 /etc/init.d/prngd
prngd 파일의 권한을 755 (r-xr-xr-x)
# ln -s /etc/init.d/prngd /etc/rc2.d/S99prngd
이렇게 하시면 Server Reboot 데몬이 자동 실행되어 가동이 됩니다.
5. Tcp_Wrapper 설정
# vi /etc/hosts.allow
sshd : All (추가)
# vi /etc/hosts.deny
Server로 접근 못하게 할 IP 등을 넣어시면 됩니다.
위 두부분은 파일만 만들어 놓고 나중에 추가 사항들을 추가 하시는게 좋을것 같습니다. 만약 원격으로 하실 경우 직접 서버가 있는 곳까지 가야할 상황이 생길 수 있으니까요.
6. SSH 사용을 위한 암호키 생성
먼저 PATH에 /usr/local/bin 과 /usr/local/sbin 이 등록되어 있어야 명령어를 실행하실 수 있습니다.
# 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 ""
이렇게 하시면
예) # ssh-keygen -t rsa1 -f /usr/local/etc/ssh_host_key -N ""
Generating public/private rsa1 key pair.
Your identification has been saved in /usr/local/etc/ssh_host_key.
Your public key has been saved in /usr/local/etc/ssh_host_key.pub.
The key fingerprint is:
4f:00:d4:cc:c8:b2:7e:41:6e:3d:5d:c5:d0:52:17:cc root@unknown
The key's randomart image is:
+--[RSA1 2048]----+
| oo= .*=.o|
| . +.+ o oE |
| = ... . . |
| . + o.. . |
| . . .S.. .. |
| . . o . |
| . . |
| |
| |
+-----------------+
bash-2.03#
이런 형식의 내용을 화면에 뿌려줍니다. 만들어진 파일은 /usr/local/etc/ 안에 있습니다.
7. sshd Daemon Script 작성
# vi /etc/init.d/sshd
#!/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
혹은
case "$1" in
'start')
# Start the ssh daemon
if [ -f /usr/local/sbin/sshd ]; then
echo "starting SSHD daemon"
/usr/local/sbin/sshd &
fi
;;
'stop')
# Stop the ssh deamon
PID=`/usr/bin/ps -e -u 0 | /usr/bin/fgrep sshd | /usr/bin/awk '{print $1}'`
if [ ! -z "$PID" ] ; then
/usr/bin/kill ${PID} >/dev/null 2>&1
fi
;;
*)
echo "usage: /etc/init.d/sshd {start|stop}"
;;
esac
exit 0
둘중에 하나를 작성하시면 됩니다.
제가 사용하는 파일을 첨부파일로 올리겠습니다.
# chown root:sys /etc/init.d/sshd
sshd 파일의 소유자 및 그룹을 root:sys 로 변경
# chmod 755 /etc/init.d/sshd
sshd 파일의 권한을 755 (r-xr-xr-x)
# cat >> /etc/rc2.d/S99sshd
/etc/init.d/sshd start
Ctrl + C <- 이거 아시죠? 빠져나오기.. ^^
# chome 744 /etc/rc2.d/S99sshd
sshd 파일의 권한을 744 (rwxr--r--)
이렇게 하시면 Server Reboot 데몬이 자동 실행되어 가동이 됩니다.
8. SSH, PRNGD 실행 및 가동여부 확인
# /etc/init.d/prngd start
# /etc/init.d/prngd stop
# ps -ef | grep prngd
root 20381 1 0 16:18:33 ? 0:00 /usr/local/sbin/prngd /var/spool/prngd/pool
데몬이 제대로 올라오는지 확인.
# /etc/rc2.d/S99sshd
starting SSHD daemon
# ps -ef | grep sshd
root 478 1 0 16:16:27 ? 0:02 /usr/local/sbin/sshd
이렇게 띄워져 있다면 실행되고 있습니다.
해 보시고 문제가 있다면 댓글을 남겨주세요~!
'OS 운영체제 및 보안 > Solaris' 카테고리의 다른 글
SSH, FTP 접속 딜레이가 생길때... (0) | 2009.05.22 |
---|---|
[스크랩] Disk sector error(soft or hard) 복구 방법 (0) | 2009.03.19 |
[스크랩] Solaris 시스템 점검 및 장애복구 방법 (0) | 2009.03.19 |
[스크랩] Solaris 시스템 현황보기 (0) | 2009.02.24 |
[스크랩] Solaris에서 system performance 측정 (0) | 2009.02.24 |
Solaris8 SSH 설치 (0) | 2009.02.17 |
[스크랩] Crash dump 분석하기 및 자동분석 스크립트 (0) | 2009.02.16 |
[스크랩] Crash Dump & Core File (0) | 2009.01.23 |
[스크랩] CPU 와 Memory Error... (0) | 2009.01.22 |
[스크랩] Solaris 서버 정보 확인 명령어 (0) | 2009.01.20 |
- Filed under : OS 운영체제 및 보안/Solaris