Instalación de un canal cifrado con F-Secure.
Indice.
-
1.- Introducción.
2.- Introducción al F-Secure SSH.
3. Guía de instalación.
4.- Guía del usuario.
5.- Guía del administrador.
Esta guía de instalación se divide en tres secciones:
- Introducción al F-Secure SSH . Información sobre los productos F-Secure SSH y el protocolo SSH, como se crea la seguridad y qué métodos de criptografía utiliza.
- Guía de Instalación . Pasos a realizar durante el proceso de instalación.
- Guía del usuario . Tareas a realizar cuando se usen los sistemas remotos. Incluye la generación de identidad RSA, autentificación RSA, configuración de terminales, etc.
- Guía del administrador . Presenta varias utilidades UNIX integradas con F-Secure SSH.
El servidor descifra el cifrado RSA y recupera la clave de sesión. Ambas partes comenzarán usando la clave de sesión y la conexión es ahora cifrada. El servidor envía una confirmación cifrada hacia el cliente. La recepción de la confirmación comunica al cliente que el servidor es capaz de descifrar la clave, esto mantiene las claves privadas.
En este momento esta autentificado el servidor utilizando cifrado a nivel de transporte con el protocolo SSH obteniendo total protección contra sniffers en el canal. 2.b.2. Autentificación del usuario. El usuario se puede autentificar en el servidor por varios mecanismos. El diálogo de autentificación del usuario es conducido por el cliente, el cual envía peticiones al servidor. La primera petición siempre pregunta el nombre del usuario para entrar. El servidor responde a cada petición con éxito o error. Los métodos de autentificación soportados son:- Autentificación tradicional mediante contraseña, que se transmite por un canal cifrado.
- Autentificación pura RSA . La idea es que la posesión de una clave particular RSA sirva como autentificación. El servidor tiene una lista de claves públicas aceptadas.
- Ejecutar el programa setup del directorio ssh del conjunto de programas F-Secure SSH.
- Para finalizar basta seguir las instrucciones del programa de instalación de F-Secure SSH en el equipo una vez acabada la instalación se lanza el F-Secure Wizard para generar la identificación RSA.
Para utilizar este programa basta con pulsar dos veces el icono del programa Keygen.exe dentro del grupo de programas del F-Secure. Este programa de inicia automáticamente durante la configuración.
Primero pregunta el nombre del fichero que se usa como fichero de identidad, no se necesita extensión. La clave pública se distingue por la extensión .PUB, es recomendable que se use el fichero por defecto llamado IDENTITY. Después pulsar "Next". A continuación pide un comentario para el fichero de identidad RSA, se recomienda que el comentario deberá ser el nombre de usuario y el nombre del equipo que tiene los ficheros de identidad, por ejemplo: jjjb@neumann.teleco.ulpgc.es. Para proteger el fichero identidad es necesario usar una frase de paso, al teclearla pedirá confirmación. Las mayúsculas y minúsculas se diferencian y no debe tener menos de 6 caracteres de longitud. Al acabar se pulsa "Next". Para cifrar habrá que especificar el número de bits a utilizar como la longitud del par de claves RSA. Se recomienda una longitud de 1024 bits, un tamaño menor no es de confianza así que a mayor longitud de clave, mayor seguridad, con la desventaja de que claves largas ralentizan el proceso de autentificación. La clave mínima es de 512 bits. Para pasar a la pantalla siguiente pulsar el botón "Next". Para crear una semilla aleatoria hay que mover el cursor del ratón en la pantalla de generación hasta que las barras indicadoras de creación de dichos números aleatorios lleguen al final. Cuando finalice se pulsa el botón "Next". Este generador de claves aleatorias obtiene dos números primos, después calcula y verifica un par de claves para usarlas como identidad. Esto puede durar de uno a quince minutos, por lo que no hay que reiniciar el equipo si este no responde. Para empezar este proceso hay que pulsar el botón "Start" y esperar a que acabe la generación de claves para finalizar pulsar "NEXT". El generador de claves de F-Secure esta preparado para salvar los ficheros de identidad, para finalizar el botón "Finish" salva la identidad RSA. 4.- Guía del usuario. 4.a.- Características básicas. 4.a.1.- Conectar con un host remoto. La autentificación RSA esta basada en criptografía de clave pública, es un sistema donde el cifrado y descifrado se realizan por separado y no es posible hallar la clave de descifrado de la clave de cifrado. Durante la instalación del F-Secure SSH se genera un par de claves públicas y privadas para que sirvan como identidad RSA para usarse como autentificación de usuarios. El servidor conoce la parte pública de la identidad RSA, pero el usuario es la única persona que conoce la clave privada. Al entrar en el equipo el programa F-Secure SSH comunica al servidor qué par de claves usa para la autentificación. El servidor verifica que esta clave es permitida y si es así envía el desafío SSH que es un número aleatorio cifrado con la clave pública. Este desafío solo puede descifrarse con la clave privada del servidor. Para responder al desafío el cliente debe poner su frase de paso para bloquear la identidad RSA. El cliente F-Secure descifra el desafío usando la clave privada, obteniendo la identidad correcta sin que ningún otro usuario averiguuml;e la clave privada.Para conectarse en W95 con F-Secure SSH hay que arrancar el icono del programa anterior y ejecutar los siguientes pasos:
- En el menú "Edit" seleccionar "Properties".
- En la etiqueta de conexión teclear el host remoto y el login de usuario.
- Dentro de las opciones seleccionar "Password" para la autentificación.
- En el menú "File" elegir conectar.
- El equipo remoto pedirá la contraseña. Al pulsar OK se inicia la conexión totalmente segura por estar cifrada.
4.a.2.- Crear una plantilla de conexiones.
Las plantillas se usan para permitir salvar las características de una conexión. Además de ayudar a abrir conexiones múltiples con diferentes nombres de host, teniendo los nombres de usuarios y contraseñas sin tener que abrir el botón de propiedades muchas veces. Para crear una conexión plantilla hacer:- En el menú "Edit" elegir "Properties"
- Realizar los cambios necesarios en la conexión.
- Con OK se activan los cambios.
- En el menú "File" la opción "Save" donde F-Secure SSH salva todos los cambios de una conexión plantilla.
- Si existe una sesión activa, basta con teclear "logout", "exit" o "quit" en el sistema remoto.
- Si las aplicaciones que están ejecutándose están utilizando las conexiones TCP/IP hay que cerrarlas.
- En el menú "File" hay que elegir "Disconnect".
Propiedad. |
Descripción. |
Connection | Especifica información del host, del usuario, del tipo de autentificación, puertos, etc. del sistema remoto. |
RSA Identity | Da información de la identidad RSA, permitiendo seleccionar la localización de los ficheros de identidad y cambiar la frase de paso. |
Forward | Muestra las conexiones TCP/IP locales y remotas que serán aseguradas. Identifica los nombres y los parámetros de la conexión. |
Font | Tipo de letra, fondo y color. |
Terminal | Información del número de líneas que tiene el buffer scrollback. |
Keyboard | Mapa de teclas utilizado en el teclado. |
Las pantallas Connection, RSA Identity ya se han visto, las demás tienen el aspecto siguiente:
- La pantalla tipo de terminal indica el tamaño del buffer y las especificaciones de la pantalla terminal que va a utilizar la conexión. El tamaño del buffer debe ser mayor de 100 y el tipo de terminal el vt100.
- Conectar usando contraseña con la cuenta.
- Seleccionar del menú "Edit", "Properties", "RSA Identity".
- Si el campo "comment" está vacío hay que revisar el fichero de identidad RSA o crear una identidad nueva.
- Con el botón copiar se copia la clave pública en la pantalla.
- Cambiar al directorio _SSH de HOME en el sistema remoto.
- Cargar las claves autorizadas en un editor de texto.
- Incluir la clave pública RSA de la pantalla al final del fichero de claves, el fichero debe tener una línea por cada entrada de clave pública.
- Salir del fichero de claves autorizadas y salir del editor de textos.
- Elegir en el menú "Edit", "Properties", "RSA Identity"
- Elegir el botón "Passphrase".
- El comentario puesto podrá mostrarse en el cambio de la ventana de diálogo para cambiar la frase de paso de identidad RSA.
- Escribir la frase de paso y repetirla para confirmarla.
- Con el botón OK la frase de paso toma efecto inmediatamente.
- En la página de propiedades de la identidad RSA pulsar OK.
- Iniciar el servidor X-Window.
- Revisar que las conexiones del equipo servidor con X-Window sean permitidas desde la dirección IP 127.0.0.
- Elegir del menú "Edit" "Properties".
- En la pestaña de conexión hay que redirigir X11.y pulsar el botón OK.
- En el menú "File" hay que hacer la conexión utilizando autentificación por contraseña o utilizando autentificación por RSA.
- Solo queda teclear algún comando en la ventana terminal para iniciar cualquier aplicación X11, como por ejemplo xterm.
F-Secure puede asegurar cualquier conexión con la tecnología de direccionamiento de puertos ("TCP/IP port forwarding"). Funciona creando un servidor proxy para el puerto fuente que el servicio TCP/IP lo utilice. El servidor proxy espera en la máquina local la conexión del programa cliente hacia el puerto fuente. SSH entonces dirige la petición y los datos sobre el canal seguro hacia el sistema remoto. El servidor SSH hace la conexión hacia el host destino y hacia el puerto destino.
La mayoría de los servicios que usan TCP/IP pueden asegurarse. F-Secure provee direccionamiento automático para el sistema de ventanas X11 usado en máquinas UNIX. Para redirigir el resto de conexiones TCP/IP hay que configurarlas manualmente de la forma siguiente:- Determinar los números de los puertos usados por el servicio.
- Del menú "Edit" escoger "Properties".
- En la pestaña de redirección, seleccionar "Local" y elegir "New" para definir que hay que asegurar dicha conexión TCP/IP.
- Especificar un nombre para la conexión.
- Especificar un puerto fuente, es el puerto a usarse para la conexión cliente.
- Especificar el equipo destino, el equipo que ejecuta el servicio. Si es el mismo equipo poner la dirección 127.0.0.1 para especificar que la conexión debe ser dirigida a través de una conexión segura y después conectar el servicio.
- Especificar el puerto destino del servidor que espera las conexiones.
- Si se especifica un redireccionado local habrá que revisar que las conexiones permitidas locales estén configuradas correctamente para que nadie utilice las conexiones excepto el equipo inicial.
- Para guardar la conexión pulsar OK.
- Del menú "File" elegir conectar.
[Settings] RandomSeed=f69f64... # Semilla para cifrar [F-Secure SSH] Language=ENG # Idioma por defecto DefaultUser=root InstallDirectory=C:\F-SECURE\SSH # Directorio de instalación ProgramDirectory=C:\F-SECURE\SSH\PROGRAM # Programas ejecutables [F-Secure SSH Recent Host List] # Lista de servidores DefaultHost=ssh.company.com NumHosts=3 # Conexiones almacenadas Host1=ssh.company.com Host2=www.company.com Host3=ftp.company.com [F-Secure SSH Recent File List] File1=C:\F-SECURE\SSH\CONNECT.SSH # Conexiones recientes [Web Connection Settings] BrowserDefault=C:\NETSCAPE\PROGRAMS\NETSCAPE.EXE # Navegador BrowserArea=Europe BrowserConfigured=Yes
En la ayuda del F-Secure "Users Guide", "Appendices", "Appendix A" existe más información de dicho fichero.
4.d.2.- Apéndice B: El fichero DEFAULTS.SSH. Es el fichero plantilla de conexión utilizado para cargar los parámetros por defecto cada vez que se ejecuta SSH. Se puede editar DEFAULT.SSH abriendo el fichero como una plantilla de conexión normal, después se realizan los cambios y salvamos el fichero al disco, una nueva sesión SSH tendrá estas características por defecto. Si el fichero DEFAULT no existe se utiliza por defecto el código del programa ("hard-coded"). Para crear un nuevo DEFAULT.SSH hay que editar una nueva plantilla de conexión y salvarla en el directorio de instalación (por ejemplo F-Secure/SSH/DEFAULT.SSH). 5.- Guía del administrador. 5.a.- Configuración Unix. 5.a.1.- Instalación. El programa cliente y servidor del F-Secure SSH está disponible como paquetes RPM para Linux RedHat. Una vez descargados los paquetes ssh y ssh-clients es posible instalarlos de una manera sencilla con teclear el comando:rpm -ivh
Obteniendo en la máquina el resultado siguiente:
[root@fire juanjo]# rpm -ivh ssh-1.2.20-1i.i386.rpm ssh ################################################## Initializing random number generator... Generating p: ............++ (distance 164) Generating q: .............................++ (distance 526) Computing the keys... Testing the keys... Key generation complete. Your identification has been saved in /etc/ssh/ssh_host_key. Your public key is: 1024 33 872462892830776252843137012780896852708392257880227066866112141381072 193064651353250647265717178973360089465975803446689823957155002828717 274351102208870358789410913745839736770511932542577240772286874108824 099697642230672797157117414187266037082552546335429272805666966415415 7176294218284252125396414942103root@fire.ulpgc.es Your public key has been saved in /etc/ssh/ssh_host_key.pub [root@fire juanjo]#
Para instalar el cliente basta con poner el nombre del paquete cliente instalándose los dos en el mismo directorio de la forma siguiente:
[root@fire juanjo]# rpm -ivh ssh-clients-1.2.20-1i.i386.rpm ssh-clients ########################################
Una vez instalado el programa hay que arrancar el demonio SSHD que escuche las posibles conexiones a la máquina. El demonio en Linos RedHat aparece en el fichero /ect/rc3.d con el nombre sshd. Para que se active se puede esperar a reiniciar la máquina o bien ejecutar el programa de /etc/rc.d/init.d con el comando:
./sshd.init start
El programa servidor muestra una ayuda al ejecutar "ssh" sin parámetros que tiene la forma siguiente:
[root@fire juanjo]# ssh Usage: ssh [options] host [command] Options: -l user Log in using this user name. -n Redirect input from /dev/null. -a Disable authentication agent forwarding. -x Disable X11 connection forwarding. -i file Identity for RSA authentication (default: ~/.ssh/identity). -t Tty; allocate a tty even if command is given. -v Verbose; display verbose debugging messages. -V Display version number only. -q Quiet; don't display any warning messages. -f Fork into background after authentication. -e char Set escape character; `none'' = disable (default: ~). -c cipher Select encryption algorithm: `idea'', `blowfish'', `3des'' -p port Connect to this port. Server must be on the same port. -P Don't use priviledged source port. -L listen-port:host:port Forward local port to remote address -R listen-port:host:port Forward remote port to local address These cause ssh to listen for connections on a port, and forward them to the other side by connecting to host:port. -C Enable compression. -o 'option' Process the option as if it was read from a configuration file. [root@fire juanjo]#Para instalar SSH en otras distribuciones Linux hay que descomprimir el paquete con gzip y tar. Después compilar el código fuente con los comandos "/configure", "make", "make install". En red local se instala con "make install" y "make hostinstall" para generar claves e instalar los ficheros de configuración. Es conveniente revisar los ficheros de configuración del cliente y del servidor (/etc/sshd_config, /etc/ssh_config). Hay que crear el fichero /etc/ssh_Know_host y actualizarlo periódicamente, el formato de este fichero está documentado en la página del manual sshd. 5.a.2.- Opciones de configuración. El paquete dispone de un script de configuración que genera automáticamente la instalación. Este script acepta diversas opciones, las más importantes son:
CC= compiler #especifica el nombre del compilador. CFLAGS= flags #parámetros del compilador C. LDFLAGS= flags #parámetros de ld (librerías, etc).
Si todo esta bien configurado y se decide dar valores en la línea de comandos es necesario hacer "make distclean" antes de reconfigurar.
5.a.3.- Ficheros de configuración. El fichero de configuración del servidor /etc/sshd_config especifica los métodos de autentificación permitidos, host, números de puertos, etc. Por defecto es aceptado en la mayoría de las configuraciones pero es posible revisarlo, su formato está documentado en la página del manual sshd. El cliente, sin embargo, lee la configuración del fichero /etc/ssh_config, las opciones de este fichero se pueden modificar para cada usuario, su ayuda es la ssh. 5.a.4.- El fichero Makefile. Este fichero se genera por el Makefile.in al ejecutar el configure. Los parámetros de configuración son all (compilar todo), install (incluir binarios y man), hostinstall (genera claves de host e instala los ficheros configurables), uninstall (borra los ficheros instalados), clean (borra ficheros objetos y ejecutables), distclean (borrar todo). 5.a.5.- Portabilidad. Este software se puede utilizar en: 386, AIX, RS6000, HPUX y HPPA, IRIX, Linos, Slackware, RedHat, Macintosh, SCO UNIX, SINIX, Solaris, Sparc, etc. 5.a.6.- Inicializando el servidor. El servidor debe iniciarse en el arranque desde /etc/rc3.d o equivalentes. No necesita ningún argumento y es posible especificar una bandera opcional para especificar el tamaño de las claves RSA. Si el tamaño de la clave es menos de 512 bits es inseguro, claves mayores dan mas seguridad pero requieren mas tiempo de generación y uso. Con 1024 bits es seguro en cualquier tecnología. El servidor no está iniciado usando inetd porque necesita generar la clave RSA antes de servir la conexión, esto puede durar minutos en máquinas lentas. Si se arranca desde inetd hay que indicar el servidor con la bandera "-i". 5.a.7.- El servidor se ejecuta como usuario administrador. F-Secure instala dos programas que necesitan privilegios especiales, el ssh es el programa cliente y está por defecto instalado como raíz suid, porque necesita crear un puerto privilegiado para utilizar el fichero .rhosts con autentificación. Si no esta instalado como suid root también puede utilizarse. Sshd es el demonio que escucha las conexiones. Es preferible ejecutarlo como raíz ya que necesita hacer setuid(), update, utmp, chown, ptys, etc. cuando entre un usuario. Si no se ejecuta como raíz habrá que especificar la opción "-p port" para un puerto alternativo. 5.a.8.- Problemas comunes. La ayuda en línea de F-secure muestra una sección con los problemas más comunes durante el proceso de instalación al establecer las contraseñas, errores de compilación, errores sshd, autentificación .rhosts, conexiones erróneas, etc.