Módulo 1 Lección 3 de 7 Práctica ~45 min

Práctica 1.3 — Explorar el servidor

En esta práctica vas a conectarte al servidor de práctica y explorar su estructura usando los comandos de las lecciones anteriores. Todo lo que ejecutes será en un entorno real de Ubuntu 24.04.

Antes de empezar Necesitas tener completas las lecciones 1.1 y 1.2. Si no has practicado ls, cd, cat y grep, vuelve a la lección anterior.

Objetivos de la práctica

Pasos de la práctica

Paso 1
Conectarse por SSH

Usa la clave privada que te entregó el profe. El nombre de usuario es tu número de estudiante.

tu computador local
# Primero, asegura los permisos de tu clave
$ chmod 400 ~/clave-practica.pem
 
# Conéctate (reemplaza TUNUMERO con tu número de estudiante)
$ ssh -i ~/clave-practica.pem TUNUMERO@practica.educadoradeti.org
 
Welcome to Ubuntu 24.04.1 LTS (GNU/Linux 6.8.0-1019-aws x86_64)
 
Last login: Mon Jan 15 09:30:00 2025 from 190.x.x.x
TUNUMERO@practica:~$
¿Error de permisos? Si ves WARNING: UNPROTECTED PRIVATE KEY FILE!, significa que el archivo .pem tiene permisos demasiado abiertos. El chmod 400 del paso anterior debe resolver esto.
Paso 2
Ver los servicios activos

Usa systemctl para ver qué servicios están corriendo. Busca especialmente nginx y ssh.

TUNUMERO@practica:~
$ systemctl list-units --type=service --state=running
UNIT LOAD ACTIVE SUB DESCRIPTION
nginx.service loaded active running A high performance web server
ssh.service loaded active running OpenBSD Secure Shell server
amazon-ssm-agent.service loaded active running Amazon SSM Agent
cron.service loaded active running Regular background program
 
# Ver el estado detallado de nginx
$ sudo systemctl status nginx
● nginx.service - A high performance web server and a reverse proxy server
Loaded: loaded (/lib/systemd/system/nginx.service; enabled)
Active: active (running) since Mon 2025-01-15 08:00:00 UTC
PID: 892 (nginx)
Paso 3
Explorar la configuración de nginx

El archivo principal de nginx es /etc/nginx/nginx.conf, pero los virtual hosts viven en /etc/nginx/sites-enabled/.

TUNUMERO@practica:~
$ ls /etc/nginx/
conf.d fastcgi.conf mime.types nginx.conf sites-available sites-enabled snippets
 
$ ls -la /etc/nginx/sites-enabled/
lrwxrwxrwx 1 root root 45 Jan 10 educadoradeti.org -> ../sites-available/educadoradeti.org
 
# Lee el virtual host — anota qué puerto usa y dónde apunta
$ cat /etc/nginx/sites-available/educadoradeti.org
server {
listen 443 ssl;
server_name educadoradeti.org www.educadoradeti.org;
root /var/www/educadoradeti.org/html;
index index.html;
}
Paso 4
Revisar los logs de acceso

Los logs de nginx están en /var/log/nginx/. El archivo access.log registra cada petición recibida.

TUNUMERO@practica:~
$ sudo tail -20 /var/log/nginx/access.log
190.x.x.x - - [15/Jan/2025:10:23:01 +0000] "GET / HTTP/1.1" 200 8421
190.x.x.x - - [15/Jan/2025:10:23:02 +0000] "GET /css/main.css HTTP/1.1" 200 2304
66.x.x.x - - [15/Jan/2025:10:25:11 +0000] "GET /wp-admin HTTP/1.1" 404 153
 
# Contar cuántas peticiones exitosas hubo hoy
$ sudo grep " 200 " /var/log/nginx/access.log | wc -l
342
 
# Ver las IPs que más visitan el sitio
$ sudo awk '{print $1}' /var/log/nginx/access.log | sort | uniq -c | sort -rn | head -5
89 190.26.x.x
42 181.132.x.x
21 66.249.x.x
Paso 5
Analizar permisos del directorio web

Los archivos del sitio deben ser legibles por nginx (usuario www-data), pero no modificables por cualquiera.

TUNUMERO@practica:~
$ ls -la /var/www/educadoradeti.org/
total 16
drwxr-xr-x 4 ubuntu www-data 4096 Jan 15 html/
drwxr-xr-x 3 ubuntu www-data 4096 Jan 15 modulos/
drwxr-xr-x 3 ubuntu www-data 4096 Jan 15 css/
 
# Los archivos HTML: lectura para todos, escritura sólo para ubuntu
$ ls -la /var/www/educadoradeti.org/html/
-rw-r--r-- 1 ubuntu www-data 8421 Jan 15 index.html
# rw- = ubuntu puede leer/escribir
# r-- = www-data puede leer (nginx)
# r-- = otros pueden leer
Para entender los permisos En la lección 1.4 veremos chmod y chown en detalle. Por ahora, identifica el patrón: rw-r--r-- en archivos web es el estándar seguro.

Entrega de la práctica

📋
Captura y responde en el campus virtual
  1. Captura de pantalla mostrando la salida de systemctl status nginx
  2. ¿Qué usuario es el dueño de los archivos en /var/www/educadoradeti.org/html/?
  3. ¿Cuántas peticiones HTTP 200 hay en el log de acceso?
  4. ¿Por qué el directorio del sitio tiene grupo www-data en lugar de solo el usuario ubuntu?
  5. Reto opcional — Usa grep para encontrar cuántas peticiones con código 404 hay en el access.log. ¿Qué URL se pide más que no existe?