Está en la página 1de 98

TECNOLÓGICO DE ESTUDIOS SUPERIORES DE JOCOTITLÁN

DIVISIÓN DE INGENIERÍA ES SISTEMAS COMPUTACIONALES

MANUAL DE PRÁCTICAS DE:


“TALLER DE SISTEMAS OPERATIVOS”

ASIGNATURA:
TALLER DE SISTEMAS OPERATIVOS

NÚMERO DE PRÁCTICAS:
11

ELABORÓ:
M. EN C. C. ADRIANA REYES NAVA

FECHA DE EMISIÓN:
FEBRERO DE 2024

NÚMERO DE EDICIÓN:
SEGUNDA EDICIÓN

VIGENCIA:
6 MESES (MARZO - SEPTIEMBRE 2024)

1
CONTENIDO

Página
Reglamento de medidas de seguridad e higiene en el laboratorio de …………………………... 4

Práctica No. 1
Implementación de hilos…………………………….………………………………………………… 5

Práctica No. 2
Instalación de máquina virtual………......…………………………………………………………… 9

Práctica No. 3
Instalación de Sistema Operativo propietario para servidor ……………………………………… 12

Práctica No. 4
Uso de CMDLETS…………………….…………….………………………………………………… 15

Práctica No. 5
Creación de roles, características y configuración de servicios ………………………………… 18

Práctica No. 6
Medición de rendimiento y seguridad del sistema ………………………………………………… 21

Práctica No. 7
Instalación de sistema operativo de software libre para servidor ...……………………………… 24

Práctica No. 8
Instalación de Kali Linux ………………...…………………………………………………………… 27

Práctica No. 9
Manejo de directorios, sistema de archivos y configuración de swappiness …………………… 30

Práctica No. 10
Implementación NFS …………………………………………………………………………….…… 32

Práctica No. 11
Implementación de sockets ……………………….………………………………………………… 36

2
PRESENTACIÓN

El presente manual se desarrolla con el objetivo de que el alumno conozca, identifique, seleccione y
administre diferentes sistemas operativos con el fin de resolver problemáticas reales, así como aplicar
procedimientos de interoperabilidad entre diferentes sistemas operativos, aplicando procedimiento
que actualmente se encuentran vigentes para poder ser utilizados en un entorno real.

Así mismo aporta al perfil del egresado dado que el alumno será capaz de implementar, diseñar,
desarrollar y evaluar problemas aplicando sus conocimientos en sistemas operativos vigentes para la
administración de servidores y la interoperabilidad de estos, también contribuye al logro del ejercicio
profesional una vez que el alumno pueda aplicar este conocimiento en el área de sistemas para la
administración de equipos y servidores.

Este manual está diseñado para que el alumno en cada una de sus prácticas pueda consolidar un
conocimiento que ira aplicando en las siguientes prácticas, comenzando por los aspectos básicos
hasta los más avanzados, comenzando por la ejecución de procesos y su administración, después
instalación y configuración de máquinas virtuales para administrar servicios usuarios, permisos,
privilegios y administrar su seguridad para posteriormente llegar a la implementación de servicios de
transferencia de información e interoperabilidad del sistema.

3
REGLAMENTO Y MEDIDAS DE SEGURIDAD E HIGIENE

Para la elaboración de las prácticas de este manual no es necesario el uso de laboratorios, el alumno
realizará la práctica en su equipo de cómputo. La consideración antes de la práctica es conocer el
antecedente y comprender lo que se solicita, durante la práctica necesita seguir paso a paso las
actividades para poder llegar a buen término y al final de la práctica deberá entregar en correcto
funcionamiento lo solicitado para que pueda ser evaluado.

4
PRÁCTICA NO. 1

Competencia:

Implementar un programa donde haga uso de hilos para entender el funcionamiento de


multiprogramación y como se sincronizan.

Material:

Equipo de cómputo.

Marco teórico:

Un hilo (en inglés “thread”) es la menor de las estructuras lógicas de programación que se ejecuta de
forma secuencial por parte del planificador del sistema operativo [1].

Los hilos son más ligeros que los procesos, dado que los recursos que es necesario reservar para
lanzar y ejecutar un proceso, dependen de varios subprocesos que son básicamente compartidos
entre distintos hilos dentro de un mismo proceso. En palabras simples un proceso desprende varios
hilos que trabajan en paralelo para realizar una determinada función.

Al momento de trabajar con múltiples hilos, es necesario coordinar las actividades de todos los hilos
que están trabajando, esto se logra mediante la sincronización. La razón más común para la
sincronización es cuando dos o más hilos necesitan acceso a un recurso compartido que solo puede
ser utilizado por un hilo a la vez, es decir, si un recurso no puede ser compartido por 2 hilos al mismo
tiempo la sincronización debe verificar como van a acceder al recurso y en qué momento.

Por ejemplo, cuando un hilo está escribiendo en un archivo, se debe evitar que un segundo hilo lo
haga al mismo tiempo. Otra razón para la sincronización es cuando un hilo está esperando un evento
causado por otro hilo. En este caso, debe haber algún medio por el cual el primer hilo se mantenga
en estado suspendido hasta que ocurra el evento. Entonces, el hilo de espera debe reanudar la
ejecución.

Estados de los procesos


Los bloques de control de los procesos se almacenan en colas, cada una de las cuales representa un
estado particular de los procesos, existiendo en cada bloque, entre otras informaciones. Los estados
de los procesos son internos de los sistemas operativos y transparentes al usuario.

5
Imagen 1 Diagrama de estados ampliado obtenido de [2]

Los estados de los procesos se pueden dividir en dos tipos: activos e inactivos, cuando un estado
está activo se entiende que está realizando una acción y cuando esta inactivo se encuentra esperado
a ser llamado por el SO para poder colocarse en ejecución y hacer uso de los recursos de la
computadora.

Desarrollo de la práctica:

La práctica por desarrollar se hace para comprender la sincronización de hilos mediante la simulación
de un programa donde se haga uso de N número de hilos que generen valores aleatorios y tengan
asignado un tiempo de inactividad, sincronizándose de manera que no se repita ningún valor.

El proceso que deberá seguir el alumno para la realización de esta práctica costa de los siguientes
pasos:

1. Hacer la creación de 3 hilos para generación de valores aleatorios en diferentes rangos. El hilo
1 deberá generar valores en un rango de 0 a 20, el hilo 2 en un rango de 50 a 100 y el hilo 3
en un rango de 150 a 300.
2. Cada hilo deberá de tener un tiempo de inactividad tomado en cuenta el tiempo necesario
para generar un valor aleatorio y almacenarlo dentro de un arreglo, el tiempo de inactividad de
cada hilo deberá ser diferente.
3. Una vez que el tiempo de inactividad haya pasado deberá volver a ejecución y asignar
nuevamente tiempo de inactividad, este proceso se debe repetir 10 veces a cada uno de los
hilos.

6
4. Cuando hayan transcurrido las 10 ejecuciones de los 3 hilos se deberá mostrar: la suma del
tiempo total de inactividad que tuvo cada hilo durante la ejecución, así como los valores
generados por cada hilo en forma de un arreglo.

Ejemplo de salida esperada:


Hilo 1 activo, genera valor 2 y lo almacena en la posición 1
Hilo 1 inactivo
Hilo 2 activo, genera valor 53 y lo almacena en la posición 2
Hilo 2 inactivo
Hilo 3 activo, genera valor 204 y lo almacena en la posición 3
..
..
Hilo 1 cerrado
Hilo 2 cerrado
Hilo 3 cerrado

Arreglo
2, 53, 204 …….

import threading # se utiliza para trabajar con hilos


import random #se utiliza para generar números aleatorios

# Declaración de variables y constantes


NUM_HILOS = 3 # Constante que indica el número de hilos a utilizar
NUM_EJECUCIONES = 10 # Constante que indica el número de ejecuciones por hilo
NUM_POSICION = 30 # Constante que indica el número de posiciones en el arreglo
valores_generados = [[0] * NUM_EJECUCIONES for _ in range(NUM_POSICION)] # Arreglo para
almacenar valores generados
tiempo_inactividad = [0] * NUM_HILOS # Arreglo para almacenar tiempos de inactividad de los hilos
con ceros.

# Función para generar valores aleatorios


def generar_valor(rango_inicio, rango_fin): # devuelve un número aleatorio dentro de un rango dado.
return random.randint(rango_inicio, rango_fin)

# Función que simula la inactividad del hilo


def calcular_tiempo_inactividad(numero_hilo): #calcula el tiempo de inactividad de un hilo basado en
su número.
tiempo_inactivo = 0.5 * (numero_hilo + 1) # Calcula el tiempo de inactividad multiplicando el
número de hilo por 500 milisegundos
return tiempo_inactivo

# Función para ejecutar el hilo


def ejecutar_hilo(numero_hilo):

7
rango_inicio, rango_fin = 0, 0
if numero_hilo == 1:
rango_inicio, rango_fin = 0, 20
elif numero_hilo == 2:
rango_inicio, rango_fin = 50, 100
elif numero_hilo == 3:
rango_inicio, rango_fin = 150, 300
else:
raise ValueError("Número de hilo no válido: " + str(numero_hilo))

for ejecucion in range(1, NUM_EJECUCIONES + 1):


