Está en la página 1de 9

ADMINISTRACIÓN DE Docente: Ing.

Washington Ramírez
SISTEMAS OPERATIVOS
CIENCIAS DE LA Período Lectivo: PX
COMPUTACIÓN

FORMATO DE GUÍA DE PRÁCTICA DE LABORATORIO / TALLERES / CENTROS DE SIMULACIÓN – PARA


DOCENTES

CARRERA: Ciencias de ASIGNATURA: ADMINISTRACIÓN DE SISTEMAS OPERATIVOS


la Computación
NRO. PRÁCTICA: 3 TÍTULO PRÁCTICA: Protocolo SSH
OBJETIVO
• Configurar un servidor GNU/Linux para conexiones remotas utilizando el protocolo Secure SHell

• TRABAJO PREPARATORIO: (consulte)


3 Protocolo SSH (Secure Shell)
3.1 Introducción
3.2 ¿Cómo funciona SSH?
3.3 Comprendiendo las diferentes técnicas de cifrado
3.4 ¿Cómo funciona el protocolo SSH con estas técnicas de cifrado?
3.5 Negociación de cifrado de sesión
3.6 Autenticación del usuario

• MATERIALES PARA LA PRÁCTICA:


a) Maquina física o virtual con sistema GNU/Linux Debian 11
b) Maquina física o virtual con sistema GNU/Linux o Windows
c) Conexión de red entre los dos sistemas (ítems a y b)
d) Conexión a Internet

• PROCEDIMIENTO:

Instalación y configuración de un servidor SSH


Pasos y comandos para instalar, configurar y poner en marcha SSH en un servidor
Linux:
1 Instalación de SSH
• Para instalar SSH en un servidor Linux Debian, abre una terminal y ejecuta el
siguiente comando:
sudo apt-get install openssh-server
Si utilizas otro sistema operativo Linux, consulta la documentación para
conocer el comando específico.

• El directorio donde se encuentra instalado es /etc/ssh. En este directorio


encontramos entre otros archivos:
 sshd_config: archivo de configuración del servidor SSH
 ssh_config: archivo de configuración del cliente SSH
 ssh_host_*_key: clave privada de la máquina (* puede ser rsa o dsa)
 ssh_host_*_key.pub: clave pública de la máquina (* puede ser rsa o dsa)

• Verificamos el servicio, utilizando el comando:

Resolución CS N° 076-04-2016-04-20
ADMINISTRACIÓN DE Docente: Ing. Washington Ramírez
SISTEMAS OPERATIVOS
CIENCIAS DE LA Período Lectivo: PX
COMPUTACIÓN

• Comandos para cambiar el estado del servicio SSH


 sudo systemctl start ssh: para iniciar el servidor
 sudo systemctl stop ssh: para detener el servidor
 sudo systemctl restart ssh: para reiniciar el servidor
 sudo systemctl disable ssh: para no iniciar el servidor automáticamente
2 Habilitar puerto en el firewall ntables
• Para habilitar el puerto 22 en nftables (firewall) y permitir el tráfico de SSH,
puede seguir los siguientes pasos:

 Comprobar que nftables está instalado y en ejecución ejecutando el


siguiente comando:
sudo systemctl start nftables
sudo systemctl status nftables

 Agregar una regla para permitir el tráfico entrante en el puerto 22. Para
hacer esto, crea un archivo de reglas de nftables en el directorio
/etc/nftables/ con el siguiente comando:
sudo nano /etc/nftables.conf
 En el archivo, agrega las siguientes líneas para permitir el tráfico entrante
en el puerto 22:
table inet filter {
chain input {
type filter hook input priority 0;

Resolución CS N° 076-04-2016-04-20
ADMINISTRACIÓN DE Docente: Ing. Washington Ramírez
SISTEMAS OPERATIVOS
CIENCIAS DE LA Período Lectivo: PX
COMPUTACIÓN

ct state established,related accept


tcp dport 22 accept
drop
}
}
Estas líneas permiten el tráfico entrante en el puerto 22 y bloquean todo
lo demás.

 Guarda y cierra el archivo.


 Reinicia el servicio de nftables para aplicar las nuevas reglas:
