CLICK HERE FOR BLOGGER TEMPLATES AND MYSPACE LAYOUTS »

lunes, 9 de febrero de 2009

SSH Secure SHell

Es un protocolo que facilita las comunicaciones seguras entre dos sistemas utilizando la arquitectura de cliente/servidor y permite la conexion remota. SSH encripta la sesion de conexiones, haciendo impoible que alguien pueda obtener contraseñas no encriptadas. Es el remplazo de motedos mas viejos e inseguros para las conexiones remotas por medio de la shell de comandos como lo es el telnet. Se utiliza SSH para inicios de sesion remota y para copiar archivos, con la diferencia que de los demas que estepermite disminuir la amenazas a la seguridad, eso porque el cliente SSH y el servidor usan firmas digitales para verificar su identidad y la comunicacion es encriptada; por ende los intrusos perderan su tiempo al intetar falsificar o analizar informacion porque cada paquete esta cifrado por medio de una llave conocida solo por el sistema local y remoto.

CONFIGURACION DE SSH EN WINDOWS SERVER 2003

Lo primero que hacemos es instalar el OpenSSH. Lo puedes descargar del siguiente link http://openssh.softonic.com/.

Para iniciar la configuracion nos dirigimos al simbolo del sistema (cmd) e inmgresamos a a siguiente ruta "\Archivos de programas\OpenSSH\bin"y creamos el archivo "passwd" donde agregaremos a los usuarios que se le autoriza la comunicacion por el SSH, los usuarios que se ingresen en este archivo tienen que esxistir en el sistema. Para los usuarios locales se agregan con -l y para usuarios que pertenezcan a un dominion se agregan con -d.



NOTA: con "mkpasswd" creamos el archivo, el "Administrador" hace referencia al usuario que tengo en el sistema; las ">>" es la redireccion al archivo, y "\etc\passwd" es la ruta donde se guarda el archivo.

De la misma manera creamos el archivo group que es para los permisos.



Ahora configuramos la variable de entorno parth: INICIO --> clic seccundario en MIPC --> PROPIEDADES y nos se abre la ventana de "propiedads del sistema" y nos dirigimos a la pestaña "opciones avanzadas" y luego en la opcion "variable de entorno"



Se inicia uan nueva ventana "variables de entorno" donde en el campo "variables del sistema" buscamo y selecionamos el "path" y damos clic en la opcion "modificar"



En el campo del valor de la variable colocamos al final la ruta del "bin" de OpenSSh y damos aceptar.



Regresamos a la ventana de variables de entorno automaticamente y ahaora damos en la opcion "nuevo" y creamos la variable HOME en el campo "nombre de la variable" y en el campo "valor de la variable" se ingresa la ruta de Openssh.



Con esto terminamos la configuracion del OpenSSH en nuestro sistema,ahora iniciaremos a configurar de todo lo requerido para la autenticacion de llaves.Iniciaremos con la creacion de nuetro para de llaves privada/publica, la cual de genera con "ssh-keygen" el cual se crea por defecto en la siguiente ruta "Documents and settings\Administrador\.ssh" y como el directorio ".ssh" no existe al crear las claves este proceso lo crea automaticamente.



Nos dirigimos a al directorio donde creamos las llaves en nuestro caso es el directorio "Documents and settings\Administrador\.ssh" y verificamos si alli estan almacenado los siguientes archivos:
ID_DSA --> Archivo donde se encuentra la llave privada
ID_DSA.PUB --> Archivo donde se encuentra la llave publica
KNOWN_HOSTS --> Archivo donde se almacena todas la autenticaciones realizadas es recomendable que este archivo se encuentre vacion cuando estemos realizando autenticaciones porque este puede presentar problema a la hora de la conexion.



Ahora creamos es archivo "authorized_keys" que es el archivo donde se ingresaran todas las llaves publicas de los clientes para su debida autenticacion. Este archivos por defecto se crea en el directorio .ssh pero nosotros lo crearemos en el etc del OpenSSh y debemos de tener mucho cuidado al poner la ruta en el archivo de configuracion.



Ya creado unos de los archivos mas importantes para esta configuracion "authorized_keys" el paso a seguir es enviar nuestra llave purblica a este archivo, es decira, redireccionar el archivo "id_dsa.pub" que esta en la el directorio "Documents and settings\Administrador\.ssh" al archivo "authorized_keys" que se encuentra en el directori "archivos de programas\OpenSSH\etc", esto es para permitir al servidor la auteticacion por llaves publicas.



Y visualizamos el archivo authorized_keys y este nos mostrara nuestra llave publica:



El siguiente paso es configurar el archivo "sshd_config" ubicado en "archivos de programas\OpenSSH\etc" es en este archivo donde definimos toda la configuracion necesaria para que nuestro servidor autentifique con llaves publicas. la configuracion es la siguiente:

# $OpenBSD: sshd_config,v 1.65 2003/08/28 12:54:34 markus Exp $

