Autor: dagorret

  • Detección de vulnerabilidades de Wazuh

    Este artículo trata sobre la detección de vulnerabilidades de Wazuh

    Requisitos previos

    Instale la plataforma de seguridad de código abierto wazuh y el agente wazuh utilizando los blogs mencionados a continuación.

    1: WAZUH La plataforma de seguridad de código abierto

    2: Instalación del agente WAZUH

    Wazuh es capaz de detectar vulnerabilidades en las aplicaciones instaladas en los agentes utilizando el módulo Vulnerability Detector. Esta auditoría de software se realiza a través de la integración de fuentes de vulnerabilidades indexadas por Canonical, Debian, Red Hat y la base de datos nacional de vulnerabilidades.

    Cómo funciona

    Para poder detectar vulnerabilidades, ahora los agentes pueden recopilar de forma nativa una lista de aplicaciones instaladas, enviándola periódicamente al administrador (donde se almacena en bases de datos sqlite locales, una por agente). Además, el administrador crea una base de datos de vulnerabilidad global, a partir de repositorios CVE disponibles públicamente, y la usa más tarde para correlacionar esta información con los datos del inventario de aplicaciones del agente.

    La base de datos de vulnerabilidad global se crea automáticamente y actualmente extrae datos de los siguientes repositorios:

    Esta base de datos se puede configurar para que se actualice periódicamente, lo que garantiza que la solución buscará los CVE más recientes.

    Una vez creada la base de datos de vulnerabilidades global (con los CVE), el proceso de detección busca paquetes vulnerables en las bases de datos de inventario (únicas por agente). Las alertas se generan cuando un CVE (vulnerabilidades y exposiciones comunes) afecta un paquete que se sabe que está instalado en uno de los servidores monitoreados. Un paquete se etiqueta como vulnerable cuando su versión se encuentra dentro del rango afectado de un CVE. Los resultados se presentan como alertas y también se almacenan en una base de datos. De modo que puede verificar las alertas del último análisis o consultar la base de datos de software vulnerable de cada agente.

    Tipos de escaneo

    El módulo Detector de vulnerabilidades puede ejecutar un escaneo al inicio ( run_on_start ) y cada cierto período de tiempo ( intervalo ). En cualquiera de estos casos, los paquetes que ya han sido escaneados esperarán hasta que expire el  tiempo de ignorar  para volver a escanear. Esto mejora el rendimiento y evita alertas repetidas durante un tiempo configurable. Tenemos entonces dos tipos diferentes de escaneo:

    • Análisis completo: la primera vez, Vulnerability Detector analiza todos los paquetes instalados. Después de esto, todos los paquetes disponibles se escanean nuevamente solo cuando expira el  tiempo de ignorar configurado  .
    • Escaneos parciales: solo se escanean los paquetes nuevos mientras  ignore_time  sigue siendo válido.

    Hay algunas consideraciones que surgen de este comportamiento:

    • Cada análisis completo genera alertas para todos los paquetes, por lo que las alertas se repiten hasta que se solucionan.
    • El usuario no puede activar un escaneo completo manualmente, la única opción es disminuir la  configuración ignore_time  .
    • Los escaneos parciales generan alertas para nuevos paquetes, pero no eliminan alertas para paquetes eliminados.
    • Los análisis parciales se pueden activar con un reinicio de Manager.

    Consulte  la configuración del detector de vulnerabilidades  para obtener más detalles de configuración.

    Matriz de compatibilidad

    La siguiente tabla muestra los sistemas operativos en los que actualmente se admite el detector de vulnerabilidades y la configuración del proveedor necesaria para cada distribución.

    DistribuciónVersionesProveedor de configuración
    Red Hat y CentOS5Base de datos nacional de vulnerabilidades de Red Hat
    6
    7
    8
    ubuntufiel / 14Base de datos de vulnerabilidad nacional canónica
    genial / 16
    biónico / 18
    focal / 20
    Debianestirar / 9Base de datos nacional de vulnerabilidades de Debian
    destructor / 10
    ventanasTodas las versiones compatiblesBase de datos de vulnerabilidad nacionalMSU
    Mac OSTodas las versiones compatiblesBase de datos de vulnerabilidad nacional

    Detección de vulnerabilidades

    El siguiente ejemplo muestra cómo configurar los componentes necesarios para ejecutar el proceso de detección de vulnerabilidades.

    1. Habilite el módulo de agente utilizado para recopilar paquetes instalados en el sistema monitoreado.

    Puede hacerlo agregando el siguiente bloque de configuraciones a su archivo de configuración de agente compartido:

    <wodle name="syscollector">
      <disabled>no</disabled>
      <interval>1h</interval>
      <os>yes</os>
      <packages>yes</packages>
    </wodle>

    Si quieres escanear vulnerabilidades en agentes de Windows, también tendrás que agregar el hotfixes del escaneo:

    <wodle name="syscollector">
      <disabled>no</disabled>
      <interval>1h</interval>
      <os>yes</os>
      <packages>yes</packages>
      <hotfixes>yes</hotfixes>
    </wodle>

    Estos análisis están habilitados de forma predeterminada. Para obtener más información sobre el módulo de inventario, consulte  la configuración de Sycollector. Habilite el módulo de administrador utilizado para detectar vulnerabilidades.

    Puede hacer esto agregando un bloque como el siguiente a su archivo de configuración del administrador:

    <vulnerability-detector>
      <enabled>yes</enabled>
      <interval>5m</interval>
      <run_on_start>yes</run_on_start>
      <provider name="canonical">
        <enabled>yes</enabled>
        <os>bionic</os>
        <update_interval>1h</update_interval>
      </provider>
      <provider name="nvd">
        <enabled>yes</enabled>
        <update_from_year>2010</update_from_year>
        <update_interval>1h</update_interval>
      </provider>
    </vulnerability-detector>

    Recuerda reiniciar el administrador para aplicar los cambios:

    systemctl restart wazuh-manager
    service wazuh-manager restart

    Aquí, puede ver una alerta real donde se completan los campos explicados:

    ** Alert 1591945867.49829472: - vulnerability-detector,gdpr_IV_35.7.d,pci_dss_11.2.1,pci_dss_11.2.3,tsc_CC7.1,tsc_CC7.2,
    2020 Jun 12 07:11:07 (Debian) any->vulnerability-detector
    Rule: 23505 (level 10) -> 'CVE-2019-12735 affects vim'
    vulnerability.package.name: vim
    vulnerability.package.version: 2:8.0.0197-4+deb9u1
    vulnerability.package.architecture: amd64
    vulnerability.package.condition: Package less than 2:8.0.0197-4+deb9u2
    vulnerability.cvss.cvss2.vector.attack_vector: network
    vulnerability.cvss.cvss2.vector.access_complexity: medium
    vulnerability.cvss.cvss2.vector.authentication: none
    vulnerability.cvss.cvss2.vector.confidentiality_impact: complete
    vulnerability.cvss.cvss2.vector.integrity_impact: complete
    vulnerability.cvss.cvss2.vector.availability: complete
    vulnerability.cvss.cvss2.base_score: 9.300000
    vulnerability.cvss.cvss3.vector.attack_vector: local
    vulnerability.cvss.cvss3.vector.access_complexity: low
    vulnerability.cvss.cvss3.vector.privileges_required: none
    vulnerability.cvss.cvss3.vector.user_interaction: required
    vulnerability.cvss.cvss3.vector.scope: changed
    vulnerability.cvss.cvss3.vector.confidentiality_impact: high
    vulnerability.cvss.cvss3.vector.integrity_impact: high
    vulnerability.cvss.cvss3.vector.availability: high
    vulnerability.cvss.cvss3.base_score: 8.600000
    vulnerability.cve: CVE-2019-12735
    vulnerability.title: CVE-2019-12735
    vulnerability.rationale: getchar.c in Vim before 8.1.1365 and Neovim before 0.3.6 allows remote attackers to execute arbitrary OS commands via the :source! command in a modeline, as demonstrated by execute in Vim, and assert_fails or nvim_input in Neovim.
    vulnerability.severity: High
    vulnerability.published: 2019-06-05
    vulnerability.updated: 2019-06-13
    vulnerability.cwe_reference: CWE-78
    vulnerability.references: ["http://lists.opensuse.org/opensuse-security-announce/2019-06/msg00031.html", "http://lists.opensuse.org/opensuse-security-announce/2019-06/msg00036.html", "http://lists.opensuse.org/opensuse-security-announce/2019-06/msg00037.html", "http://lists.opensuse.org/opensuse-security-announce/2019-07/msg00034.html", "http://lists.opensuse.org/opensuse-security-announce/2019-07/msg00050.html", "http://lists.opensuse.org/opensuse-security-announce/2019-08/msg00075.html", "http://www.securityfocus.com/bid/108724", "https://access.redhat.com/errata/RHSA-2019:1619", "https://access.redhat.com/errata/RHSA-2019:1774", "https://access.redhat.com/errata/RHSA-2019:1793", "https://access.redhat.com/errata/RHSA-2019:1947", "https://bugs.debian.org/930020", "https://bugs.debian.org/930024", "https://github.com/neovim/neovim/pull/10082", "https://github.com/numirias/security/blob/master/doc/2019-06-04_ace-vim-neovim.md", "https://github.com/vim/vim/commit/53575521406739cf20bbe4e384d88e7dca11f040", "https://lists.debian.org/debian-lts-announce/2019/08/msg00003.html", "https://lists.fedoraproject.org/archives/list/[email protected]/message/2BMDSHTF754TITC6AQJPCS5IRIDMMIM7/", "https://lists.fedoraproject.org/archives/list/[email protected]/message/TRIRBC2YRGKPAWVRMZS4SZTGGCVRVZPR/", "https://seclists.org/bugtraq/2019/Jul/39", "https://seclists.org/bugtraq/2019/Jun/33", "https://security.gentoo.org/glsa/202003-04", "https://support.f5.com/csp/article/K93144355", "https://support.f5.com/csp/article/K93144355?utm_source=f5support&amp;utm_medium=RSS", "https://usn.ubuntu.com/4016-1/", "https://usn.ubuntu.com/4016-2/", "https://www.debian.org/security/2019/dsa-4467", "https://www.debian.org/security/2019/dsa-4487", "https://nvd.nist.gov/vuln/detail/CVE-2019-12735", "https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2019-12735"]
    vulnerability.assigner: [email protected]
    vulnerability.cve_version: 4.0

    Finalment

  • El gran rediseño de Gmail comienza a implementarse en las cuentas personales

    El gran rediseño de Gmail comienza a implementarse en las cuentas personales

    A finales del mes pasado, Google detalló oficialmente la “ nueva vista integrada ” de Gmail en la web. Este rediseño ahora se está implementando para los primeros usuarios de Gmail, incluidos aquellos con cuentas personales de Google.

    Google solo enumeró la disponibilidad para los niveles de Workspace durante el anuncio inicial. El viernes, la compañía anunció que el lanzamiento había comenzado tanto para los “usuarios con cuentas personales de Google” como para los dominios pagos de Rapid Release. Agregó que los dominios de lanzamiento programado comenzarán a recibir el nuevo aspecto el 28 de febrero.

    Este rediseño aún no está ampliamente disponible para los primeros usuarios a partir del lunes por la mañana, pero Google ha explicado cómo puede habilitarlo cuando se implemente en su cuenta: 

    1. En la parte superior derecha, haz clic en Configuración.
    2. En “Configuración rápida”, haga clic en Probar la nueva vista de Gmail.
    3. En la nueva ventana, haga clic en Recargar.

    Asegúrese de tener Google Chat habilitado en Gmail, mientras que también se le puede solicitar en la esquina inferior derecha de la pantalla que lo pruebe.

    Mientras tanto, Google ha compartido más detalles sobre cómo funciona el rediseño web de Gmail. El “menú principal de la aplicación” aparece en el extremo izquierdo de la pantalla y le permite cambiar entre Mail, Chat, Spaces y Meet. Cabe destacar cómo puede pasar el cursor sobre el ícono de la aplicación para obtener una vista previa flotante relacionada con cada servicio (excepto Meet) para la carpeta/etiqueta o lista de contactos si el panel plegable (controlado por el botón de hamburguesa en la esquina superior izquierda) está oculto. 

    Del mismo modo, la nueva burbuja de notificación en la esquina inferior izquierda le permite obtener una vista previa de un mensaje, responderlo o abrirlo (pantalla completa o ventana emergente). Estas burbujas tienen que estar habilitadas:

    1. En la parte superior derecha de su ventana de Gmail, junto a su indicador de estado, haga clic en Más opciones > Configuración de notificaciones de chat.
    2. En la ventana que aparece, marque las casillas junto a “Permitir notificaciones de chat” y “Abrir burbujas de chat para mensajes nuevos”.
    3. En la parte inferior de la ventana, haga clic en Listo
  • Cómo instalar y configurar Nextcloud en Ubuntu

    Introducción

    Nextcloud , una bifurcación de ownCloud, es un servidor para compartir archivos que le permite almacenar su contenido personal, como documentos e imágenes, en una ubicación centralizada, como Dropbox. La diferencia con Nextcloud es que todas sus funciones son de código abierto. También le devuelve el control y la seguridad de sus datos confidenciales, eliminando así el uso de un servicio de alojamiento en la nube de terceros.

    En este tutorial, instalaremos y configuraremos una instancia de Nextcloud en un servidor Ubuntu 20.04.

    Requisitos previos

    Para completar los pasos de esta guía, necesitará lo siguiente:

    • Un usuario habilitado para sudo no root y un firewall configurado en su servidor : Puede crear un usuario con previlegios sudo y configurar un firewall básico
    • (Opcional) Un nombre de dominio apuntado a su servidor : Aseguraremos las conexiones a la instalación de Nextcloud con TLS/SSL. Nextcloud puede configurar y administrar un certificado SSL confiable y gratuito de Let’s Encrypt si su servidor tiene un nombre de dominio. De lo contrario, Nextcloud puede configurar un certificado SSL autofirmado que puede cifrar las conexiones, pero no será confiable de manera predeterminada en los navegadores web. 

    Una vez que haya completado los pasos anteriores, continúe para aprender cómo configurar Nextcloud en su servidor.

    Paso 1: instalación de Nextcloud

    Instalaremos Nextcloud utilizando el sistema de empaquetado Snap . Este sistema de empaquetado, disponible en Ubuntu 20.04 de forma predeterminada, permite a las organizaciones enviar software, junto con todas las dependencias y configuraciones asociadas, en una unidad autónoma con actualizaciones automáticas. Esto significa que en lugar de instalar y configurar un servidor web y de base de datos y luego configurar la aplicación Nextcloud para que se ejecute en él, podemos instalar el paquete snap que maneja los sistemas subyacentes automáticamente.

    Para descargar el paquete instantáneo de Nextcloud e instalarlo en el sistema, escriba:

    sudo snap install nextcloud
    

    El paquete Nextcloud se descargará e instalará en su servidor. Puede confirmar que el proceso de instalación fue exitoso enumerando los cambios asociados con el complemento:

    snap changes nextcloud
    

    Dupdo

    OutputID   Status  Spawn               Ready               Summary
    4    Done    today at 16:12 UTC  today at 16:12 UTC  Install "nextcloud" snap
    

    El estado y el resumen indican que la instalación se completó sin ningún problema.

    Obtener información adicional sobre Nextcloud Snap

    Si desea obtener más información sobre el complemento Nextcloud, hay algunos comandos que pueden ser útiles.

    El comando  snap info puede mostrarle la descripción, los comandos de administración de Nextcloud disponibles, así como la versión instalada y el canal de instantáneas que se está rastreando:

    snap info nextcloud
    

    Los complementos pueden definir las conexiones que admiten, que consisten en una ranura y un enchufe que, cuando se conectan entre sí, dan acceso al complemento a ciertas capacidades o niveles de acceso. Por ejemplo, las instantáneas que deben actuar como un cliente de red deben tener la conexión network. Para ver qué complemento connections define este complemento, escriba:

    snap connections nextcloud
    
    OutputInterface        Plug                       Slot           Notes
    network          nextcloud:network          :network       -
    network-bind     nextcloud:network-bind     :network-bind  -
    removable-media  nextcloud:removable-media  -              -
    

    Para conocer todos los servicios y aplicaciones específicos que proporciona este complemento, puede echar un vistazo al archivo de definición del complemento escribiendo:

    cat /snap/nextcloud/current/meta/snap.yaml
    

    Esto le permitirá ver los componentes individuales incluidos en el complemento, si necesita ayuda con la depuración.

    Paso 2: configuración de una cuenta administrativa

    Hay algunas formas diferentes de configurar el complemento de Nextcloud. En esta guía, en lugar de crear un usuario administrativo a través de la interfaz web, crearemos uno en la línea de comando para evitar una pequeña ventana en la que cualquier persona que visite la dirección IP o el nombre de dominio de su servidor pueda acceder a la página de registro del administrador.

    Para configurar Nextcloud con una nueva cuenta de administrador, use el nextcloud.manual-install. Debe pasar un nombre de usuario y una contraseña como argumentos:

    sudo nextcloud.manual-install sammy password
    

    El siguiente mensaje indica que Nextcloud se ha configurado correctamente:

    OutputNextcloud was successfully installed
    

    Ahora que Nextcloud está instalado, debemos ajustar los dominios de confianza para que Nextcloud responda a las solicitudes utilizando el nombre de dominio o la dirección IP del servidor

    Paso 3: Ajuste de los dominios de confianza

    Al instalar desde la línea de comandos, Nextcloud restringe los nombres de host a los que responderá la instancia. De forma predeterminada, el servicio solo responde a las solicitudes realizadas al nombre de host “localhost”. Accederemos a Nextcloud a través del nombre de dominio o la dirección IP del servidor, por lo que necesitaremos ajustar esta configuración para aceptar este tipo de solicitudes.

    Puede ver la configuración actual consultando el valor de la trusted_domainsmatriz:

    sudo nextcloud.occ config:system:get trusted_domains
    

    Que devolverá la salida

    localhost
    

    Actualmente, solo localhost está presente como el primer valor de la matriz. Podemos agregar una entrada para el nombre de dominio o la dirección IP de nuestro servidor escribiendo:

    sudo nextcloud.occ config:system:set trusted_domains 1 --value=ejemplo.com
    

    Nos devolverá la siguiente salida:

    System config value trusted_domains => 1 set to string ejemplo.com
    

    Si volvemos a consultar los dominios de confianza, veremos que ahora tenemos dos entradas:

    sudo nextcloud.occ config:system:get trusted_domains
    

    Obtendremos:

    localhost
    ejemplo.com
    

    Si necesita agregar otra forma de acceder a la instancia de Nextcloud, puede agregar dominios o direcciones adicionales volviendo a ejecutar el comando  config:system:set con un número de índice incrementado (el “1” en el primer comando) y ajustando el --value.

    Paso 4: asegurar la interfaz web de Nextcloud con SSL

    Antes de comenzar a usar Nextcloud, debemos asegurar la interfaz web.

    Si tiene un nombre de dominio asociado con su servidor Nextcloud, el complemento de Nextcloud puede ayudarlo a obtener y configurar un certificado SSL confiable de Let’s Encrypt . Si su servidor Nextcloud no tiene un nombre de dominio, Nextcloud puede configurar un certificado autofirmado que encriptará su tráfico web, pero su navegador web no confiará automáticamente en él.

    Con eso en mente, siga la sección a continuación que coincida con su escenario.

    Opción 1: Configurar SSL con Let’s Encrypt

    Si tiene un nombre de dominio asociado con su servidor Nextcloud, la mejor opción para asegurar su interfaz web es obtener un certificado SSL de Let’s Encrypt.

    Comience abriendo los puertos en el firewall que utiliza Let’s Encrypt para validar la propiedad del dominio. Esto hará que su página de inicio de sesión de Nextcloud sea públicamente accesible, pero dado que ya tenemos una cuenta de administrador configurada, nadie podrá secuestrar la instalación:

    sudo ufw allow 80,443/tcp
    

    A continuación, solicite un certificado de Let’s Encrypt escribiendo:

    sudo nextcloud.enable-https lets-encrypt
    

    Primero se le preguntará si su servidor cumple con las condiciones necesarias para solicitar un certificado del servicio Let’s Encrypt:

    OutputIn order for Let's Encrypt to verify that you actually own the
    domain(s) for which you're requesting a certificate, there are a
    number of requirements of which you need to be aware:
    
    1. In order to register with the Let's Encrypt ACME server, you must
       agree to the currently-in-effect Subscriber Agreement located
       here:
    
           https://letsencrypt.org/repository/
    
       By continuing to use this tool you agree to these terms. Please
       cancel now if otherwise.
    
    2. You must have the domain name(s) for which you want certificates
       pointing at the external IP address of this machine.
    
    3. Both ports 80 and 443 on the external IP address of this machine
       must point to this machine (e.g. port forwarding might need to be
       setup on your router).
    
    Have you met these requirements? (y/n)
    

    Escriba y para continuar.

    A continuación, se le pedirá que proporcione una dirección de correo electrónico para usar en las operaciones de recuperación:

    Please enter an email address (for urgent notices or key recovery):
    

    Introduce tu email y pulsa Enter para continuar.

    Finalmente, ingrese el nombre de dominio asociado con su servidor Nextcloud:

    Please enter your domain name(s) (space-separated): ejemplo.com
    

    Se le solicitará su certificado de Let’s Encrypt y, si todo salió bien, se reiniciará la instancia interna de Apache para implementar SSL de inmediato:

    Attempting to obtain certificates... done
    Restarting apache... done
    

    Ahora puede saltar al siguiente paso para iniciar sesión en Nextcloud por primera vez.

    Opción 2: configurar SSL con un certificado autofirmado

    Si su servidor Nextcloud no tiene un nombre de dominio, aún puede proteger la interfaz web generando un certificado SSL autofirmado. Este certificado permitirá el acceso a la interfaz web a través de una conexión cifrada, pero no podrá verificar la identidad de su servidor, por lo que es probable que su navegador muestre una advertencia.

    Para generar un certificado autofirmado y configurar Nextcloud para usarlo, escriba:

    sudo nextcloud.enable-https self-signed
    

    Que nos mostrará como salida del comando:

    Generating key and self-signed certificate... done
    Restarting apache... done
    

    El resultado anterior indica que Nextcloud generó y habilitó un certificado autofirmado.

    Ahora que la interfaz es segura, abra los puertos web en el firewall para permitir el acceso a la interfaz web:

    sudo ufw allow 80,443/tcp
    

    Ahora está listo para iniciar sesión en Nextcloud por primera vez.

    Paso 5: iniciar sesión en la interfaz web de Nextcloud

    Ahora que Nextcloud está configurado, visite el nombre de dominio o la dirección IP de su servidor en su navegador web:

    https://ejemplo.com
    

    Nota: si configura un certificado SSL autofirmado, su navegador puede mostrar una advertencia de que la conexión no es segura porque el certificado del servidor no está firmado por una autoridad de certificación reconocida. Esto se espera para los certificados autofirmados, así que no dude en hacer clic en la advertencia para acceder al sitio.

    Como ya configuró una cuenta de administrador desde la línea de comandos, se lo dirigirá a la página de inicio de sesión de Nextcloud. Ingrese las credenciales que creó para el usuario administrativo:

    Haga clic en el botón Iniciar sesión para iniciar sesión en la interfaz web de Nextcloud.

    La primera vez que ingrese, se mostrará una ventana con un texto introductorio y enlaces a varios clientes de Nextcloud que se pueden usar para acceder a su instancia de Nextcloud:

    Haga clic para descargar cualquier cliente que le interese o salga de la ventana haciendo clic en la X en la esquina superior derecha. Accederá a la interfaz principal de Nextcloud, donde puede comenzar a cargar y administrar archivos:

    Su instalación ahora está completa y asegurada. Siéntase libre de explorar la interfaz para familiarizarse más con las características y la funcionalidad de su nuevo sistema.

    Conclusión

    Nextcloud puede replicar las capacidades de los populares servicios de almacenamiento en la nube de terceros. El contenido se puede compartir entre usuarios o externamente con URL públicas. La ventaja de Nextcloud es que la información se almacena de forma segura en un lugar que usted controla.

    Para obtener funcionalidad adicional, eche un vistazo a la tienda de aplicaciones de Nextcloud , donde puede instalar complementos para ampliar las capacidades del servicio.

  • ¿Por qué los programadores prefieren usar Linux?

    ¿Por qué los programadores prefieren usar Linux?

    Windows es el sistema operativo más utilizado, tanto en entornos domésticos como empresariales. La mayoría de los programas se crean para ejecutarse en este sistema operativo. Sin embargo, las personas que crean estos programas (principalmente desarrolladores, programadores y administradores de sistemas) prefieren dejar de lado Windows y trabajar en otro sistema operativo:  Linux . ¿Por qué? ¿Qué los lleva a esto?

    Linux ofrece una gran cantidad de beneficios cuando se trata de trabajar y desarrollar, beneficios que van desde la flexibilidad hasta la seguridad y el rendimiento del sistema. Al día de hoy Linux es un sistema perfectamente asequible para cualquier usuario, ya que no es mucho más complicado de utilizar que cualquier sistema Windows. Sin embargo, este sistema operativo aún no está ganando popularidad en entornos domésticos, siendo su principal punto fuerte los servidores y las computadoras de los programadores.

    ¿Qué impulsa a los programadores a usar Linux?

    Ventajas de usar Linux para programar

    Lo primero que hay que tener en cuenta es que este sistema operativo es  gratuito y de código abierto. Para usarlo no es necesario pagar ninguna licencia o tasa, da igual si lo usamos en un ordenador o en un servidor a gran escala. Si sabemos configurarlo y gestionarlo, ahorraremos una buena cantidad de dinero. Y, si necesitamos soporte profesional, siempre podemos recurrir a sistemas como Red Hat Enterprise Linux.

    Linux es un sistema operativo sin restricciones  . Los usuarios tienen control total sobre él, pudiendo modificarlo según sus necesidades y ajustarlo para que sea lo más parecido posible al sistema real donde se va a ejecutar. Además, tienen control total sobre los paquetes y programas que se ejecutan, pudiendo dejar el sistema justo con lo necesario para poder realizar su trabajo. Podemos usarlo con un escritorio, o desde una terminal para aprovechar al máximo los recursos. El control, sobre todo, el total.

    Este sistema operativo  se puede instalar en cualquier ordenador  , aunque sea antiguo y disponga de pocos recursos. Es más, no podrás cumplir requisitos estúpidos, como el TPM 2.0 de Windows 11, o utilizar un procesador de 64 bits, para poder instalarlo. Y, si es así, siempre podemos encontrar otra distribución. Las actualizaciones también son muy sencillas y rápidas, pudiendo configurarlas tanto de forma automática como manual. Pero de cualquier manera, no reiniciarán furtivamente su computadora como lo hace Windows. La estabilidad  y seguridad  frente a otros sistemas, como Windows, también es una ventana que los desarrolladores tienen en cuenta.

    Por último, Linux dispone de una  gran cantidad de herramientas de programación  , pudiendo utilizar la que queramos en función del tipo de software que vayamos a crear. Además, gracias a su fácil personalización, es posible tener varias configuraciones (con diferentes compiladores, por ejemplo) para poder probar el comportamiento del programa bajo diferentes plataformas en un mismo sistema. También es importante señalar que Linux cuenta con una gran  comunidad de soporte  , y que, dado que la mayoría de programadores también utilizan Linux, la documentación que encontraremos para realizar determinadas tareas está enfocada principalmente a este SO.

    ¿Qué no podemos programar en este sistema?

    Sin embargo, aunque Linux es el mejor sistema operativo para programar, no es perfecto. Si vamos a crear programas para Windows utilizando una herramienta de programación de Microsoft, como  Visual Studio , Linux no nos servirá. Lo mismo sucede al desarrollar juegos de PC con IDE como Unity o Unreal. Aunque estos pueden funcionar en Linux, algunas tecnologías, como  DirectX,  que son exclusivas de Microsoft, no están disponibles en él. Si usamos Linux para crear los juegos, tarde o temprano tendrán que pasar por Windows, y al final es una pérdida de tiempo.

    Si eres programador, y quieres tenerlo todo, no te decidas entre un sistema u otro. Gracias al Subsistema de Windows para Linux es posible utilizar Windows como sistema principal y utilizar este subsistema, como si fuera un segundo sistema operativo instalado, para realizar tareas de programación al más puro estilo Linux.

  • Theme.sh es un script de selección de tema de terminal interactivo (más de 400 temas)

    Theme.sh es un script de selección de tema de terminal interactivo (más de 400 temas)

    theme.sh es un script para cambiar fácilmente el tema de la terminal. Viene con más de 400 temas, un selector de temas interactivo opcional y es independiente de la terminal.

    El script está disponible como un único archivo portátil que incluye los más de 400 temas . Puede configurar un tema de terminal directamente o, si tiene fzf instalado en su sistema, proporciona un menú de terminal para la selección interactiva de temas , ya sea en un panel de vista previa o directamente como su tema de terminal si el terminal que está utilizando es compatible con TRUECOLOR. También puede filtrar temas claros y oscuros .

    Para usar theme.sh, debe usar cualquier terminal compatible con OSC 4/11. Esto incluye kitty, st, Terminal.app, iTerm2, alacritty, urxvt, st con un parche y cualquier terminal basado en libvte como GNOME Terminal, Terminator, Guake, Xfce Terminal, Mate Terminal, Konsole, etc. No es compatible Windows Terminal todavía. 

    Este es el selector de tema del terminal interactivo theme.sh en acción (haga clic en la imagen para reproducir el video de asciinema):

    theme.sh también se puede usar fácilmente en secuencias de comandos , proporcionando ejemplos para la integración de SSH (aplicar un tema durante la duración del comando ssh actual) y un contenedor sudo/su(establecer el tema en alerta roja cuando suse usa o el sudocomando funciona durante más de 2 segundos).

    Otras características incluyen un historial de temas usados (almacenados ~/.theme_historyde manera predeterminada) y la capacidad de agregar temas al script .

    Instalar tema.sh

    Para descargar el script theme.sh e instalarlo en /usr/local/bin, use:

    wget https://raw.githubusercontent.com/lemnos/theme.sh/master/bin/theme.sh -O /tmp/theme.sh
    
    sudo install /tmp/theme.sh /usr/local/bin

    Para usar la interfaz de usuario de selección de tema interactivo, también deberá instalar fzf .

    Sin ninguna otra configuración, el conjunto de temas usando theme.sh solo se usa para el terminal actual. Cuando se reinicia (o si abre una nueva ventana), utiliza el tema de terminal anterior. Para aplicar el último tema seleccionado a todos los nuevos terminales compatibles, debe editar su archivo de configuración de shell:

    para Bash y Zsh, agregue el siguiente código al final de ~/.bashrc~/.zshrc(dependiendo de lo que esté usando)

    if command -v theme.sh > /dev/null; then
        [ -e ~/.theme_history ] && theme.sh "$(theme.sh -l|tail -n1)"
    fi

    Consulte la página de Theme.sh GitHub para obtener más opciones, ejemplos de secuencias de comandos, etc.

  • Una mirada al algoritmo de TikTok

    Una mirada al algoritmo de TikTok

    Desde su lanzamiento por primera vez en 2016, TikTok ha acumulado más de mil millones de usuarios mensuales. 

    La clave de su éxito radica en su flujo interminable y adictivo de videos que parecen dirigidos directamente a usted. 

    Durante bastante tiempo, la gente se ha estado preguntando qué datos recopila la aplicación de micro-video compartido propiedad de ByteDance sobre sus usuarios para aprender cómo alimentar esa máquina de contenido. 

    Ahora, trataremos de acercando a resolverlo.

    El domingo, un reportero de The New York Times obtuvo un documento interno del equipo de ingeniería de TikTok en Beijing que explicaba cómo los me gusta, los comentarios, el tiempo de visualización y las acciones compartidas se incorporan a un algoritmo de recomendación, que luego califica qué tan atractivo es un video para un determinado. usuario. 

    Además, una captura de pantalla que vio el Times implicaba que un equipo de moderadores de contenido podría ver los videos que envías a tus amigos o subes de forma privada, lo que sugiere un nivel aún más profundo de personalización.

    Este desglose simplificado del algoritmo ofreció “un vistazo revelador tanto del núcleo matemático de la aplicación como de la comprensión de la naturaleza humana por parte de la empresa, nuestras tendencias hacia el aburrimiento, nuestra sensibilidad a las señales culturales, que ayudan a explicar por qué es tan difícil de dejar”. escribió el Times . 

    Pero también destacó cómo el algoritmo puede conducirlo a un pozo de contenido tóxico que “podría inducir a autolesionarse”.

    Los nuevos detalles se basan en una investigación realizada por The Wall Street Journal a principios de este año que utilizó 100 cuentas de “bot” automatizadas para trazar la migración de la experiencia de TikTok de un individuo desde una amplia variedad de videos populares y convencionales a contenido más dirigido y específico de intereses. 

    Por ejemplo, un bot que el WSJ programó para tener un interés general en la política finalmente recibió videos sobre conspiraciones electorales y QAnon. 

    Un portavoz de TikTok rechazó el informe de WSJ y dijo que su experimento “no es representativo del comportamiento real del usuario porque los humanos tienen un conjunto diverso de intereses”.

    Según el documento que vio el Times , la ecuación para calificar videos en función de la actividad del usuario generalmente representa una combinación de me gusta, comentarios, reproducción y tiempo dedicado a un clip. 

    En algún lugar, hay una fórmula que también calcula qué tan interesantes son los creadores individuales para los espectadores. “El sistema de recomendación otorga puntajes a todos los videos en función de esta ecuación y devuelve a los usuarios los videos con los puntajes más altos”, informó el Times . 

    El problema del inventario

    El objetivo final es presentar una lista de contenido que maximice el tiempo que los usuarios pasan en la aplicación y los haga volver. 

    Pero los ingenieros de TikTok son conscientes de que si solo transmiten un tipo de video a un usuario, esa persona se aburrirá y dejará la aplicación. 

    Para resolver esto, propusieron dos apéndices al algoritmo que mostraría más videos de un creador que cree que le gusta y pondría un límite diario a los videos que tienen las mismas etiquetas. 

    Además, consideraron la posibilidad de diversificar las recomendaciones en la pestaña “Para usted”, intercalando el contenido que le podría gustar con otros que normalmente no verá. 

    “La idea básica es que quieren tener ojos en la página. Quiere que la gente utilice su producto ”, dice Joshua Tucker, codirector del Centro de Política y Medios Sociales de la NYU. 

    “Creo que la genialidad de TikTok es la interfaz donde puedes dirigirte a tus seguidores, o puedes decir, TikTok, muéstrame lo que crees que me gustaría ver”, dice Tucker. 

    Al hacer eso, TikTok ha resuelto lo que Tucker llama “el problema del inventario” que plagaba plataformas como Facebook e inicialmente, también Twitter. 

    El aprendizaje automático ahora permite que las aplicaciones procesen grandes cantidades de datos y hagan inferencias sobre las preferencias personales en lugar de presentar a cada usuario las mismas opciones básicas de contenido. 

    Fuera de sus preferencias, las plataformas quieren saber cómo es probable que cambien sus interacciones según su red. 

    Por ejemplo, ¿mirarás contenido porque tus amigos lo están viendo?

    Facebook es limitado porque, aparte de los anuncios, solo mostrará publicaciones de amigos y páginas que sigues. 

    Y durante mucho tiempo, Twitter solo le mostró los tweets de los usuarios que seguía. “Si nota lo más nuevo en Twitter, estos ‘Temas’, eso está resolviendo el problema del inventario”, dice Tucker. “Le brinda una forma de obtener más inventario, lo que significa que pueden probar más cosas para ver lo que le gustaría. TikTok hizo eso desde el principio con “For You” “.

    Los moderadores de contenido humano de TikTok se ocupan del contenido controvertido que los algoritmos informáticos tienen dificultades para clasificar. 

    Pueden eliminar contenido, limitar quién ve un video y evitar que se recomienden videos o que se incluyan en el feed, según un documento filtrado obtenido por Netzpolitik . 

    A medida que TikTok automatiza cada vez más sus sistemas de revisión, los creadores pueden apelar a los moderadores de contenido humano si creen que sus videos fueron eliminados por error. 

    ¿Qué tan bien te conoce TikTok?

    Tal vez la razón por la que TikTok puede descubrir tus gustos tan rápidamente es porque tienen mucha más información sobre lo que te puede gustar, sugiere Tucker. 

    En junio pasado, TikTok proporcionó una rara vista interna de su algoritmo de recomendación en funcionamiento. 

    En una publicación de blog , la compañía escribió que los datos relacionados con las interacciones del usuario (dar me gusta, comentar o seguir una cuenta), la información del video (subtítulos, sonidos y hashtags) y la configuración de la cuenta (preferencia de idioma, ubicación) son todos ponderados por el sistema para calcular los intereses de un usuario.

    Si bien TikTok afirma que usa me gusta, comentarios y acciones como métricas para medir su participación con contenido específico, el WSJ descubrió que el elemento más importante que analizó la aplicación fue el tiempo de reproducción de un video, ya sea que haya hecho clic, pausado o rewatched. 

    El algoritmo ve a qué estás reaccionando y puede identificar rápidamente “el contenido al que eres vulnerable, que te hará hacer clic, que te hará mirar, pero no significa que realmente te guste y que es el contenido que más disfruta ”, dijo el científico de datos Guillaume Chaslot a WSJ al revisar su experimento. 

    A medida que la transmisión de un usuario se vuelve más específica, es más probable que encuentren contenido dañino menos examinado por los moderadores, según el WSJ.

    Esto se convierte en una preocupación ya que la base de usuarios de TikTok tiende a ser más joven que otras plataformas de redes sociales como Facebook o Youtube. 

    Escrutinio continuo 

    Los algoritmos de recomendación de los sitios web han estado bajo un mayor escrutinio desde que la denunciante de Facebook Frances Haugen testificó en el Congreso que esos sitios web que priorizan el compromiso sobre la seguridad pueden aumentar la información errónea peligrosa. 

    Los legisladores han respondido discutiendo posibles cambios regulatorios para responsabilizar a las plataformas que emplean estos algoritmos de los daños que podrían provenir del contenido recomendado. 

    Al investigar los algoritmos de recomendación de YouTube, Tucker se ha interesado en la pregunta de si realmente es el algoritmo el que lo dirige hacia un contenido específico o si se trata de las elecciones individuales de las personas. 

    “De cualquier manera, si hay contenido en estas plataformas que está contribuyendo a glorificar el suicidio a los niños, ese contenido no debería estar allí, independientemente de cómo se llegue a él”, dice Tucker. 

    TikTok dice que ha estado atento a la eliminación de contenido que encuentra en violación de sus reglas (incluido el contenido de autolesiones). 

    En el pasado ha dicho que usa una combinación de computadoras y humanos para examinar su contenido. 

    Pero ocurren errores y, a veces, los videos se marcan incorrectamente o se escapan de los filtros. 

    En septiembre, TikTok dijo en un comunicado de prensa que estaba publicando nuevas “guías de bienestar” para ayudar a los usuarios que comparten sus experiencias personales a través de la plataforma y sugieren consejos de participación responsable. 

    También anunció que ampliaría las intervenciones de búsqueda para poder proporcionar mejor los recursos de apoyo en caso de crisis cuando los usuarios buscaran contenido inquietante. 

    “Es un verdadero desafío para estas empresas porque son muy grandes”, dice Tucker. 

    TikTok creció demasiado rápido. Y esto sucedió con Facebook: creció demasiado rápido, por lo que no se dio cuenta de los daños que estaban ocurriendo en diferentes idiomas, por ejemplo.

  • Configurar sudo y agregar usuarios al grupo Wheel

    Si un servidor necesita ser administrado por varias personas, normalmente no es una buena idea que todas usen la cuenta de root.

    Esto se debe a que resulta difícil determinar exactamente quién hizo qué, cuándo y dónde si todos inician sesión con las mismas credenciales.

    La utilidad sudo fue diseñada para superar esta dificultad.

    Con sudo (que significa “superuser do”), puede delegar un conjunto limitado de responsabilidades administrativas a otros usuarios, que están estrictamente limitados a los comandos que les permite.

    sudo crea una pista de auditoría exhaustiva, por lo que todo lo que hacen los usuarios se registra; si los usuarios de alguna manera logran hacer algo que no deberían haber hecho, podrá detectarlo y aplicar las correcciones necesarias.

    Incluso puede configurar sudo de forma centralizada, por lo que sus permisos se aplican a varios hosts.

    El comando privilegiado que desea ejecutar debe comenzar primero con la palabra sudo seguida de la sintaxis normal del comando.

    Cuando ejecute el comando con el prefijo sudo, se le pedirá su contraseña habitual antes de que se ejecute.

    Puede ejecutar otros comandos privilegiados usando sudo dentro de un período de cinco minutos sin que se le vuelva a solicitar una contraseña.

    Todos los comandos que se ejecutan como sudo se registran en el archivo de registro /var/ log/messages.

    El archivo de configuración de sudo es /etc/sudoers .

    Nunca debemos editar este archivo manualmente. En su lugar, use el comando visudo:

    # visudo

    Esto protege de conflictos (cuando dos administradores editan este archivo al mismo tiempo) y garantiza que se usa la sintaxis correcta (los bits de permiso son correctos). El programa utiliza el editor de texto Vi.

    Acceso total a usuarios específicos

    Puede otorgar a los usuarios jose y pepe acceso completo a todos los comandos con privilegios, con esta entrada sudoers.

    usuario1, usuario2  ALL=(ALL) ALL

    Esto generalmente no es una buena idea porque esto permite que usuario1 y usuario2 usen el comando su para otorgarse privilegios permanentes de root, evitando así las funciones de registro de comandos de sudo.

    Acceso de usuarios específicos a archivos específicos

    Esta entrada permite al usuario1 y a todos los miembros del operador del grupo acceder a todos los archivos de programa en los directorios /sbin y /usr/sbin, además del privilegio de ejecutar el comando /usr/apps/ check.pl.

    usuario1, %operator ALL= /sbin/, /usr/sbin, /usr/apps/check.pl

    Acceso a archivos específicos como otro usuario

    usuario1 ALL=(accounts) /bin/kill, /usr/bin/kill, /usr/bin/pkill

    Acceso sin necesidad de contraseñas

    Este ejemplo permite a todos los usuarios del operador de grupo ejecutar todos los comandos en el directorio /sbin sin necesidad para ingresar una contraseña.

    %operator ALL= NOPASSWD: /sbin/

    Agregar usuarios al grupo de Wheel

    El grupo de wheel es un legado de UNIX.

    Cuando un servidor tenía que mantenerse a un nivel más alto que el administrador del sistema diario, a menudo se requerían derechos de root.

    El grupo ‘wheel’ se usó para crear un grupo de cuentas de usuario a las que se les permitió obtener ese nivel de acceso al servidor.

    Si no estaba en el grupo ‘wheel’, se le negó el acceso a la raíz.

    #Descomentar para permitir que las personas en el grupo Wheel ejecuten todos los comandos
    # %wheel ALL=(ALL) ALL

    Descomente la línea, borrando la almohadilla, o (en lugar de tener que agregar a cada persona una por una).

    Mi recomendación es que descomente la linea y quede:

    %wheel ALL=(ALL) ALL

    Ahora, finalmente, use el siguiente comando para agregar cualquier usuario (por ejemplo, usuario1) al grupo Wheel

    # usermod -G wheel usuario1
  • Plantillas para organizar la creación de una novela. Formato Word y Markdown

    Del concepto a la premisa

    El origen de una historia puede ser cualquier cosa: una situación, un personaje, incluso un título. A algunas personas les gusta utilizar una de esas ideas fragmentarias y empezar a escribir, pero para el resto de nosotros, convertir esa idea en una historia real con un inicio, una trama y un desenlace significa crear una trama. Y el primer paso para hacerlo es crear una premisa.

    Una buena premisa para una historia tiene varios componentes:

    1. Un personaje principal: un personaje puede existir sin una trama, pero una trama no puede existir sin un personaje. Así que este es lo primero y más importante que necesitas. Tu personaje necesita un objetivo, ya sea salvar el mundo o dormir tranquilamente una noche.
    2. Un escenario: cada historia tiene que desarrollarse en algún lugar. El tiempo y lugar determinan lo que es posible.
    3. Un antagonista: esta es la persona (o fuerza impersonal) que pone un obstáculo en el camino del personaje principal. Podría ser un villano bigotudo, una tormenta de nieve o los propios miedos y dudas del personaje principal.
    4. Una situación y evento desencadenante: la situación describe el estado de las cosas al principio de tu historia. El evento desencadenante altera dicha situación y hace que la trama empiece a desarrollarse.
    5. Un conflicto: el obstáculo (o una serie de obstáculos) que el antagonista pone en el camino del personaje, iniciado por el evento desencadenante y sostenido hasta la resolución, cuando el personaje principal tiene éxito o fracasa en alcanzar su objetivo.

    La plantilla premisa de historia te ayudará a pensar en los elementos de tu historia.

    Métodos para preparar una trama

    Ahora que tienes una buena idea sobre el tema de tu historia, puedes empezar a decidir qué sucederá y cuándo. Hay muchas maneras de determinar la trama de la historia, y cada escritor tiene su favorita. A continuación te mostramos tres enfoques preferidos:

    Estructura de tres actos: este modelo clásico de la narración divide una novela en tres “actos”: el inicio, la trama y el desenlace. El primer acto contiene la organización de tu historia, el segundo acto y más largo contiene acción en desarrollo y el conflicto, y el tercer acto resuelve la situación.

    Ritmo de la historia: este concepto se ha tomado prestado del mundo de la escritura de guiones de cine. El ritmo es una simple lista de los escalones que proporcionan estructura y velocidad a tu historia, mientras dejas el camino completamente abierto a tu creatividad.

    El método del “copo de nieve”: creado por Randy Ingermanson, este método popular empieza con una sola frase que describe la historia y se desarrolla en iteraciones que toman a la anterior como base: primero la frase se convierte en un párrafo, después cada frase del párrafo se amplía en un nuevo párrafo. Cuando se sigue con diligencia, el proceso conduce a un primer borrador completo.

    Creación del personaje

    Tus personajes son la parte más importante para hacer que una historia cobre vida. Cuanto más sepas sobre cada personaje, mejor podrás describirlos. Entender sus orígenes, motivaciones y cómo piensan también te ayudará a escribir escenas más realistas.

    La plantilla perfil del personaje cubre todos los aspectos básicos, desde la apariencia física del personaje a sus figuras retóricas favoritas. Es probable que se te ocurran más características a medida que vas escribiendo, así que no dudes en añadir o eliminar secciones.

    Preparación de la escena

    A veces, el escenario de una historia puede ser casi tan importante como sus personajes. Piensa en lo diferente que es Romeo y Julieta cuando el escenario pasa de la Verona del siglo XVI al Nueva York del siglo XX (West Side Story). Un mundo de fantasía podría darles libertad a tus personajes para hacer cosas que nadie puede hacer en la vida real. Por otro lado, escribir en un contexto histórico podría determinar cómo interactúan los personajes o influir en sus puntos de vista.

    Tanto si estás escribiendo sobre un planeta lejano o tu ciudad natal, las preguntas de la plantilla Bases de creación de un mundo te ayudará a pensar en la escena y cómo influye en tus personajes.

    Recursos

    Plantillas en Markdown:

    Plantillas en Word: