Sunteți pe pagina 1din 25

UNIVERSIDAD GERARDO BARRIOS

FACULTAD DE CIENCIAS Y TECNOLOGIA

INGENIERIA EN SISTEMAS Y REDES INFORMATICAS

CATEDRA:

DESARROLLO DE SOFTWARE LIBRE II

DOCENTE:

WILLIAM ALEXANDER VENTURA VENTURA

SSH

PRESENTADO POR:

ILIANA EMRITA HERNNDEZ HERNNDEZ

CINDY MARICELA MEDRANO ACEVEDO

DARLIN ALEXANDER VELSQUEZ ALEGRIA

CLAUDIA JOSABET ZELAYA QUINTANILLA

SAN MIGUEL, 23 DE AGOSTO DE 2017


Introduccin

El sistema de comunicacin virtual ha marcado un antes y despus en la historia de


la humanidad, por eso con el paso de los aos se implementan nuevas tecnologas
para brindar la oportunidad que el usuario establezca una comunicacin segura.

Hacer hincapi en la importancia que tiene la confidencialidad de la informacin al


momento de viajar por la web de un destino a otro es un punto de gran inters para
todos los usuarios, los mtodos para salvaguardar la informacin son muchos, pero
SSH es el tema en cuestin.

SSH es una herramienta sumamente adecuada para la encriptacin de informacin


durante el viaje a su destino, la encriptacin se basa en no ser entendible al lenguaje
comn, pero no es un mtodo que sirve como contrarrestar virus o ataques
mayores, ms bien se utiliza como una herramienta para garantizar que si la
informacin llegar a su destino sin sufrir alteraciones en el camino.

Implementar esta herramienta en el proceso de enseanza aprendizaje abre un


universo infinito de posibilidades para la fcil comprensin de la misma. A lo largo
de la documentacin se abordan aspectos importantes como conceptos bsicos
pero puntuales y procesos que se realizan con la finalidad de establecer una
comunicacin fluida y segura, utilizando llaves criptogrficas y diversos procesos
por medio de la aplicacin de comandos dentro de la terminal en cada mquina
virtual, as como en Gitbash del lado de Windows.

La topologa utilizada se basa en establecer comunicacin dentro de dos mquinas


virtuales a travs de una red interna para ambas y una red de Solo Anfitrin que
permite la comunicacin entre la maquina fsica y las virtuales. El alcance de la
competencia es comprender el funcionamiento que tendr la utilizacin de SSH
dentro de la comunicacin establecida y la forma en la que el usuario puede ser
manipulado segn los permisos que se les asigne.
Objetivos

Objetivo General

Disear un sistema de configuracin virtual basados en Debian 9

Objetivos Especficos

Definir las configuraciones de seguridad apropiadas para SSH


Establecer configuraciones innovadoras determinadas por las
investigaciones.
Marco Terico

Qu es un servidor?

Un servidor es una aplicacin en ejecucin (software) capaz de atender las


peticiones de un cliente y devolverle una respuesta en concordancia. Los servidores
se pueden ejecutar en cualquier tipo de computadora, incluso en computadoras
dedicadas a las cuales se les conoce individualmente como el servidor. En la
mayora de los casos una misma computadora puede proveer mltiples servicios y
tener varios servidores en funcionamiento. La ventaja de montar un servidor en
computadoras dedicadas es la seguridad. Por esta razn la mayora de los
servidores son procesos diseados de forma que puedan funcionar en
computadoras de propsito especfico. Los servidores operan a travs de una
arquitectura cliente-servidor.1

Qu es Debian?

Debian es un sistema operativo libre, desarrollado por miles de voluntarios de todo


el mundo que colaboran a travs de Internet. Los principales puntos fuertes del
proyecto Debian son su base de voluntarios, su dedicacin al Contrato Social
Debian y el Software Libre, y su compromiso de ofrecer el mejor sistema operativo
posible.2

Ventajas y Desventajas de utilizar Debian como servidor

Ventajas

La instalacin es sencilla.
Integracin de los paquetes y cdigo fuente.
Sistema simple de actualizacin y de seguimiento de errores.
Sistema ms estable y rpido.
Controladores escritos por la comunidad de usuario.

1
https://es.wikipedia.org/wiki/Servidor
2
https://www.debian.org/News/2017/20170617
Desventajas

Dificultad a la hora de realizar las configuraciones.


Dificultad cuando se instala hardware demasiado novedoso, curioso o ya
obsoleto.
Debian acaba adoleciendo de prestaciones en relacin con la disponibilidad
de algunos paquetes de software ms populares.3

