Solaris 8のzlibは1.1.3ですから素のままではセキュリティホールがありま す。このため、必ずパッチ112611を適用します。ただし、112611を適用して も1.1.4にはならないため、configureスクリプトのバージョンチェックを省 くようにします。
以下のスクリプトを実行します。
#!/bin/sh if [ $# -eq 1 ]; then . ../setup-pre.sh $1 else . ../setup-pre.sh fi ./configure \ --bindir=/usr/local/bin/$ISA \ --sbindir=/usr/local/sbin/$ISA \ --libexecdir=/usr/local/libexec$LIBISA \ --libdir=/usr/local/lib$LIBISA \ --sysconfdir=/etc/ssh \ --mandir=/usr/local/man \ --infodir=/usr/local/info \ --with-ssl-dir=$sslpath \ --with-kerberos5=$krb5path \ --with-pam \ --with-zlib \ --without-zlib-version-check
makeしてインストールします。
% gmake # gmake install
以下のようなスクリプトを作成し、/etc/init.d/sshdとします。
#!/sbin/sh # # Copyright 2005 Sun Microsystems, Inc. All rights reserved. # Use is subject to license terms. # # ident "@(#)sshd 1.2 05/11/07 SMI" # # If sshd is configured (/etc/ssh/sshd_config exists and is readable), # the start it up. # Checks to see if RSA, and DSA host keys are available # if any of these keys are not present, the respective keys are created. SSHDIR=/etc/ssh KEYGEN="/usr/local/bin/ssh-keygen -q" PIDFILE=/var/run/sshd.pid create_key() { keypath=$1 keytype=$2 if [ ! -f $keypath ]; then grep "^HostKey $keypath" $SSHDIR/sshd_config > /dev/null 2>&1 if [ $? -eq 0 ]; then echo Creating new $keytype public/private host key pair $KEYGEN -f $keypath -t $keytype -N '' fi fi } case $1 in 'start') create_key $SSHDIR/ssh_host_rsa_key rsa create_key $SSHDIR/ssh_host_dsa_key dsa /usr/local/sbin/sshd & ;; 'stop') # # If we are switching Run level downwards then we disconnect # all connections. # # Otherwise we just kill the master daemon that is listening # and leave the connections active if [ -z "$_INIT_RUN_LEVEL" ]; then set -- `/usr/bin/who -r` _INIT_RUN_LEVEL="$7" _INIT_PREV_LEVEL="$9" fi if [ $_INIT_RUN_LEVEL -lt $_INIT_PREV_LEVEL ]; then /usr/bin/pkill -u 0 -x sshd elif [ -f "$PIDFILE" ]; then /usr/bin/kill -TERM `/usr/bin/cat $PIDFILE` fi ;; 'restart') if [ -f "$PIDFILE" ]; then /usr/bin/kill -HUP `/usr/bin/cat $PIDFILE` fi ;; *) echo "Usage: $0 { start | stop }" exit 1 ;; esac
起動するためにリンクを張ります。
# ln -s /etc/init.d/sshd /etc/rc3.d/S89sshd # ln -s /etc/init.d/sshd /etc/rc2.d/K03sshd # ln -s /etc/init.d/sshd /etc/rc1.d/K03sshd # ln -s /etc/init.d/sshd /etc/rc0.d/K03sshd # ln -s /etc/init.d/sshd /etc/rcS.d/K03sshd