OpenSSH (Open Secure Shell) es un conjunto de aplicaciones que permiten realizar comunicaciones cifradas a través de una red, usando el protocolo SSH. Por defecto SSH no se encuentra incluído en los sistemas operativos Solaris 8, ya que en el momento de su lanzamiento (Febrero de 2000) la comunicación con los hosts se realizaba por telnet. Los nuevos en el negocio se llevarán las manos a la cabeza al leer esto, pero esta es la cruda realidad, incluso a día de hoy en muchos sitios.
Con el paso del tiempo, la necesidad de realizar el encriptado de las comunicaciones ha llevado a desarrollar una serie de paquetes independientes que implementan el servicio SSH en esta versión de Solaris.
Vamos a ver como podemos instalar un ssh en Solaris 8 sin perder el juicio en el intento.
Los paquetes a instalar pueden descargarse desde el repositorio de sunfreeware y son los siguientes:
openssh-5.8p1-sol8-sparc-local.gz
openssl-1.0.0d-sol8-sparc-local.gz
zlib-1.2.5-sol8-sparc-local.gz
libgcc-3.4.6-sol8-sparc-local.gz
prngd-0.9.25-sol8-sparc-local.gz
egd-0.8-sol8-sparc-local.gz
Se llevarán los parches al servidor (dentro de /var/tmp) y procedemos a instalar los paquetes:
gzip -d *.gz
pkgadd -d .
Asimismo, es necesario actualizar el sistema con un parche editado por Sun que permite al sistema generar números aleatorios, a través de /dev/random, paso imprescindible para la generación de las claves pública y privada. El parche es 112438-03.zip y puede descargarse desde el patchfinder de Sun-QEPD (Ahora desde el soporte de Oracle).
unzip 112438-03.zip
patchadd 112438-03
Para acabar, será necesario regenerar y enlazar los dispositivos random a través de un script que ya ha creado un administrador con más mili que el guerrero del antifaz, de modo que procederé a enlazarlo sin más
chmod 755 setup_random.sh
./setup_random.sh
Checking for patch 112438... installed.
Removing random device from name_to_major
Adding driver to system
Finished. You now have the following random devices:
lrwxrwxrwx 1 root other 33 Sep 26 13:08 /dev/random ->
../devices/pseudo/random@0:random
lrwxrwxrwx 1 root other 34 Sep 26 13:08 /dev/urandom ->
../devices/pseudo/random@0:urandom
crw-r--r-- 1 root sys 266, 0 Sep 26 13:08 /devices/pseudo...
/random@0:random
crw-r--r-- 1 root sys 266, 1 Sep 26 13:08 /devices/pseudo...
/random@0:urandom
Se responde y a la pregunta
Do you want to test the new device? (y/n) y
Running: dd if=/dev/random of=/tmp/.7003.10738 bs=512 count=1
1+0 records in
1+0 records out
Running: strings /tmp/.7003.10738
You should see a few lines of random garbage:
}LJZ
oK+2;
7rN],R
)k.^/
,(8T
!iXV
NgxLX
qe,g(S
kq gU(%_
PrA|
*r-$
Se realiza la creación del usuario y el grupo del servicio ssh.
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
La configuración por defecto se puede mantener. En caso de que se quisiera cambiar algún valor, se encuentra en /etc/ssh/sshd.conf
Ahora será necesario generar las claves públicas y privadas del servidor, para esto:
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 ""
Ya podemos crear el script de arranque y parada. Se arrancará el servicio durante el runlevel 2
vi /etc/init.d/sshd
case "$1" in
'start')
if [ -x /usr/local/sbin/sshd ]; then
echo "Starting the secure shell daemon"
/usr/local/sbin/sshd &
fi
;;
'stop')
echo "Stopping the secure shell daemon "
pkill -TERM sshd
;;
*)
echo "Usage: /etc/init.d/sshd { start | stop }"
;;
esac
exit 0
Se enlaza el script para que arranque el servicio automáticamente.
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
Ya podemos arrancar el proceso
/etc/rc2.d/S98sshd start
y comprobar su correcto funcionamiento
ps -e | grep sshd
root 2294 22159 1 16:31:35 ? 0:00 /usr/local/sbin/sshd -R
root 2160 22159 0 16:30:00 ? 0:00 /usr/local/sbin/sshd -R
root 2332 2326 0 16:31:49 pts/4 0:00 grep sshd
root 22159 1 0 Apr 04 ? 0:24 /usr/local/sbin/sshd
Con esto está terminado, ya podemos conectarnos a nuestro Solaris 8 de forma remota y segura. Como debe de ser