print(f"Hilo {numero_hilo} activo, generando valor...")
valor_generado = generar_valor(rango_inicio, rango_fin)
posicion = random.randint(0, NUM_POSICION - 1)
with lock: # Bloquea el acceso al recurso compartido (arreglo de valores generados)
valores_generados[posicion][ejecucion - 1] = valor_generado
print(f"Hilo {numero_hilo} activo, generó valor {valor_generado} y lo almacenó en la posición
{posicion}")
print(f"Hilo {numero_hilo} inactivo")
tiempo_inactividad[numero_hilo - 1] += calcular_tiempo_inactividad(numero_hilo)

# Función para imprimir el arreglo de valores generados


def imprimir_arreglo():
print("\nArreglo:")
for ejecucion in range(NUM_EJECUCIONES):
for posicion in range(NUM_POSICION):
if valores_generados[posicion][ejecucion] != 0:
print(valores_generados[posicion][ejecucion], end=", ")
print()

# Función para calcular la suma total de los valores generados


def calcular_suma_total():
suma_total = sum(sum(fila) for fila in valores_generados)
return suma_total

# Bloquea el acceso al recurso compartido (arreglo de valores generados)


lock = threading.Lock()

# Creación y arranque de los hilos


hilos = []
for i in range(NUM_HILOS):
hilo = threading.Thread(target=ejecutar_hilo, args=(i + 1,))
hilo.start()
hilos.append(hilo)

8
# Espera a que todos los hilos terminen su ejecución
for hilo in hilos:
hilo.join()

print("Hilo 1 cerrado")
print("Hilo 2 cerrado")
print("Hilo 3 cerrado")

# Imprimir los valores generados en un solo arreglo


imprimir_arreglo()

# Imprimir la suma total de los valores generados


print("\nSuma total de las ejecuciones:")
suma_total = calcular_suma_total()
print(suma_total)

# Imprimir los tiempos de inactividad de los hilos


print("\nTiempo total de inactividad:")
for i in range(NUM_HILOS):
print(f"Hilo {i + 1}: {tiempo_inactividad[i]} milisegundos")

# Función para calcular la suma total de los tiempos de inactividad de los hilos
def calcular_tiempo_total_inactividad():
tiempo_total_inactividad = sum(tiempo_inactividad)
return tiempo_total_inactividad

# Llamar a la función para calcular el tiempo total de inactividad


tiempo_total_inactividad = calcular_tiempo_total_inactividad()
print("\nTiempo total de inactividad de todos los hilos:")
print(tiempo_total_inactividad, "milisegundos")

Cuestionario:

1. ¿Qué es un hilo?

Es la unidad más pequeña de procesamiento que puede ser ejecutada por un sistema operativo
también se le conoce como proceso ligero o subproceso.

2. Menciona cual es el proceso de ejecución de un hilo:

9
Creación del Hilo: Se crea el hilo mediante la instanciación de un objeto que implementa la interfaz
`Runnable` o hereda de la clase `Thread`.

Inicio del Hilo: Al llamar al método `start()`, se inicia la ejecución del hilo, el cual activa el método
`run()`.

Ejecución del Código en el Método Run(): El método `run()` contiene el código que será ejecutado por
el hilo de forma concurrente con otros hilos.

Ejecución Concurrente: El sistema operativo administra la ejecución de los hilos de acuerdo con su
política de planificación, permitiendo que múltiples hilos se ejecuten simultáneamente o en paralelo
en sistemas multiprocesador.

Finalización del Método Run(): Una vez que el método `run()` ha completado su ejecución, el hilo
llega al final de su vida útil.

Finalización del Hilo: El hilo se detiene automáticamente cuando el método `run()` llega a su fin o si
se produce una excepción no controlada dentro de él.

Liberación de Recursos: Después de la finalización del hilo, los recursos asociados, como la memoria
y otros recursos del sistema operativo, se liberan automáticamente.

3. ¿Cuáles son los mecanismos de comunicación entre procesos?


Los mecanismos de comunicación entre procesos permiten que los procesos en un sistema
interactúen, intercambien datos y sincronicen sus acciones.

Pipes: Un pipe es un mecanismo de comunicación unidireccional que permite la transferencia de


datos entre procesos. Hay dos tipos de pipes: pipes anónimos y pipes con nombre (named pipes o
FIFOs). Los pipes son útiles para la comunicación entre procesos padre e hijo.

Colas (Message Queues): Las colas permiten que los procesos envíen y reciban mensajes de
longitud variable. Los mensajes se colocan en una cola por un proceso y se leen de la cola por otro
proceso. Esto facilita la comunicación entre procesos no relacionados.

10
Memoria Compartida (Shared Memory): En este mecanismo, los procesos comparten una región de
memoria común. Los procesos pueden escribir y leer datos en esta memoria compartida, lo que
facilita una comunicación rápida y eficiente. Sin embargo, se requieren mecanismos de sincronización
para evitar problemas de concurrencia.

Sockets: Los sockets son puntos finales de comunicación que permiten la comunicación entre
procesos en diferentes nodos de una red. Se utilizan en la comunicación cliente-servidor y en la
comunicación entre procesos en la misma máquina.

Señales (Signals): Las señales son notificaciones asíncronas enviadas a un proceso para indicar
eventos importantes. Pueden ser utilizadas para comunicarse entre procesos, aunque generalmente
se utilizan para manejar eventos dentro de un mismo proceso, como interrupciones de hardware o
eventos de temporización.

Semáforos (Semaphores): Los semáforos son variables especiales utilizadas para sincronizar o
coordinar el acceso a recursos compartidos por varios procesos. Permiten a los procesos bloquearse
o esperar hasta que ciertas condiciones se cumplan antes de continuar.

Mutex (Mutual Exclusion): Un mutex es un mecanismo de sincronización que garantiza que solo un
proceso tenga acceso a un recurso compartido en un momento dado. Se utiliza para evitar la
condición de carrera en la que múltiples procesos intentan acceder al mismo recurso
simultáneamente.

4. ¿Cómo se lleva a cabo el proceso de sincronización de un hilo?

El proceso de sincronización de un hilo implica coordinar la ejecución de múltiples hilos para evitar
condiciones de carrera, inconsistencias en los datos y garantizar la coherencia del programa.

Identificar Áreas Críticas: Identificar las secciones del código donde múltiples hilos pueden acceder y
modificar datos compartidos.

Uso de Mecanismos de Sincronización: Utilizar mecanismos de sincronización, como mutex,


semáforos, barreras, variables de condición, entre otros, para controlar el acceso a las áreas críticas.

11
Bloqueo y Desbloqueo: Al entrar en una sección crítica, un hilo adquiere un bloqueo utilizando el
mecanismo de sincronización correspondiente (por ejemplo, un mutex). Esto evita que otros hilos
accedan a la misma sección crítica hasta que el bloqueo sea liberado.

Sincronización de Datos: Asegurarse de que los datos compartidos sean actualizados y leídos de
manera consistente por los diferentes hilos.
Evitar Condiciones de Carrera: Evitar condiciones de carrera mediante el uso adecuado de los
mecanismos de sincronización. Una condición de carrera ocurre cuando el resultado de la ejecución
depende del orden en que se ejecutan los hilos, lo que puede llevar a resultados no deterministas y
errores en el programa.

Pruebas y Depuración: Realizar pruebas exhaustivas para garantizar que la sincronización de los
hilos funcione como se espera.

5. ¿Cuál es el ciclo de vida de un hilo?

El ciclo de vida de un hilo en un programa sigue varios estados, desde su creación hasta su
finalización. Estos estados pueden variar ligeramente dependiendo del lenguaje de programación y
del entorno de ejecución.
Nuevo (New): En este estado, el hilo ha sido creado, pero aún no se ha iniciado su ejecución
mediante el método start().

Listo (Runnable): Cuando se invoca el método start(), el hilo entra en el estado de "listo" y está
preparado para ejecutarse, pero aún no ha sido seleccionado por el planificador de hilos para su
ejecución.

En Ejecución (Running): El hilo entra en este estado cuando el planificador de hilos lo selecciona para
su ejecución. En este estado, el código del método run() del hilo se está ejecutando activamente.

Bloqueado (Blocked): Un hilo puede entrar en este estado cuando está esperando algún evento,
como la adquisición de un bloqueo, la entrada/salida de datos, o esperando a que otro hilo complete
una operación. El hilo bloqueado no consume recursos de CPU y está inactivo hasta que se cumpla
la condición para su continuación.

12
Esperando (Waiting): Un hilo puede entrar en este estado cuando se llama a métodos como wait() o
join(), donde el hilo espera hasta que otro hilo notifique o termine su ejecución.

Esperando por un Tiempo Definido (Timed Waiting): Similar al estado de espera, pero en este caso,
el hilo espera por un tiempo específico antes de continuar su ejecución. Esto puede ocurrir cuando se
invoca sleep() o wait(timeout).

Terminado (Terminated): El hilo entra en este estado cuando su método run() ha finalizado su
ejecución, ya sea de forma normal o debido a una excepción no capturada. Una vez que un hilo está
en este estado, ya no puede ejecutarse más.

Conclusiones:

El alumno aplicará conocimientos previamente adquiridos y podrá identificar plenamente como


trabajan múltiples hilos en la ejecución de una tarea en específico.

Aprendí sobre la programación de hilos, que son pequeñas unidades de ejecución que permiten a un
programa realizar múltiples tareas simultáneamente. A través del código analizando cómo se crea,
inicia y sincroniza un hilo en , lo que me permite comprender mejor cómo funcionan los hilos en un
programa.

Además, investigue los mecanismos de comunicación entre procesos, que son herramientas
utilizadas para que los procesos en un sistema interactúen y compartan información de manera
segura y eficiente. Estos mecanismos incluyen pipes, colas, memoria compartida, sockets, señales,
semáforos y mutex.

Considerando diversas aplicaciones industriales de la programación de hilos, desde el control de


procesos industriales y la automatización de la producción hasta el monitoreo de calidad, la
simulación de procesos y la optimización de la eficiencia energética. Estas aplicaciones demuestran
cómo la programación de hilos puede mejorar la eficiencia, la productividad y la calidad en una amplia
gama de sectores industriales.

13
La programación de hilos y sus aplicaciones en la industria nos brinda una visión más amplia sobre
cómo funcionan los sistemas informáticos y cómo pueden ser utilizados para resolver problemas y
mejorar procesos en el mundo real.

Aplicaciones industriales:

-Control de procesos industriales.


-Automatización y robótica.
-Sistemas de Fabricación y Cadena de Suministro.
-Monitoreo y Mantenimiento Predictivo.
-Simulación y Modelado de Procesos.
-Control de Calidad y Pruebas de Productos.
-Optimización de Procesos y Eficiencia Energética.

Citas y referencias:

[1] L. R. Espiritu. "qué son los hilos en la programación". Aleph. https://aleph.org.mx/que-son-los-


hilos-en-la-programacion (accedido el 22 de febrero de 2023).

[2] M. Buzón. "Cuáles son los estados de los procesos de nuestros equipos". Profesional Review.
https://www.profesionalreview.com/2020/06/25/cuales-son-los-estados-de-los-procesos-de-nuestros-
equipos/ (accedido el 22 de febrero de 2023).

[3]“¿Cómo funcionan los hilos en programación?” EDteam - En español nadie te explica mejor.
Accedido el 21 de marzo de 2024. [En línea]. Disponible: https://ed.team/blog/como-funcionan-los-
hilos-en-programacion

[4]“2.- Ciclo de Vida de los Hilos - minicursos”. minicursos. Accedido el 21 de marzo de 2024. [En
línea]. Disponible: http://minicursos.xyz/2020/04/25/ciclo-de-vida-de-los-hilos/

[5]“4.4 SINCRONIZACIÓN DE HILOS”. TOPICOS AVANZADOS DE PROG. ITCA. Accedido el 21 de


marzo de 2024. [En línea]. Disponible: https://progitca.blogspot.com/2012/03/sincronizacion-de-
hilos.html

14
[6]“Comunicación entre Procesos”. Monografias.com. Accedido el 21 de marzo de 2024. [En línea].
Disponible: https://www.monografias.com/trabajos108/comunicacion-procesos/comunicacion-
procesos

Criterios de evaluación:

Funcionamiento: la práctica debe funcionar al 100%, en caso contrario la calificación se otorgará de


acuerdo con lo que logre hacer sin errores.

Documentación: deberá de entregarse una documentación donde se demuestre el paso a paso del
desarrollo que se realizó hasta llegar al resultado final de implementación. Aquí se considera
estructura, errores de redacción, ortográficos y referencias.

15
PRÁCTICA NO. 2

Competencia:

Instalar una máquina virtual con un SO diferente al sistema de origen para hacer intercambio de
archivos mediante carpetas compartidas.

Material:

Equipo de cómputo.

Marco teórico:

Una máquina virtual de sistema es aquella que emula a un ordenador completo. En palabras simples,
es un software que puede hacerse pasar por otro dispositivo -como un PC- de tal modo que puedes
ejecutar otro sistema operativo en su interior. Tiene su propio disco duro, memoria, tarjeta gráfica y
demás componentes de hardware, aunque todos ellos son virtuales [1].

Cuando se realiza la emulación para el sistema operativo que se ejecuta dentro de la máquina virtual
todo ese proceso es completamente transparente e invisible, es decir, todo funciona igual a si se
estuviera ejecutando en un PC normal dado que hace uso de los recursos que le son otorgados por el
hipervisor replicando lo que está en la máquina física, sin que sepa que en verdad está metido dentro
de otro sistema operativo.

16
Imagen 2 Organización de emulación de máquinas virtuales, obtenido de [1]

Para poder compartir archivos cada sistema operativo requiere de una configuración distinta para
crear estas carpetas compartidas en una red.

Uno de los requisitos a la hora de compartir archivos en cualquier sistema operativo es que los
ordenadores “se vean, es decir, que sean visibles para el resto de los ordenadores conectados a la
misma red. De lo contrario, difícilmente se podrá acceder a ellos, sin embargo, en muchas ocasiones
para lograr esto se deben hacer configuraciones adicionales cosa que no sucede con el SO huésped.

Desarrollo de la práctica:

Esta práctica se hace para comprender como funciona el intercambio de archivos entre diferentes
sistemas operativos como puede ser entre una distribución de Linux y un sistema de Windows, a
través del uso de máquinas virtuales utilizando software como Virtual Box o VMware para poder
hospedar el sistema virtual sobre el sistema físico.

El alumno deberá elegir un sistema operativo que desee probar y descargarlo desde su página oficial,
considerando que el sistema virtual debe ser diferente al SO base, por ejemplo, si el huésped tiene
Windows 11, el virtual no podrá contender un sistema Windows sin importar que sean versiones
diferentes.

17
El proceso que deberá seguir el alumno para la realización de esta práctica costa de los siguientes
pasos:

1. Instalar un hipervisor que sea capaz de trabajar con máquinas virtuales como es, VirtualBox o
VMware.
2. Crear una máquina virtual y cargar el ISO de instalación del sistema que desea instalar.
3. Iniciar la máquina virtual para que comience la instalación del sistema y primer uso de este.
4. Configurar una carpeta compartida del sistema virtual al huésped y viceversa para poder
compartir archivos entre ambos, sin hacer uso de servicios NFS, FTP o cualquier otro.
5. Dentro de la carpeta compartida agregar archivos protegidos, esos archivos deben de ser
protegidos por contraseña para que solo usuarios autorizados puedan visualizar el contenido
del archivo (esto va a depender del SO que se esté empleando en la realización de esta
práctica), del mismo modo se deberán verificar y modificar los permisos y propietarios.

Cuestionario:

1. ¿Qué es una máquina virtual?

2. Menciona la clasificación de hipervisores:

3. Menciona diferentes softwares empleados para realizar máquinas virtuales:

4. ¿Cuál es el proceso por seguir para compartir archivos entre máquina virtual y huésped?

5. ¿Cómo se puede proteger un archivo en un sistema operativo de Linux?

Conclusiones:

Al término de la práctica el alumno deberá ser capaz de llevar a cabo la correcta instalación y
configuración básica de un sistema operativo cliente dentro de una máquina virtual y que pueda
comunicarse de forma eficiente con el sistema huésped, de modo que pueda posteriormente hacer
instalación de sistemas servidores.

18
Aplicaciones industriales:

Citas y referencias:

[1] I. Ramírez. "Máquinas virtuales: qué son, cómo funcionan y cómo utilizarlas". Xataka - Tecnología
y gadgets, móviles, informática, electrónica. https://www.xataka.com/especiales/maquinas-virtuales-
que-son-como-funcionan-y-como-utilizarlas (accedido el 23 de febrero de 2023).

Criterios de evaluación:

Funcionamiento: la práctica debe funcionar al 100%, en caso contrario la calificación se otorgará de


acuerdo con lo que logre hacer sin errores.

Documentación: deberá de entregarse una documentación donde se demuestre el paso a paso del
desarrollo que se realizó hasta llegar al resultado final de implementación. Aquí se considera
estructura, errores de redacción, ortográficos y referencias.

19
PRÁCTICA NO. 3

Competencia:

Instalar una máquina virtual con un SO propietario para determinar la forma de instalación y
configuraciones básicas.

Material:

Equipo de cómputo.

Marco teórico:

Un sistema operativo propietario es creado por empresas para su uso comercial. Tales empresas son
sus propietarias y cobrar por utilizarlo y distribuirlo y aquellos que lo diseñaron y crearon ocultan su
código original para evitar que se altere. Sólo la empresa propietaria tiene derecho a modificar el
software [1]. Además, queda prohibida su distribución sin un previo pago.

Los sistemas operativos propietarios más populares son:

• Sistemas operativos: Windows, Chrome OS y macOS.


• Programas de ciberseguridad: Norton, Kasperski o Panda.
• Programas informáticos empresariales: SAP, SAGE o Matlab.
• Aplicaciones comerciales: Google Drive, Skype o Microsoft Edge.
• Videojuegos y software de entretenimiento: FIFA, Spotify o Netflix.

Las principales características del software propietario son:


• No se puede hacer ningún tipo de modificación al código fuente.
• No puedes distribuirlo sin el permiso del propietario.
• El usuario debe realizar cursos para el manejo del sistema como tal debido a su alta
capacidad de uso.
• Cualquier ayuda en cuanto a los antivirus.

20
Software propietario
El software propietario consiste en aquellos programas de autor definido que nieguen de alguna
forma el libre acceso al código fuente, ya sea para modificarlo, estudiarlo o distribuirlo.
A este tipo de software también suele denominarse como ‘software privativo’, puesto que además de
tener uno o más propietarios determinados, lo que realmente hace que el software no sea libre es su
carácter privativo.
Además, se suele dar por sentado que un software de tipo propietario es de un ente privado que
busca rentabilidad directa en él. Esto no tiene por qué ser así de forma obligatoria. Se puede dar el
escenario en el que una persona o empresa desarrolle un software del cual no se pueda acceder al
código fuente pero que su uso sea gratuito, aunque no libre.
Cuando hablamos de un uso gratuito nos referimos a que puede no existir contraprestación monetaria
directa, pero en su defecto podrán existir compras dentro del mismo programa e incluso pagos en
forma de datos, en este caso los personales.

Origen del software propietario


Los comienzos del software propietario se dieron entre la década de los 70’ y los 80’. Fueron IBM y
Microsoft las empresas que impulsaron las prácticas de creación y desarrollo de programas con
restricciones al acceso del código o, dicho de otra forma, de código cerrado.
Fue en esa misma época en la que surgió los movimientos a favor del software libre, que hasta el
alzamiento del software privativo era el modus operandi de colaboración, desarrollo y distribución de
software más extendido. Nos encontramos pues con dos figuras totalmente distintas en su forma de
concebir el software. Por un lado, tenemos a Richard Matthew Stallman, creador de la ‘Free Software
Foundation’. Por otra parte, tendríamos a Bill Gates, fundador de Microsoft.
El software propietario es con diferencia el tipo de software que más se ha distribuido. Sin ir más lejos
el sistema operativo más utilizado del mundo, Windows, supera con creces al número de usuarios
que utilizan Linux o alguna de sus variantes.

Características del software propietario


Si bien es cierto que el manifiesto y las reglas que rodean al software libre son inclusivas y no
discriminan por poder adquisitivo, existen ciertas ventajas a destacar que caracterizan al software
propietario:

Atención al cliente: Consiste en el soporte especializado que provee la empresa propietaria del
software a sus usuarios con actualizaciones y mantenimiento del mismo.
Especialización y focalización: Cuando una empresa crea y desarrolla un software concentra sus
recursos en hacer que la utilidad y el valor añadido de este sea un elemento diferenciador frente a
otras alternativas de software, sean de carácter privativo o de uso libre.
Control a favor del autor y el uso malintencionado: Esto es quizás el factor más importante del
software propietario, ya que establece una autoría y por ende, un crédito a favor del autor. Por otra
parte, el control de un uso fraudulento o no ético del software se asegura al cerrar el código.

21
Si bien el software libre se rige por el copyleft, un software puede tener características propias del
privativo y del libre. Un ejemplo sería un programa que sólo permitiera el acceso a su código para su
estudio y fuera además de libre distribución, pero no fuera de libre modificación.

Ejemplos de software propietario


Algunos de los ejemplos más conocidos de software propietario que se dan en el mundo de la
informática son:

Sistemas operativos: Windows, Chrome OS y macOS.


Programas de ciberseguridad: Norton, Kasperski o Panda.
Programas informáticos empresariales: SAP, SAGE o Matlab.
Aplicaciones comerciales: Google Drive, Skype o Microsoft Edge.
Videojuegos y software de entretenimiento: FIFA, Spotify o Netflix.

Desarrollo de la práctica:

La práctica por desarrollar se hace para llevar a cabo la instalación de un sistema operativo
propietario como lo es Windows Server verificando su funcionalidad y configuración básica para
administración de usuarios, roles y configuración de red. Esto se lleva a cabo para demostrar las
diferencias que existen al llevar a cabo la instalación de un sistema operativo cliente a un sistema
operativo servidor siendo ambos propietarios.

El proceso que deberá seguir el alumno para la realización de esta práctica costa de los siguientes
pasos:

1. Descargar Windows Server en su versión de prueba desde la página oficial


https://www.microsoft.com/es-mx/windows-server
2. Instalar el sistema operativo en una máquina virtual empleando VirtualBox o VMware.
3. Configurar el nombre del equipo
4. Configurar IP estática
5. Configurar las actualizaciones del sistema
6. Instalar servidores DNS y DHCP desde el asistente de configuración de servicios.

22
Creamos un usuario para la utilización de Windows server gratis.

Ilustración 1: Creación de usuario

23
Descarga del disco iso

Ilustración 2: Descarga de la iso 64 bits


Visualización de la descarga

Ilustración 3: Descarga
Creación de la máquina virtual sin agregar un disco

24
Ilustración 4: Creación de la máquina virtual
Asignamos memoria recomendable 2048 y CPU

Ilustración 5: Asignación de memoria


Asignación de disco virtual

25
Ilustración 6: Disco virtual

Terminamos la maquina

Ilustración 7: Terminamos y prendemos la maquina


Al encender aparecerá esta advertencia justo ahí montaremos y reintentaremos el inicio

26
Ilustración 8: Montar disco

Aparecerá la siguiente ventana y daremos siguiente

Ilustración 9: Idioma
Instalaremos Windows Server

27
Ilustración 10: Instalación
Escoger el sistema operativo si eres principiante escoge el marcado

Ilustración 11: Escoger sistema


Aceptamos términos y condiciones

28
Ilustración 12: Términos y condiciones
Al abrir aparecerá lo siguiente

Ilustración 13: Opcion 2


Instalaremos Windows

29
Ilustración 14: Escogemos el disco
Esperamos a que cargue al 100%

Ilustración 15: Esperar cargue al 100%


Se reiniciará en automático y queda esperar

30
Ilustración 16: Iniciando Windows
Personalizamos la contraseña

Ilustración 17: personalización


Al encender ubicaremos lo de la imagen para desbloquear.

31
Ilustración 18: Desbloquear
Agregamos la contraseña para entrar

Ilustración 19: Iniciamos sesión

32
Visualizaremos la siguiente pantalla

Ilustración 20: Panel


Seleccionaremos donde dice nombre del equipo sobre las letras azules

Ilustración 21: Nombre del equipo


Seleccionaremos el recuadro que dice cambiar para agregar nuestro nombre

33
Ilustración 22: Cambio de nombre
Cambiamos nombre y aceptamos

Ilustración 23: Cambiamos de nombre

34
Cerramos la pantalla sin reiniciar aun

Ilustración 24: Cerramos la ventana


Reiniciamos más tarde

Ilustración 25: Reinicio más tarde


Entramos a conexiones de red para la ip estática

35
Ilustración 26: Ethernet

Selección de protocolo de internet versión 4(TCP/IPv4) y seleccionamos propiedades

36
Ilustración 27: TCP/IPv4
Usaremos dirección IP y DNS

Ilustración 28: IP y DNS


Consulta de ip a máquina física

37
Ilustración 29: IP a máquina física
Agregamos la ip parecida a la maquina física

Ilustración 30: Agregar ip


Salimos al panel y seleccionamos Agregar roles y caracteristicas

38
Ilustración 31: Roles y características
Damos siguientes a la ventana que nos aparecerá

Ilustración 32: Roles


Seleccionaremos la primer opcion de la siguiente pantalla

39
Ilustración 33: Instalación
Daremos siguiente a la ventana que nos aparecerá

Ilustración 34: Dejaremos por default

Seleccionaremos DHCP Y DNS y daremos siguiente para agregar características

40
Ilustración 35: Agregar DHCP y DNS
Agregamos características de DHCP

Ilustración 36: Características de DHCP


Agregamos características de DNS

41
Ilustración 37: Características de DNS
Daremos siguiente a la ventana que nos aparecera

Ilustración 38: Observaciones

Visualizaremos las características que agregaremos

42
Ilustración 39: Servidor DHCP y DNS
Esperaremos la instalación y a terminar cerraremos

Ilustración 40: Esperar la instalación


Reiniciaremos Windows con la opcion reconfiguración (planeada)

43
Ilustración 41: Reinicio
Iremos al servicio local y veremos las configuraciones que hicimos como el nombre y la ip

Ilustración 42: Nombre e IP

Iremos a actualizaciones instaladas y actualizaremos

44
Ilustración 43: Aparecerá Nunca
Listo se actualizo

Ilustración 44: Actualizadas

El servidor está listo

45
Ilustración 45: Listo para su uso

Cuestionario:

1. ¿Qué es un SO propietario?
Un sistema operativo (SO) propietario es aquel cuyo código fuente y derechos de distribución están
controlados por una entidad o empresa específica. Esto significa que el software está protegido por
derechos de autor y su uso, distribución y modificación están sujetos a términos y condiciones
definidos por el propietario del software.

2. Menciona las principales características de los SO propietarios:


Las principales características:

 Control exclusivo por parte del propietario sobre el desarrollo, distribución y licenciamiento del
software.
 Generalmente, tienen una interfaz de usuario intuitiva y bien diseñada.

46
 Suelen contar con un amplio soporte técnico y actualizaciones regulares por parte del
fabricante.
 Tienden a ofrecer integración y compatibilidad con una amplia gama de hardware y software.

3. ¿A qué se refiere el termino de software privativo?


El término "software privativo" se refiere a aquel software cuyo código fuente no está disponible para
el público en general y cuyo uso está sujeto a restricciones impuestas por el propietario del software.
Los usuarios pueden utilizar el software de acuerdo con los términos de la licencia, pero no tienen
acceso al código fuente ni pueden modificarlo según sus necesidades.

4. ¿Cuáles son las ventajas de los sistemas operativos propietarios en comparación con los de
software libre?
Las ventajas:

 Generalmente ofrecen un alto nivel de estabilidad y seguridad, respaldado por soporte técnico
y actualizaciones regulares.
 Tienen una amplia gama de aplicaciones y controladores de hardware compatibles.
 Suelen contar con una interfaz de usuario intuitiva y fácil de usar.
 El fabricante se encarga de la gestión de parches de seguridad y actualizaciones, lo que
puede ser más conveniente para algunos usuarios.

5. ¿Cómo se configura el usuario de Windows server en su inicialización?


Para configurar un usuario en Windows Server durante su inicialización, normalmente se sigue un
proceso similar al de otros sistemas Windows. Durante la instalación inicial o la configuración
posterior, se solicita al administrador que cree una cuenta de usuario y le asigne privilegios de
administrador u otros roles según sea necesario. Este proceso varía ligeramente según la versión
específica de Windows Server y las opciones de configuración seleccionadas durante la instalación
inicial.

Conclusiones:

Con el desarrollo de esta práctica el alumno será capaz de llevar a cabo la instalación y
administración básica de un SO propietario para servidores, verificando las ventajas que tiene este
sobre el sistema cliente y la funcionalidad de este para la configuración de servicios.

Windows Server 2019, como sistema operativo propietario, ofrece una serie de ventajas significativas
para entornos empresariales, especialmente en el ámbito de la administración de servidores y la
gestión de redes. A través de las características avanzadas de seguridad, la interfaz de usuario
intuitiva y el amplio soporte técnico, Windows Server 2019 se posiciona como una opción sólida para
satisfacer las necesidades de infraestructuras críticas y entornos industriales exigentes.

47
Al considerar las principales características de los sistemas operativos propietarios, como Windows
Server 2019, es evidente su capacidad para ofrecer estabilidad, seguridad y compatibilidad con una
amplia gama de hardware y software. Estas características son fundamentales para garantizar la
continuidad del negocio y proteger los activos de información en entornos industriales donde la
confiabilidad y la seguridad son de suma importancia.
La diferencia entre los sistemas operativos propietarios y los de software libre, como el caso de
Windows Server 2019 frente a distribuciones de Linux, radica en la naturaleza del control sobre el
software y las condiciones de licenciamiento. Aunque los sistemas de software libre ofrecen ciertas
ventajas en términos de personalización y flexibilidad, los sistemas propietarios como Windows
Server 2019 pueden proporcionar un nivel de soporte técnico y estabilidad que resulta crucial en
entornos empresariales críticos.
En cuanto a la configuración del usuario en Windows Server 2019, durante la inicialización, el
administrador tiene la oportunidad de crear cuentas de usuario y asignarles roles y privilegios según
las necesidades específicas del entorno. Este proceso permite una administración centralizada y
segura de los recursos del servidor, asegurando que cada usuario tenga acceso adecuado a los
recursos necesarios para realizar sus funciones sin comprometer la seguridad del sistema.

Aplicaciones industriales:

Servidores de aplicaciones: Windows Server 2019 puede alojar aplicaciones industriales críticas,
como sistemas de control de procesos, sistemas de gestión de producción (MES), sistemas de
ejecución de fabricación (MES), sistemas SCADA (Supervisory Control and Data Acquisition), y
software de simulación y modelado.

Almacenamiento y gestión de datos: Con características como Storage Spaces Direct, Windows
Server 2019 es ideal para la creación de soluciones de almacenamiento de datos escalables y de alto
rendimiento en entornos industriales. Puede utilizarse para almacenar y gestionar grandes volúmenes
de datos de sensores, registros de procesos, datos de producción, etc.

Virtualización de servidores: Hyper-V en Windows Server 2019 permite la virtualización de servidores,


lo que es útil para consolidar cargas de trabajo, mejorar la eficiencia de los recursos y proporcionar un
entorno de prueba y desarrollo seguro para aplicaciones industriales.

Seguridad: Windows Server 2019 ofrece características de seguridad avanzadas, como Windows
Defender Advanced Threat Protection (ATP), que ayudan a proteger los sistemas industriales contra
amenazas de seguridad, ataques de malware y acceso no autorizado.

Servicios de red: Windows Server 2019 incluye servicios de red robustos que son fundamentales en
entornos industriales, como DHCP (Dynamic Host Configuration Protocol), DNS (Domain Name
System), Active Directory Domain Services (AD DS), y servicios de acceso remoto como VPN (Virtual
Private Network) y Escritorio remoto.

48
Administración centralizada: Con herramientas como Windows Admin Center, los administradores
pueden gestionar de forma centralizada múltiples servidores desde una sola interfaz de usuario, lo
que facilita la administración de infraestructuras industriales distribuidas.

Respaldo y recuperación: Windows Server 2019 ofrece capacidades integradas de respaldo y


recuperación que son críticas en entornos industriales para proteger los datos y garantizar la
continuidad del negocio en caso de fallos del sistema o desastres.

Citas y referencias:

[1] D. Sol Llaven, Sistemas Operativos: Panorama para ingeniería en computación e informática.
México: Grupo editorial patria, 2015.
[2] “Software propietario”. Economipedia. Accedido el 12 de abril de 2024. [En línea]. Disponible:
https://economipedia.com/definiciones/software-propietario.html
[3] “Windows Server 2019 | Centro de evaluación de Microsoft”. Your request has been blocked. This
could be due to several reasons. Accedido el 12 de abril de 2024. [En línea]. Disponible:
https://www.microsoft.com/es-es/evalcenter/download-windows-server-2019
[4] “Introducción a la administración de Windows Server”. Microsoft Learn: Build skills that open
doors in your career. Accedido el 12 de abril de 2024. [En línea]. Disponible:
https://learn.microsoft.com/es-es/windows-server/administration/overview
[5] “PowerShell_ise”. Microsoft Learn: Build skills that open doors in your career. Accedido el 12 de
abril de 2024. [En línea]. Disponible:
https://learn.microsoft.com/es-es/windows-server/administration/windows-commands/powershell_ise
[6] “Compatibilidad de aplicaciones de servidor de Microsoft y Windows Server 2019”. Microsoft
Learn: Build skills that open doors in your career. Accedido el 12 de abril de 2024. [En línea].
Disponible: https://learn.microsoft.com/es-es/windows-server/get-started/application-compatibility-
windows-server-2019

Criterios de evaluación:

Funcionamiento: la práctica debe funcionar al 100%, en caso contrario la calificación se otorgará de


acuerdo con lo que logre hacer sin errores.

Documentación: deberá de entregarse una documentación donde se demuestre el paso a paso del
desarrollo que se realizó hasta llegar al resultado final de implementación. Aquí se considera
estructura, errores de redacción, ortográficos y referencias.

49
50
PRÁCTICA NO. 4

Competencia:

Realizar cambios de configuración al sistema operativo de Windows server mediante la ejecución de


los respectivos cmdlets.

Material:

Equipo de cómputo.

Marco teórico:

El shell de comandos fue el primer shell integrado en Windows para automatizar las tareas de rutina,
como la administración de cuentas de usuario o las copias de seguridad nocturnas, con archivos por
lotes (.bat). Con Windows Script Host, puede ejecutar scripts más sofisticados en el shell de
comandos. Puede realizar operaciones de manera más eficiente utilizando scripts que utilizando la
interfaz de usuario. Los scripts aceptan todos los comandos que están disponibles en la línea de
comandos.

Windows tiene dos shells de comandos: Command shell y PowerShell. Cada shell es un programa de
software que proporciona comunicación directa entre usted y el sistema operativo o la aplicación,
proporcionando un entorno para automatizar las operaciones de TI.

PowerShell se diseñó para ampliar las capacidades del shell de comandos para ejecutar comandos
de PowerShell llamados cmdlets. Los cmdlets son similares a los comandos de Windows, pero
proporcionan un lenguaje de secuencias de comandos más extensible. Puede ejecutar comandos de
Windows y cmdlets de PowerShell en Powershell, pero el shell de comandos solo puede ejecutar
comandos de Windows y no cmdlets de PowerShell.

Comandos esenciales de PowerShell: [1]

Get-Command: En caso de que quieras conocer todos los cmdlets que ofrece PowerShell, lo podrás
hacer escribiendo este comando en la consola.

Get-Host: Con la ejecución de este comando se obtiene la versión de Windows PowerShell que está
usando el sistema.

Get-History: Con este comando se obtiene un historial de todos los comandos que se ejecutaron bajo
una sesión de PowerShell y que actualmente se encuentran ejecutándose.

51
Get-Random: Ejecutando este comando se obtiene un número aleatorio entre 0 y 2.147.483.646.
Get-Service: En ciertas ocasiones, será necesario saber qué servicios se instalaron en el sistema,
para lo que se puede usar el comando Get-Service, que brindará información acerca de los servicios
que se están ejecutando y los que ya fueron detenidos.

Invoke-Command: En el momento en que quieras ejecutar un script o un comando PowerShell (de


forma local o remota, en uno o varios ordenadores), «Invoke-Command» va a ser tu mejor opción. Es
simple de utilizar y te ayudará a gestionar ordenadores por lotes.

Invoke-Expression: Se ejecuta otra expresión o comando. Si te encuentras ingresando una cadena de


entrada o una expresión, en primer lugar, este comando la va a analizar y a continuación la ejecutará.
Sin este comando, la cadena no devuelve ninguna acción. Invoke-Expression solo trabaja a nivel
local, a diferencia de Invoke-Command.

Set-ExecutionPolicy: Si bien podemos crear e iniciar scripts (.ps1) desde PowerShell, vamos a
encontrarnos limitados debido a cuestiones de seguridad. Sin embargo, esto puede ser modificado a
través de la categoría de seguridad empleando el cmdlet Set-ExecutionPolicy.

Remove-Item: En caso de que desees borrar elementos como carpetas, archivos, funciones y
variables y claves del registro, Remove-Item será el mejor cmdlet. Lo importante es que ofrece
parámetros para introducir y expulsar elementos.

Start-Process: Con este cmdlet, Windows PowerShell hace que sea mucho más fácil ejecutar
procesos en el equipo.

Stop-Process: Con este cmdlet puedes detener un proceso, ya sea que haya sido iniciado por ti o por
otro usuario.

Desarrollo de la práctica:

El proceso que deberá seguir el alumno para la realización de esta práctica costa de los siguientes
pasos:

1. Investigar los principales comandos de cambio de nombre de equipo, ejecución y detención de


procesos, así como configuraciones sobre archivos.
2. Colocar en ejecución 5 procesos con identificador definido por el usuario y cantidad de
memoria asignada para su ejecución haciendo que se ejecute en segundo plano.
3. Configurar el nombre del equipo desde su cmdlet correspondiente.
4. Configurar archivos con diferentes formas de creación.
5. Realizar búsqueda de contenido de archivos y carpetas con sintaxis especifica.
6. Detener procesos activos en el sistema.

Investigar los principales comandos de cambio de nombre de equipo, ejecución y detención de


procesos, así como configuraciones sobre archivos.”

52
Cambio de nombre de equipo:
Rename-Computer: Este cmdlet se utiliza para cambiar el nombre del equipo en un entorno Windows.
Ejemplo:

Rename-Computer -NewName "NuevoNombre"

Ejecución y detención de procesos:


Start-Process: Este cmdlet se utiliza para iniciar un proceso en el sistema.
Ejemplo:

Start-Process -FilePath "ruta\al\archivo.exe"

Stop-Process: Este cmdlet se utiliza para detener un proceso en ejecución en el sistema.


Ejemplo:

Stop-Process -Name "nombreDelProceso"

Configuraciones sobre archivos:


Get-ChildItem: Este cmdlet se utiliza para obtener una lista de archivos y carpetas en una ubicación
específica.
Ejemplo:

Get-ChildItem -Path "C:\ruta"

Copy-Item: Este cmdlet se utiliza para copiar archivos y directorios de una ubicación a otra.
Ejemplo:

Copy-Item -Path "origen\archivo.txt" -Destination "destino\archivo.txt"

Move-Item: Este cmdlet se utiliza para mover archivos y directorios de una ubicación a otra.
Ejemplo:

Move-Item -Path "origen\archivo.txt" -Destination "destino\archivo.txt"

Remove-Item: Este cmdlet se utiliza para eliminar archivos y directorios.


Ejemplo:

Remove-Item -Path "ruta\al\archivo.txt"

53
Abriremos PowerShell ISE

Fig. 1: lo encontramos con la tecla Windows


Para visualizar los procesos activos utilizaremos Get-Process

54
Fig. 2: Visualización de los procesos

Crearemos el script para la asignación de memoria a los procesos que queramos se ejecuten en
segundo plano.

Fig. 3: Script para iniciar procesos

55
Con Get-Job visualizamos los procesos activos en segundo plano

Fig. 4: Get-Job
Aparecerán los procesos activos

Fig. 5: Aparecerán las ventanas


Ahora detendremos los procesos

56
Fig. 6: Detenemos los procesos
Comprobamos con Get-Job

Fig. 7: Visualizamos si se detuvieron

Para cerrar las ventanas de los procesos ejecutamos el siguiente script

57
Fig. 8: Cerramos las ventanas

Para que se cierren tal cual las ventanas que abrimos en segundo plano utilizamos el Get-Process
para saber sus ID

58
Fig. 9: Visualizaremos que se cierran las ventanas
Ahora crearemos un archivo de texto.txt con el siguiente cmdlet

Fig. 10: Creación de archivo


Checamos el archivo creado en el disco C, dentro de usuarios y administrador

59
Fig. 11: Archivo txt
Detenemos el proceso del mismo

Fig. 12: Detenemos el proceso

Detendremos todos los procesos

60
Fig. 13: Dirá que se reiniciara

Cuestionario:

1. ¿Qué es un cmdlet?
Un cmdlet (command-let) es una pequeña herramienta de línea de comandos utilizada en Windows
PowerShell. Estos cmdlets son comandos de software diseñados para realizar tareas específicas,
como administrar el sistema operativo, interactuar con servicios web, manipular archivos y directorios,
entre otras acciones.

2. Menciona las principales formas de poner en ejecución un cmdlet:


Las principales formas de poner en ejecución un cmdlet en PowerShell son:
• Escribir directamente el nombre del cmdlet seguido de sus parámetros en la consola de
PowerShell.
• Utilizar scripts de PowerShell que contienen uno o más cmdlets.
• Integrar cmdlets en flujos de trabajo automatizados o programados utilizando programación de
scripts o programación de tareas.

3. ¿Cómo se lleva a cabo el proceso de lectura de líneas de archivos mediante cmdlet?


El proceso de lectura de líneas de archivos mediante cmdlets en PowerShell puede llevarse a cabo
utilizando cmdlets específicos como Get-Content, que permite leer el contenido de archivos y
devolverlo como un flujo de objetos para su procesamiento adicional. Por ejemplo, para leer líneas de
un archivo llamado "archivo.txt", se puede utilizar el siguiente cmdlet: Get-Content archivo.txt.

4. ¿Cuál es la diferencia entre PowerShell y símbolo de sistema?

61
La diferencia principal entre PowerShell y el símbolo del sistema (también conocido como CMD o
Command Prompt) radica en su arquitectura y funcionalidad. PowerShell es un entorno de scripting y
automatización de tareas más potente y versátil que el símbolo del sistema. Mientras que el símbolo
del sistema se basa en comandos heredados de MS-DOS y tiene una funcionalidad más limitada,
PowerShell utiliza un lenguaje de scripting avanzado y está diseñado para administrar sistemas
Windows de manera más eficiente, permitiendo una mayor automatización y control sobre el sistema
operativo y sus componentes.

5. ¿Cuál es la función principal de los cmdlets?


La función principal de los cmdlets es proporcionar una forma eficiente y flexible de realizar tareas
específicas en PowerShell. Estos cmdlets están diseñados para ser modulares y reutilizables, lo que
facilita la construcción de secuencias de comandos y flujos de trabajo automatizados para administrar
y controlar diversos aspectos del sistema operativo, como el sistema de archivos, los servicios de
Windows, la red, la seguridad, entre otros. Los cmdlets ofrecen una interfaz de línea de comandos
intuitiva y poderosa que permite a los administradores y desarrolladores realizar una amplia gama de
tareas de administración y configuración en sistemas Windows.

Conclusiones:

En el ámbito industrial, PowerShell y los cmdlets son esenciales, permitiendo una gama de
aplicaciones que van desde la automatización de tareas administrativas hasta la gestión avanzada de
sistemas informáticos. En entornos empresariales donde la eficiencia y la precisión son críticas, estas
herramientas capacitan a los profesionales de TI y administradores de sistemas para optimizar y
mantener la infraestructura tecnológica de manera efectiva. En la automatización de procesos
industriales, desempeñan un papel vital al crear scripts personalizados para ejecutar tareas
repetitivas de manera eficiente y confiable, abarcando desde la configuración de servidores hasta la
gestión de la seguridad de la información. Además, en la gestión de la infraestructura de red,
permiten configurar dispositivos, diagnosticar problemas y monitorear el tráfico de datos,
contribuyendo a la disponibilidad y la integridad de la red en entornos industriales críticos. En
entornos de fabricación y automatización, son fundamentales para administrar sistemas integrados,
controlar procesos de producción y diagnosticar problemas operativos, mejorando así la eficiencia y la
productividad en la planta.

Aplicaciones industriales:

• Automatización de tareas administrativas: En entornos industriales, donde la gestión de


sistemas informáticos puede ser compleja y crítica para la operación eficiente de la empresa,
PowerShell y los cmdlets se utilizan para automatizar tareas administrativas repetitivas. Esto puede
incluir la configuración y administración de servidores, la gestión de usuarios y permisos, el monitoreo
del rendimiento del sistema, entre otros.

62
• Gestión de infraestructura de red: PowerShell y los cmdlets son herramientas poderosas para
la gestión de la infraestructura de red en entornos industriales. Se pueden utilizar para configurar y
administrar dispositivos de red, como routers, switches y firewalls, así como para realizar pruebas de
conectividad, diagnósticos de red y monitoreo del tráfico.
• Administración de sistemas industriales integrados: En entornos de fabricación y
automatización industrial, donde se utilizan sistemas informáticos integrados para controlar
maquinaria y procesos de producción, PowerShell y los cmdlets pueden ser utilizados para
administrar y monitorear estos sistemas, realizar diagnósticos de problemas y realizar ajustes de
configuración en tiempo real.
• Gestión de sistemas de bases de datos: PowerShell se puede utilizar para administrar
sistemas de bases de datos en entornos industriales, como la creación y administración de bases de
datos, la ejecución de consultas SQL, la programación de tareas de mantenimiento y la generación de
informes de rendimiento.
• Seguridad informática: PowerShell y los cmdlets también se utilizan en aplicaciones
relacionadas con la seguridad informática en entornos industriales. Se pueden utilizar para auditar la
seguridad del sistema, realizar análisis forense en caso de incidentes de seguridad, implementar
políticas de seguridad y gestionar certificados digitales y claves de cifrado.

Citas y referencias:

[1] M. A. Navas. "PowerShell: qué es y comandos básicos". Profesional Review.


https://www.profesionalreview.com/2019/07/31/powershell-que-es-comandos/ (accedido el 24 de
febrero de 2023).
[2] “Información general del cmdlet - PowerShell”. Microsoft Learn: Build skills that open doors in
your career. Accedido el 12 de abril de 2024. [En línea]. Disponible: https://learn.microsoft.com/es-
es/powershell/scripting/developer/cmdlet/cmdlet-overview?view=powershell-7.2
[3] “Cmdlets - PowerShell”. Microsoft Learn: Build skills that open doors in your career. Accedido
el 12 de abril de 2024. [En línea]. Disponible:
https://learn.microsoft.com/es-es/powershell/scripting/lang-spec/chapter-13?view=powershell-7.2
[4] imced. Accedido el 12 de abril de 2024. [En línea]. Disponible:
https://imced.edu.mx/Ethos/Archivo/39-59.pdf
[5] “Diferencias entre el símbolo de sistema y PowerShell - Cultura Informática”. Cultura
Informática. Accedido el 12 de abril de 2024. [En línea]. Disponible:
https://cultura-informatica.com/windows/simbolo-de-sistema-y-powershell/