Configuracin de Red en Debian 9

Para comenzar hay que saber que cualquier dispositivo del sistema tiene asociado
un archivo en Linux para poder hacer referencia a l. Esta situacin tambin es
aplicable a los adaptadores de red que Linux detecta. Por ejemplo, un adaptador
Ethernet puede tener asociado el dispositivo enp0s3, etc.

Las operaciones ms sencillas que se pueden realizar con un adaptador de red de


Linux son activarlo o desactivarlo. Cuando un adaptador de red esta desactivado,
no puede enviar o recibir informacin por la red. Es un estado parecido a cuando
una unidad de disco se encuentra se encuentra conectada al ordenador, pero esta
desmontada. Solamente cuando se activa el dispositivo es posible enviar o recibir
informacin a travs de l. La orden que se utiliza para activar una interfaz de red y
que sirve para cualquier distribucin de Linux es ifup que debe ser ejecutada con
privilegios de administrador (root). Y la orden que permite desactivar un interfaz de
red es ifdown.

Configuracin de alto nivel, consiste en emplear un archivo de configuracin de texto


que almacena todos los parmetros de la red con un formato definido. Este archivo
de configuracin puede cambiar en nombre y ubicacin dependiendo de la
distribucin y versin de Linux, en nuestro caso de Debian 9 es
/etc/network/interfaces. En una configuracin de red alto nivel es posible establecer
los parmetros de un adaptador virtual o lgico, es decir, que no existe fsicamente
para, posteriormente, asociarlo con el adaptador fsico correspondiente (enp0s3,
enp0s8, etc.). Para establecer la configuracin de red de alto nivel, se usa la orden

3
https://webtematica.com/centos-o-debian-para-servidores-web
ifdown para desactivar la interfaz, se modifica el archivo de configuracin y
finalmente se usa la orden ifup para activarlo.4

Repositorios en Debian

Un repositorio, es un almacn de programas disponibles para la distribucin, donde


el software esta optimizado y configurado para integrarse de manera adecuada al
sistema. Cuando uno utiliza uno de los mtodos disponibles para obtener programas
de los repositorios el paquete deb involucrado, as como tambin todas sus
dependencias son descargados a la PC e instalados.5

En este caso al igual que con las interfaces de red estos repositorios son llamados
desde un archivo que los contiene, dicho archivo se encuentra en
/etc/apt/sources.list, y es aqu donde se deben de colocar cada una de las rutas que
nos ayudaran a descargar cada uno de las actualizaciones para los programas del
sistema operativo.

Configuracin del Servicio de Terminal Remoto

Los protocolos de terminal remoto ofrecen funciones que permiten la administracin


remota de equipos. Esto evita que los administradores y personal encargado del
mantenimiento de los equipos informticos tengan que desplazarse al lugar donde
se encuentran los ordenadores con incidencias. Por esta razn, es necesario
disponer de algn otro protocolo que nos permita enviar rdenes para que se
ejecuten en el servidor. Este mecanismo se conoce como terminal remoto.

Es posible conectarse a un servidor usando un protocolo de terminal remoto de dos


formas:

Intrprete de rdenes: se trata de un mecanismo que nos permite


conectarnos con un servidor e iniciar un intrprete de rdenes. En este
intrprete, el usuario escribe las rdenes a ejecutar, se envan al servidor, se

4
Francisco Jos Molina Robles, Ivn Peramato Garca, Enciclopedia de GNU/Linux para usuario y administrado,
(Madrid, Espaa: Alfaomega Grupo Editor, S.A de C.V, 2014). 397-401.
5
http://www.tubuntux.com/2011/11/la-importancia-de-los-repositorios.html
ejecutan all y se devuelven los resultados. Desde el equipo cliente hay que
enviar las rdenes aceptadas por el servidor.
Terminal grfico: este mecanismo muestra, en una ventana del equipo
cliente, el mismo entorno que aparecera si estuviera delante del servidor. De
esta forma, el usuario dispone de todas las opciones de administracin sin
necesidad de tener que moverse a donde se encuentre el servidor.

SSH

Al igual que Telnet, SSH es un servicio soportado por el protocolo que lleva su
mismo nombre. El funcionamiento de este servicio es parecido a Telnet, aunque
incluye mejoras importantes en cuanto a seguridad, funciones adicionales (como la
copia y transferencia de archivos), as como la posibilidad de ejecucin de
aplicaciones en el entorno grfico del servidor. Adems, otros servicios como POP,
VNC, FTP o el sistema gestor de bases de datos, se pueden beneficiar de SSH para
que las comunicaciones sean seguras.