sudo systemctl restart nftables
Ahora el puerto 22 está habilitado en nftables en tu sistema Debian.

• Verificar que existe conexión con el servidor Debian. Para esto utilizar el comando
ping y verificar que haya respuesta desde el servidor. Desde la consola remota
ping 192.168.145.217

3 Acceder al servidor SSH


 Conocer la dirección IP de su escritorio/servidor
hostname -I
 Conocer el nombre de usuario de inicio de sesión de su escritorio/servidor
whoami

 Una vez que conozca el nombre de usuario de inicio de sesión y la dirección


IP de su escritorio/servidor puede conectarse a Debian a través de SSH de
esta manera:
ssh nombre_usuario@ip_servidor

NOTAS:
Asegúrese de reemplazar y con el nombre de usuario de inicio de sesión y la
dirección IP de su escritorio/servidor. En mi caso el comando es: $ ssh
ramirew@192.168.145.217 (ver Figura 1).

Resolución CS N° 076-04-2016-04-20
ADMINISTRACIÓN DE Docente: Ing. Washington Ramírez
SISTEMAS OPERATIVOS
CIENCIAS DE LA Período Lectivo: PX
COMPUTACIÓN

Figura 1: Acceso remoto a Server Debian 11

 Comprobar el acceso al servidor remoto, puede ejecutar todos los


comandos aquí para administrar y monitorear de forma remota su
escritorio/servidor. Ejemplo:
uname -r: devuelve la versión actual del kernel del sistema operativo.
lsb_release -a: Este comando se utiliza comúnmente para determinar el
nombre y la versión de la distribución de Linux que se ejecuta en el sistema.
La opción "-a" muestra toda la información disponible. La salida incluye el ID
de distribución, descripción, número de versión y nombre en clave, entre
otros detalles.

 Para cerrar la sesión SSH utilice el siguiente comando:


exit

4 Configuración de SSH:
En Debian, el servidor SSH es OpenSSH y el archivo de configuración (sshd_config)
se encuentra en /etc/ssh/sshd_config. A continuación, se describen algunos de
los parámetros por defecto en el archivo de configuración:
• Port: el puerto por defecto es 22, pero se puede cambiar para aumentar la
Resolución CS N° 076-04-2016-04-20
ADMINISTRACIÓN DE Docente: Ing. Washington Ramírez
SISTEMAS OPERATIVOS
CIENCIAS DE LA Período Lectivo: PX
COMPUTACIÓN

seguridad.
• PermitRootLogin: por defecto está configurado en "prohibit-password", lo
que significa que no se permite el acceso root a menos que se utilice un
método de autenticación alternativo, como claves SSH.
• PasswordAuthentication: por defecto está configurado en "yes", lo que
permite la autenticación mediante contraseña. Sin embargo, se recomienda
desactivar esta opción y utilizar en su lugar claves SSH para aumentar la
seguridad.
• PubkeyAuthentication: por defecto está configurado en "yes", lo que
permite la autenticación mediante claves SSH.
• UsePAM: por defecto está configurado en "yes", lo que permite el uso de
Pluggable Authentication Modules (PAM) para la autenticación del usuario.
• LogLevel: por defecto está configurado en "INFO", lo que significa que se
registran mensajes de información, advertencia y error.
• MaxAuthTries: por defecto está configurado en 6, lo que significa que se
permite un máximo de 6 intentos de autenticación antes de cerrar la
conexión.
• X11Forwarding: por defecto está configurado en "no", lo que significa que no
se permite el reenvío de X11.

Un ejemplo de cambios en el archivo de configuración sshd_config podría ser:


 Cambiar el puerto SSH a 2222:
# Port 22
Port 2222

 Deshabilitar la autenticación basada en contraseña y habilitar la


autenticación basada en claves SSH:
#PasswordAuthentication yes
PasswordAuthentication no
PubkeyAuthentication yes

 Habilitar solo los protocolos de cifrado más seguros:


# Ciphers and keying
Ciphers chacha20-poly1305@openssh.com,aes256-
gcm@openssh.com,aes128-gcm@openssh.com,aes256-ctr,aes192-
ctr,aes128-ctr
MACs hmac-sha2-512-etm@openssh.com,hmac-sha2-256-
etm@openssh.com,hmac-sha2-512,hmac-sha2-256
KexAlgorithms curve25519-sha256,curve25519-
sha256@libssh.org,diffie-hellman-group-exchange-sha256

