servidor

  • En este artículo explico cómo manipular la salida del comando last para determinar quiénes fueron los últimos usuarios logueados en un sistema GNU/Linux.

    En GNU/Linux, cada vez que un usuario ingresa al sistema utilizando la herramienta login, se guarda un registro de su acceso en un archivo de log (generalmente en el archivo /var/log/wtmp). La herramienta login es la que busca al usuario en el archivo /etc/passwd y gestiona el proceso de autenticación y autorización. Es decir, determina si el usuario es quien dice ser (mediante una contraseña) y si tiene permiso para ingresar al sistema (tiene acceso a una terminal o sólo se utiliza para autenticar un servicio o es el usuario con el que se ejecuta un demonio).

  • Este artículo explica cómo conectarse a servidores HTTP utilizando netcat a fin de diagnosticar conexiones, cabeceras y respuestas HTTP.

  • Apache, más precisamente Apache HTTP Server, es un servidor Web multiplataforma seguro, eficiente y extensible de código abierto. Provee la funcionalidad suficiente para cubrir todos los requisitos especificados por los estándares del protocolo HTTP actual.

  • En este artículo voy a explicar los pasos necesarios para montar un servidor git donde alojar un repositorio remoto con acceso SSH, en Debian.

  • Este artículo documenta la instalación de un servidor LDAP en GNU/Linux, the right way: compilando OpenLDAP desde los fuentes con LMDB como backend.

    Anteriormente expliqué cómo instalar y configurar OpenLDAP con PostgreSQL como backend. Aunque luego de un período de pruebas decidí descartar a Postgres y utilizar el backend recomendado y por defecto: LMDB.

    El problema al utilizar Postgres como backend, es que uno debe implementar manualmente (utilizando sentencias SQL) todas las funcionalidades necesarias para dar soporte a los diferentes schemas de LDAP (metadatos para traducir consultas LDAP en consultas SQL), tal como lo explica la guía de administración de LDAP. Es posible ver un ejemplo de programación de un backend SQL en el siguiente enlace: OpenLDAP-POSTGRESQL HOWTO - A live example.

    Mi intención fue utilizar Postgres en un principio debido a la conocida inestabilidad de la librería de bases de datos Berkeley DB (BDB). Sin embargo este problema hace que una instalación de OpenLDAP con Postgres sea prácticamente inmantenible. Por otro lado, las últimas versiones de OpenLDAP ya no utilizan BDB, sino que se recomienda el uso de una versión propia de LDAP: LMDB.

  • OpenBSD incluye su propia implementación de servidor Web llamado httpd, basado originalmente en relayd, y que (como todo proyecto relacionado a OpenBSD) apunta a la seguridad y en este caso en particular a la escalabilidad.

    httpd es un servidor Web seguro y minimalista (apunta a evitar la "featuritis" que sufren los servidores Web más importantes, notablemente Apache), que sirve archivos estáticos y soporta FastCGI y TLS. Incorpora algunas características básicas como listado de directorios, logging y autenticación basic. Para conocer la historia completa de httpd y cómo comenzó su desarrollo es recomendable el paper Introducing OpenBSD's new httpd.

    El objetivo de este artículo es montar el clásico servidor Web con soporte para PHP sobre un sistema OpenBSD. Y ya que httpd es el servidor Web por defecto en OpenBSD, se explica la instalación y configuración del mismo, en lugar de instalar Apache o Nginx desde los paquetes o ports.

  • Los servidores de bases de datos PostgreSQL permiten recargar su configuración invocando una función SQL desde un cliente.

  • En este artículo voy a explicar detalladamente cómo compilar, instalar y configurar un servidor PHP FastCGI Process Manager (FPM) versión 7, desde sus fuentes. Incluyendo los cambios necesarios en la configuración de un sitio Joomla! para que funcione correctamente con PHP 7.

  • Supongamos que un servidor posee múltiples interfaces de red conectadas a diferentes subredes, y deseamos que el servidor Samba acepte peticiones sólo en ciertas interfaces de red (no en una sola, tampoco en todas). Para ello se debe recurrir al parámetro de configuración global interfaces.

  • dig (domain information grouper) es una herramienta para consultar servidores DNS (lookup). Realiza consultas y muestra la respuesta retornada por el servidor consultado. La mayoría de los administradores de sistemas utilizan dig para diagnosticar problemas con la resolución de nombres (traducción de nombres de host a direcciones IP) debido a su flexibilidad, facilidad de uso y claridad en la salida. Otras herramientas de lookup (como nslookup o host) tienden a tener menos funcionalidades que dig.

  • En el artículo Sysadmin vago: cómo actualizar todos los servidores de tu organización ejecutando un único comando expliqué de qué forma es posible lanzar actualizaciones de múltiples servidores GNU/Linux (Debian y CentOS) desde un simple script Bash, utilizando un servidor de administración centralizado y SSH con autenticación con clave pública.

    La limitación de este esquema era que trabajaba de forma secuencial, es decir, se actualizaba de a un sistema por vez. Por lo tanto en este artículo voy a demostrar cómo he mejorado mi script para lanzar todas las actualizaciones en paralelo (so pena de saturar un poco el enlace y/o Web proxy) sin necesariamente perder el control del proceso.

  • DigitalOcean es un proveedor de cloud computing y servidores privados virtuales (VPS). Actualmente es una de las compañías de más rápido crecimiento entre los proveedores de servicios en la nube en cuanto a cantidad de servidores en Internet, al punto que en 2013 el crecimiento de DigitalOcean superó al de (nada más y nada menos) AWS, de acuerdo al sitio NetCraft.

    Según mi modesta opinión, DigitalOcean es un proveedor indicado para clientes con requerimientos simples y directos, como pequeñas empresas y desarrolladores. Antes de seguir vale aclarar que este no es un post patrocinado, DigitalOcean no me ha pagado nada por escribir este artículo. Personalmente soy un feliz cliente de RamNode, un proveedor de hosting más pequeño, asequible y robusto (quien tampoco me ha pagado por escribir ésto). Habiendo hecho esta aclaración, y siendo DigitalOcean un proveedor de hosting tan popular, me parece pertinente dedicarle un artículo (y compartir mi experiencia) respecto a la migración de sistemas Debian hacia Devuan, ahora que esta última ha liberado su primera versión estable. Especialmente dedicado a aquellos usuarios y administradores que desean evitar systemd en sus servidores, y a su vez mantenerlos actualizados.

  • "sere" es una pequeña aplicación Web para monitorear un servidor Web/VPS desde cualquier navegador. Tiene un diseño Web responsive que permite visualizar gráficas de rendimiento (CPU, memoria, swap, carga y más) desde cualquier dispositivo que soporte HTML5 adaptando su vista.

    sere está desarrollada en PHP y HTML5, y se instala en el servidor Web que se desee monitorear. Sólo requiere que el servidor Web soporte PHP (>= 5.4) y cuente con SYSSTAT. Luego se puede cargar desde cualquier dispositivo que cuente con un navegador Web que soporte HTML5.

  • Anteriormente demostré el uso de las herramientas last y lastlog para listar los accesos a un servidor Unix, al igual que lastb para mostrar los intentos de acceso fallidos. Sin embargo, no expliqué cómo visualizar los usuarios actualmente logueados en el sistema. Para ello se dispone de las herramientas who y w.

  • sere es una pequeña aplicación Web para monitorear un servidor Web/VPS desde cualquier navegador. Tiene un diseño Web responsive que permite visualizar gráficas de rendimiento (CPU, memoria, swap, etc.) desde cualquier dispositivo que soporte HTML5.

    Esta nueva versión incluye gráficos de tamaño reducido con una disposición compacta, más adecuada para dispositivos móviles, y una corrección de un importante bug.

  • Como ya muchos sabrán, sere es una pequeña aplicación Web para monitorear un servidor Web/VPS desde cualquier navegador. Tiene un diseño Web responsive que permite visualizar gráficas de rendimiento (CPU, memoria, swap, etc.) desde cualquier dispositivo que soporte HTML5.

    Esta nueva versión incluye gráficos de tamaño reducido (a pedido del público) y un diseño flat (plano). O más bien un intento de diseño flat.

  • Como ya muchos sabrán, sere es una pequeña aplicación Web para monitorear un servidor Web/VPS desde cualquier navegador. Tiene un diseño Web responsive que permite visualizar gráficas de rendimiento (CPU, memoria, swap, etc.) desde cualquier dispositivo que soporte HTML5.

    En esta nueva versión he integrado sere con Sysstat Graph, y ahora es posible visualizar datos históricos.

    Esta herramienta nació con la idea de proveer una vista conveniente del estado y uso de recursos en tiempo real de un servidor Web desde un dispositivo móvil, sin sobrecargar el servidor (ni el cliente) y sin necesidad de instalar agentes ni cosas por el estilo. Sólo requiere el paquete sysstat. Se trata de un desarrollo personal, pues mi objetivo era monitorear mi VPS (donde está alojado este sitio) desde mi teléfono celular (smartphone). Sin embargo luego decidí publicarla y ha tenido cierta aceptación. De hecho el colega David ha publicado una buena review en su blog ochobitshacenunbyte y me ha sugerido algunas mejoras que he decidido implementar: la posibilidad de ordenar y seleccionar qué gráficos mostrar (desde el archivo de configuración, pues mis conocimientos limitados de Javascript me han impedido resolverlo de manera gráfica); la visualización de gráficos históricos (integrando la herramienta Sysstat Graph); y la cantidad de conexiones establecidas actualmente.

  • Apache JMeter es una aplicación open source desarrollada en Java, diseñada para comprobar el funcionamiento de un sitio o aplicación Web con alta carga y medir su rendimiento. Es útil para testear el rendimiento tanto de sitios dinámicos como de recursos estáticos. Especialmente puede ser utilizada para simular alta carga en un servidor Web, grupo de servidores, red, etc. Este tipo de análisis permite medir la fortaleza de una aplicación o analizar el rendimiento general ante diferentes cargas (proceso conocido como "prueba de estrés" o stress test).

    Este artículo explica cómo instalar JMeter en GNU/Linux y realizar un test básico sobre una aplicación Web.

  • Mozilla a desarrollado un escáner en línea capaz de verificar que los servidores Web implementen correctamente las medidas de seguridad adecuadas. Este test se denomina Observatory by Mozilla y está inspirado en el test SSL de Qualys SSL Labs.

  • Hace unos meses compartí un artículo que explicaba cómo verificar la seguridad de un servidor Web con el Observatorio de Mozilla.

    El "observatorio" es un proyecto enfocado a ayudar a desarrolladores, administradores y expertos en seguridad a configurar sus sistemas de forma segura. Se trata de un escáner en línea capaz de verificar que los servidores Web implementen correctamente las medidas de seguridad adecuadas. Sin embargo, Mozilla además provee un cliente de línea de comandos que permite realizar escaneos de servidores desde nuestra terminal:

    github.com/mozilla/observatory-cli

    Esto permite la posibilidad de correr baterías de tests sobre varios servidores, para analizar luego los resultados e integrarlos con nuestros scripts de seguridad.