Si no sabemos de dónde venimos, no sabremos -jamás ni nunca- hacia dónde vamos, las nuevas generaciones deben saber, deben conocer lo que nosotros vivimos en esa época ¡por la libertad del internet! Recuerdo las descargas del código fuente del Netscape eran una barbaridad de 200 megabytes cuando nos afanábamos de nuestros discos duros de 700 MB (yo tenía un flamante Samsung, IDE por supuesto que había comprado con un préstamo en el trabajo y duré 6 meses para pagarlo ¡un disco duro!). Seguir leyendo →
«Feliz Día del Programador» desde el 2015 tenemos conocimiento que celebramos este día, sin distingo del lenguaje que usemos, tengamos que usar o que desarrollemos (los más avezados en la materia). Sin duda que los ordenadores es uno de los más grandes inventos de la humanidad, con la labor destacada de Alan Turing (con quien en vida se cometió una gran injusticia en su vida personal).
Feliz Día del Programador
Modestía aparte: sobre nosotros recae un gran poder que conlleva una gran responsabilidad y aprovechamos el día para recordarnos nuestra dosis diaria de humildad, paciencia y empeño no solo en este día sino en todo el año para que los usuarios a quienes nos debemos (y nos dan el sustento económico en este, por ahora, sistema capitalista) sean los máximos beneficiados de nuestros frutos mentales ¡Y SI PROGRAMAMOS EN SOFTWARE LIBRE CONTRIBUIMOS AL PATRIMONIO TECNOLÓGICO DE LA HUMANIDAD!Seguir leyendo →
Abrimos septiembre con los precios aumentados de agosto, ante cada arremetida de la inflación inducida y especulativa un aumento de sueldo correspondiente (los precios suben en ascensor y los salarios por las escaleras). No es primera vez que vemos esta situación, en 1994 sucedio algo parecido pero en menor cuantía, en todo caso echarse a llorar nos deshidrata y no cambia en lo absoluto la situación. Volviendo al trabajo: en nuestra aplicación de farmacia por primera vez (en 2006 no se nos ocurrió pensar en ello) colocaremos la combinación de teclas CTRL+M al introducir cantidades monetarias para multiplicar por mil ya que de la reconversión monetaria del 2007 solo quedó el recuerdo. En los puntos de debito de los bancos podrían programar una de las teclas especiales como multiplicador por mil en cualquier país del mundo puede suceder esto, de hecho hay modelos de calculadoras electrónicas marca Casio que tienen teclas «doble cero» y «triple cero».
Como podrán notar la cuenta Twitter de la Imprenta Nacional invita a descargarla en su «servicio de Gaceta del Día» y literalmente es eso, del día, porque lo que hacen es subir a un sitio de almacenaje llamado «mega.nz» y cada día cambian el enlace. A esta fecha tampoco funciona la página web del Tribunal Supremo de Justicia, o dice «servicio no disponible» o si abre no muestra el calendario de siempre y cuando uno mete el número de la Gaceta no devuelve resultado. En fin, nadie dijo que esto iba a ser fácil, pero contribuimos con nuestro granito de arena compartiendo la información con todos, sin ningún distingo, a continuación las cinco primeras hojitas, 1,5 megabytes en formato PDF:
Desde esta vuestra humilde página web lo pueden descargar del siguiente enlace:
El 28 de diciembre de 2016 -día de los santos inocentes, fecha para nosotros los hispanohablantes de realizar bromas de toda índole- fue anunciado la adquisición de una membrecía tipo «Platinum»1 por parte de la empresa Microsoft® en la Fundación Linux y el lanzamiento de Microsoft® SQL Server ® . Dado que sabemos que para los angloparlantes el 1° de abril es el día de realizar, por costumbre, chascarrillos, pues tomamos la noticia muy en serio. Y si para nosotros nos quedaba alguna duda el Blog del equipo de Evangelismo técnico de Microsoft® España lo publicó oficialmente en idioma castellano incluyendo una divertida figura la cual muestra un letrero con la leyenda “Microsoft ? Linux”(sic) y un pingüino de pie al lado apuntando con el pico (intentamos contactar al autor del artículo en castellano vía Twitter para que nos autorizara el uso de las imágenes pero no obtuvimos respuesta; este será una artículo con el mínimo de imágenes).
.
Tux venezolano
Nosotros, que somos usuarios de ordenadores desde 1989 con el famoso MS-DOS® (cuando aún ni siquiera el señor Linus Torvalds2 había comenzado su carrera universitaria) aún estamos frotándonos los ojos, no lo podemos creer que Microsoft® SQL Server ®corra bajo Linux. Pero a todas estas es una realidad insoslayable y lejanos quedaron los días de antagonismo con el anterior Director Ejecutivo GeneralSteve Ballmer3 quien dejó el cargo en 2014 y cuyo sucesor el señor Satya Nadella4 llevó a la empresa a desarrollar una de las más grandes infraestructuras de computación en la red “cloud computing” con el producto “Microsoft Azure®” (anteriormente conocido como “Windows Azure®”).
Este producto “Windows Azure®” destaca porque su kit de desarrollo de software -“Software Development Kit” o “SDK”- está publicado en código fuente abierto (que es diferente a la licencia de software libre que rige a Linux) y fue con lo que poderosa Casa de Software inició formalmente su camino hacia el mundo GNU/Linux. A la fecha de hoy ya se están desarrollando en “Microsoft Azure®” la inteligencia artificial que ha devenido en llamarse aprendizaje de máquina o “machine learning”5 en inglés.
Esta pequeña introducción, simplificada de forma exagerada, nos da pie para traer a colación nuestro artículo de hoy: Microsoft® SQL Server ® en Linux.
Microsoft® SQL Server ® en Microsoft Windows®.
Vale, no los hemos engañado, sí vamos a hablar de GNU/Linux pero primero debemos conocer el contexto de esa popular motor de base de datos. Y sí, si le hemos engañado un tantito así en el subtitulo que encabeza este párrafo: Microsoft® SQL Server ® nace en 1989 para ser ejecutado en… IBM OS/2, así como lo están leyendo6. Para esa época quien reinaba en el campo comercial era la empresa Ashton-Tate con su producto estrella dBase que ocasionaba el tránsito de grandes volúmenes de datos en la red de área local debido a que cada cliente se llevaba una copia de la base de datos a cada ordenador donde se ejecutaba. Por ello Microsoft compró la licencia de SQL Server ® a Sybaseque funcionaba con el modelo cliente/servidor a través de comandos sencillos y que devolvían limitadas cantidades de datos, casi todo el trabajo se realiza aparte y remoto en el servidor. Ashton-Tate aportó su mercado de clientes y funcionaba dBase como interfaz al usuario mientras que Microsoft y Sybase se encargaron del trabajo en el lado del servidor.
Pasado el tiempo (1994) llegó la versión 6 de SQL Server ® que también se ejecutaba bajo el reciente Windows NT® y dicha versión ya no contaba con la mano de obra de Sybase. A partir de la versión 7.0 fue reescrito masivamente en lenguaje C++ y a partir del año 2000, ya cuando tenía tiempo de haberse descontinuado el OS/2, el SQL Server ® se quedó solamente para el sistema operativo Windows NT®. Luego en el año 2001 su sucesor Windows XP® hereda la tecnología Windows NT® -valga redundancia ya que “NT” significa “New Technology”- y pudo llegar a los usuarios comunes y sus pequeñas y medianas empresas: ya no era de uso exclusivo para las grandes corporaciones el manejo eficiente de los datos relacionales.
Para el año 2005 se presentó una disyuntiva: la irrupción en firme de los procesadores de 64 bits y varios núcleos, así como gran cantidad de memoria RAM para los cuales Microsoft® SQL Server ® no estaba preparado para aprovechar al máximo este potencial. En reacción a ello se decide realizar una capa de plataforma (“platform layer”) para contener “SQLOS layer”. Un SQLOS es “un sistema operativo de alto nivel de usuario altamente configurable con una poderosa interfaz de programación de aplicaciones” (la explicación oficial y detallada la pueden leer en este enlace web9) y pronto veremos que fue una muy buena elección ya que separa completamente lo que es la programación en sí de lo que son las cargas de trabajo e hilos de ejecución en un ordenador que tenga instalado Microsoft® SQL Server ®.
Microsoft® SQL Server ® en Linux.
En el mundo de los servidores web definitivamente reina desde hace muchos años las diversas distribuciones GNU/Linux y por la rama Debian está el Ubuntu Server el cual es utilizado por muchísimas empresas, tanto grandes, medianas y pequeñas y todos se han dado cuenta de su increíble estabilidad y eficiencia para publicar sus sitios en Internet. Pero para las bases de datos hay bastantes programadores que han escogido a Microsoft® SQL Server ® y debido a esto las compañías deben adquirir un sistema operativo Microsoft Windows® creando un trabajo adicional en la administración de la red de área local debido a un ambiente mixto.
Esta inquietud fue surgiendo poco a poco7 entre los clientes de Microsoft® y así se lo hicieron saber a la empresa radicada en Redmond (estado de Washington, EE.UU.) lo que los puso en un buen aprieto ya que no sabían cómo portar las decenas de millones de líneas de código acumuladas durante todos estos años al ambiente del sistema operativo del pingüino. La respuesta a esta problemática fue encontrada en un proyecto que databa de 2011 llamado Drawbridge®8 el cual fue ideado inicialmente para virtualización de aplicaciones en un entorno seguro (en inglés llamado “sandbox”).
Se necesitaba entonces “aislar” al Microsoft® SQL Server ® y cuyos programadores codificaban de manera despreocupada ya que trabajan en un entorno bien conocido y que se encargaba de lidiar con el diverso hardware existente. Una vez fueron bien entendidos y adaptados los procesos de Drawbridge se establecieron los siguientes parámetros (de nuevo, la explicación oficial está en este enlace web10):
Calidad y seguridad deben de estar al mismo nivel que establecieron por cerca de 30 años a Microsoft® SQL Server ® en Microsoft Windows®.
Proveer el mismo valor en términos de funcionalidad, desempeño y escala.
Compatibilidad de aplicaciones entre Microsoft® SQL Server ® tanto en Microsoft Windows® como en Linux.
Habilitar una ruta de innovación en el código fuente base de Microsoft® SQL Server ® y asegurarse que las nuevas características y correcciones aparezcan inmediatamente a través de todas las plataformas.
Para los futuros Servicios Integrados habilitar una fundación para Linux.
Para hacer que Microsoft® SQL Server ® apoye diversas plataformas, el trabajo de ingeniería esencialmente es remover o abstraerse de las dependencias de Microsoft Windows®, ¡como vemos no la tenían fácil los desarrolladores, estaban siendo empujados fuera de su zona de comodidad!
Fue así como crearon “SQL Platform Abstraction Layer” ( SQL PAL) que se encarga de fusionar los conceptos de “SQLOS layer” y Drawbridge® y de ahora en adelante el equipo de desarrollo puede trabajar con un único código base y no tiene que preocuparse acerca de en dónde se ejecutará el código (y esto incluye la nueva plataforma Microsoft Azure® de la que hablamos al principio). Como vemos, hasta ahora, todo ha llegado a buen término y los proyectos y recursos del gigante informático, que una vez parecían desperdigados, ahora forman parte de un todo.
Instalación de Microsoft® SQL Server ®.
Como decía Santo Tomás de Aquino: “hasta no ver, no creer” es por ello que tomamos una máquina virtual con 4 gigabytes de memoria RAM (el requerimiento mínimo es de 3,25 gigabytes), descargamos Ubuntu Server 16.04 por medio de tecnología Torrent (es más rápido y podremos luego devolver lo que descargamos a más personas que también lo necesiten) y tras instalarlo y colocarle sus debidas actualizaciones de seguridad (¡que por que sea un servidor de prueba no nos exime de perder las buenas costumbres de trabajo!) decidimos instalar en esta máquina “limpia” a Microsoft® SQL Server ® y grabamos un video de 23 minutos que pueden buscar en la página web de Youtube con el siguiente código: XDd1gblgi4c .
Esencialmente las instrucciones son importar las llaves de seguridad habilitadas por Microsoft® en su sitio web con las cuales podremos -y debemos- certificar que el contenido descargado desde esa empresa no haya sido alterado. Después agregaremos el enlace de la ubicación del repositorio en nuestro archivo dedicado a tal efecto, actualizamos el listado de componentes y damos la orden de descargar e instalar los paquetes. De hecho en el blog de Microsoft® donde están publicadas las instrucciones11 se indica el utilizar el parámetro “-y” para aceptar de manera inmediata la licencia de uso. Recomendamos instalar sin dicha opción para que tengamos siempre muy presente y en cuenta que estamos utilizando software privativo y que debemos ceñirnos a la licencia que muestra en la siguiente figura de nuestra autoría (Creative Commons Attribution-Share Alike 4.0 International):
Microsoft SQL Server® mssql-conf setup
Instalación SQL Server ® command-line tools.
Una vez tengamos instalado nuestro SQL Server ® sería cuestión de configurar el muro de fuego “firewall” y establecer las políticas de acceso al ordenador tendremos ya listo y configurado para comenzar a recibir datos de lleno por medio de otras computadoras. Pero si queremos trabajar directamente en la consola de nuestra máquina debemos instalar las herramientas de líneas de comandos “command-line tools” con la orden «sudo apt-get install mssql-tools unixodbc-dev» que como era de esperarse también contiene unas preguntas para la aceptación -o negación- de aceptar las condiciones de uso.
En nuestro caso, en el vídeo que les comentamos, aparte de instalar las “command-line tools” tuvimos la oportunidad de crear una base de datos, crear una tabla, introducir unos pocos valores y hacer una simple consulta condicional y todo funcionó de maravillas. Pero no pensemos que vamos a tirar en el olvido esta herramienta, vamos a ver cual otro uso le podemos dar.
Monitorización de SQL Server ®.
Como herramienta de monitorización el equipo de desarrollo SQLCAT12 de Microsoft® llegó a la conclusión de que se necesitan tres herramientas para monitorizar:
collectd.
InfluxDB.
Grafana.
Nos centraremos en collectd y muy brevemente hablaremos de InfluxDB y Grafana.
“collectd”13.
Este software de código fuente abierta está escrito en lenguaje C y es un demonio o servicio que instalaremos y ejecutaremos en el servidor que está alojado el Microsoft® SQL Server ®. Se precia de ser muy popular en los enrutadores que utilizan OpenWrt, el cual es una distribución Linux especialmente diseñada para estos artefactos ya que además tiene más de 100 complementos o plugins que facilitan la tarea de configurar las aplicaciones más populares en Linux como Apache y MySQL (al momento de escribir estas líneas revisamos dicha lista y no hallamos uno específico para Microsoft® SQL Server ®, dado lo novedoso de la irrupción de este software en el mundo GNU).
Para entregar los datos “collectd” bien puede escribirlos en formato de archivo RDD (“RDDfile”) para que luego sean graficados con RDDtool14 o bien puede ser recolectado por medio de un complemento o plugin especialmente diseñado para Nagios15. Pero lo que hallamos sumamente útil es el complemento o plugin16 diseñado para ofrecer datos en forma de SNMP, lo cual no nos debería sorprender ya que comentamos anteriormente que está presente en OpenWrt y lo veríamos -su monitorización- como un enrutador cualquiera. Actualmente PandoraFMS no tiene un plugin para collectd pero no tiene problema alguno en conectarse por medio de SNMP.
Para instalar collectd deberemos tener instalado Git y además Docker Engine para luego crear una cuenta en Microsoft® SQL Server ® usando las siguientes instrucciones:
Esto último es de vital importancia para que collectd tenga el debido acceso a nuestro servidor de base de datos. Microsoft® invita a clonar su repositorio en GiHub17, donde tiene instrucciones muy detalladas de lo anterior e incluso nosotros podremos aportar cualquier observación, corrección o colaborar con una mejora si solicitamos un pull request e dicho proyecto.
“InfluxDB”18.
Se encarga de comunicarse con collectd para entonces guardar y organizar los datos recabados.
“Grafana”19.
Un software que produce impresionantes gráficos y dibujos que representan los datos colectados por InfluxDB. Se recomienda encarecidamente que tanto InfluxDB y Grafana sean instalados en otro ordenador aparte del que ejecuta Microsoft® SQL Server ® o incluso cada uno en su propia máquina si el volumen de equipos que vamos a monitorizar es lo suficientemente grande.
Conclusiones.
De lo que bien se aseguró Microsoft® es de hacer un buen estanco con su aplicación SQL Server ®: nada del código se podrá fugar hacia Linux y evita comprometer la confiabilidad de Linux sin contar además de que tienen el código base siempre listo para ser mejorado ante la llegada de nuevo hardware o abracar otros sistemas operativos existentes o venideros ¡las opciones y oportunidades siempre es mejor que sobren y no que falten!
Todas las marcas aquí nombradas están acompañadas del símbolo “®” y pertenecen a Microsoft® Corporation y cumplen con el uso adecuado de dichas marcas comerciales, todo según se especifica en el siguiente enlace web publicado de maneraex professo por Microsot® Corporation:
¡De antemano no confundir fping con ping! Por eso le dedicamos una entrada aparte de ping, como dice el refrán «juntos pero no revueltos», veamos qué es fping, su historia y su uso ¡Aprendamos!
MySQL Workbench: si no lo conoces estás perdiendo un gran aliado.
por Jimmy Olano.
Introducción.
MySQL Workbench 6.3
Cuando escuchamos acerca de MySQL de inmediato pensamos en la poderosa base de datos relacional “RDBMS”, la cual ahora pertenece al gigante Oracle®, y quienes han mantenido bajo licencia de software libre dicho programa. Nosotros los programadores de aplicaciones gustamos de utilizar la línea de comandos para nuestros propósitos pero “MySQL Workbench” es la respuesta acertada para disfrutar de una interfaz visual en el diseño y administración de nuestras bases de datos.
En esta entrega evaluaremos a “MySQL Workbench version 6.3.6 Community” la cual es base para la “Standard Edition” y se diferencian por la documentación extendida, módulos/complementos adicionales y el soporte directo al usuario, todo esto con licencia comercial.
Si bien es cierto que os estamos hablando de programación con bases de datos como apertura también os decimos que “MySQL Workbench” tiene una sección muy útil en cuanto a la administración de servidores de datos y os lo presentamos como marco de referencia para nuestro objetivo: monitorizar el manejo y almacenamiento de nuestra información, ¡acompañadnos!
Prerrequisitos.
Desde luego que para utilizar “MySQL Workbench” debemos tener instalado un servidor MySQL, y para nuestro caso usamos ambas aplicaciones en un mismo equipo GNU/Linux Ubuntu 16 LTS, 64 bits, así que las gráficas acá indicadas pueden ser diferentes a lo que veáis en vuestros ordenadores.
“MySQL Workbench” (la cual abreviaremos de ahora en adelante como MySQL Workbench) está diseñado para trabajar bajo ambientes:
GNU/Linux (Ubuntu a partir de la versión 9 y Fedora a partir de la versión 11 están certificadas oficialmente).
Solaris.
FreeBSD.
Mac OS 10.6.1 o superior.
Windows 7 o superior.
En el caso de Windows se necesita el entorno “Microsoft .NET 3.5” y luego solo basta con descargar el programa instalador con extensión “Microsoft Installer .msi”.
Para GNU/Linux necesita como mínimo Cairo 1.6.0, glib-2.10, libxml-2.6, libsigc++ 2.0, pcre y libzip. Para este ambiente, en la distribución Debian (y sus “sabores”) solo bastará invocar con derechos de administrador el comando “apt-get install mysql-workbench” para que automáticamente descargue todos los paquetes necesarios e incluso nos invite a eliminar de nuestro disco fijo las librerías que no estén en uso para ahorro de espacio.
Requerimientos de hardware
Para poder utilizar MySQL Workbench como mínimo debemos contar con:
Procesador doble núcleo de 2 Ghz (4 núcleos recomendado)
4 gigabytes de RAM (6 gigabytes recomendado).
Pantalla con una resolución mínima de 1024×768 píxeles (1280×1024 recomendado).
Esta configuración es normal en las computadoras modernas (cosa diferente son los requisitos para “MySQL Server”).
Ejecutando MySQL Workbench.
Una vez lo hallamos instalado en nuestro ordenadores procedemos a ejecutarlo y veremos una pantalla de bienvenida parecida a esta:
A la derecha veremos los accesos directos a las opciones más utilizadas o que nos ayudarán a orientarnos en el uso de esta herramienta (a este conjunto lo denominan “Workbench Central”):
“MySQL Utilities” que corren bajo una ventana terminal (línea de comandos).
“MySQL Bug Reporter” ya que el código abierto permite la depuración constante por parte de toda la comunidad que quiera colaborar en ello.
Enlaces web hacia foros en líneas, esto cambia de tanto en tanto dependiendo de la moda y cantidad de usuarios que los sustenten.
“Database Migration” si necesitamos traer datos otra base de datos MySQL o incluso de otros tipos de bases de datos tenemos este excelente asistente, mostramos las cómo iniciar la importación desde una base de datos PostgreSQL en la siguiente figura.
Nos detendremos un poco sobre “MySQL Utilities”: al elegir esta opción se nos abrirá una ventana de terminal de comandos (amada por unos, marginada por otros) donde en realidad presenta un listado que no pertenece a MySQL Workbench en sí mismo, son comandos que uno igual pudiera correr en una ventana terminal independiente. Por ejemplo, podremos ver a mysqldiskusage, comando que nos permitirá conocer cuánto espacio ocupan las diferentes bases de datos que alberga nuestro “MySQL Server” (nota: ejecutad siempre, por motivos de seguridad, dichos comandos por medio de una conexión SSH).
Lo que queremos destacar es que MySQL Workbench funciona con elementos propios y otros agregados, ofreciendo gran flexibilidad a nuestra labor de monitorización, veamos.
Utilizando MySQL Workbench.
MySQL Workbench tiene tres áreas principales bien definidas (a esto lo denominan “Workspace”):
Desarrollo de Lenguaje de Consulta Estructurado (“Structures Query Language Development” SQLD por su abreviatura en idioma inglés).
Modelado de Datos de una manera visual y que incluye, además, la ingeniería en uno y otro sentido entre un esquema (interacción guiada) y una base de datos así como la creación, modificación y visualización de los objetos (tablas, columnas, disparadores, consultas definidas, etc.)
Administración del servidor en la cual haremos hincapié más adelante.
Acotamos que muchas opciones no solo se limitan a estas áreas: por nombrar alguna, MySQL Workbench permite exportar (e importar) datos de una manera bien práctica y con la opción de acceder a características avanzadas:
Esta figura muestra ya cuando estamos conectados a una base de datos y estamos prestos a sacar (o respaldar) nuestros recursos almacenados pero ¿cómo conectarnos? A continuación os presentamos con mayor detalle.
Conectando a nuestra base de datos.
Si bien tenemos el modelado de datos, el cual podemos hacer “fuera de línea”, eventualmente esa información la deberemos almacenar en una base de datos; asunto muy distinto es monitorizar al servidor ya que para ello debemos conectarnos de manera obligatoria. De manera automática, a la izquierda de la pantalla de bienvenida, MySQL Workbench detecta nuestro servidor MySQL local a lo cual podemos hacer clic, introducir la contraseña y conectarnos, sin embargo os presentamos la interfaz de conexión al presionar las teclas CTRL+U (menú desplegables “Base de datos” → “Conectar a base de datos”):
Es de hacer notar que si tenemos varias bases de datos que administrar ahorramos tiempo si hacemos perfiles de conexión y las grabamos con MySQL Workbench, dichas fichas pueden contener instrucciones adicionales como conectarnos siempre por medio de SSH (pestaña “Remote Management”) o elevar privilegios como para iniciar o detener el servidor (pestaña “System Profile”).
Plenamente conectados.
Tras ingresar nuestras credenciales estaremos en línea y no es de sorprendernos que lo primero que ofrece MySQL Workbench es realizar comandos SQL (debemos recordar que esa es una de las funcionalidades principales de este software y con lo que la mayoría de las personas asocia).
Dos ordenes rápidas nos permiten elegir una base de datos que está a simple vista a la izquierda y mostrar las tablas que contiene, en este aspecto MySQL Workbench cumple las mismas funciones que phpMyAdmin solo que nuestro entorno no es un navegador web sino una aplicación de nuestro sistema operativo.
Comentamos que podemos hacer un modelado de datos para luego plasmarlo en una base de datos pero si es el caso que llegamos a una empresa y ya está todo planteado debemos entonces, ya sea para tener un panorama general o para mejorar la estructura de datos un proceso de ingeniería inversa, solo os traemos una gráfica para tener una noción de ello y tal vez sea útil a la hora de monitorizar, nosotros los seres humanos muchas veces necesitamos de mapas mentales para realizar nuestro trabajo.
Monitoreando nuestro “MySQL Server”.
Dejando un lado las labores de diseño, consulta y modificación para los desarrolladores, poco hemos tardado en llegar a nuestro objetivo que es monitorizar: justo debajo de la opción “MANAGEMENT”la primera opción que os presentamos es el estado del “MySQL Server” en la sección “Server Status”:
De un solo golpe de vista tenemos la información del nombre del servidor, si se está ejecutando, el puerto de escucha, los directorios de configuración, versión utilizada y compilada así como si es un servidor principal o es una réplica. También, de manera muy resumida, la carga de trabajo, tráfico de red entre otros valores relevantes.
Otra sección a la que podemos tener acceso es “Instance” → “Startup/Shutdown” donde podremos iniciar o detener el trabajo (y que debéis tener cuidado si estáis conectado a un servidor en producción): ¡pendientes si hay usuarios conectados!):
Una vez nos hayamos enterado de la situación en general podremos obtener mayores detalles si usamos el apartado “Perfomance” y luego “Dashboard” donde está nuestro tablero de instrumentos.
Al hacer clic allí veremos unas gráficas muy importantes:
Tráfico de red.
Muestra el número de bytes por segundo tanto enviados como recibidos y el número de clientes conectados. Esto permite rápidamente el conocer el caudal y si estamos llegando al máximo permitido por el hardware, unos valores por encima de 85% durante mucho tiempo nos indicará si debemos pensar en migrar a servidores en réplicas o en racimos en internet (cloud cluster) para poder asumir la nueva carga de trabajo.
Estado del servidor MySQL.
Si colocamos esto en segundo lugar no es porque sea menos importante que el tráfico de datos; acá nos muestra la eficiencia del caché de datos (la información que es solicitada más a menudo mejor es mantenerla en RAM para reducir el desgaste de disco duro) así como el número de SQL ejecutadas por segundo e incluso discrimina sus diferentes acciones específicas: consultas (“el pan nuestro de cada día”), insertados, modificación y borrado de datos -más frecuentes- y creación, modificación y borrado de tablas que no deberían suceder (con muy contadas excepciones) y que cae en el campo de la seguridad informática (solo cuentas privilegiadas pueden ejecutar estas acciones).
Estado del InnoDB.
InnoDB es un mecanismo de almacenamiento de código abierto desarrollado por la compañía finlandesa Innobase (ahora adquirida también por Oracle) el cual es muy popular por sus superiores ventajas, tema que da para hacer un artículo completo al respecto. Si nuestros datos están almacenados de esta manera, MySQL Workbench nos mostrará las solicitudes de lectura y escritura al disco duro (solicitudes que a su vez las recibe el caché de datos sobre el cual comentamos en la sección anterior).
InnoDB es preferida por su capacidad ACIDla cual a su vez vez tiene un límite de 200 transacciones por segundo y que para sobrepasarlo necesitaremos un hardware muy especializado y/o el reparto de la carga de trabajo entre varios servidores, por lo que esta monitorización es muy importante.
Reportes de desempeño.
Aunque no de una manera gráfica pero igualmente útiles son los reportes de desempeño, una serie de guiones SQL almacenados por los programadores de MySQL Workbench y que se ejecutan ya sea de manera automática o a petición, como este es nuestro caso en las siguientes dos imágenes.
La última imagen ilustra las tablas temporales y su tiempo de servicio y numero de veces ejecutadas (en columnas a la derecha al mover la barra de desplazamiento horizontal), pero ¿por qué son prioritarias para nosotros? La respuesta es que para las consultas almacenadas o creadas por los usuarios, “MySQL Server” guarda dichos valores en tablas temporales y observar su comportamiento nos puede ayudar a identificar retrasos en la retribución de la información. Éste y otros valores o conjuntos de valores permitirán decidir qué esquema de desempeño utilizaremos en la siguiente sección.
Esquema de desempeño.
MySQL Workbench nos ofrece una configuración muy sencilla en cuanto a la manera sobre cómo se recolecta la información para que luego nos sea presentada: hemos llegado entonces a la quintaesencia de la monitorización de servidores.
Existe un delicado equilibrio entre la recolección de datos y el servicio de datos: al aumentar los niveles de exigencia del primero disminuye lo segundo, es por ello que MySQL Workbench ofrece 4 niveles básicos.
Completamente habilitado.
Personalizado (arriba mostrado).
Por defecto, valores “de fábrica”.
Deshabilitado.
¿Cuál nivel es mejor para nosotros? Os indicamos que depende de la fase de desarrollo de vuestro software, la opción (a) se ofrece para desarrollo en ambiente de prueba, la opción (c) para software ya conocido, establecido y bien depurado y la opción (d) pues bueno, no la recomendamos para nada.
Dejamos la opción personalizada de último para brevemente mostraros sus opciones ampliadas, vamos a la siguiente figura:
Es tan avanzado que primero debemos conocer los componentes conceptualizados que luego podremos configurar:
Actores (usuarios que solicitan o tramitan información).
Instrumentos (memoria, blackhole, InnoDB, MyIsam, etc.: objetos programados que procesan la información).
Consumidores (tablas donde guardaremos los datos recolectados).
A estos elementos en su conjunto serán registrados en los tres eventos siguientes:
Al llegar una nueva solicitud y finalizar la misma (una vez todos y cada uno de sus componentes hayan finalizado; recordad además que las transacciones ACID son “más costosas” en tiempo y recursos de máquina, arriba lo comentamos en detalle).
A su vez todos y cada uno de los pasos que abarque la solicitud.
Los diferentes eventos asíncronos que crean períodos de espera en cada una de las etapas del punto anterior, esto permite detectar cuellos de botella y diseñar algoritmos que entreguen datos a tiempo a los procesos siguientes. Este concepto es un poco difícil de entender ya que implica hilos de ejecución que bien pueden ser independientes de principio a fin o que tal vez necesiten en algún punto información de otro hilo para continuar. La simplificación que damos es exagerada pero bien ilustra en pocas palabras la situación planteada.
Para configurar todas estas opciones haremos clic en las diferentes pestañas de la última figura mostrada, allí recomendamos comenzar por agregar los usuarios (actores) y objetos (los disparadores triggers que se activan bajo eventos tales como por ejemplo dar de alta un usuario o alcanzar determinado número de registros, etc.), luego marcamos los instrumentos que queremos supervisar (InnoDB, por ejemplo) y las tablas donde los guardaremos (Consumers) teniendo en cuenta los hilos (Threads) de dichos instrumentos.
Expandiendo las posibilidades de MySQL Workbench.
Desarrollada bajo lenguaje C++ esta aplicación acepta guiones “scripts” escritos en lenguaje Lua o Python, este último más extendido y con muchas opciones. Con ello podremos:
Automatizar tareas comunes, el anhelado premio para los administradores.
Mejorar la interfaz para el usuario.
Crear complementos.
Manipular esquemas de datos.
Crear características personalizadas para MySQL Workbench.
Para muestra un botón, podremos crear un complemento escrito en lenguaje Python con solo darle un nombre de inicio y MySQL Workbench precargará el ambiente de trabajo con las librerías especialmente destinadas tales como la interfaz gráfica y las que interactúan con la base de datos.
Conclusión.
Ya podemos dejar de pensar que solo los programadores utilizan MySQL Workbench para modelar datos y crear, modificar, consultar y eliminar sus estructuras de almacenamiento; incluso labores de respaldo, importación o exportación de datos: el tema va mucho más allá de eso.
Aunque hemos dejado mucha tela por cortar en este artículo, solo es una muestra del gran aliado que podemos obtener en la monitorización de servidores de datos MySQL: pudiéramos decir que las combinaciones son prácticamente infinitas.
«Pandora FMS plugin WordPress» por Jimmy J. Olano Sayago.
WordPress está presente en 27% de las webs y posee más de 27 mil complementos (llamados en inglés como “plugins”) y «Pandora FMS plugin WordPress» es uno de ellos: está enfocado a fortalecer la seguridad de los sistemas que utilizan este popular software libre. Recordemos, por noticia pública y notoria, que el año pasado (2016) el Primer Ministro del Reino Unido renunció a raíz de una escándalo por la difusión de correos electrónicos almacenados en un servidor de correos donde también se ejecutaba un blog de WordPress y el cual tenía un complemento instalado con una falla de seguridad que permitió a los atacantes hacerse con la información. Vemos, pues, que no es un tema a descuidar en forma alguna, intrínsecamente WordPress es muy seguro pero complementos y/o sus actualizaciones (incluso las del mismo WordPress) pueden poner nuestros datos en penosas situaciones (nosotros no hacemos nada ilegal para ocultar pero tenemos derecho a nuestra privacidad).
¿Qué es «Pandora FMS plugin WordPress»?
Ya sabemos para qué se usa, ahora veremos realmente qué es «Pandora FMS plugin WordPress». Escrito inicialmente como software libre hace poco más de un año en su lanzamiento, cambia recientemente a licencia de uso «Apache 2.0», pero en ambos casos nos garantiza, básicamente, el acceso al código fuente, su uso y difusión e incluso su modificación en caso que necesitemos adaptarlo a nuestras necesidades. Por tanto la responsabilidad de su uso recae sobre nuestros hombros, ya que la garantía que ofrece «Ártica ST» es limitada (de hecho esto es lo común en el mundo del software libre y debemos siempre tenerlo en cuenta).
Pero no nos asustemos con esto, esta empresa tiene una larga trayectoria en el monitoreo de servidores y redes, herramientas indispensables en la administración de la seguridad y «Pandora FMS plugin WordPress» es una más de ellas; su producto estrella «Pandora FMS» tiene la capacidad de monitorear, si así lo deseamos, nuestro sitio WordPress y disfrutar así de un robusto entorno de trabajo a nivel empresarial, dado el caso que tengams que administrar múltples blogs. «Pandora FMS plugin WordPress» ofrece unas opciones de monitoreo, que aunque no son tan avanzadas como cuando lo integramos con «Pandora FMS», siempre nos garantiza el objetivo planteado de asegurar y proteger nuestro servidor web que albergua a WordPress.
«Pandora FMS plugin WordPress» está escrito principalmente en lenguaje PHP y JavaScript, su repositorio oficial reposa en GitHub y contiene una breve descripción acerca de su uso, instalación y desinstalación. También ofrece unas capturas de pantalla desde su sitio en “WordPress.org” (de donde podremos descargar de forma segura «Pandora FMS plugin WordPress») sin embargo nosotros aquí publicamos nuestras propias capturas de pantalla bien ampliadas y detalladas con propósitos didácticos y para compartir el conocimiento.
Instalación de «Pandora FMS plugin WordPress».
Para poder utilizar «Pandora FMS plugin WordPress» debemos tener instalada como mínimo la versión WordPress 4.7 y debemos ingresar con nuestras debidas credenciales de administrador a nuestro sitio web.
Una vez hallamos ganado acceso, desde el escritorio o“dashboard” de WordPress hacemos clic en el ícono de complementos y elegimos “Añadir nuevo” y escribimos la palabra clave “pandora” y le damos buscar para ver algo parecido a esto:
«Pandora FMS plugin WordPress» figura N° 001 instalación
Figura Nº 001 instalación
Acá debemos revisar que tenga la marca de verificación “Compatible con tu versión de WordPress” y de ser así procedemos al botón “Instalar ahora”. Otra manera de instalación sería ir al repositorio, descargar y “subirlo” por medio del botón “Subir plugin”: esta opción está pensada para entornos donde no tengamos acceso a Internet (una red de área local privada, por ejemplo). Como este no es el caso ya que estamos probando con un servidor en producción y es más rápido de esta manera: comunicandose directamente con el sitio web WordPress.
Deberemos tener paciencia mientras “descarga” el complemento desde el propio sitio web de WordPress.org y una vez haya finalizado nuestro botón cambiará de aspecto y mostrará la leyenda “Activar”. Este es otro proceso que tomará su tiempo según el ordenador que tengamos o si nuestro sitio web es compartido con otras web, como es nuestro caso, de nuevo paciencia. Veremos luego algo similar a la siguiente figura:
Figura Nº 002 activación
Ahora debemos configurar nuestros valores y necesidades personalizados en la siguiente sección.
Configuración de «Pandora FMS plugin WordPress».
Figura Nº 003 menú de configuración
En esta imagen podemos ver que «Pandora FMS plugin WordPress» trae su propio ícono en el menú lateral de WordPress, se destaca de los demás complementos para una mayor facilidad de administración gracias a que tiene bien estructuradas sus opciones:
Tablero principal o “Dashboard”.
Control de acceso o “Access Control”.
Seguridad del Sistema o “System Security”.
Configuración General o “General Setup”.
Estado de los Ficheros de Sistema o “Filesystem status”.
Veremos todos y cada uno de estos submenús no necesariamente en el mismo orden, comencemos por el Tablero Principal.
Tablero Principal o “Dashboard” de «Pandora FMS plugin WordPress».
Esta será la sección que utilizaremos con mayor frecuencia ya que nos muestra de manera global y a golpe de vista el estado general del sistema:
Figura Nº 004 Tablero Principal
Monitoreo.
Control de Acceso.
Seguridad del Sistema.
La sección de Monitoreo le prestaremos mayor atención porque, aunque no son menos importantes, las otras dos secciones tiene su propia administración. Por ahora Control de Acceso y Seguridad del Sistema está reprobadas no obstante en Monitoreo si tendremos algunas tareas ya aprobadas y otras tantas por aprobar.
Auditoría de fortaleza de contraseña o “Password strength audit” está aprobada en nuestro ejemplo indicando así que la contraseña por nosotros elegida no se encuentra en la lista de 100 contraseñas más utilizadas (en idioma inglés). Recomendamos encarecidamente que tenga al menos diez caracteres entre mayúsculas, minúsculas, dígitos y caracteres especiales a fin de que no estén incluidas en los gigantescos diccionarios para ataques de fuerza bruta. De no ser así debemos cambiarla por medio de las herramienta de WordPress destinada a tal efecto (a saber “Usuarios” y luego “Tu perfil”).
Auditoría de Ficheros de Sistema o “Filesystem audit” está reprobada porque es una tarea programada que se ejecuta cada 24 horas y que viene activa por defecto y debemos tener paciencia para que se ejecute. Luego visitaremos esta característica en su propio apartado.
Nuevos comentarios y/o entradas en las últimas 24 horas (“New coments in last 24h” y “New post in last 24h”) es útil si somos la única persona que redacta artículos ya que si no lo escribimos nosotros pues evidentemente que nuestro sistema ha sido comprometido, recordemos que WordPress incluye una alternativa de publicación que consiste en un buzón de correo electrónico totalmente nuevo y destinado para tal efecto: todo lo que allí enviemos será publicado. Aunque «Pandora FMS plugin WordPress» no vigila eso por esta opción nos daremos por enterado si sucediere una publicación no autorizada. Por otra parte si somos varios autores no tiene tanta utilidad, si acaso conocer el ritmo de crecimiento de nuestro sitio y por cálculo matemático detectar anomalías: si tres personas tienen cuenta no sería lógico que en 24 horas aparezcan publicados cuatro o más entradas así que utilicemos siempre el sentido común.
API Rest Enable: ¿recuerdan que «Pandora FMS plugin WordPress» puede extender sus capacidades de monitoreo automatizado y centralizado con la excelente herramienta «Pandora FMS»? Pues bien si queremos adquirir «Pandora FMS» e integrarlo acá pues necesitamos unas librerías especiales para que se logre la conexión de datos. En nuestro caso de ejemplo está aprobado y listo y no necesita otra acción de nuestra parte.
Versión de WordPress y nombre de nuestro sitio es meramente informativo, acá nos muestra que tenemos instalada la versión 4.7.5 y nos indica que hay disponible una nueva versión, la 4.8 que deberemos actualizar en cuanto sea posible.
Versión de «Pandora FMS plugin WordPress», pues sin más que decir.
Intentos de acceso por fuerza bruta en los últimos 60 minutos o “Recent brute force attemps in 60 minutes” está aprobado y quiere decir que estamos a salvo en un período reciente.
«Pandora FMS plugin WordPress» en otros idiomas.
En el mundo de la programación se acostumbra a realizarlo en idioma inglés por costumbres históricas, Alan Turing era británico y es considerado uno padre de la ciencia de la computación y precursor de la informática moderna: de su trabajo escrito en su lengua materna están las bases sólidamente asentadas. Pero como el mundo es muy grande y hay muchísimos otros idiomas en cada proyecto de desarrollo de software se asigna una carpeta donde se alberga las llamadas internacionalizaciones o traducciones a cada lengua. Como en inglés se escribe “internationalization” y hay 18 caracteres entre la primera y última letra se toma como norma abreviarlo “i18n”.
Lamentablemente en el repositorio de «Pandora FMS plugin WordPress» dicha carpeta existe pero sin contenido alguno, por lo que aquí hacemos las traducciones necesarias mientras se completa ese trabajo ¿Desea usted colaborar en ese aspecto? Con solo crear una cuenta en GitHub, hacer una bifurcación o “fork”, realizar su aporte (treducción) y solicitar una unificación o “pull request” (en el caso que esté correcto el código y los autores originales decidan aceptarlo, lo cual no es obligatorio) podremos llegar algún día a tener este maravilloso complemento (al menos sus instrucciones e interfaz) en idioma castellano.
Estado de Ficheros de Sistema “Filesystem status”.
Figura N° 005 Estado de Ficheros de Sistema
Comentamos que cada 24 horas se realiza una verificación de la integridad de todos y cada uno de los ficheros mediante el procedimiento de control de versiones y revisiones y uno de los más populares es el creado por la “Apache Software Foundation”. Esta fundación creó el “Apache Subversion”, abreviado como SVN,el cual asigna a cada archivo una “huella” o “hash” por una algoritmo matemático y mediante simple comparación sabremos si un fichero ha sido modificado (desde luego que estamos simplificando al máximo, en realidad no es así exactamente como trabaja el código pero es una buena aproximación).
Dicha técnica es ampliamente utilizada por los mal llamados programa antivirus para realizar su función de detección y «Pandora FMS plugin WordPress» también hace lo propio, mostrando en la figura un resumen si ha sucedido tal evento. También ofrece una muy útil ventana de exclusión de ficheros por tipo, nos remitimos a la figura Nº 005 donde apreciamos que los archivos gráficos (con extensión GIF, JPG y PNG) no serán monitorizados, así como un subdirectorio llamado askimet en la carpeta de sistema plugin. Ese askimet es un complemento bien conocido lo que nos indica que «Pandora FMS plugin WordPress» no hace le seguimiento por ser una ayuda contra el correo basura o “spam”.
En este punto podríamos llegar a pensar que es un fallo en la instalación pero debemos tener en cuenta que mientras mayor cantidad de archivos vigilemos más lento se pondrá nuestra pagina y si es compartida por otros sitios web ¡pues debemos tener consideración para con los demás! Queda como decisión propia de cada administrador el borrar -o agregar- las carpetas y/o ficheros así como los complementos “plugins” que queremos o necesitemos estar pendientes de ellos.
En todo caso recomendamos mantener siempre en la lista el primer fichero especial “PandoraFMS_WP.class.php” ya que se utiliza para hacer la instalación del complemento y la activación del mismo con los valores que estamos estudiando.
Así como está planteado acotamos que una vez hayamos instalado y activado «Pandora FMS plugin WordPress» jamás ni nunca lo desactivaremos ni activaremos de nuevo, lo mejor es borrarlo e instalarlo de nuevo ¿Por qué? Como no vigilamos este fichero que tiene la rutina de activación hay la remota posibilidad de que una atacante cambie los valores por defecto para su beneficio dejando lisiado al software que pretende protegernos. Todo puede suceder si hay el menor resquicio, en el siglo veinte pensábamos que no podíamos volar y mucho menos llegar a la Luna ¡y vean ahora!
Enviar correo electrónico si los ficheros de sistema fueron modificados “Email on files list modified” está activada por defecto y si no hemos asignado un correo electrónico «Pandora FMS plugin WordPress» lo enviará al correo electrónico del administrador “admin” ¿Por qué otra dirección de correo electrónico distinto? Mientras más ojos vigilen, mejor por eso si son dos personas distintas el administrador de WordPress y el administrador de la seguridad en teoría habrá mayor protección.
Configuración General “General Setup” en «Pandora FMS plugin WordPress».
Figura N° 006 Configuración General
Acá podemos agregar nuestro correo electrónico, sería el de la persona que se va a encargar de la seguridad que como ya dijimos sería deseable sea una persona distinta del administrador de WordPress.
También como dijimos si usamos «Pandora FMS», la cual utiliza API’s para recolectar información, le podremos especificar las direcciones IP de los servidores autorizados a dicha tarea, eso refina la seguridad al cerrar la brecha de entrada. Así mismo, por defecto, las API reportan cambios cada hora y tenemos siete días para conservar los registros de seguridad de «Pandora FMS plugin WordPress»; pasado este período de tiempo serán borrados para ahorro de espacio.
Control de Acceso “Access Control” en «Pandora FMS plugin WordPress».
Figura N° 007Control de Acceso 1ª parte
Esta sección a su vez la desglosaremos en dos porciones, la primera está reseñada en la Figura 007 donde a modo informativo nos muestra los datos de los usuarios que se hayan conectado y la hora y fecha y dirección IP con la cual lo logró.El complemento registra los intentos exitosos o no de los usuarios registrados, dado el caso que se intente ingresar con cualquier otro nombre de usuario no lo veremos acá sin embargo ya veremos que hay otra método para combatir estos otros intentos. En la segunda parte veremos que dichas direcciones IP puedan ser agregados a una lista de negación de acceso “Black list IPs”, si es que necesitamos, especialmente si provienen de otros países diferentes al nuestro (son pocas las empresas que son trasnacionales).
«Pandora FMS plugin WordPress» nos avisará de los siguientes aspectos, activados por defecto en la instalación:
Cada conexión exitosa de cada usuario (puede llegar a ser irritante), “Email on login user”.
Al crear una nueva cuenta, “Email on new account creation”.
Cuando un usuario cambie su correo electrónico, “Email on user email change”.
Cuando se instale un complemento “plugin” nuevo, “Email on new plugin”.
Cuando se instale un tema nuevo, “Email on new theme”.
Todos estos acontecimientos debemos vigilarlos, si acaso pudiendo excluir la primera línea. Una cosa que no comprobamos es si «Pandora FMS plugin WordPress» se percata cuando agregamos un usuario por medio de MySQL directamente, tal como lo relatan en este tutorial, dejamos esto como tarea para que ustedes amigos lectores y lectoras practiquen sus habilidades ?.
Figura N° 008 Control de Acceso 2ª parte
“Activate login rename” significa renombrar el fichero llamado “wp-login.php” pero dicho cambio no es tan sencillo como eso: se necesita a lo largo de todo el código de WordPress cambiar las referencias a dicho archivo. Por ejemplo, nosotros hicimos una prueba cambiando el nombre del archivo que permite introducir nuestras credenciales de usuario, lo renombramos como jimmy y guardamos la preferencia. A continuación agregamos un usuario llamado lucy, recibimos el correspondiente mensaje por correo avisando sobre el nuevo usuario y también el nuevo usuario recibió también un mensaje con el enlace del fichero renombrado (e invitando a cambiar su contraseña), acá la captura del mensaje:
Figura N° 009 nuevo usuario con fichero login renombrado
La idea es que “ocultemos” de la vista pública dicho archivo, cortando así de raíz, cualquier intento de acceso no autorizado. Incluso podemos cambiarlo periódicamente para despistar aún más a los indeseados. Para esta tarea existen otros complementos que se dedican exclusivamente a eso.
Aunque audaz esta medida también puede resultar peligrosa hasta el punto de que si algo llegara a salir mal, que puede suceder, la solución sería volver a subir los archivos de sistema de WordPress por vía SFTP a fin de ganar acceso de nuevo.
Por defecto la siguiente parte viene activada: “limit login attemps” se traduce en limitar el número de intentos de manera incorrecta a un máximo de tres, bloquear el acceso por 120 segundos incluyendo los usuarios correctos y válidos (“pagan justos por pecadores”).
Como dijimos hay un cuadro de texto donde escribiremos las direcciones IP que expresamente le neguemos el acceso. La otra opción que tiene que ver con el “login” a nuestro blog es por medio de colocarle una CAPTCHA y acá lo nombran como ReCaptcha porque en realidad es tecnología de Google a quienes debemos solicitar las claves correspondientes para prevenir por completo los ataques automatizados. Esta característica viene desactivada por defecto.
Por último tenemos las opciones para fortalecer la seguridad del “WebLog” lo primero que nos informa es el registro de ataques de fuerza bruta, aquí vacío porque claro, lo acabamos de instalar.
Recién al instalar WordPress se crea un usuario por defecto llamado “admin” por lo que primero que nada debemos crearnos una cuenta de Administrador para nosotros mismos y luego borrar dicha cuenta preconfigurada. «Pandora FMS plugin WordPress» se encarga de verificar que dicha cuenta no exista ya que sería una debilidad fácilmente explotable.
Aunque de manera general el WordPress viene configurado para que busque actualizaciones de manera automática (incluidos los complementos) si por alguna extraña razón se encuentra desactivada «Pandora FMS plugin WordPress» se ocupará en avisarnos de ello. También permite que no actualicemos ciertos complementos que por alguna u otra razón válida no nos convenga: los agregamos a la lista y quedan “congelados en el tiempo”, no nos advertirá sobre nuevas versiones disponibles del o los “plugins” en la lista.
Pro medio del archivo especial de configuración llamado “.htaccess” para el “Apache Web Server” podemos evitar que sean “subidos” ficheros con la extensión “.php” que son los que puede ejecutar con algún código malicioso, para evitarlo marcamos esta opción.
También podemos delegar la responsabilidad de configurar el fichero especial para los buscadores web, el cual es llamado “robots.txt” el cual contiene en lengua franca las consideraciones que deberían seguir y obedecer todas las “arañas” que indexan páginas web de manera automática por el ciberespacio.
Ya por último otra forma de ofuscar a los hackers y crackers(o por lo menos dificultarles el trabajo) es inhibir la exhibición de la versión de nuestro blog. Aun que es muy sencillo de hacer por nosotros mismos nunca está demás facilitarnos la vida, imagínense que tuvieran que administras unas cuantas páginas pues ya significaría algo de tiempo ahorrad. El razonamiento de protección a continuación lo describimos, y es lógico: supongamos que para una versión específica se descubre un fallo de seguridad que permite exprimir datos de manera ilegal ¿qué harían los cibercriminales? Pues buscar de manera masiva cuáles son los portales que aún usan dicha versión exacta y es fácil hacerlo si lo exhibimos constantemente en cada entrada o sección. Si Google o Wayback Machine tuvieran un “captura” del sitio (un caché de datos) donde hayan grabado la versión por nosotros utilizada, pues mejor todavía porque cuando lleguen los atacantes ya habremos “parchado” y ellos perderán su tiempo inútilmente.
Conclusiones.
No debemos confiarnos en que por ser pequeño nuestro blog o quizás hasta aburrido (por si acaso nuestra afición fuera escribir sobre carreras de tortugas) para los ciberdelincuentes seguimos siendo apetecibles ya sea para usarnos como agente esclavo para atacar otras página web o distribuir publicidad basura, no debemos bajar la guardia y «Pandora FMS plugin WordPress»siempre estará allí ayudándonos las 24 horas del día, las 52 semanas al año de manera ininterrumpida.
Hoy en día la mayoría de los ataques en Internet proceden de robots o dispositivos con vulnerabilidades explotadas por crackers en aras de levantar gigantescas redes de exploración de forma masiva: nuestra mejor defensa ante esto es la instalación de un servidor panal en nuestra red. Un servidor panal, llamado así por su nombre en idioma inglés “honeypot” – “tarro de miel” en referencia a los glotones osos que usufructúan y destruyen el laborioso trabajo de los demás-, recibirá de manera ex profesa todos los “visitantes” que vengan con buenas o malas intenciones y la razón de ser de este artículo es lograr un registro o informe de tales acontecimientos, en especial los aviesos intentos.
Un ejemplo gráfico de un servidor panal pudiera ser el siguiente, tomado de la Wikipedia en inglés:
En castellano decimos que “se capturan más moscas con una gota de miel que con un tazón de hiel” y precisamente se trata de atraer la mayor cantidad de solicitudes para analizar sus intenciones. Tal vez nos preguntemos “¿Quién me va a atacar si somos una pequeña empresa, una mota de polvo en Internet?” pero es que ya son muy lejanos los días en que un cracker o hacker (con malas intenciones el primero y al menos neutras el segundo) estaba en su computadora navegando por el ciberespacio y pescando uno a uno sus víctimas. Las amenazas actuales estriban en que ellos, por medio de programas automatizados, toman control de miles de dispositivos en línea (cámaras web, refrigeradores, televisores, enrutadores, etcétera) para tener un ejército de clones prestos y a la escucha del comando de su amo: por ejemplo atacar de manera masiva a un dominio web -lo que se conoce como una ataque de denegación de servicios “Denial-of-Service” o “DoS”- o mantener a esta tropa ocupada en su tiempo libre poniéndola a fisgonear todo lo que se atraviese en su camino.
Acá hablaremos de esto último: no importa si vuestra dirección IP fija se haya difundido o que vuestro proveedor de Internet nos asigne una dirección IP dinámica (qie cambia con el tiempo), igual seremos atacados sin misericordia tal como descubrió este experto al monitorizar su propio módem suministrado por su proveedor de Internet. Acá él ilustra lo que sucedería si un atacante se hiciera cargo por la fuerza de nuestro enrutador:
Red de área local inyectada con un DNS maligno.
Es por ello que la mejor defensa es el ataque y de allí la razón de ser del servidor panal, el cual ahora definiremos de la siguiente manera: “un recurso sistemático de información cuyo valor descansa en el uso ilícito o no autorizado de esos recursos» (según “SecurityFocus™”).
¿Cómo se comporta un servidor panal?
Un servidor panal se disfraza como desprotegido, un corderito en medio del campo a merced de los lobos merodeadores que pululan por la red. Graba toda acción e interacción con esos usuarios y debido a que no ofrecen ningún servicio legítimo toda esa actividad es no autorizada y posiblemente maliciosa. Es así que, por ejemplo, aperturen un puerto comúnmente usado para las bases de datos MySQL sin realmente tener dicho software instalado. Incluso podría ofrecer respuestas parecidas al MySQL pintando un panorama para el ahora atacante y observar su comportamiento sucesivo pudiendo finalizar en cualquier momento la conexión con cualquier excusa como “server is shutting down” cuando se haya alcanzado el objetivo programado. Monitorizar un servidor panal pasa por comprender primero cuáles son los tipos existen y cómo funcionan, a manera general, cada uno de ellos. Este artículo pretende ser apenas un destello de luz sobre la materia e incluimos enlaces para todo aquel que desee profundizar en su estudio.
Un servidor panal no es una solución a nada.
Es una advertencia que debemos aclarar, por si las dudas: un servidor panal es una herramienta que usaremos dependiendo de nuestros objetivos, no una solución. Un caso pragmático pudiera ser colocar una copia de nuestro servidor de base de datos pero lleno con unos cuantos datos por nosotros inventados y únicos, a fin de que se diseminen y hacerle seguimiento. Tal vez una empresa que fue cliente nuestro y quebró en una fecha exacta: podemos llenar de ventas ficticias con fechas posteriores a nuestro servidor panal con extensa información de artículos también inventados, ese proceder tiene nombre y lo explicaremos más adelante ¿abrumado o abrumada con la información? Tomad un café -y una bocanada de aire-porque esto ahora es que se pone bueno:
En el párrafo anterior colocamos un ejemplo específico de lo que es un servidor panal de baja interacción: queremos investigar solo cómo afectaría un ataque a nuestro servidor de base de datos con datos ficticios llamados “token honeypot” los cuales luego pueden ser rastreados. Acá se incluyen los servidores panal en producción para casos muy puntuales en las empresas.
El otro tipo de servidor panal es el de alta interacción: permitirle al atacante que interactúe con el sistema operativo para conocer sus destrezas globales y capturar esa información. Es muy utilizado en labores de investigación ¿y qué diablos tiene esto que ver con la monitorización?
Monitorización de servidor panal.
¡Ningún dato ha de ser guardado en nuestro servidor panal! Precisamente el atacante pudiera teenr acceso a ellos y revertirlos en nuestra contra. La monitorización de un servidor panal debe hacerse en tiempo real sacándo los datos inmediatamente de allí y hay varias maneras de hacerlo.
Si nuestro servidor panal es una máquina virtual bien pudiéramos crear un disco duro virtual externo que podremos respaldar cada cierto tiempo con la configuración que hallamos decidido guardar allí. Otra opción: si nuestro servidor panal es una máquina real es tener otra máquina real (servidor recolector) en la misma red de área local y crear solicitudes de datos cada cierto tiempo pero que el servidor recolector no pueda recibir solicitudes de conexión del servidor panal (en el supuesto de que el atacante se halla hecho con el control total del servidor panal). Demás está decir que los datos recolectados serán aislados unos de otros para su posterior análisis y descartar en cierto punto los que haya podido contaminar el atacante.
Como las combinaciones son prácticamente infinitas hagamos un caso práctico y puntual.
Ejemplo práctico con “Artillery”.
“Artillery” es una bifurcación “fork” del código creado por TrustedSec y llevado ahora por BinaryDefense y es basado en una licencia BSD de código abierto que incluye, además, un abrazo de 5 segundos y una cerveza en caso de toparnos en un bar con el autor de este software (cierta condiciones aplican ?). Las instrucciones de instalación en un servidor Ubuntu las pueden seguir en este enlace.
Está escrita en lenguaje Python y se centra en los siguientes aspectos:
Abre múltiples puertos comunes utilizados por una gran variedad de aplicaciones e incluye la dirección IP del atacante en una lista de negación ubicada en “/var/artillery/banlist.txt” (ya tenemos listo nuestro primer archivo a monitorizar: descargar con un guion escrito en bash con una frecuencia de 5 minutos, por ejemplo y renombrarlo agregrando hora y fecha al nombre del fichero).
Por defecto “Artillery” monitorea los directorios “/var/www” (donde se guardaría una página web si tuviéramos instalado el servidor web “Apache”) y “/etc” (crucial para todo servidor GNU/Linux). Existe un archivo de configuración donde podremos agregar otras carpetas que sean de nuestro interés el monitorear.
“Artillery” monitorea SSH y busca intentos de acceso por la fuerza bruta.
También tiene la opción de enviar un correo electrónico cuando ocurra un ataque y permite concoer en qué consistió el ataque (una forma de monitoreo integrada por defecto).
Para configurar esto debemos acceder a “/var/artillery/config” y establecer allí nuestras preferencias.
Una cosa importante es agregarnos nosotros mismos a una lista de direcciones IP permitidas, dado el caso que por nuestro error metamos mal la contraseña por SSH y el servidor panal nos bloquee todo acceso, pendientes de no ser “cazadores cazados”. De ser necesario “desbloquear” alguna dirección IP existe el módulo “remove_ban.py” diseñado especialmente a tal efecto.
Funciona en GNU/Linux y en Windows, en este último sistema operativo se necesitan ciertos detalles en la instalación pero lo curioso del asunto es que nuestros atacantes siempre pensarán que están lidiando ¡con un equipo Linux!
Otras soluciones utilizadas para crear un servidor panal.
Desde hace años en el mercado hay herramientas venerables que pueden servir para adentrarse en este campo, teniendo en cuenta que ya deben estar previstas por los atacantes (más adelante las ventajas y desventajas de un servidor panal). Algunas de ellas son:
Honeyd creada por Niels Provos y aunque es un solo servidor panal en GNU/Linux o Windows el atacante verá múltiples servidores panales ¿cuál es el truco? Honeyd crea direcciones IP virtuales cada una con los puertos y servicios que deseemos emular. Para ayudar a comprender el concepto imaginemos un aparato enrutador conectado por un módem a internet y con un disco duro conectado con varias máquinas virtuales corriendo, cada una con diferentes puertos y servicios abiertos. Un tutorial básico sobre cómo instalar y comenzar a usar Honeydlo podemos leer en este enlace.
HoneyBOT servidor panal.
HoneyBOT esta hecha para Microsoft Windows y tiene su interfaz gráfica integrada lo cual la constituye como una sabia elección para todos aquellos se se inicien en el mundo de los servidores panales. Se caracteriza por su nivel de detalle, guarda incluso todo byte recibido del atacante. Incluye interesantes gráficos que permiten en un solo golpe de vista ver los ataques más relevantes. Es software privativo (existe una versión académica) y pertenece a “Atomic Software Solutions”.
Specter servidor panal
Specter es más poderoso ya que tiene perfiles preconfigurados de varios sistemas oeprativos, inyecta datos codificados al atacante que permiten ser usados luego como prueba y le abre un perfil personalizado y acumulativo a cada intruso. A este programa no lo vamos a monitorizar nosotros mismos sino que tiene informes predefinidos con datos a salvaguarda de la casa de software y desconocemos cómo los cuida porque es de código cerrado.
Kippo está escrito en Python y está alojado en GitHub con licencia libre. Se describe como un servidor panal de interacción mediana, una categoría intermedia a las que describimos previamente ya que se enfoca en SSH. Una guía para instalarlo está disponible en este enlace ¡y hasta se atreven a instalar un servidor MySQL para guardar los eventos en vez de lidiar con ficheros de texto!
Ventajas y desventajas de un servidor panal.
Ventajas:
Trabaja en entornos ailsados.
Debido a que utiliza servicios no legítmos produce muy pocos falsos positivos.
Los datos son concisos y específicos de actividad no legítima.
Desventajas:
Potencialmente puede ser descubierto por el atacante y ser usado en nuestra contra.
Puede ser utilizada por el atacente contra otros sistemas distintos al nuestro (ver punto anterior).
Solo detecta ataques directos al servidor panal, no detecta el entorno de la red de area local (excepto Honeyd que crea su propia red privada virtual). Sin embargo luego trataremos una solución aproximada a este problema.
Redes de servidores panal y granjas de servidores panal.
Ambas agrupan un conjuntos de servidores panal y la diferencia es la administarción centralizada. El concepto es desviar la atención de un potencial objetivo real para el ataqcante y encausarlo hacia otro servidor panal especializado en la tarea asignad (luego veremos las diferentes aplicaciones que son deseables de monitorizar).
Por medio de un ordenador GNU/Linux que ejecute debidamente iptables podremos establecer unas reglas donde cualquier solicitud no relacionada con nuestro entorno de trabajo sea redirigida a un servidor panal. Cualquier otro administrador de sistemas simplemente negaría el tráfico y listo pero siempre se debe estar abierto a como evoluciona el mundo y las nuevas amenazas.
Un modelo muy personalizado de servidor panal.
Servidor panal de Sam (más bien un tarro de miel) cuenta Twitter https://twitter.com/sams_honeypot
¿Qué tal el modernizarnos y hacer totalmente público las intrusiones a nuestro servidor panal por medio de Twitter e incluso guardar nuestra monitorización en Dropbox? Bienvenidos al siglo XXI y esto es posible gracias al Profesor Sam Bowne del “City College San Francisco” en Estados Unidos. Su proyecto consiste en crear en Ubuntu un servidor web Apache e instalar tcpdump para enviar esa gran cantidad de tráfico de red a Dropbox y grabar todos los comandos del “shell” a un “syslog” por medio de un guion por él creado. Una tarea programada se encarga de subir los datos en 50 trozos de 10 megabytes de manera regular y constante.
También utiliza tripwire para llevar un registro pormenorizado de los ficheros modificados (atención, se debe arrancar con un sistema “limpio” antes de exponerlo a fin de comenzar con una buena base) y un cliente llamado speedtest-cli escrito en Python que mide la velocidad del internet.
En otro servidor que monitoriza los archivos almacenados en Dropbox extrae las palabras claves y por medio de un guión escrito en PHP las publica en Twitter, lo cual no es una buena idea porque le da pistas a los atacantes sobre lo que hacen (allí aparece la dirección IP asociada al ataque). Luego modificó el guion php para enviar mensajes directos en Twitter, lejos de la vista pública (uno puede configurar para que los mensajes directos también sean enviados a nuestro correo electrónico ¡mejor monitorización imposible!).
Conclusiones.
Hay muchas otras cosa que no llegamos a tratar tales como un servidor panal para correo electrónico (como oficina postal libre) a fin de recolectar a los productores de correo basura “spamers” o un servidor panal de base de datos que permite inyecciones de código SQL y sus posterior análisis en cuanto a técnicas nuevas en el ambiente “in the wild” pero cumplimos con una breve introducción a esta tecnología combinada de defensa y ataque que tiene mucho terreno fértil para la investigación y desarrollo.
Un Administrador Sistemas es como un buen mecánico que mantiene sus herramientas de trabajo bien seleccionadas y organizadas, presto a resolver cualquier problema desconocido que se le presente. También ha de realizar tareas de mantenimiento para prevenir dificultades y a pesar de lo bien organizado que esté la labor es ardua, tanto es así que en las grandes empresas se delegan entre distintas personas las diversas labores generales. Por ello podemos hablar de, sin ser una lista definitiva de cargos y funciones:
Personal físicamente presente en los ordenadores (ayudantes de los Administradores).
En idioma inglés dicha persona comúnmente es conocida como “System Administrator” y lo abrevian como “sysadmin” y a pesar de no ser un término reconocido en el idioma castellano en la práctica es muy utilizado como sinónimo, acá podemos usar ambos indistintamente.
Las labores del Administrador Sistemas pueden incluir:
Análisis de registros de sistema e identificar potenciales inconvenientes con los ordenadores de la red local o remota.
Instalar actualizaciones de sistemas operativos, correcciones y cambios de configuración.
Instalar y configurar nuevo hardware y/o software.
Agregar, remover o actualizar información de cuentas, reinicio de contraseñas, etc.
Responder consultas técnicas y asistencia a usuarios.
Es responsable de la seguridad (ésta es inherente al cargo).
Es responsable de documentar la configuración del sistema, ya sea para beneficio propio cuando tenga que tomar vacaciones o para sus sucesores en el cargo.
Solución de los problemas que reporten los usuarios.
Afinación del desempeño del sistema.
Aseguramiento de que la infraestructura de red esté iniciada y funcionando (monitorización de servidores y redes).
Configuración, adición y borrado de archivos de sistema.
Supervisar de manear directa que los ambientes de desarrollo, pruebas y producción se sincronicen y funcionen sin inconveniente alguno.
Con esto presente clasificamos las categorías de programas cual navaja suiza en un breve repaso dado la gran cantidad de opciones, veamos.
Herramientas de conexión remota para el Administrador Sistemas.
Aún con los ayudantes in situ un Administrador Sistemas necesita una herramienta para conectarse de manera remota con las credenciales necesarias a fin de cambiar configuraciones, crear tareas programadas o simplemente para ver el estado del sistema o simplemente para usar el resto del software instalado para administrar; estas son algunas muy buenas alternativas:
eHorus: comenzamos por casa, el “plugin” integrado a Pandora FMS con la seguridad de ser ejecutado en un entorno plenamente confiable: nos permitirá rápidamente ubicar un dispositivo en el mapa de red previamente configurado desde cualquier navegador web. Con la versión gratuita no necesita de Pandora FMS para funcionar, solo darse de alta en la página web o con la versión de pago para empresas las dos son una excelente solución. Su sitio web es el siguiente: https://ehorus.com/es/ . eHorus funciona tanto en Windows como en GNU Linux, MAC y tiene un agente para Raspberry.
Remmina: la solución en software libre tiene múltiples opciones como conexión «Protocolo de escritorio remoto» (“Remote Desktop Protocol” o RDP), «Computación Virtual en Red» (“Virtual Networking Computing” o VNC) ambos en modos gráficos, y permite conectar tanto a ordenadores con Windows y GNU Linux. También incluye conexión por medio de «Interprete de Órdenes Seguro» (“Secure Shell” o SSH) que permite una mayor rapidez ya que utiliza la ventana terminal de comandos. Su página principal es http://www.remmina.org/ de donde podrán obtener la última versión o desde los repositorios oficiales de cada distribución GNU Linux. Con Remmina debemos tener las direcciones IP de los equipos o configurar nuestros propios DNS (o alquiler a terceros) ya que esa organización no presta ese servicio comercial.
Herramientas de respaldo y compresión de datos.
Una de las limitantes del Administrador Sistemas es mantener un presupuesto para un gasto adecuado de equipos y en toda empresa el respaldo de información es de misión crítica. Pero el gasto en material de almacenamiento (discos duros internos y externos, cintas, discos ópticos, etcétera) ha de controlarse así que la información ha de comprimirse lo cual supone un importante ahorro de dinero.
Winzip: la norma de facto en ambientes Windows ya que tiene soporte nativo integrado en el navegador de archivos. No obstante descargar Winzip tiene sus ventajas: cifrado de archivos a nivel bancario y conexión con los populares servicios de almacenamiento fuera del hogar u empresa: Dropbox, Google Drive, One Drive, entre otros más. Lee y escribe gran cantidad de formatos y cuenta con traducción a 18 idiomas en su versión número 21. En ambiente Mac se necesita OS X o superior. Su hogar en Internet es http://www.winzip.com/win/es/ .
7zip: la alternativa en código abierto que hasta contiene complementos privativos como unRAR (licencia aparte). Grandes empresas como IBM no tienen empacho en utilizarlo y promocionar su uso tanto en GNU Linux como en Windows. La página web de la organización está almacenada en el gigante Digital Ocean en este enlace http://www.7-zip.org/ de donde podrán descargar la versión para Windows y en GNU Linux con solo ejecutar «apt-get install p7zip-full» lo obtendremos.
rsync: hacemos una mención especial porque en realidad es una aplicación intrínseca al ambiente GNU, si acaso su pagina web https://rsync.samba.org/ es meramente informativa porque si usas Linux está instalado sí o sí . Creado poro Andrew Tridgell, quien es padre también del Git y Samba Server, desarrolló estos dos últimos programas con la experiencia adquirida con rsync. Demás está decir que Git para el Administrador Sistemas será extraordinariamente útil para manipular y mantener las versiones de documentación del sistema y los guiones personalizados almacenado ya sea en un servidor Git propio dentro de la empresa o un servidor externo como el famoso GitHub. El software rsync nos permitirá respaldar directorios completos preservando las propiedades de los ficheros (enlaces, propietarios, estampados) de manera múltiple y masiva por medio de protocolos seguros como rsh y shh ¡o hasta de manera anónima a modo de FTP público!
Para recuperación de desastres completos.
Sí, ya sabemos que nuestros servidores y hasta ordenadores de escritorio tienen algún sistema de almacenamiento redundante como RAID por lo que solo deben nuestros ayudantes el simplemente sacar un disco e insertar otro inclusive si el servidor está funcionando ¿qué sucedería si no hay ningún disco fijo de de donde arrancar? Examinemos este escenario que tiene que ver también con el respaldo de datos.
Clonezilla: es un software que sin importar que tipo de sistema de archivo tengamos en los discos rígidos ( extn en Linux, FATn en MS Windows, HFS+ en Mac, etc.) por medio de un Disco Compacto o una memoria USB -con el programa allí instalado- inicia un respaldo completo hacia un servidor conectado por red local o externa que tengamos previamente configurado (muy importante asignar direcciones IP fija por dirección MAC ) . Dicho servidor receptor bien puede ser tipo SSH, Samba, NFS o con la normas RFC 2518 y RFC 4918 WebDAV . También puede iniciar los equipos por BIOS (la tarjeta integrada de red Ethernet ubicua) o por uEFI que actúa entre el BIOS y el sistema operativo: si no arranca de disco duro ni unidad óptica se conecta automáticamente al servidor que contenga el últimos respaldo. Un uso práctico es, por ejemplo, si una empresa compra un lote grande de ordenadores portátiles para sus vendedores de calle, tomar una máquina como modelo (todo configurado a las exigencias de la gerencia) y copiarlas por lote al resto como denota la figura siguiente. Lo que aquí explicamos está simplificado al máximo, el tema es muchísimo más denso.
Programas de monitoreo locales para el Administrador Sistemas.
Cada sistema operativo generalmente trae sus propias utilerías desarrollado por ellos mismo o comprados a otras empresas y empaquetados juntos. Acá dos grandes plataformas:
En ambiente MS Windows: desde 1996 Mark Russinovich ha desarrollado especializados programas para administración, resolución de problemas y diagnósticos. Hasta el año 2012 podemos deleitarnos en su blog personal de casos como «El caso de los reinicios misteriosos» o «El caso de mi mamá y su instalación rota de “Microsoft Security Essentials”» que pudo resolver gracias a estos componentes. Ahora Microsoft ha continuado su desarrollo desde una página web llamada “Live Sysinternals” y ofrece la línea de comandos para llamarlos y ejecutarlos desde Internet. La lista es larga y la podemos leer aquí ¿cuál vamos utilizar? ¡Pues esa es una ruleta, se ven tantos casos como Administrador Sistemas! De los recientemente actualizados tenemos:
System Monitor (Sysmon): registra, como servicio del sistema, información detallada sobre creación de procesos, conexiones de red y creación y cambios en los ficheros por fecha a fin de detectar actividad maliciosa o anormal.
Autoruns for Windows v13.71: imprescindible para saber absolutamente todos los programas y servicios que se cargan durante el arranque, no más procesos indeseados que consumen memoria y recursos.
AccesChk v6.1: para se ejecutado desde la línea de comandos nos informa “quién hizo qué” de una manera rápida -pero no bonita por carecer de interfaz gráfica-.
Powershell: desarrollado originalmente con Visual Studio .NET, un entorno de desarrollo exclusivo para Microsoft Windows. Su punto fuerte son los “cmdlets” que son comandos especializados que implementan funciones específicas y emula el uso de “tuberías” de comandos de Unix. Desde agosto de 2016 está disponible para Linux y puede ser instalado como bien lo describen en este enlace. Aunque ahora tiene licencia MIT los componentes individuales siguen siendo privativos por eso lo incluimos acá, a medio camino hacia el software libre de la siguiente sección.
En ambiente GNU Linux: acá manda la consola, sin lugar a dudas, seleccionamos una docena nada más y los presentamos con una muy rápida descripción (algunos podrán necesitar ser instalados vía apt-get, dependiendo de nuestra distribución):
“top”: cada 5 segundos nos muestra los procesos que se están ejecutando y que consumen los mayores recursos.
“vmstat”: Actividad del sistema e información del mismo y del hardware también.
“w”: así de simple, una sola letra acompañada del nombre del usuario devuelve cuando se conectó, en cuál terminal trabaja y los procesos en ejecución.
“uptime”: tiempo encendido del equipo.
“ps -a”: lista todos los proceso en ejecución junto con su identificador.
“free”: memoria libre , tanto física como de intercambio.
“iostat”: carga promedio del CPU y la actividad del disco.
“pmap”: acompañado del identificador de la aplicación nos muestra un mapa en caracteres ASCII del uso de la memoria, toda una delicia al más puro estilo de la película “The Matrix”.
“tcpdump”: captura todos los paquetes enviados por una interfaz de red en puertos específicos, entre dos dispositivos específicos o que pertenezcan un protocolo en particular.
“iostat”: retribuye información de todos los medios de almacenamiento o uno en especial.
“mpstat”: con el parámetro “-A” muestra la información de todos y cada uno de los núcleos del CPU.
“vmstat”: similar al comando anterior pero actúa sobre la memoria virtual.
Desde luego que existen herramientas gráficas para Linux y una de ellas deriva de “ntop”, una utilería de consola para analizar tráfico de red pero mejorada y con el nombre de “ntopng”:
Webmintiene agrupados de manera especial una interfaz gráfica en navegador web que se conecta al equipo por medio de un túnel SSH, por ejemplo, y permite configurar cuentas de usuarios, Apache, DNS y ficheros compartidos y mucho más. Un magnífico sustituto de la consola o de manera remota por medio de módulos que pueden ser agregados o eliminados según gusto o conveniencia. La lista de módulos normales y corrientes están acá y hay la posibilidad de uno mismo desarrollar sus propios módulos. Con Webmin inclusive podemos manejar los «muros de fuego» (“firewalls” en inglés) en IPv4 e IPv6, encontramos al menos 9 utilerías a primera vista así que tenemos suficientes a pesar de no haber hecho aquí una sección para los mismos.
Recalcamos que apenas son una muestra y que cada uno de estos comandos producen una cantidad ingente de información que debe ser recogida, centralizada y analizada de alguna manera lo cual nos lleva al siguiente punto: la monitorización de servidores.
Programas de monitoreo remotos: monitorización de servidores.
Acá entramos el mundo “de las grandes ligas” de Administrador Sistemas, hemos publicado en anterior artículo la comparación entre Nagios yPandora FMS y recomendamos su lectura.
Cabe destacar que con Pandora FMS podemos recolectar los resultados de todos los programas de linea de comando sin importar el sistema operativo por medio de la creación de “plugins” de ejecución bien sea local, bien sea remota. Toda la información la tenemos en el reportaje dedicado al tema.
El mundo es muy grande para el Administrador Sistemas.