Eso es todo. Ahora tiene SSH instalado, configurado y en funcionamiento en tu


servidor Linux.

ACTIVIDADES POR DESARROLLAR

Resolución CS N° 076-04-2016-04-20
ADMINISTRACIÓN DE Docente: Ing. Washington Ramírez
SISTEMAS OPERATIVOS
CIENCIAS DE LA Período Lectivo: PX
COMPUTACIÓN

a) Tareas a Desarrollar
Con esta práctica se pretende que el alumnado se familiarice con el servicio SSH y aprenda a configurarlo
adecuadamente de acuerdo con los requisitos deseados mediante los archivos de configuración. Los pasos
que habrá que seguir para realizar la práctica son los siguientes:

1 Arrancar el servidor SSH en la máquina y comprobar que podemos acceder con cualquier usuario desde
cualquier equipo.
2 Configurar el servicio SSH para que no admita hacer login como root.
a) Configurar para que el usuario root no pueda conectarse a través de SSH
3 Modificar el puerto por defecto del servicio SSH (22) a otro puerto, por ejemplo 4587. Averiguar cuál sería
el comando utilizado para poder acceder al servidor.
4 Modificar la configuración de SSH en el cliente y el servidor para que usen distintas versiones del protocolo
(por ejemplo, el cliente solo use la versión 1 y el servidor la versión 2) y comprobar si se permite la conexión
entre ambos. Es importante recordar que la versión 1 del protocolo de SSH tiene problemas de seguridad
conocidos y se recomienda encarecidamente utilizar la versión 2. Este paso se realiza con fines didácticos
para entender las diferencias entre las versiones y sus implicaciones en la seguridad.
5 Modificar la configuración del servidor SSH para que solo permita la autenticación de los usuarios que
nosotros indiquemos.
6 Configurar el servidor SSH para aceptar la redirección X11, de tal forma que se puedan ejecutar
aplicaciones gráficas de forma remota. Hacer pruebas y comprobar su funcionamiento.
7 Investigar sobre cifrado y autenticación en SSH y el comando scp (Secure Copy). Generar las claves
públicas y privadas RSA para conectarse entre el cliente y el servidor. Detallar el procedimiento y evidenciar
que funcione.
8 Utilizar el programa PuTTY para conectarse con el servidor desde un sistema Microsoft® Windows. Primero
hacerlo de la forma “convencional” y luego utilizar la clave RSA pública para hacerlo. Detallar el
procedimiento y evidenciar que funcione.

b) Calificación
La puntuación final obtenida en esta práctica se obtiene teniendo en cuenta el siguiente reparto:
• Calificación de la implementación: 100 %
o Script para instalar y configura de manera automática en entorno de desarrollo 35 %
o Pruebas funcionales (video) 30 %
o Memoria 35 %

Advertencias:
• Si el código entregado no compila, la nota final de la práctica será de 0.
• En caso de copia todos los grupos implicados obtendrán una nota de 0.

c) Procedimiento de entrega
La entrega de la práctica se realizará a través del AVAC:
• El código final junto con la memoria (informe escrito) se deberá subir al AVAC.
• Deberá estar comprimido en un .zip con el nombre PX_openmp2023.zip (X=número de práctica).
o Un archivo paticipaciónIntegrantes.docx que contendrá a todos integrantes y una valoración de
su participación (ver Figura 4):
o Carpeta con el código del script: deberá tener nombre script y contener el archivo para la
compilación y ejecución del código.
o Carpeta con paquetes de instalación y configuración offline: deberá contener todas las
aplicaciones necesarias para la funcionalidad del script.
o Carpeta con video: Video editado por los integrantes, con una duración de máximo 7 minutos en
formato estándar.
o Entrega de la memoria (Informe), documentar el proyecto utilizando la plantilla (LATEX)

Resolución CS N° 076-04-2016-04-20
ADMINISTRACIÓN DE Docente: Ing. Washington Ramírez
SISTEMAS OPERATIVOS
CIENCIAS DE LA Período Lectivo: PX
COMPUTACIÓN