Criterios de evaluación:

63
Funcionamiento: la práctica debe funcionar al 100%, en caso contrario la calificación se otorgará de
acuerdo con lo que logre hacer sin errores.

Documentación: deberá de entregarse una documentación donde se demuestre el paso a paso del
desarrollo que se realizó hasta llegar al resultado final de implementación. Aquí se considera
estructura, errores de redacción, ortográficos y referencias.

64
PRÁCTICA NO. 5

Competencia:

Implementar y configura diferentes servicios al servidor como son el caso de IIS, servidor de archivos,
DHCP y DNS mediante uso de cmdlets y asistente de configuración.

Material:

Equipo de cómputo.

Marco teórico:

El administrador del servidor permite gestionar el conjunto del servidor, es posible realizar
operaciones de configuración del servidor como (direccionamiento IP, nombre del servidor) y también
instalar y acceder a los distintos roles (DNS, DHC, IIS y demás). Permite agregar y suprimir roles y
también la administración de equipos remotos.

DHCP es el Protocolo de Configuración Dinámica de Host, por sus siglas en español, es un servicio
que se puede instalar en los mismos servidores con función de Active Directory, o en servidores
dedicados, esté va a ser en encargado de proporcionar la IP a los clientes que se conecten dentro de
la red y de mantener la comunicación entre los mismos.

