https://paquita.masto.host/polkillas

Nextcloud en casa con Ubuntu Server (5). Acceso seguro con Let’s Encrypt

Desde hace tiempo, los principales navegadores (es decir, Chrome y sus derivados y Firefox) intentan animar a la gente a usar solo webs con conexiones seguras, HTTPS. Esto quiere decir que el contenido de la web viaja cifrado y nadie que intercepte la conexión se puede enterar de lo que está pasando, ya sea un cuestionario de un aula virtual o un usuario y una contraseña.

Para conseguir que una web sea HTTPS hace falta un certificado, algo similar a los certificados digitales que sirven para identificarte en webs gubernamentales. Tradicionalmente, conseguir estos certificados para una web era complicado y bastante caro. Sin embargo, hace unos años apareció el proyect Let’s Encrypt, que pretende facilitar y abaratar (¡es gratis!) el acceso a conexiones seguras. Está apoyado por jugadores tan importantes dentro del campo del software libre y de la libertad en internet como la EFF o la Fundación Mozilla. Con Let’s Encrypt (“Vamos a cifrar”) es mucho más fácil crear conexiones seguras. Y esto es importante por detalles como que yo guardo en mi nube el cuaderno de clase con datos personales de mis alumnos, y usar una conexión no fiable es peligroso e, incluso, podría ir en contra de la LOPD. (Este, por cierto, es un problema de Dropbox o de Additio).

Estoy convencido de que tecnicamente es muy difícil de entender, pero por suerte no hace falta saber mucho, es muy fácil de llevar a cabo.

En primer lugar, instalamos el paquete python3-certbot-apache, que instala todo lo necesario:

sudo apt-get install python-certbot-apache

Después ejecutamos sudo certbot --authenticator webroot --installer apache.

En primer lugar, nos pide una dirección de correo. No suelen mandar mensajes, podemos poner la que queramos. Después nos pide que aceptemos los términos y condiciones, lo que hacemos escribiendo ‘y’. A continuación nos pregunta por el dominio y aquí ponemos el ddns que hayamos creado. Por último, nos pregunta por la raíz web, y deberemos responder que /var/www/html.

Para probar que lo hemos hecho bien, podemos poner https://NUESTADIRECCIÓN.ddns.net y debería cargarnos la página de inicio de Apache.

Puede ser que no nos fiemos demasiado porque, al fin y al cabo, antes los certificados eran cosas caras y raras y a nosotros nos ha salido gratis. Bien, pues es fácil comprobar la seguridad de nuestro servidor. Vamos a https://www.ssllabs.com/ssltest e introducimos nuestra dirección de No IP. Tarda un buen rato, y al final nos debe dar este resultado, que no está mal.

Nextcloud en casa con Ubuntu Server (4). Acceso desde internet con NoIP

El siguiente paso para tener una verdadera nube a la que podamos acceder desde cualquier parte del mundo con nuestro ordenador o móvil es configurar una dirección única para la Raspberry. La dirección que hemos estado utilizando hasta ahora (192.168.0.26 o similar) no sirve más que en nuestra red local. Pero lo interesante de tener una nube propia está en poder acceder a ella desde cualquier lugar. Hay un problema para ello: la práctica totalidad de las empresas proveedoras de servicios de internet en España funcionan mediante lo que se conoce como IP dinámica: la IP, la dirección en internet, va cambiando de forma que los clientes no podemos controlarlo. De tal manera que si acudimos a servicios como What’s My IP, hoy nos puede dar un resultado y mañana otro que no podemos adivinar. Para ello hace falta algo llamado servidor de nombre de dominio dinámico o DDNS, por sus siglas en inglés. Este tipo de servicios instala un pequeño programa en nuestro servidor que periódicamente comprueba si ha cambiado nuestra dirección y lo actualiza en un «dominio» propio, de tal manera que solo tenemos que usar este «dominio». Lo escribo entre comillas porque esta explicación no es técnicamente del todo precisa, pero es más que suficiente para nuestras necesidades.

¿Qué necesitamos para tener una dirección propia reconocible? Hay muchos servicios DDNS disponibles. El que yo uso es no-ip.com, que es bastante fácil de utilizar. Eso sí, en la versión gratuita hay que confirmar una vez al mes el «dominio», porque si no nos lo pueden quitar. Pero no os preocupéis, envían correos para recordarlo. (corregida una errata gracias a Manuti).

Para instalar NoIP, en primer lugar tenemos que registrarnos en su web.

Como se ve en la imagen, podemos elegir una dirección que sea «lo-que-te-dé-la-gana.una-de-las-cuatro-opciones». Mi nube en producción usa la dirección polkas.ddns.net, pero puedes escoger la opción que prefieras.

Cuando nos registramos, nos envía un correo de confirmación a nuestra cuenta de correo. Cuando activamos mediante el enlace, podemos entrar en el servicio. El segundo paso consiste en descargarse el DUC, como llaman al programa de configuración. Para ello, seguimos estos pasos:

wget --content-disposition https://www.noip.com/download/linux/latestDescargamos el DUC

lsComprobamos que se ha descargado y tomamos nota de la versión. Es la 3.3.0 en este momento, pero puede variar, y en las siguientes instrucciones hay que cambiar X.Y.Z por la versión que sea.

tar xf noip-duc_X.Y.Z.tar.gzDescomprimimos el paquete.

cd noip-duc_X.Y.Z/binariesVamos al directorio donde está el paquete .deb de instalación.

sudo apt install ./noip-duc_X.Y.Z_amd64.deb Instalamos la versión para Ubuntu Server.

noip-ducEjecutamos el programa y da un error porque no está configurado.