propuesta por el docente, la debería contener la estructura siguiente:


 Plantilla sección títul1rá el nombre de la práctica, el nombre y correo de los autores y el
número de grupo pequeño.
 Plantilla sección Introducción: Proporcionar a los lectores la información de fondo necesaria
para entender su estudio y las razones por las que realizo sus experimentos. La Introducción
debe responder a la pregunta: ¿Cuál ha sido el problema que se ha estudiado? Al escribir los
antecedentes del artículo, asegúrese de que ´ sus citas son: i) Equilibradas, si los
experimentos han encontrado resultados contradictorios sobre un determinado asunto, ¿ha
citado estudios con ambos tipos de resultados? ii) Actuales, cada campo es diferente, pero
debe procurar citar referencias que no tengan más de 10 años, si es posible. iii) Relevante,
es el requisito más importante. Los estudios que cite deben estar fuertemente relacionados
con su problema de estudio.
 Plantilla sección materiales: Documentar de manera clara. explicita, y puntual los materiales
utilizados para realizar la práctica.
 Plantilla sección metodología: Documentar con redacción técnica y puntual el proceso
realizado (pasos) que conlleva la solución de la tarea. Se organizará en i) versión secuencial,
en la que se explicará la implementación y optimización del código secuencial. No incluir
código en ella. ii) versión paralela, se explicará la implementación y optimización del código
paralelo. No incluir código en ella.
 Plantilla sección resultados: Documentar los resultados obtenidos (gráficos y/o tablas
resumen) y explicar mismos. Asimismo, deberá estar organizada en i) Evaluación de
rendimiento, donde se explicarán las diversas evaluaciones realizadas comparando el
programa inicial, la versión secuencial del alumno y la versión paralela optimizada por el
alumno. ii) Pruebas realizadas, donde se describe el plan de pruebas realizadas para asegurar
la correcta ejecución de ambas versiones.
 Plantilla sección conclusiones: Documentar conclusión(es) obtenida(s) en base a los
resultados arrojados de las métricas.
o La memoria no deberá sobrepasar las 7 páginas incluyendo todas las secciones y deberá entregar
en formatos LATEX y PDF.

d) Participación Integrantes
Con esta rúbrica, los autores realizan una autoevaluación desde la indagación sobre su propia
participación, compromiso y responsabilidad, su capacidad de relación, percepción de logros, dificultades,
etc. Podemos decir que hace referencia más al proceso que a los contenidos, e implica el desarrollo de
competencias necesarias para saber trabajar en grupo. Para obtener la valoración final de cada grupo (ver
Figura 4); se facilita a cada grupo la rúbrica elaborada, con este fin el líder del grupo, además de evaluarse
personalmente, debería evaluar a los compañeros de su grupo siguiendo los criterios definidos en la Figura
5.

Resolución CS N° 076-04-2016-04-20
ADMINISTRACIÓN DE Docente: Ing. Washington Ramírez
SISTEMAS OPERATIVOS
CIENCIAS DE LA Período Lectivo: PX
COMPUTACIÓN

Figura 2: Participación de Integrantes

Figura 3: Criterios de Participación

[1] S. Wale, Linux Administration: A Beginner’s Guide. McGraw-Hill, 2008.


[2] V. Stanfield and R. W. Smith, Linux System Administration: Craig Hunt Linux Library. John Wiley & Sons,
2006.
[3] E. Nemeth, G. Snyder, T. R. Hein, B. Whaley, and D. Mackin, "UNIX and Linux system administration
handbook," USENIX Open Access Policy, vol. 59, 2018.

RESULTADO(S) OBTENIDO(S):
• .
• .
• .
CONCLUSIONES:
• .
• .
• .

Resolución CS N° 076-04-2016-04-20
ADMINISTRACIÓN DE Docente: Ing. Washington Ramírez
SISTEMAS OPERATIVOS
CIENCIAS DE LA Período Lectivo: PX
COMPUTACIÓN

RECOMENDACIONES:
• .
• .
• .

Resolución CS N° 076-04-2016-04-20

También podría gustarte