DNS, por sus siglas en español, Sistema de Nombres de Domino, tiene la función de traducir las
direcciones IP en nombres de dominio y viceversa, por ejemplo, 142.250.65.142 a Google.com.
Todos los dispositivos con una conexión activa a internet poseen una dirección IP, misma que ayuda
a establecer la ruta de conexión para el acceso a los sitios. La ventaja de este servicio es que cuando
se abre un navegador web y visita un sitio, no necesita recordar e introducir un número largo. En su
lugar, puede introducir un nombre de dominio como ejemplo.com y terminar en el lugar correcto.

Los Internet Information Services (IIS) son un servidor web extensible que provee un conjunto de
servicios para sistemas operativos Windows. Esta característica permite convertir su máquina en un
servidor web para poder publicar su sitio web en el Internet, no se instalan de forma predeterminada
en la instalación mínima de los sistemas operativos Microsoft Windows Server 2012 R2, Microsoft
Windows Server 2016 y Microsoft Windows Server 2019.

Un servidor de archivos es una instancia de servidor central de una red de ordenadores que permite a
los clientes conectados acceder a sus propios recursos de almacenamiento. El término abarca tanto
el hardware como el software que se necesita para implementar dicho servidor [2]. Si los usuarios
obtienen los correspondientes permisos, pueden abrir las carpetas y archivos guardados en el
servidor, así como consultarlos, modificarlos, eliminarlos o subir sus propios documentos.