# This is the sshd server system-wide configuration file. See
# sshd_config(5) for more information.

# This sshd was compiled with PATH=/usr/bin:/bin:/usr/sbin:/sbin

# The strategy used for options in the default sshd_config shipped with
# OpenSSH is to specify options with their default value where
# possible, but leave them commented. Uncommented options change a
# default value.

Port 22
#Protocol 2,1
Protocol 2
ListenAddress 0.0.0.0
#ListenAddress ::

# HostKey for protocol version 1
#HostKey /etc/ssh/ssh_host_key
# HostKeys for protocol version 2
HostKey /etc/ssh_host_rsa_key
HostKey /etc/ssh_host_dsa_key

# Lifetime and size of ephemeral version 1 server key
KeyRegenerationInterval 1h
ServerKeyBits 768

# Logging
#obsoletes QuietMode and FascistLogging
SyslogFacility AUTH
LogLevel INFO

# Authentication:

#LoginGraceTime 2m
PermitRootLogin yes

# The following setting overrides permission checks on host key files
# and directories. For security reasons set this to "yes" when running
# NT/W2K, NTFS and CYGWIN=ntsec.
StrictModes no

RSAAuthentication yes
PubkeyAuthentication yes
AuthorizedKeysFile /etc/authorized_keys

# For this to work you will also need host keys in /etc/ssh/ssh_known_hosts
RhostsRSAAuthentication no
# similar for protocol version 2
HostbasedAuthentication no
# Change to yes if you don't trust ~/.ssh/known_hosts for
# RhostsRSAAuthentication and HostbasedAuthentication
IgnoreUserKnownHosts yes
# Don't read the user's ~/.rhosts and ~/.shosts files
#IgnoreRhosts yes

# To disable tunneled clear text passwords, change to no here!
PasswordAuthentication yes
#PermitEmptyPasswords no

# Change to no to disable s/key passwords
#ChallengeResponseAuthentication yes

# Kerberos options
#KerberosAuthentication no
#KerberosOrLocalPasswd yes
#KerberosTicketCleanup yes

# GSSAPI options
#GSSAPIAuthentication no
#GSSAPICleanupCreds yes

# Set this to 'yes' to enable PAM authentication (via challenge-response)
# and session processing. Depending on your PAM configuration, this may
# bypass the setting of 'PasswordAuthentication'
#UsePAM yes

#AllowTcpForwarding yes
#GatewayPorts no
#X11Forwarding no
#X11DisplayOffset 10
#X11UseLocalhost yes
#PrintMotd yes
#PrintLastLog yes
#KeepAlive yes
#UseLogin no
UsePrivilegeSeparation no
#PermitUserEnvironment no
#Compression yes
#ClientAliveInterval 0
#ClientAliveCountMax 3
#UseDNS yes
#PidFile /var/run/sshd.pid
MaxStartups 10:30:60

# default banner path
Banner /etc/banner.txt

# override default of no subsystems
Subsystem sftp /usr/sbin/sftp-server

Despues de configurar el archivo iniciamos el servidor.



Con esto terminamos la configuracion ahora vamos hacer las practicas correspondientes. Entonces como buenos practicantes lo vamos a realizar primeramente en el equipo local.



Y efectivamente nos pide la clave publica de la llave que ingresamos en el archivo "authorized_keys", al ingresarla nos muestra la fecha, hora y nombre de nuestro equipo.

Para la pruba de linux a windows primero debo de ingresar la clave publica del cliente linux la cual fue mandada por scp desde linux.



Nos dirigimos a "documents and settings\Administrador" y alli encontraremos el archivos que nos enviaron.



Redireccionamos la llave al archivo "authorized_keys" para que este cliente pueda auteticar.



Si miramos el contenido del archivo authorized_keys podremos ver que ya no solo esta la llave de nuestro servidor sino que tambien la de nuestro cliente en linux.



Para finalizar reiniciamos el equipo y hacemos la prueba desde nuestro cliente linux, que nos deberia pedir su llave publica.



Y efectivamente nos funciona.

Para ver la configuracion SSH en linux de clic en el siguiente link http://lamatrix55.blogspot.com/2009/02/openssh.html

2 comentarios:

fernando alex dijo...

me parecio muy interesante,yo estoy empezando aunque tarde pero con ganas a aprender todo lode redes tengo 45anos yen lared he encontrado varios tutoriales y ahi voy ahora estoy viendo configuraciones de routers desde cero haber si puedes mandarme el archivo en grande a mi correo mil gracias,sateliteysistemas@hotmail.com

fernando alex dijo...

me parece un buen trabajo,yo tengo 45 anos y estoy empezando a ver configuraciones dese cero y me parecio muy interesante haber si fueras tan amable de mandarlo a mi correo en forma mas grande el archivo tu sabes por lo d la vista mil gracias mi coreo es cissat_alex@hotmail.com