El servicio SSH atiende el establecimiento de sesiones y solicitudes de clientes a


travs del puerto 22. Tambin requiere que el usuario se autentifique en el servidor,
aunque, a diferencia de Telnet, tanto el nombre de usuario como su contrasea,
viajan cifrados por las redes intermedias que separan al cliente del servidor. Una
vez iniciada la sesin, la informacin intercambiada entre ambos circula encriptada.
SSH utiliza mecanismos de clave pblica y privada para el cifrado de informacin,
basados en algoritmos RSA y DSA.

El servicio SSH ya viene preinstalado en muchas distribuciones de Linux gracias al


paquete openssh-server, que incluye los programas del servidor y del cliente. Para
iniciar el servicio SSH, se debe de hacer de la siguiente manera: /etc/init.d/ssh start.

Cliente SSH

La instalacin de los programas cliente para los servicios SSH en Linux requiere
que los paquetes clientes de estos servicios estn instalados. Por su parte, el
paquete openssh contiene el cliente de conexin para el protocolo SSH, que
normalmente viene preinstalado en la mayora de las distribuciones de Linux (no en
el caso de Debian). El formato de la orden para establecer una sesin mediante
SSH es: ssh [Usuario@]Servidor.

Los clientes ssh se dividen en dos grupos:

Terminal SSH Es un emulador de terminal que permite acceder de forma remota


desde un equipo a la lnea de comandos del equipo remoto, utilizando el protocolo
SSH.

Cliente SFTP Se trata de un cliente para transferencia de archivos que utiliza el


Protocolo de Transferencia Segura de Archivos. Sus siglas significan en ingls
(Secure File Transfer Protocol (SFTP))

Clientes Linux

openssh-client: este software ofrece utilidades para acceso remoto (cliente ssh),
copia de seguridad de archivos (scp) y transferencia segura de archivos (sftp), entre
otras.

FileZilla: Cliente SFTP.

Clientes Windows

PuTTY: Terminal SSH.

WinSCP: Cliente SFTP.

FileZilla: Cliente SFTP.6

Ejemplo.

El usuario clara dispone de un equipo Linux con direccin IP 10.0.1.93. Desea


establecer una conexin remota y segura con un servidor tambin Linux, cuya
direccin IP es conocida (10.0.1.39). El objetivo de la conexin ser la bsqueda
del fichero apuntes.doc perteneciente a su compaera ana y su posterior copia a su
carpeta personal.

6
https://servidordebian.org/es/stretch/config/remote_access/ssh_protocol
En primer lugar, lo que debe hacer el usuario clara es establecer una
conexin remota segura con el equipo remoto:

ssh ana@10.0.1.39

Lo siguiente que va a hacer es buscar el archivo apuntes.doc:

find . name apuntes.doc

Suponiendo que lo ha encontrado en la carpeta apuntes, procede a su


copia segura con la orden scp:

scp ./apuntes/apuntes.doc clara@10.0.1.937

Mtodos de Autenticacin en SSH

SSH puede utilizar varios mtodos de autenticacin y hay archivos que controlan
los permisos para estos mtodos.

Autenticacin mediante usuario/contrasea

Es la autenticacin bsica. Se puede habilitar o deshabilitar en /etc/ssh/sshd_config


y /etc/ssh/ssh_config.

Autenticacin basada en host/usuario

Como en los comandos "r" se puede configurar el acceso a ssh mediante ficheros
que especifican desde que usuario y mquina se permite.

Estos ficheros son:

/etc/ssh/shosts.equiv: con el mismo funcionamiento que /etc/hosts.equiv


$HOME/.shosts: a nivel de usuario, como el fichero $HOME/.rhost

Autenticacin mediante claves

Para obtener el mximo partido a SSH podemos utilizar su capacidad de


autenticacin mediante clave pblica y privada. Para ello el cliente debe generar sus
claves privada y pblica, compartiendo esta ltima con el servidor para poder

7
Molina Robles, Peramato Garca, Enciclopedia de GNU/Linux para usuario y administrado, 720-726.
identificarse. Una vez hecho esto las conexiones se podrn establecer sin
necesidad de utilizar el esquema clsico de usuario y contrasea.

Un mensaje encriptado con la pblica slo puede desencriptarse con la