65
Desarrollo de la práctica:

La práctica por desarrollar se hace para que el alumno aprenda a configurar los roles que un usuario
puede tener en el sistema operativo de Windows server, así como la asignación de roles y
características para diferentes servicios, en este caso se deberán de implementar servicios de IIS, un
servidor de archivos, llevar a cabo la configuración de DHCP y DNS. Estás tareas están diseñadas
para que se puedan implementar haciendo uso de cmdlets o bien directamente con la configuración
mediante el asistente del SO.

El proceso que deberá seguir el alumno para la realización de esta práctica costa de los siguientes
pasos:

1. Instalar Windows server en una máquina virtual.


2. Configurar el rol de DHCP para el usuario actual del equipo mediante el asistente de
configuración.
3. Configurar el rol de DNS mediante el uso de su respectivo cmdlet.
4. Configurar el servidor de archivos haciendo uso del asistente para compartir archivos de forma
local dentro de la máquina virtual y la maquina huésped.
5. Configurar el servicio IIS dentro del servidor para poder alojar sitios web creados por el
usuario.
6. Verificar el funcionamiento de los roles haciendo pruebas entre la máquina virtual y la máquina
huésped.

Para comenzar con esta práctica primero configuramos el rol de DHCP para el usuario actual del
equipo mediante CMDLET. Es el instala el rol de DHCP en el servidor y sus herramientas de
administración.

