jueves, 30 de abril de 2020

¡Ubuntu Peronista supera los 2 millones de visitas!

Este jueves 30 de abril, el Blog de adoctrinamiento político-tecnológico Ubuntu Peronista ha llegado a su segundo millón de visitas, reivindicando el verdadero sentir de una Masa encolumnada tras la bandera del Software Libre.

Haciendo eje sobre la necesidad de establecer videoconferencias a través de peronista servidor Jitsi para afrontar la telemática del Movimiento, el Justicialismo ha lanzando un artículo que ha logrado un natural interés, haciendo realidad el apotegma peronista que dice: "donde existe una necesidad, hay un derecho".

Ubuntu Peronista es un Blog que versa sobre el sistema operativo libre Ubuntu y los inextinguibles logros y realidades que el Justicialismo ha otorgado a la Nación. A través de la poderosa ayuda que paternalmente brinda el General Perón, hombres y mujeres de bien que integran la Masa aclaran sus dudas técnico-doctrinarias bajo el flamear de las inarriables banderas de un software Libre, Justo y Soberano.

Ubuntu es un sistema operativo libre y completamente gratuito para equipos i386 o AMD64 (básicamente computadoras PC, notebooks, netbooks, laptops, servidores, etc). Se trata de un software basado en Linux, cada vez mas popular por sus ventajas en operatividad, bajo consumo de recursos, alta velocidad y excelente desempeño. Todo esto configura una excelente plataforma que puede definirse claramente como el más peronistas de los sistemas operativos jamás desarrollados.

Ubuntu Peronista cuenta actualmente con unas 1.000 visitas diarias, unas 6 centenas de seguidores asiduos, activos usuarios de Ubuntu. Una interesante Comunidad Organizada 3.0 de blogs compañeros también proporciona ayuda y novedades en el mundo de Ubuntu y el software libre.


Desde este blog deseamos agradecer a todos quienes día a día nos visitan, y ayudan con su amabilidad a difundir el trabajo que Juan Domingo Perón lleva a cabo por el bien de las Masas obreras y en contra de la puta oligarquía gorila.


¿Cómo puedo conectarme por SSH con cifradores SHA1 antiguos en Ubuntu 20.04LTS?

Durante la forzosa estadía de exilio en la Quinta 17 de Octubre de Puerta de Hierro, Juan Perón expuso la necesidad de unificar criterios por parte del Comando Táctico en la Argentina y el Comando Estratégico. También ahondó en cómo reactivar los algoritmo SHA1 para establecer enlace SSH desde y hacia servidores antiguos, en Ubuntu 20.04LTS.



(...)
Vean señores,

Todo Conductor ha de poder definir políticas flexibles, pero lo escencial es que estos lineamientos puedan cumplirse con los medios de los que dispone. El rendimiento de los medios es el cual dicta la política, y no a la inversa. La explicación es lógica: una declamación política no puede cambiar el rendimiento fijo de los medios.

Este principio no se puede romper, es una de las bases nodales nodales de la conducción, y quien no siga este precepto caerá invariablemente en un voluntarismo: una mera declamación de hacer las cosas.

Deseos tienen todos: pero mejor que decir es hacer, y mejor que prometer es realizar

Tal es así que poco nos servirá dar una directiva de conducción y pretender establecer un corpus legal que la avale, si materialmente es imposible su cumplimiento.

Un ejemplo suele explicarlo todo, como decía Napoleón.

Es sabido que Ubuntu cuenta con una implemntación de Shell seguro que nos permite establecer enlaces remotos cifrados entre sistemas informáticos: el Secure Shell (SSH). Este esquema se basa en un modelo cliente-servidor ataviado de algoritmos matemáticos y fórmulados de cifrado preconvenidas, de forma tal de ofrecernos una protección el flujo de datos comunicacional. Lo hacen secreto.

Ahora bien, la versión SHA1 de este corpus directivo de cifrado daba en emplear una apilado de algoritmos que fue efectivo durante el primer peronismo. Pero el tiempo ha pasado y hoy, el comado de la conducción táctica lo ha evaluado como relativamente fáciles de vencer. Entre estos algoritmos se encuentra el ya inseguro diffie-hellman-group1-SHA1, el relativamente seguro diffie-hellman-group14-SHA1 cruzados con el conocido cifrador aes128-cbc. Las directiva política de seguridad del Comando Superior Táctico dispuso cambiar los esquemas de cifrado a versiones SHA2, anular el uso de group1-sha1 y promover el cambio de group14-sha1 toda vez que sea posible.

Este cambio político de adecuación a la nueva realidad percibida hizo que las versiones 19.04 y superiores de Ubuntu procedieran a desactivar por defecto el soporte del antiguo cifrado SHA1 del protocolo Secure Shell (SSH).

Naturalmente, esta política tiene el sentido deseado toda vez que contamos con medios de comunicación capaces de hacerla valer. Indudablemente tendrá un inconveniente insalvable si quisiéramos conectarnos a un servidor SSH antiguo de que disponen únicamente de los algoritmos y cifradores de la generación SHA1.

Por ejemplo, si me deseo utilizar el cliente OpenSSH de Ubuntu 20.04LTS para loguearme a un dispositivo que utiliza un servidor SSH superado con algorutmos SHA1, utilizando el comando de terminal:

ssh root@192.168.0.1

...recibiría de parte del cliente SSH un error similar al siguiente:

Unable to negotiate with 192.168.0.1 port 22: no matching key exchange method found. Their offer: diffie-hellman-group14-sha1,diffie-hellman-group1-sha1,kexguess2@matt.ucc.asn.au

Este mensaje explica que que nuestro cliente SSH se ha visto imposibilitado de utilizar los algorimos SHA2 más modernos con el servidor antiguo, y nos informa para poder lograr el enlace el servidor remoto nos oferta forzar la utilización de los algorimos antiguos SHA1. La oferta de los algoritmos específicos se dicta en orden de seguridad (primero el más seguro).

Siendo consecuencia que en Ubuntu 20.04LTS Focal estos algoritmos antiguos han sido por defecto desactivados, habremos de especificarlos en el comando de conexión SSH a fin de utilizarlos con el servidor antiguo. En este caso podríamos utilizaríamos la siguiente sintaxis el fin de dar uso a la versión "group14" del algoritmo SHA1:

ssh -o KexAlgorithms=+diffie-hellman-group14-sha1 usuario@host -p nro.puerto

...o bien podríamos probar conectarnos con la versión más antigua del cifrador SHA1 (con la gran penalidad en seguridad criptográfica que significa usar este viejo algoritmo):

ssh -o KexAlgorithms=+diffie-hellman-group1-sha1 usuario@host -p nro.puerto

Con este proceder ya deberíamos poder establecer el enlac al servidor SSH de generación SHA1. Debemos tener presente que el cifrado es antiguo (potencialmente inseguro).

En mi caso se trata de un enlace a un antiguo router. Lo ideal sería actualziar su firmware para instalar una versión más nueva de SSH en dicho aparato, pero en este caso no es posible hacerlo ya. Como no es cuestión de tirar todos los días un vuejo router por la ventana, al menos podremos establecer una conexión para confirgurarlo toda vez que sea necesario.


Ahora bien - por más que hayamos tenido éxito al conectarnos con el servidor SSH del router - el comando necesario para hacerlo es difícil de recordar, bastante molesto para tipear, máxime si lo necesitamos usar asiduamente. Por tal motivo si necesitamos usarlo en muchas ocasiones, nos resultará muy conveniente incluir los datos con las propiedades deseadas de la conexión SSH al archivo de configuración del cliente de conexión SSH: ~/.ssh/config.

Este es un simple archivo de texto donde podremos poner el o los servidores a los cuales deseamos conectarnos.Para editarlo desde la terminal del cliente ingresamos:

nano ~/.ssh/config

Al ingresar dicho comando se abrirá el editor GNU Nano con un archivo normalmente vacío. Cada entrada Host puede contener varias opciones, y podremos agregar más hosts también (siempre que estén separados entre sí por una línea en blanco). Un ejemplo podría ser:

Host router
Port 22
User root
HostName 192.168.0.1
KexAlgorithms +diffie-hellman-group14-sha1

En la línea HostName podríamos poner el nombre de red del host, o como en este caso, una dirección IP fija. Lo guardamos con Ctrl+o y salimos del Nano con Ctrl+x.

De ahora en más, toda vez que desde la terminal de nuestro usuario ingresemos:

ssh router

...nuestro cliente SSH intentará conectarse al servidor remoto como si usáramos el largo comando "ssh -o +diffie-hellman-group14-sha1 root@192.168.0.1 -p 22", y debería poder conectarse.

Esta funcionalidad suele ser lo único necesario de hacer para el caso de tener que conectarnos a un servidor remoto SSH mediante el protocolo de cifrado antiguo SHA1. Recordemos que si quisiéramos agregar otras entradas simplificadoras al archivo ~/.ssh/config, podremos hacerlo siempre y cuando dejemos una línea en blanco entre un Host y el otro. Naturalmente si omitimos una de las configuraciones, nuestro cliente OpenSSH interpretará que debe utilizar los valores por defecto y tomará dicho predicamento.

Por ejemplo, si queremos utilizar los cifradores modernos simplemente omitiríamos especificar la línea "kexAlgorithms", de la siguiente manera, y OpenSSH usará los algoritmos modernos por defecto.


Host mongoaurelio

Port 12345