correspondiente clave privada. OpenSSH utiliza estas propiedades de los
algoritmos de clave pblica y privada para realizar la autenticacin sin intercambio
de contraseas.8

8
http://www3.uji.es/~galdu/ssh_vs_rsh/x242.html
Arquitectura y Configuraciones
Manuales

ESQUEMA DE RED

En Virtual Box se encuentran disponibles distintos tipos de tarjetas de red, las cuales
pueden ser utilizadas para ciertas necesidades, dicho esto, el esquema de red
utilizado pretende establecer comunicacin en una red interna entre las dos
mquinas virtuales, de igual forma se establece comunicacin entre las mquinas
virtuales con la fsica.

Las interfaces utilizadas son:

Adaptador Se utiliza para brindar el acceso a internet de forma automtica


NAT sin configurar
Adaptador Se utiliza para conectar una maquina anfitriona (Fsica) con la
Solo Anfitrin mquina virtual
Adaptador Se utiliza para conectar dos mquinas virtuales
para Red
Interna

Dicho esto, las direcciones con las que se sirve la red dependen del id
192.168.56.0/24

o Red Solo Anfitrion 192.168.56.10 (Mquina 1), 192.168.56.20 (Mquina 2)


o Red Interna 192.168.1.1 (Mquina 1), 192.168.1.2 (Mquina 2)
Configuracin de mquinas para red interna cuyas direcciones son 192.168.1.1 y
192.168.1.2
1. Seleccionar la mquina virtual (apagada) >> click en Configuracin

2. En la configuracin dentro del apartado de red estn disponibles las opciones


para habilitar el tipo de adaptador deseado, el Adaptador 1 sirve NAT, el
Adaptador 2 pertenece a la red Solo Anfitrin y el Adaptador 3 funcionar
como Red Interna.

NOTA: asegurar que el cable est conectado, caso contrario no podr brindar
conectividad
Una vez habilitado el adaptador de Red Interna en ambas maquinas proceder a los
siguientes pasos para configuracin de las interfaces.

3. Visualizar el estado de configuracin de ip en cada interfaz con ip addr, en


el panel aparecen las interfaces disponibles, configuradas con sus
direcciones o no.

4. La interfaz agregada no tiene configurada una direccin y aparece


identificada como enp0s9
5. Agregar al panel de edicin de las interfaces mediante el comando nano
/etc/network/interfaces

6. En este fichero se deben configurar las interfaces con sus respectivas


direcciones IP y mscaras de Subred para ambas mquinas, la sintaxis
utilizada es la siguiente:
Se observa que cada interfaz debe configurarse segn su identificador, la interfaz
para la mquina1 de Red Interna es enp0s9, se configura como una direccin
esttica porque su asignacin es puntual, si fuera una configuracin dinmica por
dhcp este servira las direcciones de forma automatizada dependiendo de las que
estn disponibles para asignar.

7. Reiniciar con reboot, de esta forma las configuraciones sern guardadas y


habilitadas
8. Iniciada la maquina nuevamente acceder como Super Usuario y realizar un
ip addr para verificar que las direcciones estn disponibles, si no funciona o
no asigna direccin se debe verificar el fichero para poder corregir errores o
levantar nuevamente las interfaces
9. Una vez verificadas las configuraciones procederemos a hacer ping entre las
dos maquinas
CONFIGURACION DE SSH

Se requiere:

o Tener Gibash instalado


o Mquinas Virtuales previamente instaladas
o Conexin anfitriona entre Windows y Linux
o Configuracion de repositorios
o Conexin a internet

PASOS:

1. Comprobar la conexin entre maquina fsica y virtual y viceversa


2. En maquina virtual, instalar openssh-server: apt-get install openssh-server
3. Pasar a usuario normal y generar las llaves criptogrficas utilizando: ssh-keygen

o Nos notifica que se guardara en la carpeta /home/usuario/.ssh/id_rsa la


llave privada presionamos enter

o No asociamos ninguna frase de encriptacin a la llave privada solo


presionamos enter y luego un enter ms.

o La llave privada es de uso personal del usuario en cuestin, y es la que le


permitir hacer loggin.

o Luego nos notifica que en la carpeta /home/usuario/.ssh/id_rsa.pub se


guard la clave pblica que es la que se almacenara en el servidor.

4. Pasar a usuario root nuevamente y copiar la llave publica que se gener al