66
Es el que se encarga de la configuración del rol de DNS mediante el uso de su respectivo cmdlet.
Instala el rol de DNS en el servidor y sus herramientas de administración.

Configura el servidor de archivos haciendo uso de cmdlets para compartir archivos de forma local
dentro de la máquina virtual y la maquina huésped.

Es el que instala el rol del servidor de archivos en el servicio y sus herramientas de administración.
Puede compartir una carpeta utilizando cmdlet New-SmbShare.

Encargado de la configuración el servicio IIS dentro del servidor para poder alojar sitios web creados
por el usuario. Instala el servidor web (ISS) en servidor y sus herramientas de administración.

Abrimos el cmd en la maquina física y ingresaremos el comando de ipconfig y nos aparecerá nuestra
IP de la maquina física.

67
Este es el cmd para poder ingresar el comando de ipconfig el cual igual nos dará nuestra IP de la
máquina virtual.

68
Hacemos ping de la máquina física a la virtual. Nos mostrara que ya hizo conexión con la máquina
virtual.

Y en este hacemos ping de la máquina virtual a la física. Y de igual manera nos mostrara que ya hizo
la conexión de la maquina física.

Finalmente, después de comprobar que hay conexión entre las dos máquinas crearemos una carpeta
en documentos

69
Después nos vamos a nuestra máquina virtual y damos clic en portapapeles y arrastrar y los
colocamos en bidireccional

Agregamos la carpeta a la máquina virtual

70
Estando agregada la carpeta se visualizará en virtual box asi

71
En la maquina virtual ejecutaremos como administrador lo marcado

Cargando

72
Creamos un archivo dentro de la máquina virtual que se llama gonzalez.txt

73
Ahora ya lo visualizaremos en la maquina física

74
Cuestionario:

1. ¿Cuál es la función de DHCP?


La función principal de DHCP (Dynamic Host Configuration Protocol) es asignar direcciones IP de
forma dinámica a los dispositivos en una red para que puedan comunicarse entre sí y acceder a
recursos de red como Internet. También puede proporcionar información de configuración adicional,
como la puerta de enlace predeterminada y la configuración de DNS.

2. ¿Cuál es la función principal del servicio DNS?


El servicio DNS (Domain Name System) tiene la función principal de traducir nombres de dominio
legibles para los humanos (como "ejemplo.com") en direcciones IP numéricas que las computadoras
utilizan para identificar y comunicarse entre sí en Internet o en una red local.

3. ¿Cómo se lleva a cabo el proceso de configuración de IIS?


El proceso de configuración de IIS (Internet Information Services) generalmente implica los siguientes
pasos:
Instalación del servicio IIS a través del Panel de Control o PowerShell.
Configuración de sitios web, aplicaciones web y servicios FTP según sea necesario.
Configuración de permisos de acceso y seguridad para los sitios y aplicaciones.
Configuración de la autenticación y otros aspectos de seguridad según los requisitos del entorno.

4. ¿Cuáles son los roles por defecto asignados a un usuario en Windows Server?
En Windows Server, los roles por defecto asignados a un usuario dependen de su pertenencia a
grupos predefinidos como Administradores, Usuarios, Invitados, etc. Los usuarios del grupo
Administradores tienen privilegios casi ilimitados en el sistema, mientras que los usuarios del grupo
Usuarios tienen permisos más limitados y los usuarios del grupo Invitados tienen aún menos
privilegios.

5. ¿Cómo se lleva a cabo la configuración de DNS mediante cmdlet?


La configuración de DNS mediante cmdlet en Windows Server se puede llevar a cabo utilizando
herramientas como PowerShell. Algunos cmdlets comunes para configurar DNS incluyen:
Add-DnsServerPrimaryZone: Para agregar una nueva zona primaria al servidor DNS.
Add-DnsServerResourceRecordA: Para agregar un nuevo registro de tipo A (dirección IPv4) a una
zona DNS.
Set-DnsServerPrimaryZone: Para modificar la configuración de una zona primaria existente.
Remove-DnsServerResourceRecord: Para eliminar registros DNS de una zona.
Estos cmdlets permiten automatizar tareas de configuración y administración de DNS a través de
scripts o comandos de PowerShell.

Conclusiones:

75
Con el desarrollo de esta práctica el alumno conocerá como hacer la instalación, configuración y
administración de servicios en Windows Server sin necesidad de hacer uso del asistente y hacer uso
de la línea de comando de Shell.

La implementación y configuración de servicios como IIS, DHCP y DNS son fundamentales para el
funcionamiento eficaz de una red informática. IIS, desarrollado por Microsoft, permite alojar y
gestionar sitios web, aplicaciones y servicios web, proporcionando características avanzadas de
seguridad, rendimiento y equilibrio de carga. DHCP automatiza la asignación de direcciones IP dentro
de una red, reduciendo la carga administrativa y garantizando una conectividad fluida. Por otro lado,
el DNS facilita la resolución de nombres de dominio en direcciones IP, optimizando el acceso a
recursos de red. La implementación adecuada de estos servicios mejora la eficiencia operativa, la
seguridad y la accesibilidad de los sistemas de información de una organización.

Aplicaciones industriales:

DHCP (Dynamic Host Configuration Protocol):


*Asignación dinámica de direcciones IP: En entornos industriales, donde hay una gran cantidad de
dispositivos conectados a la red, DHCP facilita la asignación automática de direcciones IP a estos
dispositivos. Esto simplifica la gestión de la red al eliminar la necesidad de configurar manualmente
cada dispositivo con una dirección IP única, lo que ahorra tiempo y reduce errores humanos.
*Movilidad de dispositivos: En entornos industriales, es común que los dispositivos se muevan de un
lugar a otro. DHCP permite que estos dispositivos obtengan automáticamente una dirección IP válida
en cualquier ubicación de la red, lo que garantiza una conectividad ininterrumpida sin la necesidad de
reconfiguración manual.
*DNS (Domain Name System):
Resolución de nombres de dominio para sistemas de control industrial: En entornos industriales,
donde se utilizan sistemas de control y monitoreo, DNS proporciona la capacidad de asignar nombres
significativos a los dispositivos y sistemas dentro de la red. Esto facilita la identificación y la
comunicación entre los dispositivos utilizando nombres de dominio fáciles de recordar en lugar de
direcciones IP numéricas.
*Acceso remoto a sistemas de monitoreo y control: DNS permite el acceso remoto seguro a sistemas
de monitoreo y control industrial al asociar nombres de dominio con direcciones IP públicas. Esto
facilita la supervisión y el control de procesos industriales desde ubicaciones remotas, mejorando la
eficiencia operativa y la capacidad de respuesta ante situaciones críticas.
*IIS (Internet Information Services):
Despliegue de aplicaciones de control y monitoreo basadas en web: IIS permite a las empresas
industriales alojar aplicaciones web que brindan acceso a sistemas de control y monitoreo industrial a
través de interfaces de usuario basadas en web. Esto facilita la supervisión en tiempo real de los
procesos industriales y la toma de decisiones basada en datos desde cualquier ubicación con acceso
a la red.
Integración de sistemas de gestión de datos: IIS puede utilizarse para alojar sistemas de gestión de
datos industriales, permitiendo el almacenamiento y el análisis de grandes volúmenes de datos

76
generados por sensores y dispositivos en tiempo real. Esto facilita la optimización de procesos, la
detección de problemas y la mejora continua en entornos industriales.

Citas y referencias:

[1] "File server: definición y aspectos básicos". IONOS Digital Guide.


https://www.ionos.es/digitalguide/servidores/know-how/file-server/ (accedido el 24 de febrero de
2023).

[2] “Servidor DSN configuración básica Windows” https://www.edicones.eni.com/open/mediabook


(accedido el 11 de abril de 2024) Ediciones-eni.com.

[3] "Compartir una carpeta con Windows Server - RDR-IT". RDR-IT. https://rdr-it.com/es/compartir-
una-carpeta-con windows-server/ (accedido el 17 de abril de 2024).

[4] “Como instalar un servidor DNS en Windows Server”. JOTELULU | Servicios Cloud para
Distribuidores de IT. Accedido el 17 de abril de 2024. [En línea]. Disponible:
https://jotelulu.com/soporte/tutoriales/como-instalar-un-servidor-dns-en-windows-server/

[5] “Denegar el inicio de sesión de usuario o grupo a través de RDP - Windows Server”. Microsoft
Learn: Build skills that open doors in your career. Accedido el 18 de abril de 2024. [En línea].
Disponible: https://learn.microsoft.com/es-es/troubleshoot/windows-server/remote/deny-user-
permissions-to-logon-to-rd-session-host

Criterios de evaluación:

Funcionamiento: la práctica debe funcionar al 100%, en caso contrario la calificación se otorgará de


acuerdo con lo que logre hacer sin errores.

Documentación: deberá de entregarse una documentación donde se demuestre el paso a paso del
desarrollo que se realizó hasta llegar al resultado final de implementación. Aquí se considera
estructura, errores de redacción, ortográficos y referencias.

77
PRÁCTICA NO. 6

Competencia:

Verificar el rendimiento del sistema en cuanto a memoria, procesador y procesos se refiere, así como
configurar los puntos de seguridad del sistema.

Material:

Equipo de cómputo.

Marco teórico:

El contador de retraso de entrada del usuario mide la diferencia máxima (en un intervalo dado) entre
la entrada que está en la cola y el momento en que la recoge la aplicación en un bucle de mensajes
tradicional. Para supervisar el uso de los recursos y los procesos del servidor, puede utilizar el
Monitor de rendimiento de Windows, incluido con Windows Server. Use PerfMon para recopilar
información detallada de rendimiento, incluida la frecuencia de uso de la CPU, la cantidad de
memoria usada, información sobre cada proceso de Tableau Server, etc.[1]

Un ransomware, o “secuestro de datos” es un tipo de malware o programa dañino que restringe el


acceso al dispositivo adecuado o a determinadas partes y archivos del sistema operativo infectado,
de modo que para seguir usándolo es necesario pagar un rescate que se pide a cambio de quitar esta
restricción, para reducir el riesgo es necesario mantener actualizado el SO, uso de antivirus y
verificación de puertos abiertos.

Un sistema que es vulnerable se identifica como aquel que es susceptible a fallos o errores en el
software o hardware, lo que hace posible un ataque y comprometer la integridad y confidencialidad de
los datos, también tomamos en cuenta el riego que son las acciones desatadas por la vulnerabilidad,
por ejemplo, virus, troyanos, keyloggers y demás, en pocas palabras un riesgo se produce por la
vulnerabilidad del sistema.

El aislamiento del núcleo aporta protección adicional contra malware y otros ataques al aislar los
procesos del equipo del sistema operativo y del dispositivo. Para llevar a cabo la protección al núcleo
es necesario seleccionar detalles de aislamiento del núcleo para habilitar, deshabilitar y cambiar la
configuración de las funciones del aislamiento del núcleo, de forma que se pueda mantener seguro
frente a nuevos ataques.

Desarrollo de la práctica:

78
La práctica a desarrollar se hace conocer cómo podemos realizar el monitoreo de rendimiento
mediante contadores de retardos de usuarios y procesos, así como el uso de memoria. También se
realizará una configuración de protección del sistema para ransonware, vulnerabilidades y
aislamiento. Antes de empezar tendremos que conocer algunos conceptos para entender que
son las acciones que realizaremos.

El proceso que deberá seguir el alumno para la realización de esta práctica costa de los siguientes
pasos:

1. Monitorear el rendimiento mediante contadores de retardos de usuarios y procesos.


2. Monitorear el uso de memoria colocando en ejecución diferentes procesos (programas) y
medir la cantidad de recursos asignados a cada proceso.
3. Realizar la configuración de protección del sistema para ransonware, vulnerabilidades y
aislamiento.

Cuestionario:

1. ¿Qué es un ransomware?

2. ¿Cuál es la clasificación de vulnerabilidades del SO?

3. ¿Cómo se lleva a cabo el proceso de aislamiento para protección del SO?

