monitoreo

  • A éste lo he llamado el truco del año: la posibilidad de utilizar la herramienta de análisis de protocolos de red Wireshark, en tiempo real, para examinar el tráfico sobre una placa de red de un servidor remoto.

  • En este artículo quise demostrar algunos de los ataques que detecta y reporta logwatch a diario, de acuerdo a la información que recoge de los logs de accesos y errores del servidor Nginx, junto con un uso insospechado que recientemente encontré al mismo.

    Logwatch es una herramienta indispensable en todos mis servidores. Es la que me permite tener una visión general de la actividad de cada servidor a lo largo del día. Y es la que, junto con AIDE, me permite detectar cualquier actividad sospechosa en los procesos y el filesystem.

    Este es otro artículo para generar conciencia respecto a la seguridad de la información, y los peligros que supone poner un servicio a disposición de Internet (en este caso, un sitio Web). Es común que muchos administradores novatos o negligentes se inclinen hacia razonamientos del tipo "a mi no me va a pasar", "quién va a querer atacar mi servidor", u otros similares. Este tipo de argumentos son desacertados porque asumen intencionalidad. Es decir asumen que van a ser víctimas de ataques cuando un individuo quiera provocar específicamente un daño a la reputación de nuestra marca/empresa/cliente/servidor. Tal aseveración es falsa y la realidad es que, en la mayoría de los casos, los atacantes no buscan un daño o prejuicio, sino que simplemente buscan agregar un nodo más a una botnet, sin dejar el más mínimo rastro o daño que los pueda poner en evidencia. Y más aún, la mayoría de los ataques no son dirigidos específicamente a un sitio o servidor, sino que son "al voleo" y con herramientas automáticas. Y en muchos casos llevados a cabo por robots. A quién atacan luego con la botnet, vaya uno a saber. Lo importante es que sea lo más grande posible (en cantidad de nodos o bots).

    En definitiva, cuando uno pone a disposición un servicio accesible públicamente, tarde o temprano será atacado. Pues los robots barren constantemente las redes IPv4 e IPv6 en búsqueda de nuevos hosts y puertos abiertos.

  • Este artículo explica cómo instalar logwatch en Debian y habilitar el resumen de logs de Nginx en la salida del mismo.

    Logwatch es una poderosa y versátil herramienta de análisis forense de logs de servicios (Web, correo, sistema, etc.) Está diseñado para elaborar un reporte unificado de toda la actividad en el servidor para un período determinado (típicamente el último día), el cual puede ser enviado por mail. De esta forma podemos recibir a diario, en nuestra casilla de correo electrónico, un resumen de la actividad sospechosa/anormal del día anterior.

  • Landscape es una herramienta de Ubuntu para monitorear servidores desde un navegador Web. Funciona instalando un cliente (demonio) en cada sistema a monitorear, el cual se encarga de recolectar y enviar datos a un servicio en la nube propiedad de Canonical (la empresa que desarrolla Ubuntu). A su vez, este servicio en la nube posee una interfaz Web desde la cual es posible gestionar y administrar nuestros sistemas (por ejemplo actualizar, instalar paquetes. Lógicamente el acceso a este servicio en la nube no es gratuito, aunque Canonical ofrece un período de prueba de 30 días en cada instalación nueva.

    Más allá de que existen muchas herramientas de línea de comandos (más eficientes y gratuitas) para monitorear servidores (como atop, SYSSTAT, top, free, vmstat, iostat, nload, vnstat, y muchas más), no me interesa en absoluto enviar datos y de mis servidores a Canonical, pero mucho menos permitirle el control y acceso a los mismos. Por ello en este artículo voy a demostrar cómo deshabilitar el cliente Landscape en Ubuntu 14.04.

  • Mientras estaba haciendo un tunning de performance de un servidor MySQL, tuve la necesidad de determinar qué procesos estaban utilizando mayor cantidad de espacio en el área de intercambio en memoria secundaria (más conocida como swap). Para ello recurrí al viejo y querido top.

  • Grafana es una plataforma open source para monitoreo y analítica de datos. Permite visualizar y analizar series de tiempo de todo tipo de métricas, sin importar dónde se encuentren almacenados los datos o qué tipo de base de datos se utilice. Grafana permite centralizar y organizar las vistas de gráficos de todo tipo de datos de forma elegante.

    Este primer artículo de la serie presenta la instalación de Grafana en un servidor Devuan GNU+Linux.

  • Este artículo explica cómo instalar y configurar sysstat en Linux (no confundir con SYSSTAT) para monitorear la actividad y rendimiento del sistema (memoria, CPU, E/S, redes, etc.). Además demuestra la instalación y configuración de Sysstat Graph, una herramienta que genera gráficos en formato HTML a partir de los datos de rendimiento recolectados por sysstat.

  • Sospechamos que posiblemente se esté enviando SPAM desde uno de nuestros servidores (tal vez desde un sitio Wordpress comprometido) y queremos monitorear y registrar (loguear en Spanglish) todo intento de conexión TCP saliente hacia puertos 25 (SMTP) y 587 (SMTPS). Para ello es posible recurrir a la capacidad de logueo de iptables (o UFW en Ubuntu y derivados), a través de reglas simples.

  • En el artículo Cómo monitorear el tráfico de red en tiempo real en GNU/Linux demostré cómo es posible monitorear, en tiempo real, la utilización de los dispositivos de red y el consumo de ancho de banda utilizando la herramienta nload. En este artículo voy a explicar cómo generar y mantener un registro estadístico del consumo de recursos de red en GNU/Linux, utilizando la herramienta vnStat.

  • En este artículo voy a demostrar cómo es posible monitorear el tráfico de red en GNU/Linux. Se trata de monitorear en tiempo real la utilización de los dispositivos de red y el consumo de ancho de banda, no de esnifar o analizar el tráfico (para ello se debe utilizar la herramienta de línea de comandos tcpdump, o la herramienta GUI Wireshark).

  • Cuando tu servicio de hosting falla y tu sitio está caído (offline), perdemos potenciales nuevos visitantes. Mantener el uptime de un sitio al 100%, es decir que esté disponible todo el tiempo (las 24 horas, los 365 días del año), es crítico para el éxito del mismo. Por ello es una buena idea contar con alguna herramienta o servicio que monitoree el uptime de nuestro sitio y nos notifique cuando algo anda mal, el sitio está caído, o no hay respuesta. De esta forma podremos recuperar el sitio inmediatamente y así reduciremos el impacto negativo de una caída o no disponibilidad del servicio.

    En este artículo presento uno de los muchos servicios online para monitorear sitios Web llamado SiteUptime, el cual utilizo en muchos de mis sitios y me ha dado buenos resultados.

  • A veces necesitamos hacer pruebas o debuggear un servicio o demonio y deseamos poder monitorear los eventos registrados en un archivo de log en tiempo real. Para tal fin es posible utilizar la herramienta tail.

  • Desde hace un tiempo estoy teniendo problemas con mi proveedor de Internet ya que noto que mi tráfico BitTorrent está siendo seriamente limitado ("shaping" en la jerga de redes informáticas) en determinadas horas del día. Mas allá de que en la actualidad la mayoría utilice BitTorrent para compartir archivos, para la comunidad GNU/Linux este tráfico es de suma importancia ya que es la forma más utilizada para descargar imágenes de DVD y LiveCD de cualquier distribución.

  • El Protocolo Simple de Administración de Red o SNMP (del inglés Simple Network Management Protocol) es un protocolo de la capa de aplicación que facilita el intercambio de información de administración entre dispositivos de red. Permite a los administradores supervisar el funcionamiento de la red, buscar y resolver sus problemas, y planear su crecimiento.

    Dentro de una red corporativa, un atacante puede utilizar el protocolo SNMP para obtener información sensible sobre un sistema blanco de ataque. Este artículo explica cómo utilizar la herramienta snmpcheck para recolectar información de hosts remotos a través del protocolo SNMP.

  • En este artículo voy a explicar cómo registrar fácilmente toda la actividad del protocolo SFTP para saber qué usuario crea/modifica/elimina qué archivo. Por defecto OpenSSH registra sólo quién se conectó exitosamente al servidor SSH, a través del log auth.log. Sin embargo, para el caso del servidor SFTP, es posible registrar todas las operaciones del protocolo FTP y saber exactamente qué usuario accedió a qué archivo.

  • En artículos anteriores expliqué cómo monitorear el consumo de ancho de banda en Linux utilizando herramientas como vnstat y nload. Esta vez voy a demostrar cómo es posible determinar rápidamente qué proceso está consumiendo la mayor cantidad de ancho de banda de red, gracias a la herramienta nethogs. NetHogs permite monitorear en tiempo real el consumo de ancho de banda de red por proceso, cosa que tanto vnstat como nload no permiten.

  • Wireshark es una herramienta interactiva para analizar el tráfico de red. Permite ver el contenido de todos los paquetes que entran y salen por una interfaz de red, lo cual es muy útil para monitorear el tráfico de una red (por ejemplo ver qué protocolos se están utilizando, que hosts están distribuyendo malware, etc.) Wireshark es el analizador de tráfico más utilizado y es el estándar de facto en el mundo de la seguridad informática, reemplazando al clásico tcpdump. Las características más interesantes de Wireshark son que permite examinar de forma interactiva cada paquete capturado, filtrar captura por protocolo/puerto/IP/etc. y guardar la captura en diferentes formatos, además se ser software libre libreado bajo la licencia GPLv2.

  • collectd es un demonio que se encarga de recolectar métricas de rendimiento de sistemas y aplicaciones de forma periódica, y provee mecanismos para almacenar los valores de diferentes formas.

    collectd es capaz de recuperar métricas de sistemas operativos, aplicaciones, archivos de log, dispositivos externos, etc. y almacena la información o la hace disponible a través de la red. Estas estadísticas pueden ser utilizadas luego para monitorear sistemas, encontrar cuellos de botella de rendimiento, y predecir carga y escalabilidad de sistemas. Está desarrollado en lenguaje C para lograr la máxima portabilidad y eficiencia posible, lo que permite que corra en sistemas sin soporte para lenguaje de scripting ni demonio cron, tales como los sistemas embebidos. Por ello es popular en OpenWrt (distribución GNU/Linux para routers). Consta de cientos de plugins para recuperar datos desde casi cualquier sistema/aplicación/dispositivo.

    Actualmente collectd está liberado bajo licencia MIT y es activamente desarrollado, mantenido y bien documentado. Cabe destacar que no provee la funcionalidad necesaria para generar gráficos, sólo para almacenar la información recuperada. Aunque a tal fin conviene utilizar soluciones como Grafana.

    Este artículo muestra paso a paso cómo compilar, instalar y configurar collectd desde sus fuentes en un sistema Devuan. Y también cómo instalar (desde paquete) y configurar InfluxDB como base de datos para las métricas recuperadas con collectd.

  • Recientemente tuve la necesidad de instalar logwatch en un servidor bastante viejito:

    # cat /etc/issue
    Fedora Core release 5 (Bordeaux)
    Kernel \r on an \m
    
    

    Logwatch es una excelente herramienta que analiza y reporta los logs del sistema por mail. Logwatch es capaz de enviar los reportes en formato de texto plano o en formato html. En formato de texto plano funciona correctamente con la configuración básica, el problema es al tratar de enviarlo en formato html.

  • En este artículo explico cómo separar los reportes del servicio httpd en logwatch. Esto es útil para discriminar desde qué sitio se produjo una alerta en un resumen enviado por mail. La idea es tener un resumen por cada VirtualHost, en lugar de un resumen para todo el servicio httpd.