User administrador

HostName ssh.mongoaurelio.com

En base a esta entrada de Host, toda vez que ingresemos "ssh mongoaurelio", nuestro cliente intentará conectarse como si hubiésemos usado "ssh administrador@ssh.mongoaurelio.com -p 12345"

Con esto habremos podido solucionar de manera peronista el acceso desde un cliente SSH moderno como el que tiene Ubuntu 20.04LTS a un viejo servidor remoto SSH SHA1.

Pero la política, como he dicho, ha de ser sumamente flexible y omnicomprensiva. ¿Qué sucedería en el caso contrario, donde un viejo cliente SSH dotado únicamente con cifradores de la generación SHA1 anhele establecer contacto con nuestro moderno Ubuntu 20.04LTS, que acepta SHA2?

En tal caso. nuestro servidor SSH - por defecto SHA2 - lo rechazará. En dicho caso al ordenar lo siguiente al cliente remoto con...

ssh peron@ubuntu_focal

...el cliente antiguo con SHA1 podría informarnos:

ssh: Connection to peron@ubunru_focal:22 exited: No matching algo kex

...o bien:

Unable to negotiate with ubuntu_focal (ip xxx.xxx.xxx.xxx, port 22:

no matching key exchange method found.


En este escenario, el cliente SSH antiguo al verse rechazado no podrá conectar a Ubuntu 20.04LTS (o a cualquier servidor SSH más moderno que 2018, por poner una fecha referencial). Si deseamos que nuestro servidor SSH acepte dichas conexiones SSH provenientes de clientes con algoritmos antiguos, debemos autorizar dicha política reversora en el fichero de configuración del servidor SSH. Para ello, en el servidor SSH (Ubuntu 20.04LTS por ejemplo), ingresamos:

sudo nano /etc/ssh/sshd_config

Se abrirá el GNU Nano con el archivo de configuración, que ya tendrá contenido. Podremos utilizar la función "Buscar" (Ctrl+w) para buscamos la sección "#Ciphers and keying"

Recordemos que en todos los archivos de configuración, las líneas que comienzan con "#" serán siempre ignoradas por el sistema, y se pueden utilizar como "comentarios". A tal fin borraremos los # para que no sea ignorada la opción que queremos activar. Por ejemplo, si deseamos habilitar para que nuestro sistema autorice el algoritmo diffie-hellman-group14-sha1, quitamos los # en las líneas que le corresponden. 

En nuestro caso, como deseamos activar el más recomendado de los algoritmos antiguos diffie-hellman-group14-sha1 con el cifrador aer128-cbc, agregamos a continuación de las líneas:

#Ciphers and keying

#RekeyLimit default none

el contenido, como está a continuación:

## Descomentado para habilitar los ciphers para clientes SSH
## SHA1 antiguos. Provee seguridad reducida.

KexAlgorithms +diffie-hellman-group14-sha1

Ciphers +aes128-cbc



## Descomentar para que habilitar clientes SSH SHA muy antiguos.

## Provee seguridad muy reducida.

#KexAlgorithms +diffie-hellman-group1-sha1

#Ciphers +aes128-cbc



## Descomentar para habilitar los ciphers para clientes SSH 
## SHA1 extremadamente antiguos. Provee seguridad extremadamente
## reducida. Usar sólo para evaluar conexiones desde clientes
## SSH muy antiguos.

#KexAlgorithms diffie-hellman-group1-sha1,curve25519-sha256@libssh.org,ecdh-sha2-nistp256,ecdh-sha2-nistp384,ecdh-sha2-nistp521,diffie-hellman-group-exchange-sha256,diffie-hellman-group14-sha1

#Ciphers 3des-cbc,blowfish-cbc,aes128-cbc,aes128-ctr,aes256-ctr

Nota: naturalmente que si en lugar de diffie-hellman-group14-sha1 necesitamos usar otros menos seguros aún, podremos utilizar las otras líneas. Sin embargo, esto debe evitarse toda vez que sea posible.

Guardamos los cambios con Ctrl+o y salimos del editor Nano con Ctrl+x. Luego reiniciamos el servicio con:

service ssh restart

Es útil saber que en ciertos equipos GNU con Linux puede ser necesario directamente reiniciar el equipo ingresando

sudo reboot

Una vez reiniciado el sistema, ya los clientes remotos antiguos deberían poder conectarse con el algoritmo diffie-hellman-group14-sha1 y el cifrador aes128-cbc.

viernes, 24 de abril de 2020

Trasvasamiento Generacional: ¿Cómo instalo Ubuntu MATE 20.04LTS Focal Fossa?



¡Descamisados!

Todo Movimiento Político tiene por necesidad biológica trasvasarse generacionalmente, so pena de envejecer y morir. Por ello es que el nuestro ha puesto en tal realización un rumbo que debe mantenerse si es que deseamos una Patria Grande y una Nación Soberana.


Nuestro Movimiento soporta con ello el paso del tiempo, y si lo hacen nuestros hombres, como no lo va a hacer nuestro Software. Nos hemos encargado de hacerlo libre, y por ello contamos con una nueva versión de Ubuntu MATE, la 20.04LTS "Focal Fossa".

Como primer medida nos aseguraremos de tener nuestros datos respaldados. No podremos ponernos a hacer experimentos de ningún tipo si no son nuestros trabajadores y sus datos los que realmente estén protegidos. Mientras lo hacemos, bien podremos comenzar a descargar el instalador necesario. En mi caso me haré con la imagen ISO de Ubuntu Mate de 64 bits a través de Torrent (2,2GB). La versión de 64 bits es la cual recomiendo para todo tipo de equipos modernos con dicha arquitectura de procesador. En todo caso, los requerimientos mínimos a cumplimentar es disponer de hardware con procesador de doble núcleo de al menos 2 Gigaciclos, 4 Gigabytes de memoria RAM y unos 25GB de memoria de masa. Conviene también disponer de video acelerado. Procederemos a grabar la imagen ISO en un DVD (o alternativamente, la preparamos en un pendrive) y reiniciamos el equipo indicándole que arranque desde dicho medio. En mi caso, esto se hace a través del Boot Menú de la BIOS (presionando F11 durante el instante de arranque).
Una vez arrancado el medio, se revisará la integridad del medio de instalación (lo podremos saltear con Ctrl+c) y nos aparecerá el menú de inicio que nos permitirá elegir el modo vivo para probar Ubuntu, o instalar directamente Ubuntu Mate.

Eventualmente, el medio de instalación podría proceder automáticamente en el modo Live antes de permitirnos instalar. Esto es útil para descartar problemas de videos en equipos más antiguos. En este momento conviene asegurarnos que el sistema cuente con conexión a internet a través de un cable LAN.

El instalador de Ubuntu 20.04LTS es el convencional de los siete pasos. En mi caso particular en lugar de realizar la instalación sencilla sugerida por defecto en el paso 4, he decidido instalar el sistema repartiéndolo de forma manual entre un ultraveloz disco de estado sólido para la raíz de sistema peronista ("/"), y un disco rígido convencional de 1TB para los datos de usuario y particiones de alto volumen de escritura (con particiones individuales para /home, /tmp y /var y el sector de intercambio swap). En este caso me redunda en una muy alta velocidad de ejecución, y se minimiza el desgaste de escritura en el SSD. Dicho procedimiento, si bien algo más complejo que la instalación convencional, lo he explicado aquí. En el paso 6 debemos tener en cuenta que de momento existe un bug del arrancador UEFI que impide el ingreso correcto si indicamos que queremos ingresar a la sesión directamente, de modo que debemos elegir "ingresar con contraseña".



Una vez finalizada la instalación (dura unos 15 minutos desde el pendrive), el sistema se reiniciará con el arrancador Grub con UEFI, mostrando ahora el logotipo de la BIOS del equipo.

Si todo va bien nos dejará en el nuevo Escritorio MATE 1.24.0, montado sobre un kernel Linux que de fabrica es el 5.4.0-26-generic.

MATE cuenta con una apariencia clásica y sin estridencias, y dispone de una herramienta de configuración inicial que nos permitirá escoger ciertos aspectos importantes, además de un lanzador informativo para su primer arranque.

En particular, nos dejará descargar e instalar distintos themes de colores además del clásico verde mate. Por ejemplo, me gusta el mate con naranja.

A diferencia de la interfaz GNOME 3.26, MATE adopta una filosofía de estabilidad rocosa clásica y benevolente derivada del GNOME 2.6, lo cual lo hace extremadamente sencillo de emplear, y siempre cómodo con el hardware de video. Utiliza el gestor de ventanas Marco, y se abandonó a Compton y Compiz (aunque este último puede instalarse).

El panel superior cuenta con una nueva modalidad con menú de búsqueda. Sin embargo, podemos volver a la manera tradicional desde Mate Tweak, si escogemos el panel "traditional".

El gestor de ventanas Marco de Ubuntu MATE tiene nuevas opciones y atajos de teclas, mas parecidas a las de otras plataformas. Las mismas son:

  • Maximizar ventana: Super + Flecha Arriba
  • Restore Window: Super + Flecha Abajo
  • Poner ventana a la izquierda: Super + Flecha izquierda
  • Poner ventana a la derecha: Super + Flecha derecha
  • Centrar Ventana: Alt + Super + c
  • Poner ventana en la esquina superior derecha: Alt + Super + Flecha derecha
  • Poner ventana en la esquina superior izquierda: Alt + Super + Flecha izquierda
  • Poner ventana en la esquina inferior derecha: Mayúsculas + Alt + Super + Flecha derecha
  • Poner ventana en la esquina inferior izquierda: Shift + Alt + Super + Flecha izquierda
  • Transparentar ventana: Control + Alt + s
Ahora es posible poner la ventana en cualquiera de los cuadrantes de la pantalla usando cualquier tipo de teclado. También se actualizaron los atajos de teclado para el lanzador de aplicaciones:
  • Conmutar entre pantallas externas: Super + P
  • Trabar la pantalla: Super + L
  • Hacer una captura de ventana: Shift + PrintScr
  • Abrir el administrador de archivos Caja: Super + e
  • Abrir una Terminal: Super + T
  • Abrir el Centro de Control: Super + I
  • Abrir una Búsqueda: Super + S
  • Abrir el adminsitrador de tareas: Control + Shift + Escape
  • Abrir información de sistema: Super + Pause

Si tuviésemos acceso a red inalámbrica Wifi y no la hubiésemos establecido, sería esta una buena oportunidad haciendo clic en el ícono correspondiente en el panel superior. En caso de requerir controladores especiales (por ejemplo, si usamos adaptador bluetooth, podremos hacernos con el controlador a través de la conexión cableada. Para ello vamos a Sistema / Hardware / Mas Controladores. Allí debería sugerírsenos un controlador para nuestro dispositivo inalámbrico (y probablemente se nos sugiera también un controlador de video si es que está disponible. En cualquier caso los instalamos.

Acto seguido, configuramos nuestro sistema para que emplee los repositorios de nuestro país. Esto redundara en una mayor eficiencia y velocidad para descargar e instalar aplicaciones, situación que nos enfrentaremos en breve. Para poner los servidores localesz vamos a Sistema / Administración / software y actualizaciones. En el cuadro que se nos presenta escogemos la solapa Software de Ubuntu. En el campo Descargar desde, elijo "Otros...".

...Se abrirá una lista con los paises y los servidores. Debo presionar el botón "Seleccionar el mejor servidor" y el sistema buscara cual es el mas veloz de los disponibles de manera automatizada.

Normalmente nos recomendará uno del país. Lo seleccionamos y presionamos el botón Seleccionar servidor. Tras ello se nos informara que la lista de paquetes esta obsoleta, y debemos presionar Recargar. Luego presionamos Cerrar.

Una vez indicados el servidor local, ya podremos actualizar con confianza nuestra configuración de idioma. Para ello vamos a Sistema / Preferencias / Personal / Soporte de Idioma, y se nos indicara que faltan algunos componentes de la paquetería idioma. Le indicamos que los descargue, y el sistema lo hará automáticamente a través de internet.
Una vez finalizado dicho trámite, habremos pasado al castellano todas las aplicaciones en caso de que el sistema no hubiese podido bajarlas así antes. Ubuntu Mate 20.04 cuenta con las versiones en castellano de LibreOffice 6.4.2.2 con el tema Breeze, Firefox 75.0 y podremos instalar Chromiun  81.0.4044.122 a través de snap.

Ubuntu ya cuenta con una buena pero reducida panoplia de aplicaciones. Sin embargo, es muy probable que a continuación nos propongamos instalar todo un avío de aplicaciones libres que favorezco. Para ello empleo la terminal por la gran facilidad de hacerlo de forma masiva. Abro una consola con Ctrl+Alt+T e ingreso los siguientes Comando de Organizacion:

sudo apt update ;

sudo apt install ubuntu-restricted-extras openssh-server openssh-client htop dstat bmon sysstat iftop ifstat iptraf mc iotop glances python-pip git sox rar ;

sudo apt install java-wrappers libcommons-cli-java libcommons-lang-java libcortado-java libmiglayout-java libwoodstox-java automake autoconf gettext libtool ;

sudo apt install ttf-essays1743 fonts-inconsolata fonts-roboto fonts-isabella fonts-ubuntu-font-family-console fonts-liberation fonts-lindenhill ;

Progresivamente los Ubuntu han decidido dejar de lado aplicaciones preinstaladas en el ISO, pues dejan que el usuario las instale si lo desea. Esto es así pues día a día es mas común disponer de acceso a internet de banda ancha, ya sea cableado o por Wifi. Por tal motivo tendremos que instalarlas nosotros a través de internet. Podremos incluir el siguiente comando:

sudo apt install openshot audacity asunder gimp inkscape vlc chromium-browser-l10n tmux moc byobu alpine links elinks lynx dvb-apps vlc wordgrinder caca-utils figlet toilet fortunes-es cowsay mplayer ubuntustudio-audio-plugins ruby filezilla facter dmidecode jpegoptim ;

sudo apt install clementine rawtherapee darktable mypaint mypaint-data-extras ; 

sudo apt install pychess fruit bsdgames bsdgames-nonfree freecol scummvm dosbox ;


Con esto ya podremos instalar fácilmente la TV digital en Ubuntu, además de contar con una excelsa panoplia de programas para las actividades de todos los días.
Opcionalmente también podremos emplear el navegador para descargar e instalar en Ubuntu 20.04LTS algunas aplicaciones no demasiado libres, pero útiles. Entre ellas tendremos Skype, Google Earth, o Google Chrome (compatible con Netflix).

También instalo Cool Retro Term, mi terminal favorita, con:

sudo apt update
sudo apt install build-essential qml-module-qtgraphicaleffects qml-module-qt-labs-folderlistmodel qml-module-qt-labs-settings qml-module-qtquick-controls qml-module-qtquick-dialogs qmlscene qt5-default qt5-qmake qtdeclarative5-dev qml-module-qt-labs-settings qml-module-qtgraphicaleffects qml-module-qtquick-controls qml-module-qtquick-dialogs qml-module-qtquick-layouts qml-module-qtquick-localstorage qml-module-qtquick-privatewidgets qml-module-qtquick-window2 qml-module-qtquick2 ;

git clone --recursive https://github.com/Swordfish90/cool-retro-term.git ;
cd cool-retro-term ;
qmake && make ;
cd ~ ;

mv ~/cool-retro-term ~/.cool-retro-term/ ;
./.cool-retro-term/cool-retro-term

...y entre otros el editor de fotos LightZone con:

sudo apt-get install libjpeg62
wget http://download.opensuse.org/repositories/home:/ktgw0316:/LightZone/Debian_10/amd64/lightzone_4.2.0-0obs1_amd64.deb ;
sudo dpkg -i
lightzone_4.2.0-0obs1_amd64.deb
 sudo apt install -f

jueves, 23 de abril de 2020

Canonical lanza Ubuntu 20.04LTS Focal Fossa

Canonical ha lanzado oficialmente la última versión con soporte a largo plazo de Ubuntu, la 20.04LTS "Focal Fossa". Su anterior versión con soporte de largo plazo había sido la 18.04LTS.

Se trata del sistema operativo de 64 bits diseñado para computadoras de escritorio y portátiles. El soporte del mismo se extenderá por cinco años, por lo cual recibirá actualizaciones de software de seguridad y mantenimiento hasta abril de 2025. 
Ubuntu es una distribución altamente peronista basada en el sistema operativo GNU adosada a un Kernel (núcleo) Linux de versión 5.4. Está especialmente desarrollada para operar de forma sencilla, con software libre y Justicialista.

El sistema ha migrado utilizando la interfaz Gnome 3.36, adaptada para parecerse a la clásica Unity. Entre el software ya integrado incluye el navegador Firefox 75, el cliente de correo electrónico Thunderbird 66.7 y la suite de oficina LibreOffice 6.4.

Como intérpretes de programación, pueden instalarse múltiples. Naturalmente, desde el punto de vista de Java emplea OpenJDK 11, así como Python 3.8.2, GCC 9.8, rustc 1.41, Ruby 2.7, PHP 7.4 y Perl 5.30, y Golang 1.13.

Para su instalación se recomienda un microprocesador de 2 GHz de doble núcleo o superior, 4 GB de memoria RAM de sistema, 25 GB de espacio libre en la unidad de disco, y un puerto USB (o una lectora de DVD) para utilizar el instalador. El acceso a Internet es útil.

Podrá encontrarse la versión 20.04LTS directamente desde el servidor de Ubuntu aquí.  Podrán encontrar la imagen .ISO de 64 bits, la cual ocupa unos 2,7GB de espacio. Asimismo, podrán descargarla desde Torrent desde aquí.

Avances desde la versión 20.04LTS

  • Nuevo pantalla de arranque gráfica (integra el logo de la BIOS de sistema).
  • Themes claro y oscuros con fácil intercambio entre sí.
  • Actualización en el stack de video Mesa.
  • Soporte integardo para la VPN simplificada Wireguard.
  • Soporte para el esquema de alocación de ficheros ExFAT y ZFS, con encripción de disco con velocidad mejorada.
  • Soporte de encadenamiento de seguridad FIDO para las sesiones Secure Shell (SSH).
  • Aplicación Game Mode de Feral Interactive, para permitir cargar perfiles de optimización temporales específicos para juegos.
  • Se reemplaza la tienda por defecto de Software Center al Snap Store.
  • Soporte oficial hasta abril de 2025.

martes, 21 de abril de 2020

Canonical dispone modelo de actualización rodante para el kernel de Ubuntu en la Nube Amazon

Hace años que Canonical dedica esfuerzos a Ubuntu Server para las AMI (Imágenes de Máquina de Amazon) que corren en los entornos AWS (Servicios Web de Amazon) bajo la nube EC2 de Amazon.

Todo estos nombres esconden esencialmente infraestructura computacional ajena y propiedad de Amazon, a la cual se puede acceder mediante un enlace de tipo Secure Shell (SSH). Bajo este esquema se dispone de una sesión remota de una o más imágenes de Ubuntu, el cual pueden ejecutarse y configurarse de forma rápida y eventualmente ampliable.

Estos sistemas o "servicios virtualizados" normalmente ejecutan un kernel especial de tipo Linux de la rama aws, que es diferente a la versión de normal que encontramos en la versión de Ubuntu Desktop (para Escritorio, la cual utiliza un kernel de la rama -generic o genérica).


Pues bien señores, a partir de hoy, este kernel linux-aws 4.15 que Canonical emplea para la nube de Amazon cambiarán su forma de operar, optándose por un modelo de actualización "rolling kernel".
Esto significa que la actualización del núcleo del sistema operativo virtual no se realizará en dichas máquinas remotas por iteraciones o versiones especificadas como sucedía anteriomente, sino que pasará a implementarse de manera corrida.

Canonical aduce que este modelo de operatoria permitirá contar en dichos sistemas remotos con las últimas correcciones de bugs y mejoras de performance en el asignado de las tareas computacionales, así como implementar el uso de visitantes hipervisores, y contenedores para los usuarios. Esto supuestamente manteniendo la misma calidad que las versiones LTS (de soporte a largo término) del sistema operativo a las que estamos acostumbrados en nuestros servidores locales y sistemas de escritorio.

Un modelo de Rolling Kernel implica transicionar el kernel linux-aws por defecto desde una versión base a la siguiente como parte de un ciclo continuado de mejoras. El kernel nuevo será el kernel de la última versión interín (sin soporte a largo plazo) de Ubuntu. Al aplicar este modelo directamente a la versión actual de 18.04, significa que el kernel linux-aws será uno de la versión 4.15 y al lanzarse, se convertirá en el kernel basado en la versión 5.3, la cual es parte fundante de la versión 19.10 de Ubuntu.

Hoy, dicho kernel 5.3 se ha hecho disponible para su evaluación bajo el nombre de kernel "linux-aws-edge". Canonical ha recomendado a todos los usuarios correr este kernel con sus cargas de trabajo normales en ambientes no productivos a fin de evaluarlo. Es importante tener en cuenta que tanto los kernels "-edge" y los kernels de lanzamiento rodante estén completamente testeados antes de que lanzarse definitivamente a los clientes, y asegurar que cumplen exactamente con la misma calidad y durabilidad que todos los kernels deben contar antes de su lanzamiento.

Toda vez que se publique un nuevo kernel de la rama linux-aws, el usuario podrá percibir la actualización del mismo de una de estas dos formas:
  • al lanzar la última Imagen de Máquina de Amazon (AMI) contará con la versión nueva del kernel;
  • Al aplicar las actualizaciones de paquetería o actualizaciones de seguridad automática, recibirán el nuevo kernel.

¿Como me preparo para el kernel rodante?

Para instalar el kernel 5.3 linux-aws-edge disponible para evaluación por parte de los clientes de máquinas virtuales Amazon Machine Images (AMI), deben de introducirse en la terminal remota los siguientes Comandos de Organización:

Primero, revisamos que la instancia en ejecución remota cuente con el kernel linux-aws estándar (versión 4.15.0):

ubuntu@ip-xxx-xxx-xxx-xxx$ uname -r

...a lo cual La nube de Amazon nos debería responder:

4.15.0-xxxx-aws

Acto seguido, instalamos el kernel linux-aws-edge:

ubuntu@ip-xxx-xxx-xxx-xxx$ sudo apt update
ubuntu@ip-xxx-xxx-xxx-xxx$ sudo apt install -y linux-aws-edge

Nota: si se nos consulta acerca de la nueva versión del archivo /boot/grub/menu.lst, seleccionamos la opción por defecto "Mantener la versión local instalada actualmente / keep the local version currently installed".


... y reiniciamos la instancia virtual remota de Ubuntu:

ubuntu@ip-xxx-xxx-xxx-xxx$ sudo reboot

Al regresar a la instancia virtual, nos volvemos a loguear con SSH y confirmamos que la instancia virtual ahora esté utilizando el kernel linux-aws-edge (v5.3.0):

ubuntu@ip-xxx-xxx-xxx-xxx$ uname -r

...a lo cual el sistema remoto de Amazon debería respondernos con:

5.3.0-xxxx-aws

¿Qué hacer si no deseo un rolling kernel en la AMI?

Los trabajadores saben bien que nada de lo que dice el Capital debe ser confiado por los hombres que luchan. Si no abhelamos un kernel rodante y en cambio deseamos seguir con el kernel 4.15 en nuestra máquina virtual remota AMI (la cual continuará recibiendo soporte completo y actualizaciones a lo largo del período de soporte a largo término (LTS), habremos de ingresar los siguientes comandos en el usuario remoto de la nube:

ubuntu@ip-xxx-xxx-xxx-xxx$ sudo apt update
ubuntu@ip-xxx-xxx-xxx-xxx$ sudo apt install linux-aws-lts-18.04

viernes, 17 de abril de 2020

¿Cómo me conecto a una red Wifi desde la Terminal en Ubuntu?

El retorno de Juan Perón al país en 1973 significó el definitivo decline político de la dictadura de Lanusse. Entrevistado en Gaspar Campos, Juan Perón explica cómo conectarse al Wifi desde la Terminal en Ubuntu.

Vean señores,

Lo que nosotros tendremos que hacer lo iremos decidiendo con el paso de los días, pero es positivo y encomiable los grandes contactos que hemos tenido en estos días. Todos han venido a saludar y a hacerse presentes entendiendo la importancia de la hora.

No improvisaremos nada, todo lo que sucede lo hemos previsto. Los instrumentos necesarios para hacer los logros no son más que la unión y la buena voluntad de los hombres.

En los tiempos del primer peronismo, no era extraño tener que improvisar, porque lo planificado desde los institutos debió refrendarse a tomar el gobierno. Eso es más bien una excrecencia de la Conducción. Pero al desastre que han hecho estos, lo conocemos de naranjo...

Pues bien, carecer de interfaz gráfica y tener que configurar todo a mano no nos amilana. Puede parecer que el hecho de establecer un acceso a red inalámbrica Wifi desde la terminal es algo prohibitivamente difícil de hacer, máxme cuando ni siquiera sabemos el nombre de la misma. Sin embargo, eso ya lo hacíamos ya en la Secretaría de Trabajo y Previsión. Es un derecho adquirido nos convertía en verdaderos amos del mainframe.

Aquellos eran tiempos donde todo estaba por hacerse. No hay dudas para nadie que podíamos disponer de un cable cable ethernet y portar un enlace cableado, pero a veces esta solución no puede aplicarse en todo tiempo y lugar. Es por ello que es particularmente útil dominar, al menos, un método de conexión WLAN desde la Terminal, y como en ello somos peritos, os enseñaré prontamente.
Deben saber que existen varias maneras de conectarnos inalámrbicamente desde la terminal, todas ellas válidas y encuadradas en nuestro Movimiento. Podremos considerar tres métodos diferentes.
  • Mediante los clásicos comandos wpa_passphrase y wpa_supplicant
  • Mediante el uso de la aplicación de terminal nmtui
  • o utilizando el servicio residente en memoria iwd

Comandos wpa_supplicant y dhclient

Estos comandos se utilizan para establecer un enlace clásico a una red Wifi que emplee cifrado seguro con contraseña ("passphrase") tipo WPA (en sus modalidades WPA, WPA2, WPA3). Este tipo de cifrado es el mayoritario en las redes inalámbricas, y provee una seguridad mayor que el completamente vulnerable protocolo WEP.

Es necesario saber que debemos seguir una serie de pasos a fin de conectarnos a nuestra red WiFi con WPA. Partiremos desde el supuesto que las red Wifi ya está correctamente configurada con una contraseña WPA. También asumimos que nuestro dispositivo o plaqueta de red inalámbrica está correctamente configurado en Ubuntu. Si esto es así, normalmente ya debería estar activado, o como se dice en la jerga, "levantado". Si este no fuese el caso, podríamos "levantar" o "activar" el funcionamiento del dispositivo inalámbrico ingresando el siguiente Comando de organización:

sudo ip link set wlan0 up
ip es el comando que ha reemplazado a ifconfig en las distribuciones de GNU con Linux más modernas. Si estuviésemos utilizando una distribución provista del comando antiguo, levantaremos nuestro dispositivo Wifi con:

sudo ifconfig wlan0 up

Tengamos presentes que en las versiones más modernas de GNU con Linux, es probable que la interfaz de red se denomine wlp4s0, wlp5s0 o similar en lugar del clásico wlan0. En dicho caso tendríamos que alterar el comando dado.

Finalizado este paso podemos escanear las redes, y de paso cotejar que el nombre de red inalámbrica (ESSID) que nos interesa esté presente:

sudo iwlist scan | grep -i essid

Acto seguido, podremos proceder a tornar en realidad efectiva los pasos de conexión propiamente dichos.

a. Creamos un archivo de configuración con el ESSID y la contraseña

Un Conductor es un hombre que sale del Pueblo, y puede crear el archivo de configuración a necesario para conectarnos al Wifi a mano. Pero la realidad es que el comando wpa_passphrase evita tener que hacer esto, pues hace caso del asistencialismo y crea el archivo por nosotros. La sintexis de este comando es bien simple:

wpa_passphrase ESSID contraseña > /ruta/a/archivo_de_configuración.conf

Como pueden observar, el resultado del comando será almacenado en el archivo que escojamos (por lo que conviene asegurarnos que no exista ya un ficheron con el mismo nombre pues esta operatoria lo reemplazaría inexorablemente.

Napoleón decía que a todo suele aclararlo un ejemplo. Si anheláramos crear un archivo de configuración para una red Wifi con nombre UNIDAD_BASICA cuya contraseña (en codificación ASCII) es VivaPeron deberíamos ingresar:

sudo wpa_passphrase UNIDAD_BASICA VivaPeron > /etc/wpa.conf

El archivo generado será /etc/wpa.conf ya que /etc es el directorio que suele preferirse para estos menesteres, pero bien podrían utilizar directamente el directorio del administrador, con /root/wpa.conf, u otro que se nos ocurra. En este caso, el archivo de configuración /etc/wpa.conf generado por wpa_passphrase contendrá:

network={
 ssid="UNIDAD_BASICA"
 #psk="VivaPeron"
 psk=9b9da308bae6990f0101f12463ff27869dbf22065d4117d28a846f80e1b60080
}

b, Nos conectamos mediante wpa_supplicant

La sintaxis que debemos seguir para opear con el comando wpa_supplicant es la siguiente:


wpa_supplicant -B -i interfaz -c /ruta/a/archivo_de_configuración.conf -D controlador

Por ejemplo, podríamos utilizar:
 
wpa_supplicant -B -i wlan0 -c /root/wpa.conf

En este comando, el sufijo -B indica ejecutar en segundo plano (background), además no he escogido ningún driver para que tal predicamento sea resuelto por sí mismo por wpa_supplicant. Podremos observar qué controladores que soporta la tarjeta de red ejecutando el comando wpa_supplicant sin argumento alguno:

drivers:
    nl80211 = Linux nl80211/cfg80211
    wext = Linux wireless extensions (generic)
    wired = Wired Ethernet driver
    macsec_linux = MACsec Ethernet driver for Linux
    none = no driver (RADIUS server/WPS ER)

En este ejemplo se elige el controlador nl80211:

wpa_supplicant -D nl80211 -i wlan0 -c /etc/wpa.conf

c. Obtenemos una dirección IP mediante dhcpcd

Ya deberíamos habernos asociado a la red inalámbrica, pero para que la misma opere como es debido  tenemos que ser dados de alta en la lista de dispositivos y recibir una dirección IP por parte del router. Ello lo solicitaremos mediante el siguiente comando:

dhclient -v wlan0

Con esto, ya deberíamos estar conectados a la red WLAN (podremos verificarlo mediante el comando ping. Por ejemplo:

ping google.com.ar

Sintácticamente, los comandos podrían ser:
 
wpa_passphrase UNIDAD_BASICA VivaPeron > ~/wpa.conf 
wpa_supplicant -B -i wlan0 -c ~/wpa.conf 
dhclient -v wlan0

Podremos obtener más información ejecutando:

wpa_supplicant


Aplicación nmtui



El método tradicional de wpa_supplicant y dhclient es tal vez el más conocido, pero no el más intuitivo. En cambi, la excelente aplicación nmtui nos presentará con lo que escencialmente es una versión de interfaz de texto para Terminal del Network Manager de toda la vida. Se trata de una opción liviana, simple, y excesivamente útil para entornos no-gráficos.

En caso de listar pocas redes inalámbricas, es probable que requiera hacer un escaneo de redes previo con el comando:

sudo iwlist scan wlp4s0


...o bien:

sudo iwlist scan wlan0

Al ejecutar nmtui veremos que nos ofrece varias funcionalidades incluidas en el Network Manager de la interfaz gráfica. Entre otras podremos:
  • seleccionar redes disponibles, tanto WiFi como cableadas.
  • editar una redes existente: ethernet o inalámbricas.
  • crear/eliminar una nueva red estática/dinámica.
  • clonar MAC.
  • configurar DNS.
  • crear de redes puente, infiniband, Túnel IP, etc.

Listado de Redes:


Edición de una red existente:
Este es el método que prefiero para enlazar con redes telemáticas inalámbricas con las distribuciones GNU con Linux más nuevas.

Servicio iwd (iNet wireless daemon)

Este método utiliza la conexión en forma de servicio (iwd) en lugar de entablar el uso de aplicaciones. Opera como una buena alternativa al veterano wpa_supplicant, y al igual que éste, funciona como demonio quedando residente en memoria. La diferencia radica en que iwd cuenta con su propia consola de intérprete de comandos que se ejecuta en la terminal. Cabe destacar que - desde el punto de vista técnico - iwd es compatible con connman y network-manager, estos pueden gestionar redes a través de iwd como frontend.

La primera acción de esta metodología implica instalarlo. En el caso de Ubuntu emplearemos el siguiente Comando de Organización:

sudo apt install iwd


Comnforme se haya instalado iwd detendremos el servicio wpa_supplicant a fin de que no entren en conflicto entre sí. Luego verificamos que el servicio iwd está corriendo:

sudo systemctl stop wpa_supplicant.service 
sudo systemctl status iwd.service

De ahora en más podremos hacer uso de la consola de control que tiene iwd por medio del siguiente comando de organización:

iwctl

El prompt de nuestro intérprete de comandos debería cambiar para indicarnos que estamos dentro del iwd, adquiriendo la siguiente forma:


[iwd]#

A partir de ahora, todo comando que ingresemos será ejecutado por iwd. Si ingresamos el comando help obtendremos una pantalla de ayuda de uso para algunas tareas útiles, tales como listar nuestros dipositivos inalámbricos, revisar las redes disponibles, etcétera. La consola de control iwdctl dispone de la útil funcionalidad de autocompletado mediante la tecla Tab.

a. Listamos los dispositivos inalámbricos

Recordemos que el nombre del dispositivo (wlan0/wlp4s0/wlp5s0) tienden a  variar de acuerdo a la distribución o al controlador inalámbrico utilizado por nuestro sistema. Los revisamos con:
 
[iwd]# device list
 

b. Escaneamos/Listamos las redes

[iwd]# station device scan
 
[iwd]# station device get-networks

c. Nos conectamos a una red Wifi:

 
[iwd]# station device connect SSID 




El sistema nos solicitará la contraseña de la red inalámbrica y la almacenará en el archivo /var/lib/iwd/ bajo el formato ESSID.psk. En el futuro recurrirá a este archivo para conectarse automáticamente sin tener que volver a pedirnos la contraseña (naturalmente que si la misma cambiase y no puediese establecer en enlace, la volverá a solicitar).

Suponiendo que el nombre del ESSID es UNIDAD_BASICA y la contraseña fuese VivaPeron, el archivo de configuración /var/lib/iwd/UNIDAD_BASICA.psk contendría lo siguiente:

:
 
[Security]
PreSharedKey=9b9da308bae6990f0101f12463ff27869dbf22065d4117d28a846f80e1b60080
Passphrase=VivaPeron

Lógicamente, las líneas PreSharedKey y Passphrase son obtenidas por iwd a través del comando wpa_passphrase de wpa_supplicant que ya os he mencionado anteriormente.

Debemos tener en cuenta que - si bien es poco probable en Ubuntu - al hacer ping www.google.com.ar, la red podría no funcionar aunque iwd informe que está conectado. En tal caso, basta con ejecutar sudo dhclient -v para que se active la conexión. Luego se conectará con normalidad, sin necesidad de este último requerimiento.

d. Nos desconectamos

 
[iwd]# station device disconnect 

En la imagen de cabecera se detallan, como ejemplo, cada uno de los pasos descriptos para la red UNIDAD_BASICA.

e. Asociarnos con WPS ("push-button") en iwd:

Este método de asociación al Wifi implica oprimir un botón llamado "WPS" o "QSS" localizado en el dispositivo de conexión (router) a fin de "abrir" el enlace y permitir - durante un minuto - establecer la conexión al Wifi sin tener que mediar una contraseña. Si bien esta opción puede ser utilizada en conjunción con el servicio iwd, no es un método recomendable y debe evitarse por inherentemente inseguro. Aún así, puede ser una opción para algunos casos (fiestas, eventos donde no nos interesa la seguridad extrema).

Antes que nada tenemos que asegurarnos que nuestro router tenga la función WPS/QSS, y que la misma esté habilitada. Eso se hace desde la web de control del router, ya que la misma generalmente cuenta con un casillero para habilitar la función WPS bajo el apartado de redes inalámbricas.
Acto seguido ejecutamos en el prompt ([iwd]#) el comando destinado a "presionar el botón":


[iwd]# wsc device push-button

Lo más inmediatamente posible presionamos el botón WPS del router. La conexión se hará efectiva en unos pocos segundos. Cabe mencionar que cualquier dispositivo que esté en el rango de nuestro router, también tendrá acceso en el momento que pulsamos el botón WPS y podrían también asociarse. Este método tan práctico, al igual que la opción PIN mode, no es seguro. Lo más conveniente es tener deshabilitada la función WPS en el router.

Si no deseamos utilizar en este esquema al demonio iwd, podremos deshabilitarlo —o eliminarlo—, para volver al viejo y peludo wpa_supplicant. Todo ello lo haremos con:

sudo systemctl stop iwd.service 
sudo systemctl disable iwd.servic

sábado, 11 de abril de 2020

Cómo instalo el servidor de videoconferencia cifrada Jitsi Meet en Ubuntu?

En una monumental exposición ofrecida el 24 de enero de 1954 ante representantes de la Unión de Docentes Argentinos, Juan Perón explicó como montar un servidor de videoconferencia cifrada punto a punto con Jitsi en Ubuntu, para ofrecer al Pueblo videoenlaces libres con la mayor calidad.


(...)
¡Compañeros!

Es elevando a los maestros, dignificándolos, como vamos nosotros a elevar y dignificar a nuestro propio pueblo. Ellos son el reflejo de todas las actividades presentes y futuras y de lo más noble que la Nación tiene: su juventud. Es a los maestros a quienes les está confiado el futuro del país. En consecuencia, ese futuro debe estar confiado a hombres  y mujeres cuya condición de dignidad los eleve al magisterio extraordinario que ellos realizan en beneficio del futuro de la Nación. Quien olvida a los maestros también olvida un poco el futuro del país.

En las era que vivimos, requerimos comunicarnos por una telemática que incluya también multimedia. Nadie duda que este será el futuro que potenciará a la educación de los Argentinos. Esto implica imagen en movimiento, audio, pero también - como dicen ahora los niños - el chat. Y no sólo ha de ser esto de acceso masivo, irrestricto, y toda vez que gratuito, sino que también es cardinal que puedan realizarse sobre plataformas libres y controladas por el docente. Ustedes han de poder estudiarlas y darlas a estudiar, e incluso modificarlas en pos de las necesidades de sus educandos.

Pero nos encontramos en tiempos de una lucha enconada entre el Capital y el Trabajo. Indudablemente el Capital iba a proponer un servicio privativo como Zoom. Si bien gratuito, no podía dejar de ser un oprobio para los  Pueblos. Su mediocre implementación de seguridad, sumada a un código fuente envenenado y no disponible provocaron que en pocas horas fuese víctima del hackeo masivo. Además de aquello debemos decir que sus autores guardaban anhelos inconfesables con el uso de su software mal engendrado. Todo esto lo torna prohibitivo para la educación que todos anhelamos.
¡Pues bien señores! Nuestra doctrina es clara: ¡tales servicios del Capital han de ser combatidos sin cuartel, a todo tiempo y en todo lugar!

Hemos puesto manos a la obra en búsqueda de un reemplazo, desarrollando un servidor libre de videoconferencias capaz de ofrecer a la Nación mucha mayor performance. ¡Lo hemos realizado y estamos dispuestos a desplegarlo masivamente! Se trata de Jitsi y su aplicación para servidor web Jitsi Meet. Este stack de programas liberados bajo licencia Apache pueden instalarse en un sistema GNU como Ubuntu con el fin de estaablecer directamente una web de acceso a videoconferencias privadas o públicas y que eventualmente pueden ser masivas (podremos utilizar unas 80 conexiones o más si lo deseamos).

El éxito no le sale al paso por suerte ni por casualidad. Esto se concibe, se prepara, se ejercita, y después recién se realiza. Es decir el éxito depende de toda esa acción, de toda esa preparación, y de toda esa organización, el éxito a nadie le sale al paso, no es obra de la casualidad, el éxito es obra de la previsión, de la organización y la realización.“

Fuente: https://citas.in/autores/juan-domingo-peron/
„El éxito no le sale al paso por suerte ni por casualidad. Esto se concibe, se prepara, se ejercita, y después recién se realiza. Es decir el éxito depende de toda esa acción, de toda esa preparación, y de toda esa organización, el éxito a nadie le sale al paso, no es obra de la casualidad, el éxito es obra de la previsión, de la organización y la realización.“

Fuente: https://citas.in/frases/88661-juan-domingo-peron-el-exito-no-le-sale-al-paso-por-suerte-ni-por-casu/
„El éxito no le sale al paso por suerte ni por casualidad. Esto se concibe, se prepara, se ejercita, y después recién se realiza. Es decir el éxito depende de toda esa acción, de toda esa preparación, y de toda esa organización, el éxito a nadie le sale al paso, no es obra de la casualidad, el éxito es obra de la previsión, de la organización y la realización.“

Fuente: https://citas.in/autores/juan-domingo-peron/
El éxito no le sale al paso por suerte ni por casualidad. Esto se concibe, se prepara, se ejercita, y después recién se realiza. Es decir el éxito depende de toda esa acción, de toda esa preparación, y de toda esa organización, el éxito a nadie le sale al paso, no es obra de la casualidad, el éxito es obra de la previsión, de la organización y la realización.“

Fuente: https://citas.in/autores/juan-domingo-peron/

Usar Jitsi Meet desde una web ya hecha


Si deseamos realizar videoconferencia ahora mismo sin tener que desplegar infraestructura de servidor alguna - bien porque no sabemos hacerlo, o no tenemos un servidor web bajo nuestro control, o no queremos - podremos hacer uso de nuestro navegador apuntado a una web para videoconferencia de Jitsi Meet que ya esté creada de antemano.

Un ejemplo es el serviidor de videoconferencias oficial del proyecto, localizado en meet.hit.si.  En él podremos crear canales de videoconferencias. Sin embargo, os recomiendo también probar la instancia nacional de excelente velocidad presente en el servidor de Arsat, que está en https://jitsi.dcarsat.com.ar/, ya que nos ofrece su propia infraestructura computadaque es la del Pueblo Argentino, con mayor velocidad por estar a escasos kilometritos.
Con solo dirigirnos allí, se cargará en nuestro navegador el excelente cliente libre web de Jitsi Meet, y sin necesidad alguna de armar nada por nuestra cuenta.


El uso del cliente es sumamente sencillo y brilla por ser software libre. Naturalmente, el navegador nos planteará compartir nuestro micrófono y cámara web con motivo de establecernos como cliente de videoconferencia. En el caso particular de Arsat también podremos crear nuestro propio canal y protegerlo con contraseña alfanumérica.

Si contamos con smartphones, podremos descargar clientes oficiales desde la web del proyecto. y apuntar a tales servidores públicos, conectarnos a estos servidores o permitir que otros usuarios nos contacten a través de ellos compartiendo el enlace por algún medio electrónico.

Ya no será entonces problema ofrecer clasee virtuales, establecer enlaces cifrados con terceros, presentar el contenido de nuestra pantalla o aplicaciones en él, "dar la palabra"autorizando el uso del micrófono (o "cerrar " micrófono o cámara).  Indudablemente podremos amenizar/amenazar a los educandos como antaño y si somos ingeniosos, ¡formar una habilidosa comunidad libre de todo intento injerencista de Googl€!

Esto es - de por sí - ya poderoso y Justicialista. Sin embargo, podríamos querer armar nuestro propio servidor de Jitsi Meet, y hacerlo público para que otros lo usen o dejarlo privado sólo para nosotros.  ¡Podríamos así ejercer la verdadera independencia de la Patria, que es aquella en la cual mandamos con nuestro propio software libre en nuestra propia infraestructura computada, sin hincar la cerviz ante imperio alguno! ¡Este es uno de los logros que he legado al Pueblo desde el Justicialismo!

Instalación de Jitsi Meet


Esta valiente decisión implica ensuciarnos las manos y operar bajo el capot de nuestro sistema GNU con Linux, pero como didacta que soy, os instruiré para que lleguen a buen puerto TCP. Gracias a este proceder, potenciaremos con infraestructura de videoconferencia cifrada propia nuestras tareas, la de una agrupación o empresa del Pueblo, una página web que ya teníamos montada, etc.  Proveeremos así en Justicia Social un servicio público para que quienquiera pueda crear un canal de videoconferencias privadas y cifradas.

Emplearemos para ello el hardware de nuestro servidor dotado con Ubuntu 18.04LTS Bionic Beaver en su versión Server. Sin embargo, también podríamos ejecutar Jitsi Meet en un sistema dotado con Ubuntu 18.04LTS para Escritorio (Desktop)... En caso de usar una versión para Escritorio, naturalmente debemos asegurarnos de elevar nuestros privilegios de Usuario común al de Administrador de Sistema mediante la orden sudo (el sistema nos solicitará nuestra contraseña de Administrador ("root") en tales casos).

Previo a dar inicio a la clase de instalación, es menester preparar específicamente a Ubuntu para utilizar el repositorio de paquetes "Universe", la cual es requerida por Jitsi. Lo hacemos abriendo una terminal (con Ctrl+Alt+t en la versión de escritorio) e ingresando en la terminal el siguiente comando de organización:

sudo apt-add-repository universe

Instalación básica de Jitsi Meet

1. Configuramos en el servidor el Nombre de Dominio Completamente Calificado FQDN (Opcional)

Si nuestro Ubuntu Server que emplearemos para desplegar el servidor de Jitsi Meet contaba previamente en los DNS con un FQDN (Nombre de Dominio Completamente Calificado o "Full Qualified Domain Name"), por ejemplo, si usábamos la URL peron.pirulo.org), nuestro archivo de configuración /etc/hostname ya debería contener la línea de este FODN. Si este no es el caso, debemos cambiar el hostname.

Acto seguido, debemos agregar tal FODN al archivo /etc/hosts, asociándolo con la dirección loopback del localhost. Por ejemplo, esto se lograría de la siguiente manera:

127.0.0.1 localhost peron.pirulo.org

Una vez configurado el FQDN revisamos en la misma máquina que es posible el contacto y que el DNS da cuenta de él. Esto lo logramos haciendo realidad efectiva una serie de pings a dicho FODN. El comando en la terminal sería:

ping "$(hostname)"

...con lo cual deberíamos recibir pings exitosos. Lo interrumpimos mediante Ctrl+c.

2. Agregamos el repositorio de paquetes de Jitsi

Esto nos permitirá instalar y actualizar Jitsi con el repositorio oficial del mismo, y facilitará la actualización automatizada de versiones nuevas del mismo. Para ello ingresamos los siguientes comandos en la Terminal:

sudo echo 'deb https://download.jitsi.org stable/' >> /etc/apt/sources.list.d/jitsi-stable.list

wget -qO - https://download.jitsi.org/jitsi-key.gpg.key | sudo apt-key add -


3. Abrir los puertos de nuestro cortafuegos

Para que se establezcan los enlaces bidireccionales debemo abrir los siguientes puertos en nuestro cortafuegos, a fin de que el tráfico lleguen a la máquina que corre Jitsi:
  • Puerto 80/TCP
  • Puerto 443/TCP
  • Puerto 10000/UDP
En ubuntu contamos con Ufw (el "Cortafuegos No complicado"). Por lo tanto podríamos permitir la recepción de dichos puertos introduciendo los siguientes comandos de la terminal:

sudo ufw allow 80/tcp
sudo ufw allow 443/tcp
sudo ufw allow 10000/udp

Nota: Recordemos que si por algún motivo quisiéramos deshacer esto y cerrar los puertos como estaban, deberíamos eliminar estas reglas de cortafuegos que le creamos. Ello se hace con: sudo ufw delete allow 80/tcp ; sudo ufw delete allow 443/tcp ; sudo ufw delete allow 10000/udp

También debemos abrir dichos puertos en nuestro Router desde el exterior hacia la IP del equipo local en el que instalaremos el servidor de Jitsi, naturalmente. Para ello recurriremos a la web de administración de nuestro router, la cual normalmente se puede acceder desde un navegador web a la IP del mismo, que suele ser 192.168.0.1 o 192.168.1.0, o 10.0.0.1. Normalmente encontrarán la opción de permitir tráfico entre la WAN (o "Internet") y la red interna ("LAN"), o bien realizar un "port forwarding" a una IP específica en la red LAN. Habran de consultar la documentación del router para mayor información.

3. Instalamos el Jitsi Meet

Para proceder a instalar Jitsi Meet utilizaremos tres comandos. Primero nos aseguramos que exista soporte disponible para el repositorio apt servido a través de HTTPS:

sudo apt-get install apt-transport-https 

...en segundo lugar recogemos las últimas versiones de la paquetería por medio través de todos los repositorios:

sudo apt-get update ;

---y en tercer lugar realizamos finalmente la instalación de jisti-meet:

sudo apt-get -y install jitsi-meet

El instalador revisará si se encuentran presentes en nuestro sistema los conocidos servidores web Nginx o Apache (en dicho orden). En caso afirmativo (lo cual suele ser el caso en Ubuntu Server), el instalador nos autoconfigurará un virtualhost dentro del servidor encontrado, el cual operará a fin de servir Jitsi Meet. Si no encuentra ninguno de estos dos servidores web ya instalados en el sistema, entonces procederá a instalar una instancia del servidor web Nginx. Esto es importante, porque en el caso de ya tener una instancia de Nginx en el puerto 443/TCP en ejecución en nuestro sistema , se omitirá la configuración de turnserver ya que entraría en conflicto con el puerto 443/TCP utilizado. Se utilizaría entonces el puerto 4443/TCP, el cual habremos de abrir como se explicó en el paso 2.



Pues bien, durante la instalación, se nos pedirá ingresar el hostname para la instancia de Jitsi Meet. Si ya tenemos un FODN para la instancia ya configurado en los DNS, lo ingresaremos aquí. Si no tenemos aún un hostname capaz de ser resuelto, podremos ingresar directamente la dirección IP de la máquina (siempre que se trate de una IP estática o no cambie).

Este hostname (o dirección IP estática) será utilizada para la configuración del virtualhost dentro de Jitsi Meet, y tanto usted como sus remitentes utilizarán esta dirección para acceder a las conferencias web.

4. Generar un certificado de Let's Encrypt (opcional y recomendado)

Para poder lograr comunicaciones encriptadas, necesitamos contar con un certificado TLS. Este cumple la función de un carnet de afiliación al Partido Justicialista. La manera más sencilla para obtenerlo es emplear para ello los servicios de Let's Encrypt como autoridad competente.

Podremos ejecutar el script específico para instalar Let's Encrypt en nuestro Ubuntu Server mediante:

/usr/share/jitsi-meet/scripts/install-letsencrypt-cert.sh

...o bien en Ubuntu para Escritorio con:

sudo ./usr/share/jitsi-meet/scripts/install-letsencrypt-cert.sh


Al ejecutarse este script empleará un acceso tipo HTTP-01, y es este el motivo por el cual nuestra instancia de servidor ha ser accesible desde la internet pública (puerto 80/TCP). Si deseamos emplear un tipo de conexionado distinto, hemos de evitar este script y en su lugar escoger "Quiero usar mi propio certificado" durante la instalación de jitsi-meet.

Nota: Las aplicaciones móviles Jitsi Meet son delicadas y requieren  obligatoriamente un certificado válido firmado por una Autoridad de Certificación válida (tal como Let's Encrypt) y no podrán conectarse si escogemos utilizar un certificado autofirmado.

5. Configuraciones avanzadas adicionales

Si la instalación se encuentra en una máquina detrás de una máquina NAT (un módem o algún router intermedio), jitsi-videobridge debería autoconfigurarse toda vez que arrancamos el sistema a fin de que los datos "salten el charco" a través del NAT. Se trata de un software encargado de puentear y retransmitir en ambos sentidos el flujo audiovisual.

Si sucediese que una llamada de tres vías no funciona, habremos de configurar adicionalmente algunos aspectos de jitsi-videobridge con el sentido de que éste sea accesible desde el exterior. Suponiendo que todos los puertos requeridos son ruteados hacia la máquina que lo ejecutan (estos puertos son TCP/443 o TCP/4443 y UDP/10000), le agregaremos unas líneas de configuración extra al fichero de configuración sip-communication.properties. Para ello ingresamos:


sudo nano /etc/jitsi/videobridge/sip-communicator.properties

.esto nos abrirá el editor GNU Nano con dicho archivo de configuración, el cual ya debería tener contenido.

Le agregamos las siguientes líneas:

org.ice4j.ice.harvest.NAT_HARVESTER_LOCAL_ADDRESS=<Local.IP.Address>
org.ice4j.ice.harvest.NAT_HARVESTER_PUBLIC_ADDRESS=<Public.IP.Address>

Acto seguido procederemos a desactivar una línea existente: la comentaremos con "#" para que jitsi-videobridge no la ejecute. Usamos la función Buscar de Nano (Ctrl+w) para encontrar la línea:

org.ice4j.ice.harvest.STUN_MAPPING_HARVESTER_ADDRESSES

...y le anteponemos "#", de modo que que nos quede:

#org.ice4j.ice.harvest.STUN_MAPPING_HARVESTER_ADDRESSES

...finalmente guardamos los cambios con Ctrl+o y salimos del editor Nano con Ctrl+x.

Es muy útil saber que las instalaciones por defecto de Jitsi en sistemas que utilizan systemd están limitadas por defecto a unos valores reducidos en cuanto a la cantidad de procesos máximos y archivos abiertos simultáneos que pueden operar los clientes. Esto está regulado así a fin de dar cabida un flujo de servicio relativamente bajo para todo tipo de acciones telemáticas, incluidas las de videoconferencia.

Si se espera que jitsi-videobridge sea capaz de servir a un número mayor de participantes, habremos de elevar los valores que viene por defecto, ya que estos son buenos para entre sesenta o cien participantes simultáneos. Para actualizar los valores usamos Nano para editar el archivo de configuración de sistema /etc/systemd/system.conf:

sudo nano /etc/systemd/system.conf

Nos aseguramos que tenemos los siguientes valores:

DefaultLimitNOFILE=65000
DefaultLimitNPROC=65000
DefaultTasksMax=65000

Para recargar los valores nuevos y revisar su resultado debemos realizar lo indicado en el apartado "Detalles de systemd" que os describiré a continuación.

Detalles de Systemd 

Para hacer efectivos los cambios en systemd en un sistema GNU con Linux que está en ejecución, simplemente debemos ejecutar:

sudo systemctl daemon-reload
sudo service jitsi-videobridge2 restart

Para revisar el parte de tareas ejecutaremos:

sudo service jitsi-videobridge2 status

...a lo cual, nuestro sistema GNU con Linux debería devolvermos:

Tasks: XX (limit: 65000).

Para comprobar la cantidad máxima de ficheros abiertos y límites impuestos a los procesos debemos ingresar:

sudo cat /proc/`cat /var/run/jitsi-videobridge/jitsi-videobridge.pid`/limits
...a lo cual GNU con Linux debería devolvernos:

Max processes             65000                65000                processes
Max open files            65000                65000                files

6. Confirme que su instalación base de la plataforma funciona

Abrimos un navegador web (Chrome, Chromiun o un Opera) e ingresamos el hostname o la dirección IP del paso anterior en la barra de direcciones.
Naturalmente, si habñiamos empleado un certificado autofirmado en lugar de utilizar Let's Encrypt, nuestro navegador desconfiará y nos pedirá que confirmemos que estamos seguros de utilizar tal certificado.

Debería ver una página web pidiéndonos crear una nueva conferencia (New Meeting). Asegúrese de que pueda crear exitosamente una nueva conferencia, y que otros participantes con capaces de unirse a la sesión.

Si todo funcionó ¡enhorabuena! Hemos logrado poner en órbita un servicio de conferencia Jitsi peronista, el cual podrá ofrecerse ya como un servicio agregado y peronista.

(Fin de la Instalación Básica de Jitsi Meet)

7. Agregar SIP a Jitsi Meet

Instalar Jigasi

Jigasi es una aplicación accesoria que se carga en el servidor de Jigsi, y opera como una puerta de enlace para conferencias SIP con Jitsi Meet. La función de Jigasi entonces es oficiar de "traductor" para el protocolo SIP (utilizado en telefonía de voz por IP (VoIP ), softphones SIP o clientes de software compatible tales como Ekiga y muchísimos clientes de chat). Gracias a Jigasi, estos difundidos clientes de chat y videoconferencia previamente incompatibles podrán unirse a las videoconferencias de Jitsi y lograrán la capacidad de transcripción entre un formato y el otro, sin que sus usuarios tengan que hacer nada ni aprender nada.

Podremos instalar el "traductor de formato" Jigasi a partir de su repositorio utilizaremos el siguiente comando:

sudo apt-get -y install jigasi

...o bien podremos instalarlo descargando el último paquete estable oficial. Por ejemplo:
 
wget https://download.jitsi.org/stable/jigasi_1.1-101-g3b2a0e5-1_amd64.deb ;
sudo dpkg -i jigasi_1.1-101-g3b2a0e5-1_amd64.deb


Durante la instalación, se nos pedirá que ingresemos una cuenta SIP y la contraseña de dicha cuenta SIP. Esta cuenta será la empleada para poder invitar a otros contactos SIP.

Refrescar Jitsi-Meet para que tome Jigasi

Abrimos nuevamente un navegador con la URL de Jitsi Meet (o refrescamos la página con F5) y si la instalación de Jigasi funcionó bien, veremos que apareció ahora un ícono de un teléfono en la parte derecha de la barra de herramientas. Ahora podremos utilizar este ícono para invitar a otras contactos SIP a que se unan a la conferencia actual.


¡Podremos emprender la lucha por la Liberación junto a quienes usen el protocolo SIP!


Resolver problemas

Si nos encontramos con problemas, conviene siempre comprobar con un navegador diferente. Algunas versiones de navegadores específicos son conocidas por tener algunos problemas con Jitsi Meet. También podríamos visitar https://test.webrtc.org para comprobar el estado de soporte de WebRTC de nuestro navegador.

Asimismo, podríamos echar un vistazo a los archivos de bitácora ("logs") de Jitsi en la carpeta /var/log/ en nuestro sistema GNU con Linux. Específicamente, los archivos de logs los podremos revisar con los comando cat o less, y son /var/log/jitsi/jvb.log, /var/log/jitsi/jicofo.log y /var/log/prosody/prosody.log

8. Convertir a Jitsi Meet en Servidor Privado de Dominio Seguro

En cuanto a la operatoria por parte del servidor de Jitsi, debemos saber que - por defecto quienquiera que tenga acceso a nuestra instancia de jitsi a través de internet será capaz de abrir un canal para videoconferencias. Esto significa que si nuestro servidor está abierto al mundo, y así cualquier compañer@ podrá tener una conversación con otr@ utilizando nuestra instancia particular de Jitsi: proveemos un servicio inclusivo para que todo público pueda crear videoconfencias privadas y cifradas.

Si noptamos por una visión enajenada y exclusivista y deseamos limitar la capacidad de terceros de iniciar una videoconferencia en nuestro servidor Jitsi Meet y permitirla sólo a usuarios autorizados debemos obligatoriamente configurar un "Dominio Seguro".

Es posible permitir que sólo usuarios autenticados por el servidor creen nuevas salas de videoconferencia. Toda vez que alguien quiera crear un canal de videoconferencia, Jitsi Meet perguntará por un nombre de usuario y una contraseña. Luego de que se haya creado el Canal de Videoconferencias, otros usuarios podrán unirse a él desde un dominio anónimo. Os indicaré aquí cómo configurarlo.

1 En Prosody:
(Si hemos instalado desde el paquete para Debian/Ubuntu, estos cambios deben realizarse en el archivo /etc/prosody/conf.avail/su-hostname.cfg.lua)

a) Activamos la autenticación para su dominio principal:
VirtualHost "jitsi-peron.pirulo.com"
    authentication = "internal_plain"

b) Agregamos un nuevo host virtual con el método de logueo anónimo para invitados:

VirtualHost "guest.jitsi-peron.pirulo.com"
    authentication = "anonymous"
    c2s_require_encryption = false

(tenga presente que guest.jitsi-peron.pirulo.com es interno para Jitsi, y no debemos ni necesitamos crearle un enlace DNS, ni generarle un certificado SSL/TLS, ni realizar ninguna configuración web específica para él).
 2 En el archivo de configuración config.js de Jitsi Meet configuramos la sección 'anonymousdomain':

(Si instalamos jitsi-meet desde los paquetes para Debian/Ubuntu, estos cambios deberán realizarse en el archivo /etc/jitsi/meet/su-hostname-config.js)

var config = {
    hosts: {
            domain: 'jitsi-peron.pirulo.com',
            anonymousdomain: 'guest.jitsi-peron.pirulo.com',
            ...
        },
        ...
}

3 Cuando ejecutamos Jicofo especificamos nuestro dominio principal en las propiedades adicionales de configuración. Jicofo aceptará los pedidos de alocación de conferencia sólo desde un dominio autenticado.
 
-Dorg.jitsi.jicofo.auth.URL=XMPP:jitsi-peron.pirulo.com

Si instalamos Jicofo desde un paquete Debian/Ubuntu, esto debe ir directamente en una línea nueva en el archivo /etc/jitsi/jicofo/sip-communicator.properties:

org.jitsi.jicofo.auth.URL=XMPP:jitsi-peron.pirulo.com

4 Para registrar usuarios autorizados, utilizaremos este comando en el servidor:

prosodyctl register <nombre_del_usuario_autorizado> jitsi-peron.pirulo.com <contraseña>

prosodyctl register <username> jitsi-meet.example.com <password>

5 Si estamos usando Jigasi:

a) Configurarmos Jigasi para que pueda autenticar editando las siguientes líneas en el archivo /etc/jitsi/jigasi/sip-communicator.properties:

org.jitsi.jigasi.xmpp.acc.USER_ID=ALGUN_USUARIO@ALGUN_DOMINIO
org.jitsi.jigasi.xmpp.acc.PASS=ALGUNA_CONTRASEÑA
org.jitsi.jigasi.xmpp.acc.ANONYMOUS_AUTH=false

La contraseña ALGUNA_CONTRASEÑA es una contraseña real en texto plano no un codificado base64.

b) Si experimentamos problemas con la cadena de certificación, podríamos requerir descomentar la siguiente línea de /etc/jitsi/jigasi/sip-communicator.properties:

net.java.sip.communicator.service.gui.ALWAYS_TRUST_MODE_ENABLED=true

...de modo que quede así: 
#net.java.sip.communicator.service.gui.ALWAYS_TRUST_MODE_ENABLED=true


Nota: Esto debe ser sólo realizado  únicamente con propósitos de prueba o resolución de problemas en estado controlado. Si se confirma que ésta era la causa del problma, debería resolverlo de otra manera (por ejemplo, obtener un certificado firmado para prosody, o agregar un certificado particular a la tienda de confianza de jigasi.

Certificados

Jicofo usa una conexión de usuario de chat XMPP (normalmente en puerto 5222) y verifica el certificado del servidor. En una instalación por defecto, el script de la instalación se encarga de generar un certificado autofirmado y lo agrega al Anillo de Contraseñas. En situaciones donde el certificado no sea confiable, podremos agregarlo igual al anillo copiándolo al directorio /usr/local/share/ca-certificates/, mediante los siguientes comandos de organización:

sudo cp cert.pem /usr/local/share/ca-certificates/ 
sudo update-ca-certificates


9. Desinstalar

Si por algún motivo necesitamos desinstalar la aplicación , podremos utilizar este comando de organización:
 
sudo apt-get purge jigasi jitsi-meet jitsi-meet-web-config jitsi-meet-prosody jitsi-meet-turnserver jitsi-meet-web jicofo jitsi-videobridge2

Podría suceder que los paquetes jigasi y jitsi-videobridge no se desinstalen de manera correcta al primer intento. Esto sucede sobre todo cuando el servidor estaba en servicio, y se debe a que, dependiendo la carga del sistema, la acción de remoción de servicios podría no ser lo suficientemente veloz... En tal caso, simplemente debemos ejecutar el comando de desinstalación por una segunda vez y - ya con los demonios detenidos y removidos de la memoria de nuestro sistema - la desinstalación será efectiva y completa.