Tutoriales

Cómo encontrar las 10 principales IP que acceden a servidores Apache/Nginx

Como administrador de un servidor web, es importante monitorear y analizar el tráfico hacia y desde su servidor web, incluida la identificación de direcciones IP de nivel superior para obtener información sobre los patrones de tráfico y las posibles amenazas a la seguridad.

Un beneficio de identificar la dirección IP de nivel superior al acceder a un servidor web es la existencia de un archivo de registro de acceso, que almacena información sobre cada actividad de acceso que ocurre en el servidor.

Siempre es importante utilizar archivos de registro porque le permiten comprender todo lo que sucede dentro de su sistema o aplicación (en este caso, el servidor web Apache).

Si surge algún problema relacionado con el rendimiento o el acceso, los archivos de registro pueden ayudar a identificar qué pudo haber salido mal o qué está pasando.

En este artículo, exploraremos cómo usar comandos en Linux para encontrar las 10 principales direcciones IP que acceden a un servidor web Apache o Nginx.

Acceder a los archivos de registro del servidor web

El primer paso es acceder al archivo de registro generado por el servidor web, que contiene información detallada sobre cada solicitud realizada al servidor, incluida la dirección IP del cliente que accede al servidor.

La ruta predeterminada es apache El registro del servidor web es:

/var/log/httpd/access_log      [For RedHat based systems]
/var/log/apache2/access.log    [For Debian based systems]

La ruta predeterminada es nginx El registro del servidor web es:

/var/log/nginx/access_log

Vea el registro usando cualquier editor de texto de su elección. Si su servidor Apache utiliza un archivo de registro o una ubicación diferente, ajuste el comando en consecuencia.

Encuentre las 10 mejores IP para servidores web

Para encontrar las 10 direcciones IP principales de los servidores web que acceden a este dominio, puede utilizar el comando awk.

Encuentra una dirección IP única apache Servidor web, utilice:

awk '{print $1}' /var/log/apache2/access.log | sort | uniq -c | sort -nr | head -10

Encuentra una dirección IP única nginx Servidor web, utilice:

awk '{print $1}' /var/log/nginx/access.log | sort | uniq -c | sort -nr | head -10

salida de muestra:

5482 103.28.37.178
5356 66.249.78.168
1977 66.249.93.145
1962 157.55.39.251
1924 66.249.93.142
1921 66.249.93.148
1890 64.233.173.178
1860 108.61.183.134
1841 64.233.173.182
1582 157.55.39.251

Explicación del comando anterior:

  • awk '{print $1}' – Extraiga la primera columna (dirección IP) del registro.
  • sort – Ayuda a ordenar líneas en el archivo access.log, -n La opción compara sumas de filas basadas en valores de cadena. -r Opción de invertir el resultado de la comparación.
  • uniq – Ayuda para informar sumas de filas duplicadas -c La opción ayuda a prefijar líneas según el número de apariciones.
  • head -n 10 – Muestra las 10 direcciones IP principales.

Alternativamente, puede usar el comando grep para filtrar los registros de acceso para un rango de tiempo específico o una coincidencia de patrón.

grep "2023-10-10 12:00" /var/log/nginx/access.log | awk '{print $1}' | sort | uniq -c | sort -nr | head -10

Para automatizar este proceso, puede configurar un script que se ejecute periódicamente para extraer y analizar los registros de acceso. Luego, el script puede enviar los resultados por correo electrónico o activar una alerta cuando ciertas direcciones IP superen los umbrales definidos.

#!/bin/bash

# Define variables
LOG_FILE="/var/log/nginx/access.log"
OUTPUT_FILE="/path/to/output.txt"

# Run the command and save the output
result=$(awk '{print $1}' "$LOG_FILE" | sort | uniq -c | sort -nr | head -10)

# Save the result to a file
echo "$result" > "$OUTPUT_FILE"

# Optionally, you can also send an email with the result
# mail -s "Top 10 IP Addresses Report" [email protected] < "$OUTPUT_FILE"

Recuerde ajustar las variables del script a su entorno específico.

generalizar

Hay muchas maneras de lograr esto, si conoce una mejor manera, puede compartirla en los comentarios, si tiene alguna sugerencia o pregunta, recuerde dejar un comentario en la sección de comentarios a continuación y lo discutiremos juntos.

Publicaciones relacionadas

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

Botón volver arriba