4. ¿Para qué sirve el realizar monitoreo de rendimiento del SO?

5. ¿Cómo se administran los procesos en ejecución desde el asistente de monitoreo?

Conclusiones:

Con el desarrollo de esta práctica el alumno aprenderá a llevar a cabo la administración de seguridad
básica de servicios del sistema operativo propietario y mantener activa la configuración frente a
ataques. Además, aprenderá a administrar los procesos que se encuentran en ejecución en el
sistema.

79
Aplicaciones industriales:

Citas y referencias:

[1] "Recopilar datos con el Monitor de rendimiento de Windows". Online Help | Tableau Software.
https://help.tableau.com/current/server/es-es/perf_collect_perfmon.htm (accedido el 24 de febrero de
2023).

Criterios de evaluación:

Funcionamiento: la práctica debe funcionar al 100%, en caso contrario la calificación se otorgará de


acuerdo con lo que logre hacer sin errores.

Documentación: deberá de entregarse una documentación donde se demuestre el paso a paso del
desarrollo que se realizó hasta llegar al resultado final de implementación. Aquí se considera
estructura, errores de redacción, ortográficos y referencias.

80
PRÁCTICA NO. 7

Competencia:

Realizar la instalación de Ubuntu Server comprobando su funcionamiento y configuración básica.

Material:

Equipo de cómputo.

Marco teórico:

El software libre suele estar disponible gratuitamente, o al precio de coste de la distribución a través
de otros medios; sin embargo, no es obligatorio que sea así, por lo tanto, no hay que asociar
«software libre» a «software gratuito» (denominado usualmente freeware), ya que, conservando su
carácter de libre, puede ser distribuido comercialmente. Análogamente, el software gratis o gratuito
incluye en ocasiones el código fuente; no obstante, este tipo de software no es «libre» en el mismo
sentido que el software libre, a menos que se garanticen los derechos de modificación y redistribución
de dichas versiones modificadas del programa [1].

Por sistema operativo libre se entiende aquel que el usuario tiene libertad para descargar, ejecutar,
copiar, distribuir o mejorar sin ningún tipo de restricción y din ningún tipo de costo para
posteriormente compartirlo con la comunidad.

Un ejemplo de sistema operativo libre es ubuntu: este sistema operativo es totalmente gratuito ya que
te permite hacer cualquier tipo de operación, este mismo te ofrece su código para que puedas hacer
modificaciones para la mejora de este mismo sistema bajo las condiciones de no vender este
sistema, podrás tener la libertad de hacer copias del sistema modificado o normal y traspasarlo a las
personas sin ningún costo.

Ubuntu es una distribución basada en Debian, sus principales características son:


• Facilidad de manejo
• Actualizaciones frecuentes
• Facilidad de instalación del sistema
• Búsqueda e instalación de programas fácil basada en paquetes.
• Libertad de uso y distribución.

Existe una diversa variedad de sistemas operativos de software libre, así como programas de
software libre que permiten su comercialización sin necesidad de adquirir una licencia o comprarlo
directo del proveedor.

81
Desarrollo de la práctica:

La práctica por desarrollar se hace para conocer cómo realizar la instalación de Ubuntu server en una
máquina virtual. Una vez que se tenga instalado el sistema se llevara a cabo la creación de usuarios y
configuración del firewall. Para entrar en contexto un sistema operativo es el que permite trabajar con
nuestro ordenador, ya que el cumple una función de capa entre el hardware, el usuario y todas las
aplicaciones que utilizan.

El proceso que deberá seguir el alumno para la realización de esta práctica costa de los siguientes
pasos:

1. Instalar Ubuntu Server en máquina virtual


2. Realizar la configuración básica para agregar usuarios con diferentes privilegios sobre el
sistema.
3. Configurar el firewall básico con determinadas reglas de entrada y de salida.

Cuestionario:

1. ¿A qué se refiere el termino software libre?

2. ¿Cuál es la diferencia entre Ubuntu servidor y Ubuntu cliente?

3. ¿Cómo se lleva a cabo el proceso de agregar usuarios dentro de Ubuntu?

4. ¿Cuál es la principal característica del freeware?

5. Mediante que instrucción se permite conocer a los propietarios del sistema desde la consola de
Ubuntu:

Conclusiones:

Al realizar esta práctica el alumno aprenderá a instalar un sistema operativo se software libre para
servidores, identificando las diferencias entre este y un sistema cliente, dado que la interacción se
realizará en modo consola sin la instalación y uso de un medio gráfico.

82
Aplicaciones industriales:

Citas y referencias:

[1] "Software libre - EcuRed". EcuRed. https://www.ecured.cu/Software_libre (accedido el 24 de


febrero de 2023).

Criterios de evaluación:

Funcionamiento: la práctica debe funcionar al 100%, en caso contrario la calificación se otorgará de


acuerdo con lo que logre hacer sin errores.

Documentación: deberá de entregarse una documentación donde se demuestre el paso a paso del
desarrollo que se realizó hasta llegar al resultado final de implementación. Aquí se considera
estructura, errores de redacción, ortográficos y referencias.

83
PRÁCTICA NO. 8

Competencia:

Realizar la instalación de Kali Linux, configurar el primer usuario y verificar las funcionalidades del
sistema.

Material:

Equipo de cómputo.

Marco teórico:

Kali Linux es la versión actualizada y optimizada de la distro BackTrack desarrollada por Offensive
Security, que durante sus siete años de vida ganó un gran número de seguidores.

Kali Linux es la herramienta perfecta para hackers, que buscan (y encuentran) los límites y fisuras en
la seguridad de las redes y sistemas informáticos. Pero eso no tiene por qué estar orientado a
cometer actos ilegales, ya que ser hacker no está vinculado a la ciberdelincuencia, aunque algunos
puedan dedicarse a utilizar sus conocimientos para cometer delitos.

De hecho, está concebida como herramienta para tareas de análisis forense, con la que descubrir por
dónde ha sido atacado un sistema informático y encontrar posibles rastros de su atacante.

La filosofía sobre la que se asienta Kali Linux es su utilización y desarrollo con fines educativos y
éticos, con los que poder explorar las debilidades en la seguridad de las redes y sistemas para
construir un Internet más seguro para todos.

Kali Linux tiene más de 300 herramientas y aplicaciones relacionadas con la seguridad informática
que incluye esta distribución, destacando algunas tan conocidas como Nmap, que permite escanear
los puertos de un sistema, el crackeador de contraseñas John the Ripper o la suite Aircrack-ng para
comprobar la seguridad de las redes inalámbricas.

Desarrollo de la práctica:

La práctica a desarrollar se hace para conocer el proceso de instalación del sistema operativo Kali
Linux 2021.1 en una máquina virtual hecha en VirtualBox, desde donde se va a descargar la ISO y el
proceso de crear la máquina virtual para que pueda funcionar correctamente el sistema
operativo para su posterior uso.

84
El proceso que deberá seguir el alumno para la realización de esta práctica costa de los siguientes
pasos:

1. Descargar Kali Linux desde la página oficial.


2. Instalar el sistema operativo como una máquina virtual.
3. Realizar la configuración básica.
4. Explora las herramientas de análisis del sistema.

Cuestionario:

1. ¿Cuál es la principal función de Kali?

2. ¿Cuáles son las herramientas de análisis y exploración de Kali?

3. ¿Mediante que herramienta se puede conocer las claves de un usuario de un sitio web que visitó?

4. ¿Cómo se puede realizar un ataque a un dispositivo móvil desde Kali?

5. ¿Qué tipo de técnicas se pueden aplicar desde Kali para poder identificar vulnerabilidades de un
sistema?

Conclusiones:

Con el desarrollo de esta práctica el alumno será capaz de conocer cómo funciona Kali para un
ataque simple, además podrá identificar las herramientas de análisis que contiene el sistema para la
auditoria de sistemas.

85
Aplicaciones industriales:

Citas y referencias:

[1] "Kali Linux | Penetration Testing and Ethical Hacking Linux Distribution". Kali Linux.
https://www.kali.org/ (accedido el 27 de febrero de 2023).

Criterios de evaluación:

Funcionamiento: la práctica debe funcionar al 100%, en caso contrario la calificación se otorgará de


acuerdo con lo que logre hacer sin errores.

Documentación: deberá de entregarse una documentación donde se demuestre el paso a paso del
desarrollo que se realizó hasta llegar al resultado final de implementación. Aquí se considera
estructura, errores de redacción, ortográficos y referencias.

86
PRÁCTICA NO. 9

Competencia:

Aprender a manejar directorios y archivos del sistema, así como hacer cambios de configuración del
uso de memoria virtual.

Material:

Equipo de cómputo.

Marco teórico:

Chmod sirve para asignar permisos de acceso a carpetas y directorios en sistemas de archivos
compatibles con los permisos de archivo típicos de Unix. Esto afecta, por regla general, a todos los
sistemas de archivos estándar en las derivaciones de Linux que más se usan para operar servidores
[1]. Para hacer cualquier modificación en los atributos de los archivos chmod, es necesario ser
propietario del archivo o contar con derechos raíz (administrador).

Hay 3 atributos básicos para archivos simples: lectura, escritura y ejecutar.


• Permiso de lectura (read): Si tienes permiso de lectura de un archivo, puedes ver su
contenido.
• Permiso de escritura (write): Si tienes permiso de escritura de un archivo, puedes modificar el
archivo. Puedes agregar, sobrescribir o borrar su contenido.
• Permiso de ejecución (execute): Si el archivo tiene permiso de ejecución, entonces puedes
decirle al sistema operativo que lo ejecute como si fuera un programa. Si es un programa llamado
«foo» lo podremos ejecutar como cualquier comando.

Los caracteres atribuidos a los permisos son:


r quiere decir escritura y viene de Read
w quiere decir lectura y viene de Write
x quiere decir ejecución y viene de eXecute

Usando chmod para cambiar los permisos chmod (change mode) es el comando utilizado para
cambiar permisos, se pueden agregar o remover permisos a uno o más archivos con + (mas) o –
(menos), la sintaxis sería chmod u+w archivo, con este comando lo que hacemos es agregar permiso
de escritura a usuario, si colocamos chmod 777 archivo, estamos agregando todos los permisos al
archivo con el que estamos trabajando, chmod trabaja con letras o sus equivalentes en octal para
agregar o quitar los permisos sobre carpetas y archivos..

87
Swappiness: En nuestro sistema operativo la creación de la memoria virtual se suele realizar durante
el proceso de instalación, momento en el cual definimos la partición raíz (/), la de almacenamiento
(/home) y la de intercambio o swap, que suele quedar implementada en la partición /dev/sda5 [2]. El
parámetro del kernel que gestiona el uso de la memoria virtual es el swappiness, y básicamente
podemos decir que se encarga de definir qué tan seguido accedemos a la partición de intercambio y
que tanto contenido copiamos en ella, mediante un argumento que varía entre 0 y 100.

Desarrollo de la práctica:

La práctica a desarrollar se hace para conocer el uso de chmod en el cual veremos equivalentes
de este comando con números para hacer cambios de privilegios, al igual que configuraremos
el swappiness de forma temporal y permanente, por último, se creará una tabla de particiones
a un dispositivo externo creando 3 particiones primarias y 2 extendidas, y después les asignaremos
diferentes formatos a cada partición.

El proceso que deberá seguir el alumno para la realización de esta práctica costa de los siguientes
pasos:

1. Realizar cambios de privilegios sobre archivos y directorios mediante chmod investigando su


equivalente en número para hacer los cambios de privilegios.
2. Cambiar la configuración de swappiness de forma temporal a 90 y de forma permanente a 50.
3. Crear una tabla de particiones a un dispositivo externo (memoria), creando 3 particiones
primarias y 2 extendidas.
4. Asignar diferentes formatos a cada partición y al final verificar en el administrador de disco del
sistema.

Cuestionario:

1. ¿Cuál es la principal función de chmod?

2. ¿Cuál es la estructura de permisos de archivos en Ubuntu?

3. Mediante que instrucción se realiza el cambio de privilegio de escritura de un archivo en Ubuntu:

4. ¿Cuál es el equivalente numérico de la instrucción anterior?

5. ¿Cómo se configura el valor de swappiness de forma temporal en Ubuntu?

88
Conclusiones:

Al termino de esta práctica el alumno será capaz de llevar a cabo la administración de archivos y
usuarios determinando de forma eficiente como colocar los permisos y accesos.

Aplicaciones industriales:

Citas y referencias:

[1] "Introducción a la asignación de permisos de directorio en Linux". IONOS Digital Guide.


https://www.ionos.es/digitalguide/servidores/know-how/asignacion-de-permisos-de-acceso-con-
chmod/ (accedido el 27 de febrero de 2023).

[2] "Swappiness: cómo ajustar el uso de la memoria virtual". Ubunlog.


https://ubunlog.com/swappiness-como-ajustar-el-uso-de-la-memoria-virtual/ (accedido el 27 de
febrero de 2023).

Criterios de evaluación:

Funcionamiento: la práctica debe funcionar al 100%, en caso contrario la calificación se otorgará de


acuerdo con lo que logre hacer sin errores.

Documentación: deberá de entregarse una documentación donde se demuestre el paso a paso del
desarrollo que se realizó hasta llegar al resultado final de implementación. Aquí se considera
estructura, errores de redacción, ortográficos y referencias.

89
90
PRÁCTICA NO. 10

Competencia:

Implementar un servido NFS para intercambio de archivos entre máquina virtual y física a través de
una red interna.

Material:

Equipo de cómputo.

Marco teórico:

Un sistema de archivos es el sistema de almacenamiento de un dispositivo de memoria, que


estructura y organiza la escritura, búsqueda, lectura, almacenamiento, edición y eliminación de
archivos de una manera concreta. El objetivo principal de esta organización es que el usuario pueda
identificar los archivos sin lugar a error y acceder a ellos lo más rápido posible. Los sistemas de
archivos también otorgan a los archivos, entre otras, las siguientes características:
• Convenciones para nombrar a los archivos
• Atributos de archivo
• Control(es) de acceso

Asimismo, los sistemas de archivos son un componente operativo importante, ya que actúan como
una interfaz entre el sistema operativo y todos los dispositivos conectados al equipo (internos y
externos, como las memorias USB). Para instalar un sistema de archivos, hay que formatear el
soporte de datos. Los medios de almacenamiento que se comercializan ya vienen formateados. En el
pasado, era común que el propio usuario tuviera que configurar los nuevos soportes de datos para
almacenar y administrar los archivos.

Sus principales funciones son la asignación de espacio a los archivos, la administración del espacio
libre y del acceso a los datos resguardados. Estructuran la información guardada en un dispositivo de
almacenamiento de datos o unidad de almacenamiento (normalmente un disco duro de una
computadora), que luego será representada ya sea textual o gráficamente utilizando un gestor de
archivos. La mayoría de los sistemas operativos manejan su propio sistema de archivos.

Los sistemas de archivos proveen métodos para crear, mover, renombrar y eliminar tanto archivos
como directorios, pero carecen de métodos para crear, por ejemplo, enlaces adicionales a un
directorio o archivo (enlace duro en Unix) o renombrar enlaces padres (".." en Unix). El acceso seguro
a sistemas de archivos básicos puede estar basado en los esquemas de lista de control de acceso
(access control list, ACL) o capacidades. Los sistemas operativos comerciales todavía funcionan con
listas de control de acceso.

91
Hay diversos sistemas de archivos estándar para Windows, macOS, Linux, Unix y el resto de los
sistemas operativos. En los últimos años, con el desarrollo de las nuevas tecnologías, se han ido
diferenciando cada vez más: por ejemplo, se han creado sistemas de archivos adecuados para los
dispositivos de almacenamiento flash, cada vez más populares, entre los que se incluyen las
memorias USB y las unidades SSD. Todos los sistemas de archivos comparten la característica de
utilizar una estructura de árbol para organizar los archivos, que parte del directorio raíz. A partir de
ahí, se ramifican el resto de las carpetas o directorios y subcarpetas.

En la actualidad, existen bastantes sistemas de archivos, aunque no todos están igual de extendidos.
Los más habituales hasta la fecha son FAT16, FAT32, exFAT y NTFS (Windows) y HFS+ y APFS
(macOS/Mac OS X). Linux utiliza actualmente ext4 (sucesor de ext3 y ext2), entre otros. A
continuación, resumimos brevemente las características de estos sistemas de archivos [1].

NFS (Network File System -Sistema de archivos de red) es un mecanismo para almacenar archivos
en una red. Es un sistema de archivos distribuido que permite a los usuarios acceder a los archivos y
directorios ubicados en sistemas remotos y tratar dichos archivos y directorios como si fueran locales.
Los usuarios pueden utilizar mandatos del sistema operativo para crear, eliminar, leer, grabar y
establecer atributos de archivo para archivos y directorios remotos. El paquete de software NFS
incluye mandatos y daemons para NFS, NIS (Network Information Service) y otros servicios. Aunque
NFS y NIS se instalan juntos como un paquete, cada uno es independiente y cada uno se configura y
se administra individualmente. Consulte la publicación Network Information Services (NIS and NIS+)
Guide para obtener detalles sobre NIS y NIS+ [2].

Desarrollo de la práctica:

La práctica a desarrollar se hace para conocer el concepto de sistemas de archivos el cual se


refiere a un sistema de almacenamiento de un dispositivo de memoria, que estructura y
organiza la escritura, búsqueda, lectura, almacenamiento, edición y eliminación de archivos de una
manera concreta. De igual forma un sistema de archivos en red el cual es un mecanismo para
almacenar archivos en una red. Es un sistema de archivos distribuido que permite a los usuarios
acceder a los archivos y directorios ubicados en sistemas remotos y tratar dichos archivos y
directorios como si fueran locales. Se llevará a cabo la implementación del servicio NFS servidor con
conexión mediante un cliente para almacenar y compartir archivos, el cual se creará en un SO Linux
en el cual tendremos tanto el cliente como al servidor en la misma máquina virtual de Ubuntu.

El proceso que deberá seguir el alumno para la realización de esta práctica consta de los siguientes
pasos:

1. Instalar una máquina virtual con SO de Linux


2. Sobre la máquina virtual instalar el servicio NFS
3. En la máquina cliente configurar el servicio para comunicación a la máquina servidor.
4. Compartir archivos entre ambas máquinas.

92
Cuestionario:

1. ¿Qué es un NFS?

2. ¿Qué es un sistema de archivos?

3. ¿Qué es un sistema de archivos en red?

4. ¿Cuáles son los formatos válidos para un sistema de archivos?

5. ¿Qué componentes se requieren para el servicio de NFS?

Conclusiones:

Una vez concluida la práctica el estudiante será capaz de transferir de forma eficiente archivos a
través de una red entre equipos que se encuentren conectados de manera que se establezca una
comunicación segura.

Aplicaciones industriales:

Citas y referencias:

[1] "IBM Documentation". IBM - Deutschland | IBM. https://www.ibm.com/docs/es/aix/7.1?


topic=management-network-file-system (accedido el 27 de febrero de 2023).

[2] "Sistema de archivos de red (NFS)". MIT - Massachusetts Institute of Technology.


https://web.mit.edu/rhel-doc/4/RH-DOCS/rhel-rg-es-4/ch-nfs.html (accedido el 27 de febrero de 2023).

93
Criterios de evaluación:

Funcionamiento: la práctica debe funcionar al 100%, en caso contrario la calificación se otorgará de


acuerdo con lo que logre hacer sin errores.

Documentación: deberá de entregarse una documentación donde se demuestre el paso a paso del
desarrollo que se realizó hasta llegar al resultado final de implementación. Aquí se considera
estructura, errores de redacción, ortográficos y referencias.

94
PRÁCTICA NO. 11

Competencia:

Implementar un chat por medio de sockets en java.

Material:

Equipo de cómputo.

Marco teórico:

Los Sockets son una interfaz que permiten que las aplicaciones puedan acceder a los servicios que
brinda el software TCP/IP, permitiendo la comunicación entre procesos en el mismo equipo o en
equipos diferentes.

La Interfaz Socket proporciona funciones generalizadas que dan soporte a las comunicaciones en red
empleando para ello muchos de los protocolos disponibles hoy en día. Los llamados sockets hacen
referencia a todos los protocolos TCP/IP como una única familia. Las llamadas permiten al
programador especificar el tipo de servicio requerido, en vez del nombre de un protocolo específico
[1].

Los tipos más comunes son [2]:

Sockets Stream: son los más utilizados, hacen uso del protocolo TCP, el cual nos provee un flujo de
datos bidireccional, secuenciado, sin duplicación de paquetes y libre de errores.

Sockets Datagram: hacen uso del protocolo UDP, el cual nos provee un flujo de datos bidireccional,
pero los paquetes pueden llegar fuera de secuencia, pueden no llegar o contener errores. Por lo
tanto, el proceso que recibe los datos debe realizar re-secuenciamiento, eliminar duplicados y
asegurar la confiabilidad. Se llaman también sockets sin conexión, porque no hay que mantener una
conexión activa, como en el caso de sockets stream. Son utilizados para transferencia de información
paquete por paquete. Ejemplo: dns, tftp, etc. Ellos implementan un protocolo encima de UDP que
realiza control de errores.

Sockets SeqPacket: Establece una conexión fiable bidireccional con un tamaño de mensaje máximo
definido. (Este tipo puede no estar habilitado en algunos sistemas.)

Sockets Raw: no son para el usuario común, son provistos principalmente para aquellos interesados
en desarrollar nuevos protocolos de comunicación o para hacer uso de facilidades ocultas de un
protocolo existente.

95
Desarrollo de la práctica:

La interfaz de sockets en una API que permite el desarrollo de programas donde se requiera
comunicación entre procesos, ya sea local o remotamente, con base en distintos protocolos de
comunicación (principalmente TCP/IP y mecanismos de comunicación entre procesos).

El uso más común de esta interfaz es en el desarrollo de programas dentro de un ambiente


distribuido cliente-servidor, trabajando sobre la familia de protocolos TCP/IP. La disponibilidad de una
API de sockets está en función del sistema operativo que se esté usando, así como del lenguaje de
programación.

El proceso que deberá seguir el alumno para la realización de esta práctica costa de los siguientes
pasos, la implementación del programa constará de dos etapas:

Etapa 1. Implementar un cliente

1. Crear un objeto de la clase Socket, indicando host y puerto donde corre el servicio.
2. Obtener las referencias al stream de entrada y al de salida al socket.
3. Leer desde y escribir en el stream de acuerdo con el protocolo del servicio.
4. Cerrar los streams.
5. Cerrar el socket.

Etapa 2. Implementar un servidor

1. Crear un objeto de la clase ServerSocket para escuchar peticiones en el puerto asignado al


servicio.
2. Esperar solicitudes de clientes
3. Cuando se produce una solicitud:
4. Aceptar la conexión obteniendo un objeto de la clase Socket
5. Obtener las referencias al stream de entrada y al de salida al socket anterior.
6. Leer datos del socket, procesarlos y enviar respuestas al cliente.
7. Cerrar los streams.
8. Cerrar los sockets.

Cuestionario:

1. ¿Qué es un socket?

2. Realiza el diagrama de conexión simple cliente-servidor:

96
3. ¿Qué operaciones se pueden realizar sobre un socket?

4. ¿Cuáles son las principales llamadas a los sockets?

5. ¿Cuáles son los dominios más comunes para la comunicación de sockets?

Conclusiones:

Al término de la práctica el alumno podrá identificar las primitivas de un socket y como interactúan
para lograr la comunicación entre sistemas, se verificará a través de que puerto se comunican el
momento en que abren y cierran, además de la forma en que se intercambia la información.

Aplicaciones industriales:

Citas y referencias:

[1] A. S. Tanenbaum, Sistemas Operativos Distribuidos. Prentice Hall, 1996.

[2] J. Dollimore y G. Coulouris, Sistemas Distribuidos - 3b: Edicion. Pearson Educacion, 2005.

Criterios de evaluación:

97
Funcionamiento: la práctica debe funcionar al 100%, en caso contrario la calificación se otorgará de
acuerdo con lo que logre hacer sin errores.

Documentación: deberá de entregarse una documentación donde se demuestre el paso a paso del
desarrollo que se realizó hasta llegar al resultado final de implementación. Aquí se considera
estructura, errores de redacción, ortográficos y referencias.

98

También podría gustarte