Agregue la vista access.log de Apache basada en terminal y web con GoAccess.
En nombre de la seguridad, mientras más información tengamos sobre nuestros sistemas, mejor estaremos. Algunas veces esa información puede no estar directamente relacionada con la seguridad, y otras veces sí. Caso en cuestión: el servidor web Apache. Hay un archivo llamado access.log que muestra información crucial sobre lo que sucede con el servidor web.
El archivo Apache access.log almacena información sobre eventos que ocurren en el servidor web Apache. Dicha información puede incluir la dirección IP del visitante, las páginas visitadas, los códigos de estado, los navegadores utilizados y más.
Pero peinarse a través de archivos de registro basados en texto puede ser engorroso, especialmente cuando sus tareas de administración siguen acumulándose. Con ese fin, ¿qué haces? Siempre puedes recurrir a una herramienta como GoAccess.
GoAccess es un tablero en tiempo real basado en la terminal y en la web que se utiliza para leer el archivo Apache access.log. Voy a guiarlo a través del proceso de instalación de GoAccess en Ubuntu Server 19.10, ejecutando Apache 2.
VER: Seguridad de Windows 10: una guía para líderes empresariales (TechRepublic Premium)
Lo que necesitarás
Las únicas cosas que necesitará para hacer que GoAccess se ejecute en su sistema son las siguientes:
Cómo instalar dependencias
Lo primero que debe hacerse es la instalación de las dependencias necesarias. Para hacer esto, abra una ventana de terminal y emita el siguiente comando:
sudo apt-get install libncursesw5-dev gcc make libgeoip-dev libtokyocabinet-dev build-essential -y
Una vez que se complete, ya está listo para instalar GoAccess.
Cómo instalar GoAccess
Para instalar GoAccess, descargue el archivo tar necesario con el comando:
wget http://tar.goaccess.io/goaccess-1.3.tar.gz
Extraiga el archivo con el comando:
tar xvzf goaccess-1.3.tar.gz
Cambie al directorio recién creado con el comando:
cd goaccess-1.3
Instalar con los siguientes comandos:
sudo ./configure --enable-utf8 --enable-geoip=legacy sudo make sudo make install
Cómo ejecutar GoAccess
Ahora vamos a ejecutar GoAccess en la terminal. Para hacer eso, emita el comando:
sudo goaccess /var/log/apache2/access.log --log-format=COMBINED
Ahora debería ver GoAccess mostrando datos en tiempo real de su archivo access.log en la terminal (Figura A)
Figura A
La pantalla en tiempo real de Goaccess.
"data-credit =" "rel =" noopener noreferrer nofollow "> La pantalla en tiempo real de Goaccess.
Puede desplazarse por la mitad inferior de la pantalla para ver las diferentes secciones del archivo de registro. Por ejemplo, desplácese hacia abajo para ver la lista de nombres de host de visitante e IP (Figura B)
Figura B
Nombres de host e IP enumerados.
"data-credit =" "rel =" noopener noreferrer nofollow "> Nombres de host e IP enumerados.
Para salir de GoAccess, presione Q en su teclado.
Cómo ver el panel web
Ahora vamos a ejecutar GoAccess de modo que muestre el tablero basado en la web. Fuera del tablero basado en la web, que es mucho más bonito y fácil de leer, la principal diferencia entre los dos es que el tablero del terminal es en tiempo real, mientras que el tablero web se lee del informe generado por el comando. Para esto, emita el comando:
sudo goaccess /var/log/apache2/access.log --log-format=COMBINED -a -o /var/www/html/report.html
Debería recuperar su mensaje de terminal. Abra un navegador web y apúntelo a http: //SERVER_IP/report.html (donde SERVER_IP es la dirección IP del servidor que aloja GoAccess y Apache). Debería ver la información en un formato fácil de usar (Figura C)
Figura C
El tablero estático basado en la web.
"data-credit =" "rel =" noopener noreferrer nofollow "> El tablero estático basado en la web.
Cómo recibir pseudo actualizaciones en tiempo real
Para obtener estadísticas actualizadas en su servidor, tendría que ejecutar el comando goaccess por segunda vez. La única forma de obtener actualizaciones periódicas sería crear un script bash y ejecutarlo como un cronjob cada minuto más o menos. Para esto, cree un script bash con el contenido:
!#/bin/bash sudo goaccess /var/log/apache2/access.log --log-format=COMBINED -a -o /var/www/html/report.html
Guarde ese archivo en el directorio de inicio de su usuario. Luego cree una entrada crontab con el comando:
sudo crontab -e
La entrada cron (para ejecutar el comando cada minuto) podría verse así:
* * * * * /home/USERNAME/goaccess.sh
Donde USERNAME es el nombre de un usuario en su sistema.
Con esa entrada crontab en su lugar, cada minuto ese archivo report.html se actualizará con los nuevos datos.
Ahora tiene los medios para ver fácilmente el contenido de su Apache access.log. Controle todos los aspectos de su servidor web para que pueda disfrutar un poco más de seguridad.
Ver también
"data-credit =" Imagen: Apache "rel =" noopener noreferrer nofollow "> Imagen: Apache