Mostrando entradas con la etiqueta Debian. Mostrar todas las entradas
Mostrando entradas con la etiqueta Debian. Mostrar todas las entradas

Investigando en la red con Sherlock Linux

   En una entrada anterior se ha hablado del programa Sherlock, programa desarrollado por el sherlock-project que busca usuarios en sitios de red.
  No obstante, para la investigación ICA [Inteligencia de Código Abierto ("Open Source Intelligence" ("OSINT"), en inglés)] también puede usarse una herramienta más potente, el sistema operativo Sherlock Linux, que posee numerosas herramientas para este tipo de investigaciones.

El sistema de gestión de paquetes

  En una entrada anterior se ha tratado el tema de un gestor de paquetes (como también es llamado el sistema de gestión de paquetes) en concreto, y en otras se han mencionado comandos para instalar uno u otro programa. Dichos comandos también pertenecen a un sistema de gestión de paquetes.
  En informática, un gestor de paquetes mantiene un registro del software que está instalado en su equipo informático, y le permite instalar software nuevo, actualizarlo a versiones más recientes, o eliminar software de una manera sencilla.
  Dentro de este contexto, se entiende por paquete a los conjuntos de archivos que se agrupan y que se pueden instalar y eliminar como conjunto.
  Los sistemas de gestión de paquetes tienen la tarea de organizar todos los paquetes instalados en el sistema y se encargan de mantener su usabilidad, lo que consigue combinando las siguientes técnicas:


  • Comprobación de la suma de verificación para evitar que haya diferencias entre la versión local de un paquete y la versión oficial.
  • Comprobación de la firma digital.
  • Instalación, actualización y eliminación simple de paquetes.
  • Resolución de dependencias para garantizar que el software funcione correctamente.
  • Búsqueda de actualizaciones para proveer la última versión de un paquete, ya que normalmente solucionan bugs y proporcionan actualizaciones de seguridad.
  • Agrupamiento de paquetes según su función para evitar la confusión al instalarlos o mantenerlos.

  • El comando ip

      Hasta hace poco, en las distribuciones de Linux se empleaba el comando ifconfig, perteneciente al paquete "net-tools", para administrar los dispositivos de red. Pero actualmente se ha comenzado a utilizar el paquete "iproute2" de manera predeterminada (aunque todavía existe el paquete "net-tools" en los repositorios de Linux para poder instalarlo si se desea), cuyo comando principal es ip.
      Iproute2 es un paquete de utilidades formado por un conjunto de herramientas muy potentes para administrar interfaces de red y conexiones en sistemas linux.
      Este paquete reemplaza completamente las funcionalidades presentes en ifconfig, route, y arp y las extiende llegando a tener características similares a las provistas por dispositivos exclusivamente dedicados al ruteo y control de tráfico.

    Configurar conexión wifi en Linux por línea de comandos

      Es sabido que se conoce como wifi a una tecnología que permite la interconexión inalámbrica de dispositivos electrónicos. El término wifi como sustantivo común, escrito normalmente en redonda (sin comillas ni cursiva), proviene de la marca comercial Wi-Fi, que es una marca de la Alianza Wi-Fi, la organización comercial que cumple con los estándares 802.11 relacionados con redes inalámbricas de área local.
      Cada vez se hace más estandarizada la presencia de dispositivos habilitados con wifi (tales como ordenadores personales, teléfonos, televisores, videoconsolas, reproductores de música...), que pueden conectarse entre sí o a internet a través de un punto de acceso de red inalámbrica.
      Generalmente, los dispositivos informáticos poseen interfaz gráfica de escritorio donde es más sencillo configurar la tarjeta de red inalámbrica para que se conecte a la red wifi, pero, a veces, esa opción no existe, por lo que se debe configurar ésta desde una consola o una interfaz totalmente de línea de comandos.
      Si, además, el sistema operativo del dispositivo es de Linux, igual resulta más complicado al usuario realizar las configuraciones necesarias para que tenga este tipo de red.

    Preparar Nginx para que haga su trabajo de modo externo

      En entradas anteriores ya se ha hablado de Nginx y se han mostrado algunas de sus propiedades.
      Sin embargo, hasta ahora se ha visto que este servidor de red se encontraba en el mismo equipo informático que los otros programas con los que trabajaba cuando lo más habitual es que este se encuentre en un equipo informático (o máquina virtual) de servidor y los programas que controla en otro (u otros) equipo informático de servidor.
      Por lo tanto, en la presente entrada se explicará el modo de configurar un servidor de red Nginx en un equipo informático, desde el que se controlarán dos máquinas virtuales de virtualizador KVM: una de ellas con dos contenedores de red Tomcat (uno con dos aplicaciones instaladas, y el otro con otra aplicación), y la otra con otro servidor de red Nginx sirviendo una página web hecha con Wordpress.
      Los ejemplos que ilustran esta explicación se han hecho con Debian 9 como sistema operativo base en las tres máquinas informáticas implicadas, los servidores de red son Nginx 1.14, y los contenedores de red son Tomcat 8.

    Instalación de WordPress con MariaDB en Nginx

      En entradas anteriores se ha hablado del sistema de gestión de contenidos WordPress.
      Del mismo modo, se han explicado ya los pormenores básicos del gestor de bases de datos MariaDB, y, con una mayor profundidad, las características del servidor de red Nginx.
      En la presente entrada, se unirán estos tres elementos para formar la estructura, vista anteriormente, de servidor de red, gestor de contenidos y sistema de gestión de bases de datos para crear la base para un sitio web.
      Los ejemplos necesarios para ilustrar la siguiente explicación se han hecho con el sistema operativo Debian 9, el servidor de red Nginx 1.14, y el gestor de bases de datos MariaDB 10.1.

    Recuperar contraseña de usuario "postgres" en PostgreSQL

      Como ya se ha visto en otra entradaPostgreSQL es un gestor de bases de datos de tipo relacional gratuito.
      Cuando se termina de instalar, este gestor de bases de datos posee un usuario estándar por defecto con permisos de administrador llamado "postgres".
      Sin embargo, hay que distinguir entre el usuario de sistema y el usuario del gestor de bases de datos, puesto que cada uno de ellos, a pesar de llamarse del mismo modo, poseen características diferentes, entre las que se encuentra su contraseña, lo que puede llevar al usuario a cometer equivocaciones.
      Un usuario de PostgreSQL puede despistarse por cualquier circunstancia y acabar perdiendo la contraseña, lo que suele ser un problema grave.
      En la presente entrada se explicará el modo de crear una nueva contraseña (que puede ser igual a la que ya se tenía previamente) para el usuario genérico de administración del gestor de bases de datos "postgres".

    Instalar aplicación en Java, dependiente de base de datos, en Tomcat dependiente de Nginx

     Ya se ha visto en entradas anteriores cómo instalar un entorno apropiado para el despliegue de una aplicación en Java simple. Este entorno consistía en el empleo de un servidor de red Nginx como servidor de proxy inverso y un contenedor de red Tomcat.
      En esta ocasión se va a añadir una variable más a la "ecuación" que constituye el mencionado entorno, y se va a instalar también una base de datos que formará parte del mismo.
      En primer lugar, comentar que Java es un lenguaje de programación de propósito general, concurrente, orientado a objetos, que fue diseñado específicamente para tener tan pocas dependencias de implementación como fuera posible. Su intención es permitir que los desarrolladores de aplicaciones escriban el programa una vez y lo ejecuten en cualquier dispositivo, lo que quiere decir que el código que es ejecutado en una plataforma no tiene que ser recompilado para correr en otra. Esto lo hace idóneo para la creación de aplicaciones de red y, de hecho, muchas aplicaciones de red de la actualidad están hechas, en mayor o menor parte, con este lenguaje.
      Los ejemplos de la siguiente explicación se han probado con éxito en  un sistema operativo Debian 9, que tiene alojados en él un servidor Nginx 1.14 como servidor de proxy inverso, un Tomcat 8 como contenedor de red, y una base de datos PostgreSQL 10.5.

    Instalación de PostgreSQL en servidor Debian

      En otra entrada de la presente bitácora se ha visto qué es un gestor de bases de datos PostgreSQL.
      La entrada que ahora nos ocupa profundizará algo más en este sistema de gestión de bases de datos y mostrará el mejor modo de realizar su instalación en un servidor Debian de Linux.
      En primer lugar se ha de hacer hincapié en el método de uso de los disparadores ("triggers", en inglés) que realiza este gestor de bases de datos. Debido a que un disparador es una acción específica que se realiza de acuerdo a un evento, cuando éste ocurra dentro de la base de datos, en PostgreSQL esto significa la ejecución de un procedimiento almacenado basado en una determinada acción sobre una tabla específica. Esto hace que todos los disparadores se definan por seis características: El nombre del disparador, el momento en que el disparador debe arrancar, el evento del disparador deberá activarse sobre…,  la tabla donde el disparador se activará, la frecuencia de la ejecución, la función que podría ser llamada, y si la función no es correcta. Combinando estas seis características, este gestor de bases de datos permite al usuario crear una amplia funcionalidad a través de su sistema de activación de disparadores.

    Preparación básica de un servidor de Linux

      Se ha hablado, en anteriores entradas, acerca de numerosos tipos de servidores, en especial, de servidores de red, pero poco se ha tratado el tema de los servidores de base donde suelen ir instalados todos los demás, así como otros programas que realizan tareas junto al servidor.
      Y es que Internet Information Services, Nginx, Tomcat, los sistemas de gestión de bases de datos, los servidores de DNS o de DHCP, y otros programas que gestionan redes de todo tipo suelen estar instalados como parte o en un sistema operativo de servidor (Ubuntu Server, Windows Server, Red Hat, CentOS, Debian, etc.).
      En los ejemplos de la siguiente explicación se empleará un sistema operativo Debian 9.

    Conexiones remotas (Parte 3: Remmina)

      Remmina es un cliente de escritoro remoto para sistemas operativos basados en POSIX (estándar oficial para el mantenimiento de la compatibilidad de los sistemas operativos).
      Soporta los siguientes protocolos:
    •   Protocolo de Escritorio Remoto ["Remote Desktop Protocol" ("RDP"), en inglés].
    •   Virtual Network Computing (VNC).
    •   NX Technology (NX).
    •   X Display Manager (XDMCP).
    •   SPICE.
    •   SSH.
      Entre sus características más destacadas se encuentran su soporte para la creación de perfiles, su capacidad para tener abiertas varias sesiones accesibles a través de una pestaña, y su barra de herramientas flotante en el modo de pantalla completa.

    Configurar el LVM en la instalación de Linux

      El gestor de volúmenes lógicos ["Logical Volume Manager" ("LVM"), en inglés] es una implementación de un administrador de volúmenes lógicos para el núcleo de Linux.
      LVM incluye muchas de las características que se esperan de un administrador de volúmenes, incluyendo:
    • Redimensionado de grupos lógicos
    • Redimensionado de volúmenes lógicos
    • Instantáneas de sólo lectura (LVM2 ofrece lectura y escritura)
    • RAID0 de volúmenes lógicos.
      LVM no implementa RAID1 o RAID5, por lo que es recomendable usar programas informáticos específicos de RAID para estas operaciones, teniendo los volúmenes lógicos por encima del RAID.

    El programa Nmap


      Nmap es un programa de código abierto que sirve para efectuar rastreo de puertos.
      Fue creado originalmente para Linux aunque actualmente es multiplataforma. Se usa para evaluar la seguridad de sistemas informáticos, así como para descubrir servicios o servidores en una red informática, para ello Nmap envía unos paquetes definidos a otros equipos y analiza sus respuestas.
      Este programa posee varias funciones para sondear redes de ordenadores, incluyendo detección de equipos, servicios y sistemas operativos. Estas funciones son extensibles mediante el uso de guiones para proveer servicios de detección avanzados, detección de vulnerabilidades y otras aplicaciones. Además, durante un escaneo, es capaz de adaptarse a las condiciones de la red incluyendo latencia y congestión de la misma.
      En general, es una buena alternativa al programa Wireshark.

    El particionado de discos durante la instalación de Linux

      Uno de los problemas con los que se encuentra la mayoría de los usuarios informáticos que están comenzando a utilizar sistemas operativos de Linux es la dificultad para crear particiones personalizadas, ya que la propia estructura de este tipo de sistemas operativos dificulta esta tarea.
      Se debe tener en cuenta que en Linux (y Unix) todo es un fichero. Los directorios son ficheros, los ficheros son ficheros, y los dispositivos son ficheros. A veces a los dispositivos se les llama nodos, pero siguen siendo ficheros.
      Estos sistemas de ficheros se organizan en una estructura jerárquica, de tipo árbol. El nivel más alto del sistema de ficheros es "/" o directorio raíz. Todos los demás ficheros y directorios están bajo el directorio raíz. En general, esta estructura suele ser como se ve en la siguiente imagen.

    Modos alternativos de instalar Telegram en Linux

      En una entrada anterior se ha hablado del cliente de mensajería instantánea Telegram, y se ha explicado el modo más sencillo de instalarlo en varios de los sistemas operativos más comunes, incluyendo uno de Linux.
      Sin embargo, el método explicado anteriormente puede fallar debido a cambios en los sistemas operativos Linux más actuales (Debian 9, Ubuntu 18.10 y derivados, etc.), por lo que en esta entrada de la presente bitácora se mostrarán otros métodos diferentes para instalar con mayor seguridad de éxito este programa de mensajería instantánea en los sistemas operativos de Linux.
      Estos métodos requieren algo más de trabajo por parte del usuario, pero lo compensan con su mayor porcentaje de éxito y su menor porcentaje de errores, sin detrimento en las futuras actualizaciones del programa.
      Los ejemplos mostrados en la presente entrada de esta bitácora se han hecho con Debian 9.

    Crear una red informática mediante archivos en Linux

      Una red informática consiste en dos o más ordenadores conectados entre sí y que comparten recursos, ya sea hardware (periféricos, sistemas de almacenamiento…) o software (archivos, datos, programas, aplicaciones…). Una red informática permite que varios usuarios puedan intercambiar información, pasar archivos, compartir periféricos como las impresoras e incluso ejecutar programas en otros ordenadores conectados a la red.
      En la actualidad prácticamente todo está conectado por redes informáticas, desde las redes internas de las empresas o los hogares particulares, hasta el propio Internet, que no es más que una red informática inmensa.
      Para realizar las conexiones entre los equipos informáticos hacen falta utilizar ciertos protocolos de red, ciertos lenguajes informáticos, y ciertas herramientas físicas.
      Lo más habitual es emplear DHCP para conectar varios equipos informáticos (ver también cómo conectar dos equipos de Linux mediante DHCP en el siguiente enlace), y configurar el dominio empleando el programa bind. No obstante, aquí se verá un método más sencillo para realizar ambas cosas en Linux.
      Para ejemplificar esta explicación se emplearán dos equipos con el sistema operativo Debian 9.

    Creación de una máquina virtual con KVM de Linux

      En una entrada anterior se ha explicado qué era KVM, un programa de virtualización, y se ha explicado cómo instalarlo y configurarlo para prepararlo con el fin de poder crear y utilizar máquinas virtuales.
      En la presente entrada se verá el modo de creación de una máquina virtual con este programa. Se debe tener en cuenta que la siguiente explicación es específica para el huésped que se va a instalar en ella, por lo que existen variantes dependientes del sistema operativo que se instale.
      Se utilizará el sistema operativo Debian 9 tanto en el equipo informatico anfitrión como en el huésped para ejemplificar la explicación.

    Instalación básica de contenedor de red Tomcat en Linux


      El mundo de los servidores de red es basto y lleno de misterios.
      En entradas anteriores de la presente bitácora se ha hablado de Apache, de Internet Information Services, y de Nginx. Todos ellos han sido definidos como servidores de red (aunque algunos posean otras funciones añadidas).
      Mas en esta entrada se hablará de un interesante complemento a un servidor de red conocido como contenedor de red (o contenedor web), de entre los cuales uno de los más populares es Apache Tomcat.
      Pero lo primero es lo primero. Un contenedor de red es, desde el punto de vista de la programación informática en Java, la implementación que hace cumplimiento del contrato de componentes web de la arquitectura J2EE (Java 2 Enterprise Edition, plataforma de programación en Java).​ Este contrato especifica un entorno de ejecución para componentes web que incluye seguridad, concurrencia, gestión del ciclo de vida, procesamiento de transacciones, despliegue y otros servicios. Un contenedor web suministra los mismos servicios que el contenedor de JSP así como también una vista federada de las API de la plataforma J2EE. Un contenedor de red se suministra incluido en un servidor de red o J2EE.

    Instalación de KVM en Linux

      Kernel-based Virtual Machine (KVM) ("Máquina virtual basada en el núcleo", en español) es una solución para implementar virtualización completa con Linux. Está formada por un módulo del núcleo (con el nombre "kvm.ko") y herramientas en el espacio de usuario, siendo en su totalidad software libre.
      KVM permite ejecutar máquinas virtuales utilizando imágenes de disco que contienen sistemas operativos sin modificar. Cada máquina virtual tiene su propio hardware virtualizado: una tarjeta de red, discos duros, tarjeta gráfica, etc.
      Este programa de virtualización requiere que el equipo anfitrión posea un procesador x86, o x86_64, con soporte para virtualización. La tecnología de virtualización recibe la denominación VT en Intel y SVM en AMD. Además, puede ejecutar huéspedes (o invitados) Linux/Unix/Windows de 32 o 64 bits.
      Actualmente, KVM utiliza una versión modificada de QEMU como interfaz ("front-end", en inglés). Por otra parte, sus pruebas de rendimiento han demostrado que, para algunas cargas de trabajo, ha resultado ser más rápido que otros programas del mismo tipo, mientras que para otras, no tanto.
      Una de las características más relevantes de KVM es el "overcommit" que es el uso de memoria excediendo aún la memoria física del anfitrión.
      Para ejemplificar la explicación se utilizará un equipo informático con el sistema operativo Debian 9 como anfitrión.

    Configurar Nginx con proxy inverso y una aplicación de Tomcat en Linux

      En entradas anteriores se ha visto el modo de instalar un servidor de red Nginx y un contenedor de red Tomcat. También se ha comentado que el segundo solía ir conectado al primero (o a un servidor de red Apache), y que otra función de Nginx era crear proxys inversos con diferentes finalidades.
      Pero, ¿qué es un proxy inverso?, pues nada menos que un tipo de servidor proxy que recupera recursos en nombre de un cliente desde uno o más servidores. Estos recursos son entonces devueltos al cliente como si se originaran en el propio servidor de red. Por lo tanto, el proxy inverso es un intermediario para que sus servidores asociados sean contactados por cualquier cliente.
      Para ejemplificar esta explicación se ha empleado el servidor Debian 9 Stretch como sistema operativo base, el Nginx 1.14 como servidor de proxy inverso, y el contenedor de red Tomcat 8.