sudo cp debian/service /etc/systemd/system/noip-duc.servicePreparamos el servicio, que es como se llama a ciertos programas que se ejecutan constantemente, copiándolo al sitio donde debe estar.

sudo nano /etc/default/noip-ducEditamos el archivo de configuración, Copiamos esto:

NOIP_USERNAME=
NOIP-PASSWORD=
NOIP-HOSTNAMES=

Y añadimos el correo con el que nos hemos registrado, la contraseña y la dirección que hemos elegido. Cerramos con CTRL+X y aceptamos con Y.

sudo systemctl daemon-reloadRecargamos todos los servicios.

sudo systemctl enable noip-duc Incluimos el DUC en la lista de los servicios que se ejecutan en cada inicio del servidor.

sudo systemctl start noip-ducArrancamos el servicio

sudo systemctl status noip-duc Podemos comprobar que funciona.

Y con esto podemos comprobar que funciona, abriendo en el navegador la dirección que hemos escogido al registrarnos.

Nextcloud en casa con Ubuntu Server (3). Apache, PHP y MariaDB

Ubuntu Server es un sistema operativo con versiones de los programas algo más modernas que el Raspberry OS que usan (evidentemente) las Raspberrys. Veremos si nos es suficiente para utilizar Nextcloud.

Apache es el servidor web, el programa que recibe las peticiones de otros ordenadores y manda páginas web. Hay otros servidores más ligeros (Nginx, lighthttp) que seguramente harían que el servidor en general y nuestra nube de Nextcloud en particular funcionaran algo más rápido, pero en mi caso opto por Apache por dos motivos. En primer lugar, porque es el único que he manejado y que algo entiendo de su configuración (poco, realmente poco, en realidad) y en segundo lugar porque hay algunas apps de Nextcloud que piden Apache.

Nextcloud está escrita mayormente en PHP, un lenguaje del que (sin ser yo programador ni nada de eso) solo oigo quejas, pero es omnipresente en la web, normalmente combinado con una base de datos que puede ser PostgresSQL o MySQL, pero nosotros vamos a usar MariaDB, una bifurcación (fork) de MySQL que tiene todas las características de MySQL y alguna más, aparte de (según parece) ser más rápida.

Vamos a ver cómo podemos conseguir instalar Apache2, PHP 7.3 y MariaDB 10 en nuestra flamante Raspbian.

Para entender lo que vamos a hacer, es interesante saber cómo funcional los repositorios en Linux. En Windows, cuando instalamos un programa, nos bajamos un archivo que tiene todo lo que necesita el programa. Es sencillo, pero si varios programas necesitan lo mismo, tendremos eso tres veces en lugar de solo una. En Linux el software se organiza en repositorios, servidores que contienen los programas organizados en paquetes, de tal manera que si tres aplicaciones necesitan PHP, por ejemplo, en lugar de que cada aplicación incluya PHP, las tres declaran que necesitan PHP y se instala una sola vez. Es una solución elegante, aunque puede dar problemas de dependencias (esas necesidades se llaman dependencias y se pueden convertir en un dolor de cabeza).

Consiste  en ejecutar la orden sudo apt install apache2 mariadb-server php8.3 php8.3-redis php8.3-cli php8.3-curl php8.3-gd php8.3-ldap php8.3-mbstring php8.3-mysql php8.3-xml php8.3-xmlrpc php8.3-zip libapache-mod-php8.3 php8.3-intl ffmpeg. Tardará un buen rato en descargar y configurar todo esto. 

Podemos comprobar que la instalación ha funcionado así:

  • Apache: abrimos un navegador y en la barra de direcciones (no en Google, sino ahí arriba del todo, donde ahora mismo pone polkillas.net y un montón de cosas más) ponemos la dirección IP de nuestro servidor. Ya sabemos: 192.168.xx.xx. Debería aparecer la siguiente pantalla:

  • PHP: Podemos comprobar que lo hemos hecho bien escribiendo php -v en el terminal y nos debe aparecer el número exacto de versión). También podemos crear un archivo de información para verlo en el navegador. Esta versión es más chula y da más información, lo cual puede ser peligroso si nos quieren atacar, así que la recomendación es borrar este archivo después de comprobar que lo hemos hecho bien.creamos el archivo con sudo nano /etc/www/html/info.php y escribimos lo siguiente en su interior:
    <?php
    phpinfo();
    ?>

    Guardamos con CTRL-X, s y lo vemos en el navegador en la direción http://192.168.xx.xx/info.php, que debe dar algo parecido a esto:
  • MariaDB: entramos en la Raspberry vía SSH  y escribimos sudo mysql --user=root mysql,  lo que debe hacer que el cursor cambie a lo siguiente:

Preparación de la base de datos

Una vez que hemos comprobado que todo funciona, podemos crear el usuario

Ahora debemos crear la base de datos y el usuario que vamos a utilizar con nuestra instalación de Nextcloud. Parar ello, lanzamos estos comandos SQL:

create user 'USUARIO'@'localhost' identified by 'CONTRASEÑA';
cambiando las mayúsculas por el usuario y contraseña que queramos.

create database NOMBREDELABASEDEDATOS;
cambiando las mayúsculas por el nombre que queramos.

Y le concedemos derechos de uso a este usuario que acabamos de crear con

grant all privileges on NOMBREDELABASEDEDATOS.* to 'USUARIO'@'localhost' with grant option;

Por último, recargamos los privilegios de MariaDB con flush privileges; y salimos con exit.

Retoques y mejoras

De inicio, tanto MySQL como MariaDB vienen con ciertas configuraciones de prueba que es mejor eliminar. Para ello escribimos sudo mysql_secure_installation (truco sacado de aquí) y respondemos las preguntas:

Nos ipde en primer lugar la contraseña del usuario root, el superadministrador. Por defecto, no tiene, así que pulsamos Enter. A continuación nos sugiere cambiar a un método diferente de identificación que no usa contaseña. Me ha dado problemas alguna vez, así que yo le digo que no y a continuación nos pide que cambiemos la contraseña de root. Ponemos la que queramos y la volvemos a escribir para confirmarla. Después nos pide eliminar los usuarios  anónimos, impedir el acceso de root en remoto y borrar una tabla de ejemplo. Le decimos que sí a todo y solo queda volver a cargar las tablas de privilegios y acaba el script.

Nextcloud en casa con Ubuntu Server (2). Preparación de un disco duro externo

Cuando tenía la nube montada en una Raspberry Pi, era imprescindible tener un disco duro externo para almacenar los archivos, porque las tarjetas SD tienen menos capacidad y se desgastan por el uso mucho antes que los discos. Ahora que la voy a montar en un miniPC, podría usarse un disco duro SSD interno, pero el disco duro externo tiene una ventaja: se puede desconectar si es necesario, y hace más fácil hacer una copia de seguridad de esos archivos.

Voy a seguir usando las intrucciones de Manuti en su mítico blog Raspberry para torpes, la ventaja de usar Linux es que aunque cambies de distribución (de Raspbian a Ubuntu Server, en mi caso), estas cosas suelen ser iguales o muy parecidas. Vamos con ello.

Cuando instalemos Nextcloud, tendremos que configurarlo. Y, entre otras cosas, tendremos que decirle en qué carpeta queremos que guarde los archivos de nuestros usuarios. Esa carpeta estará en el disco duro externo, y un posible problema que podemos tener es que desconectemos el disco duro y, al volverlo a conectar, no se reconozca de la misma manera.

En Windows,, cuando insertamos un pincho USB se le da una letra (G;, H; etc.) y si lo sacamos y volvemos a meter cabe la posibilidad de que la letra cambie, y eso puede ser un problema para nuestra nube. Y en Linux pasa lo mismo, a no ser que configuremos el servidor de forma adecuada. Para ello, vamos a asegurarnos de que esto no pasa.

En Linux, la base de Ubuntu Server, los discos duros no reciben una letra como en Windows, sino una expresión que tiene tres letras y puede tener un número. En mi caso, como vamos a ver, el disco duro externo es sda1. La “s” significa disco duro moderno, los antiguos llevarían una “h”; la “d” del medio es de disco, la letra es algo parecida a la de Windows, pero siempre en minúscula (podría haber sda, sdb, sdc, etc.); y el número se referirá a las particiones que pueda tener el disco duro.

Manuti recomienda formatear el disco duro en formato ext4. Tiene la ventaja de trabajar mejor y más rápido, y el inconveniente de que, si lo hacemos, Windows no reconocerá el disco duro. Si queremos usar el disco duro en Windows, será preferible que el formato que le demos sea ntfs, probablemente el que tenga por defecto cuando lo compramos. La elección entre un formato y otro, por tanto, depende del uso que le vayamos a dar y si lo vamos a conectar a otros ordenadores o no.

En primer lugar, debemos conocer el UUID del disco duro. Es una especie de DNI para discos duros, que los identifica de forma única. Para ello, podemos usar la orden sudo blkid, que nos dará este resultado en el que está la información que necesitamos: el código sda1 y  el UUID.

En mi caso, las primeras líneas (/dev/n…) son del disco duro del miniPC. Las siguientes las ha creado el instalador y las que interesan son las últimas, entre la que está , sda1. Normalmente es bastante  sencillo, como en este ejemplo del anterior tutorial, aunque el UUID puede ser más largo.

Bien, pues vamos a crear una carpeta donde «se monte» el disco duro siempre. O sea, vamos a decirle a la Raspberry que siempre le dé el mismo nombre, como si en Windows le diéramos la misma letra siempre. Para ello creamos un directorio. Puede ser el que queramos, pero es recomendable usar /media/lo-que-sea. Además, para evitarnos problemas de permisos y que siempre podamos abrir cualquier archivo del disco duro, lo dejamos abierto a que lo use cualquier usuario del miniPC, que es lo que significan los 777.

Por ejemplo, puesto que el disco duro es de marca Toshiba, he hecho lo siguiente:

sudo mkdir /media/Toshiba
sudo chmod 777 /media/Toshiba

Ahora, el siguiente paso es delicado. Alguna vez me he cargado la Raspberry, dejándola sin posibilidad de arrancar bien. Afortunadamente, manuti no solo nos recomienda hacer una copia de seguridad sino que nos explica cómo hacerla. Hacemos una copia de seguridad del archivo que guarda la configuración de los discos:, que se llama /etc/fstab:

ls /etc (comprobamos en el listado alfabético que el archivo fstab existe)
sudo cp /etc/fstab /etc/fstab.old (lo copiamos con otro nombre en el mismo sitio)
ls /etc (comprobamos que lo hemos hecho bien, ahora tienen que estar los dos archivos, original y copia)

Ahora tenemos que editar el archivo fstab con un programa llamado nano, que es un editor de texto sencillo. Sin embargo, la versión minimizada de Ubuntu Server no lo incluye. Pero no hay problema: lo podemos instalar en 30 segundos con la orden sudo apt update && sudo apt install nano. Siempre es buena idea refrescar las fuentes antes de instalar nada, por eso el primer comando.

Una vez instalado, ya podemos editar con  sudo nano /etc/fstab.

Nano es un editor de textos muy sencillo, es el equivalente al Bloc de notas. Ojo que, aunque tengamos ratón porque estamos accediendo por SSH, hay que tener en cuenta que no podemos manejar nano con el ratón; solo podemos hacerlo con el teclado, pero no es difícil.

Hay una opción muy sencilla, pero puede dar problemas. Por eso, es más seguro, como recomienda manuti, identificar el disco duro por su UUID. La línea del archivo fstab sería esta:

UUID=el-código-de-números-y-letras /media/Toshiba ntfs-3g defaults,locale=es_ES.UTF8 0 0

Y si hemos optado por hacerlo con el formato de Linux, sería esta otra:

UUID=el-código-de-números-y-letras /media/Vir ext4 defaults 0 0

La explicación es esta:

UUID=lo-que-sea El nombre del disco duro
/media/Vir La carpeta que hemos creado
ntfs-3g / ext4 El sistema de archivos del disco duro (si pusiéramos solo ntfs, sería de solo escritura y no nos serviría para Nextcloud, y si no nos hace falta compatibilidad con Windows, será ext4)
defaults,locale=es_ES.UTF8 la configuración: normal (defaults) y en español de España (es_ES). Esta parte no hace falta en ext4.
0 opción para copias de seguridad que Ubuntu Server no tiene por defecto, así que lo dejamos en 0
0 opción para que fsck (una herramienta de análisis de discos duros parecida a scandisk pero en Linux) escanee esta unidad. Alargaría mucho el tiempo de arranque, así que le decimos que no con el 0

Cerramos nano pulsando CTRL+X y diciendo que sí (y). Después reiniciamos el servidor con sudo reboot y después de volver a conectarnos comprobamos si lo hemos hecho bien yendo al directorio donde debería estar el disco duro: cd /media/Toshiba ,y comprobando el contenido del disco duro con ls.

Nextcloud en casa con Ubuntu Server (1). Instalación de Ubuntu Server y acceso SSH

Aquí viene una nueva versión de mi tutorial para instalar Nextcloud en un servidor casero. Podrás ver las demás entradas (cuando las publique) en este enlace.

Esta vez ya no lo voy a instalar en una Raspberry como en las primeras versiones, sino en un miniPC MSI que compré precisamente para esto, porque la Raspberry se me quedaba algo corta para todas las cosas que quería hacer.

Esta vez no voy a explicar cómo descargarse Ubuntu Server y copiarlo a un pendrive. En anteriores versiones lo he hecho, contando dónde descargar Raspbian, el sistema operativo de la Raspberry, y qué hacer. Ahora he usado Ubuntu Server por comodidad, y voy a asumir que lo tenemos ya preparado en un pendrive. Tampoco voy a explicar cómo hacer que el miniPC arranque desde el pendrive, porque cada versión es un mundo.

Vamos a instalar Ubuntu Server de forma que no necesitemos teclado y pantalla más que para esta instalación, de forma que una vez quede instalado podremos acceder desde cualquier otro ordenador de casa y, más adelante, desde cualquier ordenador con conexión a internet.

Al lío. Lo primero que tenemos que hacer es pinchar el pendrive en un puerto USB y arrancar el miniPC. Debería salirnos una pantalla con tres opciones y escogemos «Try or install Ubuntu». A continuación nos pide que escojamos nuestro lenguaje.

Bajamos con las fechas hasta el idioma que queremos y con el tabulador vamos al menú inferior, donde damos a Aceptar. Un detalle es que el sistema acaba estando en inglés aunque se escoja Español, aunque el teclado que se configura después si queda bien configurado. Esto quizás sea por lo que me ha aparecido en siguiente pantalla.

Dice que hay una versión más moderna del instalador, pero el número es inferior, así que he optado por la opción «Continuar sin actualizar». A continuación nos pide que seleccionemos el teclado. Suele detectarlo bien, pero en caso necesario se puede seleccionar «Identificar teclado».

Después nos pide que seleccionemos si queremos la versión normal o la minimizada. Yo he escogido esta última, esta puede ser la otra razón por la que al final me sale el sistema en inglés. También pregunta si queremos instalar drivers, pero si vamos a conectar el miniPC al router por cable, no hace falta, e, incluso si lo hacemos mediante wifi, seguramente no sea necesario.

Después pide la configuración de la red. Por cable se autoconfigura, si es por wifi hay que configurarla. Aquí pongo cómo me ha quedado, con las dos opciones por si acaso. Hay que apuntarse la IP, el conjunto de 4 números separados por puntos, nos hará falta para acceder desde otros ordenadores de casa, en mi caso 192.168.1.73 y 192.168.1.52 pero eso variará.

Después pide los datos del proxy, que para casa podemos dejar en blanco.

Después prueba el mirror. Los sistemas Linux como Ubuntu funcionan con una o varias formas de actualizar lo que está instalado, generalmente bajándolo de un servidor. Pero en lugar de estar centralizado, este servidor tiene copias (mirror=espejo) distribuidos por el mundo para que el acceso sea más fácil y más rápido. La foto me ha quedado borrosa, pero es esto.

Después pregunta por dónde instalar en el disco duro. Lo más sencillo es seleccionar «Use an entire disk» (Usar un disco entero) y dejar que se encargue de configurarlo a su gusto.

Pone a continuación un resumen.

Nos pregunta si estamos seguros y decimos que sí pulsando en «Continuar».     

Mientras se está instalando el sistema operativo, nos pregunta nuestro nombre (podemos poner cualquiera), el nombre del servidor (también lo que queramos), un nombre de usuario y una contraseña y su confirmación, que será importante para poder acceder al servidor desde otro ordenador.

También nos pregunta si queremos Ubuntu Pro. Seguramente no, no lo querremos, gracias.

Este paso siguiente es fundamental: Tenemos que marcar con la barra espaciadora la opción  «Instalar servidor OpenSSH». SSH es la herramienta que nos va a permitir acceder desde otro ordenador, sin necesitar un teclado y una pantalla más que para la instalación.

A continuación nos propone una serie de snaps populares. Snap es una forma de instalar software propia de Canonical, la empresa que hace Ubuntu, pero no lo recomiendo en absoluto, aunque como se ve, aparece el propio Nextcloud.

Despueś nos pone un resumen de cómo va la instalación y cuando acaba veremos que en el menú de abajo aparece la opción «Reiniciar ahora». Al pulsarla, nos pedirá que desenchufemos el pincho y el miniPC se reinicia a una pantalla en la que nos pide un usuario. Podemos meter el que hemos creado ahora, pero es prefereible seguir con SSH.

Desde otro ordenador con Linux podemos usar el terminal para conectarnos con la orden ssh USUARIO-QUE-HEMOS-CREADO@IP-que-hemos-copiado. Nos pide la contraseña y cuando la metemos parece que no estamos escribiendo porque no se ve nada, ni círculos ni asteriscos ni nada, pero sí, aunque puede llevar a error (y yo me equivoqué al meterla, como se ve en la captura de pantalla.

Escribimos yes y el servidor nos pide la contraseña. Cuando lo hacemos, ya estamos en el servidor igual que si estuviésemos delante del él con su teclado y su pantalla.

Si el ordenador desde el que queremos conectarnos al servidor es de Windows, podemos usar Putty. Copio lo que puse en un tutorial anterior. Solo hay que cambiar Raspberry por servidor y el usuario «pi» por el que hayamos creado.

(…)SSH sirve para “entrar” en un ordenador desde otro. Si está activado, podemos tener una línea de comandos en un ordenador diferente y trabajar en la Raspberry. En versiones anteriores, venía activado por defecto, pero desde hace un tiempo no es así. Este es el paso fundamental para poder usar la Raspberry sin necesidad de tenerla conectada a monitor y teclado., por lo que tendremos que seleccionar esta opción y activarla. Una vez que lo hemos hecho, podemos conectarnos a la Raspberry desde otro ordenador.

En Windows se puede usar PuTTY para ello y en Linux no hace falta instalar nada. Veamos:

No hace falta instalar PuTTY, al abrir el archivo descargado se abre directamente esta ventana. En el campo “Host Name (or IP address)” tenemos que escribir lo que aparece en la imagen, cambiando las  XX con unos números que estarán entre 0 y 255. Para saber exactamente qué número poner podríamos ir pr obando de uno en uno, pero hay una forma mucho más sencilla: cuando  hayamos acabado de configurar la raspberry,,podemos  escribir la orden ifconfig. Sale un montón de información pero lo que tenemos que buscar es la expresion inet address seguida de un número compuesto de cuatro cifras separadas por un punto y que sean las dos primeras esos 192.168. Si estamos conectados al router con un cable, estará en la sección eth0; si estamos usando wifi, estará seguramente en la sección wlan0.

Si lo hemos hecho bien, nos aparecerá una alerta. Es normal, solo nos avisa de que nos estamos conectando a un ordenador nuevo y nunca hemos dicho a PuTTY que se fíe. Pulsar en sí hace que PuTTY, en adelante, confíe en nuestra Raspberry.

A continuación nos sale una pantalla nueva que nos pedirá el usuario de Raspberry PI OS (pi, si no lo cambiamos) y la contraseña (raspberry por defecto, ya cambiaremos esto).  Al escribir la contraseña, como suele pasar en Linux, parece que no pasa nada, pero no es preocupante:

Al pulsar Intro, nos aparece el mismo mensaje que aparece en el monitor de la Raspberry al arrancar, lo que nos confima que esa pantalla “es” la Raspberry.

Lo primero que tenemos que hacer es actualizar el sistema. Eso lo vamos a hacer siempre con dos órdenes que podemos dar seguidas: sudo apt update && sudo apt dist-upgrade ¿Qué quiere decir esto? sudo  significa que lo que decimos a continuación lo hacemos como usuario de administración,  y usamos dos veces Apt, el sistema de actualización de paquetes de Ubuntu (de Debian, en realidad), la primera para actualizar las fuentes y la segunda para actualizar. &&sirven para decir que vamos a dar dos órdenes seguidas, pero la segunda solo arranca si no falla la primera.

Y con esto tenemos un flamante Ubuntu Server preparado para instalarle Nextcloud, pero todavía quedan varias cosas que configurar: cómo configurar un disco duro para almacenar los archivos de la nube y cómo poder acceder desde cualquier punto de internet. Pero eso serán otras entradas.

Mi crítica de las redes de ligoteo

Hace un mes y medio que me registré en varias apps de ligue. Hemos abierto nuestra relación y esta es casi la única forma de encontrar a otras personas cuando curras bastante y tienes hijos pequeños. Mi experiencia está siendo agridulce, aunque creo que mejor que la de otras personas, pero esta entrada no va de eso, sino de la experiencia de usuario y la flora y fauna que se puede encontrar en ellas. Supongo que todo el mundo conoce cómo funcionan estas apps: una vez registrado, te van apareciendo una por una personas con una serie de datos y hay que decidir si te gusta o no, normalmente deslizando a la izquierda (❌) o a la derecha (❤️). Si das like a una persona que te da like a ti, es un match, y generalmente en ese momento se puede iniciar una conversación, aunque en los planes de pago puedes saludar a alguien que todavía no te haya dado like.

Así que aquí están, en riguroso orden alfabético:

  • Alovoa. Es diferente a todas las demás en que es código abierto, aunque no tengo claro dónde o cómo son los servidores. No cobra por nada, pero está muy vacía, en un par de días acabé con todas las opciones en España y ahora solo me salen mujeres que están a miles de kilómetros, literalmente. Animaría a los usuarios del fediverso que estén en estas cosas a que le den una oportunidad.
  • Badoo. Es de origen ruso, y no tengo ni idea de lo que puede significar sta app es de uso casi tan suave como Bumble. Le tengo cariño porque era la app que usé hace una década. Es llamativa la cantidad de mujeres hispanoamericanas que hay en esta app, muchas más que en el resto.
  • Bumble. Esta app de color amarillo (entiendo que el nombre se debe al abejorro que va de flor en flor) tenía como diferencia que cuando se hacía match en una pareja hetero solo la mujer podía iniciar la conversación, aunque parece ser que ya no es así. Es la app de uso más sencillo, simplemente deslizando hacia abajo puedes ver todas las fotos  e información de la otra persona, mientras que en el resto es fácil liarte y realizar una acción que no deseas. En cuanto a las personas que me he encontrado, está un poco entre Tinder y OkCupid, más proporción de macizas espectaculares inalcanzables que esta última, pero también gente muy normal y atractiva. La segunda en mi preferencia.
  • Feeld. Según Wikctionary, es una palabra del inglés medio que puede significar campo, barbecho o campo de batalla, dejo al lector elegir qué significado le puede cuadrar más. Es la app de contactos más kinky, permite incluir en tu perfil a tu pareja y los gustos que puedes incluir no son solo aficiones sino también prácticas sexuales. En ella, de hecho, he visto a una actriz porno estadounidense que debía de estar de vacaciones en España. Las ofertas de tríos, BDSM y otras prácticas no es que sean constantes, pero sí son muy frecuentes. Un poco demasiado heavy para mi gusto, y eso que estoy descubriendo que soy bastante guarro.
  • OkCupid. El nombre tiene que ver con el dios romano del deseo. Leí en algún sitio que es la red social de izquierdas, y probablemente sea bastante cierto. Gente muy normal, con una mayor variedad de aficiones y deseos, y menos fotos de postureo. Además, es en la que he tenido más éxito, es decir, un pelín. El lado malo es que se acaba agotando el flujo de nuevas personas, y acaba ofreciendo solo un par nuevo al día. Aarte de esto, mi favorita.
  • Tinder. Significa yesca, la chispa que enciende el fuego. Es la red de ligue del postureo. Mucha niña mona, mucho gimnasio, mucha foto haciendo turismo, pero la sensación que me da es bastante desoladora. Exigencias y caprichos. Es el Instagram del ligue, y no lo digo como halago. Entiendo perfectamente a la gente a la que le da ansiedad, me la da a mí que tengo pareja…

Asimetría

Lo he pensado mucho antes de escribir esta entrada, y antes de decidirme a escribirla aquí, en este blog, que no lee ni el Tato, pero tiene más visitas que el de http://escritura.social/polkillas. Pero siempre he pensado que hay que afrontar las cosas y no esconderlas, aunque en realidad en mi vida no haya seguido muchas veces este consejo.

No es una salida del armario, pero sí es algo parecido. Y no es una, sino dos. Y no es fácil ninguna de las dos.

Así pues, tengo la necesidad de expresar dos cosas. La primera es, supongo, la más escandalosa. Virginia y yo, después de 7 años mayormente felices casados, hemos acordado abrir la relación. Ella se ha informado mucho sobre el tema de la no monogamia ética, y me lo ha propuesto no hace mucho tiempo. Muy poco, en realidad. Supongo que ni para su familia ni la mía va a ser fácil aceptarlo, porque se sale de todas las coordenadas sociales y éticas en los que suelen moverse. De hecho, estoy bastante nervioso por si alguno de mis hermanos lee esto, pero si lo hemos decidido juntos y hemos apostado por ello, sería hipócrita esconderlo.

Es un cambio radical en nuestra relación y, sobre todo en mi caso. Yo siempre he vivido en la monogamia sucesiva, eso de tener una novia, después otra, después otra… Virginia ha tenido una vida afectivosexual menos convencional, menos tradicional, y de hecho una relación monógama como ha tenido conmigo durante casi una década es la excepción, no la norma. Así que aquí estamos, en una relación abierta, y con ganas de experimentar cosas nuevas. Es un mundo nuevo y, a diferencia de Virginia, no conozco a nadie que haya recorrido este camino. A veces se me hace un poco marciano pensarlo.

Pero la segunda… no sé si «confesión» puede ser la palabra… La segunda cosa que quería poner por escrito, sobre todo para ayudarme a aclarar mis ideas pero también para dejarlo caer, es que me siento mal. No es porque Virginia hasta quedado con algún otro hombre ni por las cosas que haya hecho, que quiedan entre ellos y yo, sino porque ella ha tenido un éxito entrando en las apps de ligue mientras que yo me como mejor todavía que el colín que pensaba que me iba a comer. Y mi autoestima está sufriendo. Estoy recordando los peores momentos de mi vida adulta, cuando sentía que no solo no era digno de amor sino que ni siquiera era digno de caso. Y no está siendo fácil.

No siento celos por mi esposa. Bueno, quizá un poco, la educación judeocristiana se tiene que notar. Pero el problema no es ese, sino que le tengo envidia. Tiene todo lo que quiere, todo lo que se merece y más, mientras que mi pobre corazón se teme que yo también tengo todo lo que me merezco, que es nada. Aparte de Virginia, que es mucho, lo sé, pero la autoestima no sigue la lógica. Ojalá lo hiciera.

Cuando lo acordé con Virginia, cuando lo pusimos por escrito y lo firmamos, no pensé que este pudiera ser el problema. Pensé en los celos, pensé en que el poliamor me costaría más que la forma de no monogamia ética que hemos firmado, pero no pensé que ver a Virginia con más de una decena de pretendientes me iba a erosionar la autoestima como lo está haciendo. Ella tanto y yo tan poco. No me parece una reacción muy madura, pero es la que estoy teniendo. Quizás habría sido mejor esperar un poco para pasar a la práctica, intentar que la cosa estuviese un poco más equilibrada, pero no ha sido así.

Y sé que si hablo con ella y le pido que baje el ritmo, lo hará sin quejarse. Sin embargo, no debería ser así, yo ya asumía, por cómo somos los dos y por cómo funciona este mundo, que Virginia iba a tener más oportunidades. Pero no esperaba este bajón de autoestima, que me está provocando bastante ansiedad. Me ha costado mucho llegar a convencerme de que soy digno de ser amado, y me preocuparía mucho retroceder.

No sé muy bien cómo concluir, o si ya debería haber llegado a una conclusión. No me arrepiento de nada, creo que esto hace feliz a Virginia y es lo importante, pero por ahora a mí no me ha venido muy bien. No sé, iremos viendo.

Nextcloud en tu propio servidor. Configurando la caché: APCu y Redis

Al entrar en la página de administración de Nextcloud nos encontraremos un montón de avisos de cosas que no es que estén mal pero podrían estar bien. Con algunas de ellas llevo peleándome desde los tiempos en que tenía mi nube alojada en una Raspberry Pi. Y sigo peleado con ellas.

Otras, en cambio, son más sencillas de quitar, haciendo que la nube vaya mejor. Entre ellas está configurar las memorias cachés, que son, si no lo entiendo mal (recuerdo que yo de informática lo justo, soy profesor de Lengua) son lugares donde el servidor deja apuntadas cosas para no tener que ejecutarlas cada vez, haciendo que todo vaya más rápido. La documentación de Nextcloud recomienda utilizar APCu para la caché local y Redis para las demás en organizaciones con un servidor y, aunque mi nube solo tiene 2 usuarios, me he tirado a esto porque ya que el miniPC tiene bastante más potencia, he querido probarlo.

Para activar las cachés, lo primero es instalar los paquetes adecuados. Sería con esta orden:

sudo apt install php8.2-apcu php8.2-redis redis

Una vez instalados, reiniciamos el servidor con sudo service apache2 restart y tenemos que editar el archivo de configuración, config.php.

Donde queramos, aunque yo lo pongo al final por costumbre, tenemos que copiar el siguiente texto, que indica qué cachés tiene que usar Nextcloud y la configuración mínima de Redis:

'memcache.local' => '\OC\Memcache\APCu',
'memcache.distributed' => '\OC\Memcache\Redis',
'memcache.locking' => '\OC\Memcache\Redis',
'redis' => [
'host' => 'localhost',
'port' => 6379,
],

Y ya debería estar hecho.

Aplicaciones por defecto diciembre 2023

Llego tarde al meme, pero tenía idea de hacer algo más parecido aunque mucho más largo, así que como no llego, lo dejo aquí. Se lo vi en Mastodon a Adrián Perales.

📨 Cliente de correo: correo web, aunque estoy recuperando los clientes con K-9 en Android y Thunderbird en Windows y Ubuntu
📮 Servidor de correo: no gasto.
📝 Notes:  App Notas de Nextcloud
✅ Tareas: App Tareas de Nextcloud, sincronizadas con DAVx⁵
📷 Cámara: Camara de MIUI, con catas de GCam y de la cámara de Lineage..
🟦 Administración de fotos: Nextcloud.
📆 Calendario: App Calendario de Nextcloud, sincronizado con DAVx⁵.
📁 Almacenamiento en la nube: Nextcloud en un miniPC en casa.
📖 RSS: App News de Nextcloud, aunque la uso poco.
🙍🏻‍♂️ Contactos: App Contactos de Nextcloud sincronizados con DAVx⁵.
🌐 Navegador: Firefox,.Chrome y Explorer (sí, en serio) en el trabajo.
💬 Chat: Whatsapp.
🔖 Marcadores: Los de Firefox.
📑 Leer más tarde: No tengo.
📜 Procesador de textos: LibreOffice Writer. Word para el trabajo
📈 Hojas de cálculo: LibreOffice Calc. Excel para el trabajo.
📊 Presentaciones: LibreOffice Impress.
🛒 Lista de la compra: Estoy probando varias apps, ninguna me acaba de convecer.
🍴 Planificación de comidas: No uso.
💰 Finanzas: Apps de los bancos.
📰 Noticias: Seguir cuentas de medios y periodistas en Twitter y Mastodon.
🎵 Música: La radio ,últimamente.
🎤 Podcasts: No escucho.
🔐 Gestor de contraseñas: App Contraseñas de Nextcloud. Tengo pendiente probar Bitwarden o KeepassXC.

 

Nextcloud en la Raspberry Pi (2). Configuración de la Raspberry

Cuando encendemos la Raspberry por primera vez, nos pedirá un nombre de usuario (ya no hay «pi» por defecto) y una contraseña, que debemos escribir dos veces para detectar posibles errores. Después, aparece directamente la utilidad de configuración. Esto no era así en versiones anteriores de Raspbian, pero me parece lógico que sea así, pues la configuración es necesaria.

Nos aparecerá un menú parecido a este. Hay varias opciones que nos van a interesar. Vamos con ellas en el orden en que aparecen en el menú, por el que nos movemos con las flechas arriba ya abajo. Para saltar a los botones de Aceptar o Cancelar, usamos el tabulador (la tecla que está a la izquierda de la Q).

img_24112016_192644_hdr

Expand Filesystem

Creía que esto no hacía falta ya, pero sigue apareciendo, así que no cuesta nada hacerlo. Le decimos al sistema que utilice la tarjeta SD entera.

Internationalisation Options

Para poner la Raspberry en español este es el sitio adecuado. Las opciones que debemos seleccionar son estas:

Change Locale

Buscamos la opción es_ES.UTF8  (español de España, o, si eres de otro país, la opción es_XX co nlas dos letras de tu país) y la seleccionamos. Aceptamos y en la siguiente pantalla, en la que aparecen muchas menos opciones, la volvemos a seleccionar. Esperamos unos segundos a que se generen las locales.

Change Timezone

Para no tener problemas, sobre todo, con el calendario de Nextcloud, tenemos que asegurarnos de que el servidor está en nuestra zona horaria. Escogemos nuestro continente y después la capital del país en el que estemos. En mi caso, Europa y Madrid.

Change Keyboard Layout

El primer paso aquí no tan importante como el segundo. Seguramente saldrá una serie de opciones del idioma inglés, así que bajamos a Other y buscamos el idioma español. Una vez lo hemos localizado, la opción básica es «Spanish» a secas, si no tenemos algún teclado diferente.

Change Wifi Country

Yo no tuve problemas con la wifi antes de configurar esto, pero no sobra busca ES Spain y seleccionarlo, sobre todo si la vamos a conectar por Wifi. En este tutorial, usaremos conexión cableada.

Advanced Options

De todas las opciones que tenemos aquí, solo comento las que nos pueden ayudar a que vaya mejor. Son estas:

Memory Split

Al no tener un escritorio instalado, la GPU (memoria gráfica) no necesita mucho, podemos reducir la cantidad que aparece a 16, que es el mínimo.

SSH

Importantísimo. Sin más.

Según Wikipedia, SSH es el nombre de un protocolo y del programa que lo implementa, y sirve para acceder a máquinas remotas a través de una red.

Es decir, SSH sirve para «entrar» en un ordenador desde otro. Si está activado, podemos tener una línea de comandos en un ordenador diferente y trabajar en la Raspberry. Hasta ahora, SSH venía activado por defecto en Raspbian, pero leí en Raspberry para torpes que van a cambiar esto, al menos en la versión PIXEL, no estaba seguro sobre la Lite que estamos instalando nosotros, pero efectivamente es así, por lo que tendremos que seleccionar esta opción y activarla. Una vez que lo hemos hecho, podemos conectanos a la Raspberry desde otro ordenador.

En Windows se puede usar PuTTY para ello y en Linux no hace falta instalar nada. Veamos:

putty-configuration_018

No hace falta instalar PuTTY, al abrir el archivo descargado se abre directamente esta ventana. En el campo «Host Name (or IP address)» tenemos que escribir lo que aparece en la imagen, cambiando las  XX con unos números que estarán entre 0 y 255. Para saber exactamente qué número poner podríamos ir probando de uno en uno, pero hay una forma mucho más sencilla: cuando  hayamos acabado de configurar la raspberry,,podemos  escribir la orden ifconfig. Sale un montón de información pero lo que tenemos que buscar es la expresion inet address seguida de un número compuesto de cuatro cifras separadas por un punto y que sean las dos primeras esos 192.168. Si estamos conectados al router con un cable, estará en la sección eth0; si estamos usando wifi, estará seguramente en la sección wlan0.

Si lo hemos hecho bien, nos aparecerá una alerta. Es normal, solo nos avisa de que nos estamos conectando a un ordenador nuevo y nunca hemos dicho a PuTTY que se fíe. Pulsar en sí hace que PuTTY, en adelante, confíe en nuestra Raspberry.

putty-security-alert_019

A continuación nos sale una pantalla nueva que nos pedirá el usuario de Rasbpian (pi, si no lo cambiamos) y la contraseña (raspberry por defecto, lo cual tendremos que cambiar en seguida).  Al escribir la contraseña, como suele pasar en Linux, parece que no pasa nada, pero no es preocupante:

pipolkillas-pi-_022

Al pulsar Intro, nos aparece el mismo mensaje que aparece en el monitor de la Raspberry al arrancar, lo que nos confima que esa pantalla «es» la Raspberry.

En Ubuntu y otros Linux, abrimos un terminal (CTRL+ALT+T o abrimos el tablero y escribimos «terminal»). Para usar SSH, la forma es sencilla:

ssh <tunombredeusuario>@192.168.XX.XX

Igual que en PuTTY, cambiamos los dos últimos números por el resultado de ifconfig:

pipolkillas-pi-_023

¡Voilà! A partir de este momento no nos hace falta tener un monitor conectado a la raspberry mientras haya conexión a internet.

Update

Sirve para actualizar el mismo programa raspi-config. Lo más probable es que no haya actualizaciones.


Con esto tenemos configurada nuestra Raspberry y podemos empezar a instalar los programas que vamos a necesitar para que funcione bien nuestro Nextcloud.

Por cierto, en mi experiencia no me ha pasado porque no he desconectado nunca el cable de red que une la Raspberry con el router. Pero si este fuera el caso y hubiera algún problema con la conexión, podría ser porque se ha asignado una IP diferente a la Raspberry. En este caso, recomiendo acudir al clásico blog Raspberry para torpes, donde manuti tiene 3 entradas que nos pueden ser útiles:

Cargar más