Nivel 3 · 3A Sistemas y terminal · Lección 2 de 3
Buscar en archivos y leer registros
Los servidores anotan casi todo lo que pasa en archivos llamados registros o logs: quién entró, quién falló, qué página se pidió. Son la mejor pista para saber si alguien está atacando. El problema es que pueden tener miles de líneas, y leerlas a ojo no sirve.
grep: quedarte solo con lo que importa
grep palabra archivo muestra únicamente las líneas que contienen esa palabra. Con -c cuenta cuántas son, con -i ignora mayúsculas y con -v muestra las que NO la tienen.
grep Failed /var/log/auth.log
grep -c Failed /var/log/auth.log- La primera línea muestra todas las líneas del registro que contienen Failed.
- La segunda solo cuenta cuántas son.
Tuberías: encadenar comandos
El símbolo | (tubería) toma la salida de un comando y se la pasa al siguiente. Con cut sacás una columna, sort ordena, uniq -c cuenta repetidos y sort -rn deja arriba los más numerosos. Así armás un análisis completo en una sola línea.
grep 401 acceso.log | cut -d" " -f1 | sort | uniq -c | sort -rn- grep 401 se queda con los pedidos rechazados.
- cut -d" " -f1 saca la primera columna, que es la IP.
- sort las ordena y uniq -c cuenta cuántas veces aparece cada una.
- sort -rn deja arriba la IP con más intentos.
Para ir más a fondo
Por qué el orden importa
uniq solo junta líneas repetidas que están una al lado de la otra, por eso siempre se escribe sort antes. Después, un segundo sort -rn ordena por cantidad de mayor a menor. Cada comando hace una sola cosa y la tubería los une: esa idea es la base de la caja de herramientas de Linux.
Preguntas de repaso
¿Qué hace grep -c Failed auth.log?
Respuesta: Cuenta cuántas líneas contienen Failed. La opción -c hace que grep cuente las líneas coincidentes en vez de mostrarlas.
En una cadena de comandos, ¿qué hace el símbolo |?
Respuesta: Pasa la salida de un comando como entrada del siguiente. La tubería conecta comandos: lo que uno produce, el siguiente lo recibe.
Una IP aparece 300 veces con «clave incorrecta» en cinco minutos. ¿Qué es lo más probable?
Respuesta: Un robot probando claves (fuerza bruta). Una persona no prueba 300 claves en cinco minutos. Es un ataque automático.