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
- Conectarte al servidor via SSH con tu clave privada
- Identificar los servicios activos con
systemctl - Localizar los archivos de configuración de nginx
- Revisar los logs del servidor
- Entender los permisos del directorio web
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.
# 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.
$ 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/.
$ 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.
$ 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.
$ 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
- Captura de pantalla mostrando la salida de
systemctl status nginx - ¿Qué usuario es el dueño de los archivos en
/var/www/educadoradeti.org/html/? - ¿Cuántas peticiones HTTP 200 hay en el log de acceso?
- ¿Por qué el directorio del sitio tiene grupo
www-dataen lugar de solo el usuarioubuntu? - Reto opcional — Usa
greppara encontrar cuántas peticiones con código 404 hay en el access.log. ¿Qué URL se pide más que no existe?