fichero /home/usuario/.ssh/authorized_keys para indicar que el usuario
ingresara con llave privada que corresponde con dicha llave publica autorizada,
emitir:
cat /home/usuario/.ssh/id_rsa.pub >> /home/usuario/.ssh/authorized_keys
PARTE II

1. Entrar a Gitbash y emitir cd


2. Crear una carpeta llamada key: mkdir Documents/key
3. Copiar la llave privada con scp del servidor debian hacia el directorio que hemos
creado:
scp root@192.168.56.x:/home/usuario/.ssh/id_rsa Documents/key/

De esta forma le decimos a git que copie la clave privada del servidor al
directorio local creado

4. Comprobar que la llave privada est copiada con: ls Documents/key/

PARTE III

1. Configuracin de SSH para solo permitir accesos basados en criptografa


asimtrica
2. Iniciamos una sesin ssh como root desde Gitbash
3. Abrimos el archivo de configuracin de ssh llamado sshd_conf con: nano
/etc/ssh/sshd _config

Modificar los parmetros:


o Permitir que escuche la direccin IP del servidor ubicado un:
ListenAddress 192.168.x.x

o Bloquear el acceso de root:


LoginGraceTime 120
PermitRootLogin no
StrictModes yes

o Deshabilitar la autenticacin por contraseas:


PasswordAuthentication no
o Quitar el comentario en la lnea de Banner y sustituimos el final de la lnea
por issue.net cuya finalidad es mostrar una advertencia que no debe
continuar si no posee los permisos de accesos requeridos:
Banner /etc/issue.net

Guardar y salir de nano

Ahora editaremos el archivo ubicado en /etc/issue.net y configuraremos el mensaje


de advertencia en el que se indique que solo el personal autorizado puede acceder
al sistema y que si no es un usuario autorizado podr ser procesado legalmente:
/etc/init.d/ssh restart

Salir de la sesin ssh: exit

PARTE IV
Obtener acceso utilizando llave privada del usuario

1. Iniciar sesin en ssh utilizando GitBash:


ssh i Documents/key/id_rsa usuario@192.168.56.x
-i sirve para tomar como parmetro la ruta donde se encuentra alojada
la llave privada del usuario. Cuando el acceso o inicio de sesin sea exitoso nos
damos cuenta que solo se va a realizar contando con la llave

2. Salir: exit
3. Intentar acceder pero en este caso con root: ssh root@192.168.56.x y el acceso
es denegado
4. Ingresar con root y la llave privada del usuario: ssh i Documents/key/id_rsa
root@192.168.56.x y el acceso es denegado
5. Intentar acceder con el usuario sin llave privada: ssh usuario@192.168.56.x y
el acceso se negara nuevamente.
Conclusiones y Recomendaciones

Conclusiones

SSH es un servicio de autenticacin para brindar seguridad en cdigo encriptado,


adems se contempla que las medidas de seguridad que se establecen a travs de
las llaves dan cobertura a la comunicacin entre cliente y servidor.

A travs de la investigacin e implementacin de SSH se comprende acerca del


esquema de seguridad y encriptacin de este servicio, el mismo que parte de un
sistema de defensa en una red y que controla su acceso, donde protege los
servicios y recursos compartidos, permitiendo tener un entorno ms confiable y
seguro, entonces podemos contemplar que es un servicio amigable para la
comunicacin segura.

El manejo de la informacin dentro de los ficheros es bastante importante, cada


cambio realizado debe corroborarse de tal forma que se realice todo lo ordenado
dentro de los mismos, cada configuracin hecha debe guardarse para que se
interprete como un cambio reciente y valido.

Es esencial realizar pruebas peridicas de conectividad y revisin de direcciones


establecidas en las mquinas ya que en ciertas ocasiones las interfaces pueden
caer. Los permisos para los usuarios pueden ser afectados en diversos aspectos
por lo tanto es necesario recordar cada cambio realizado y as evitar posteriores
problemas.

Copiar llaves o archivos requiere orden lgico con respecto a la sintaxis utilizada,
declarando instruccin de origen y destino especificando los archivos, por lo tanto,
se deben comprender estos procesos y practicarlos peridicamente.
Recomendaciones

Asegurarse que cada adaptador tenga sus cables conectados.


Ante cualquier problema de conectividad asegurarse que los firewalls estn
desactivados
Trabajar dentro del rango de direcciones IP establecido por la maquina fsica
Utilizar los repositorios actualizados correspondiente a la versin de deban
que se est utilizando
Delimitar el usuario que tendr la autorizacin para acceder al sistema
Anexos

S-ar putea să vă placă și