Aprendre i Compartir

En aquest blog aniré compartint el que aprenc i el que em sembla

Primers passos amb YunoHost

May 07, 2020 — Xaloc

En l'entrada anterior veiem com instal·lar YunoHost. Així que ara ens trobem amb una màquina que gasta llum i que no serveix absolutament per a res a casa. No cal que em doneu les gràcies :).


Bé, si insistiu intentarem arreglar una mica la situació. Un dels primers problemes és que l'accés a internet a casa nostra està configurat per tal de que nosaltres podem navegar per fora però per a evitar que ens puguin entra des de fora. Però la idea d'un servidor és que hi puguem accedir des d'on vulguem. Així que haurem de configurar algunes coses. Part dels passos que explico a continuació els podeu veure en un taller que vaig fer durant els Domingos Negros de Hatthieves.

En el cas de només voler accedir al nostre servidor des de dins de casa no cal que toquem res. Podrem accedir-hi per mitjà de la IP local que ja ja havíem vist com trobar anteriorment i també anant a yunohost.local. Segurament veurem un problema amb el certificat, però no patiu, no estem surtin a un món salvatge i malvat, encara estem dins de casa i només intentem accedir al servidor.

Ara bé si la idea és tenir un núvol, per exemple, i que hi puguem pujar i baixar coses des de qualsevol lloc haurem de permetre l'accés de l'exterior cap a la nostra xarxa. Hi ha una cosa anomenada UPnP per a tals efectes, que funciona automàgicament. Però sembla que no funciona massa bé amb YunoHost així que no podrem gaudir de mètodes automàgics.

La configuració l'hem de canviar a nivell del router de casa nostra. Per accedir a aquesta configuració haurem d'anar a la base de la nostra banda local. És a dir, la IP del nostre servidor però amb un 1 al final. En el meu cas el meu servidor té la IP local 192.168.1.111, així que el router està al 192.168.1.1

Per canviar la configuració podem obrir el nostre navegador preferit i a la barra d'adreces posar la IP del router. I aquí s'acaba el que us puc explicar detalladament de com s'ha de configurar. Cada router és diferent i cada proveïdor pot afegir alguna cosa pel mig. A la pàgina de YunoHost trobareu també informació general de com s'ha de configurar. Tot i això intentaré explicar el millor que pugui el que hem de fer al router.

Dins de la configuració del router haurem de buscar una cosa anomenada "Single port forwarding" o similar que permetrà redireccionar alguns ports cap a la IP del nostre servidor. Els principals ports que voldrem redireccionar són els ports 80, 443 i 22, que són, respectivament els port de HTTP, HTTPS i SSH. Això ens permetrà connectar-nos al servidor via web i via terminal.

Aquesta redirecció l'haurem de fer cap a una IP local, la del nostre servidor. Però aquesta IP pot canviar, així que haurem de fer que el nostre servidor tingui sempre la mateixa IP. Per això haurem de buscar una cosa com "DHCP reservation" i dir que la adreça MAC del servidor rebi sempre la mateixa IP. Sí, ja se que parlo xinès xifrat. Que en el lloc que diu la cosa rara en anglès posis allà on cap la IP del servidor que ja hem posat 28 vegades i en l'altre camp el numeret que ara et dic com trobar. Pel numeret aquest executem el següent (des del servidor evidentment, que volem el numeret del servidor):


	ip link

Ens sortiran varies coses, si em vau fer cas en l'etapa d'instal·lació i heu connectat per cable el servidor us heu de fixar en el camp que te enp... o eth... El numeret són el seguit de xifres i lletres separats per ":", no us poso la meva perquè no cal que us passi l'identificant de la meva màquina igual que no poso el meu DNI. Si no m'heu fet cas haureu de mirar algun dels altres camps, però si sou tan valentes per fer el que us sembla ara us apanyeu.


Un cop això fet ara ja hauríem de poder connectar-nos utilitzant el nom de domini que hem triat durant la instal·lació tant des del navegador com per ssh. Així que això farem, aquí ja sabeu el mètode que em va ;)


	ssh admin@domini.el.nostre

Ja tenim el router configurat però seguim tenint el problema del certificat, i de que no tenim ni usuàries ni aplicacions, vaja detallets sense importància. Però com que sou així ens haurem de fixar en els detalls.
Anem a arreglar el problema del certificat primer, però abans de tot farem una cosa bastant important en tota nova instal·lació, actualitzar!!


	sudo yunohost tools update
	sudo yunohost tools upgrade --system

Les comandes de yunohost sempre hauran d'executar-se com a super usuària (d'aquí el sudo), en la primera mirem quins canvis es poden baixar i en la segona els fem, però només en el sistema i no actualitzem les aplicacions. Tampoc en tenim, però s'ha d'especificar igualment.

Ara si el certificat!


	sudo yunohost domain cert-install

Si ho executem així ens crearà un certificat per a tots els dominis, en principi ara només en tenim un, però si en tenim més podem especificar per quin dels dominis volem instal·lar el certificat afegint el nom del domini al final de la comanda.

Continuem amb els detallets, anem a crear una usuària


	sudo yunohost user create nomusaria

Ens demanarà el nom, el cognom, el correu (ha de ser un correu acabat amb el nostre domini!) i si volem posar un límit en la quota de correus electrònics. I ja tindrem la primera usuària al nostre servidor.


Anem a afegir serveis!

Aquí trobareu una llista de les moltes aplicacions que es poden instal·lar, també podem fer sudo yunohost app list o a la interfície web buscar el botonet d'instal·lar una aplicació. Una cosa important a vigilar serà el nivell de l'aplicació. Els nivells de les aplicacions diuen com de ben integrades estan amb el sistema, a major nivell més funcionalitats tindrà. En general només voldrem instal·lar aplicacions de nivell 7 o 8, per les altres haurem de vigilar abans de fer-ho. Aquí començarem per instal·lar una de les més divertides, l'aplicació per tenir el nostre núvol. En el nostre cas serà Nextcloud.


	sudo yunohost app install nextcloud

Ens demanarà algunes coses, com ara en quin domini ho volem instal·lar (per si en tenim més d'un), quina de les usuàries en serà l'administradora, en quin camí ho volem instal·lar i potser quelcom més, però res que no puguem respondre.

En el cas de Nextcloud una idea interessant és que els fitxer que posem al núvol és guardin en una memòria diferent a la del sistema per no ocupar-la tota i tenir més espai (especialment si el nostre servidor és una RaspberryPi). Però això ja ho farem en una altra entrada si en teniu moltes ganes.

Un cop donades les informacions que ens demana veurem que comencen a sortir línies de caràcters que deuen dir quelcom important de com va la instal·lació i que obviarem, si tot va bé al cap d'una estona (que depen de la potència de la màquina) tindrem l'aplicació instal·lada.


Tot i les queixes ara si que ja tenim un servidor a casa, al que ens podem connectar des de qualsevol lloc (amb una connexió a internet) i realment dona algun servei. Ara a gaudir-ne! Afegiria també que a gaudir-ne sense problemes però n'hi haurà, no ens enganyem. Però serà amb aquests problemes que aprendrem, i per quan tenim problemes hi ha les còpies de seguretat. Que com es fan? Potser algun dia us ho expliqui...


Això és tot per avui! Fins la propera.

Etiquetes: yunohost, self-hosting, allotjament-propi, DomingosNegros, Nextcloud

Instal·lar YunoHost

May 02, 2020 — Xaloc

Comencem pel començament, cosa que no se'm dona massa bé. YunoHost és una distribució de GNU/Linux (ja ho he dit bé una vegada, les altres si veieu només Linux no cal queixar-se) basada en Debian que incorpora una gran quantitat d'eines que fan de gestionar un servidor una feina molt més fàcil i a l'abast de moltes.

Amb YunoHost no ens hem de preocupar de configurar cada nou servei ni de establir les mesures de seguretat bàsiques, el sistema operatiu ho fa per nosaltres. A més a més afegir nous serveis, serà tan fàcil com afegir una nova aplicació de la "botiga" d'aplicacions de YunoHost. Entre aquestes aplicacions trobarem multitud de serveis de tota mena. Hi podrem trobar xarxes socials, núvols personals, eines per a còpies de seguretat o fins i tot jocs.

Si voleu una guia de com instal·lar YunoHost a la seva pàgina en tenen una de molt maca, així que ja podeu deixar el post aquest i anar cap allà. O si per alguna estranya raó us voleu quedar aquí per vosaltres mateixes.


Ara que ja sabem, o no però ens és igual, què és YunoHost procedim a la instal·lació. Per poder instal·lar YunoHost necessitarem una màquina on fer-ho (gran sorpresa), no cal una gran màquina amb una RaspberryPI o un ordinador vell ja fem. Tampoc cal que la tinguem a casa la màquina, pot ser un servidor virtual privat (VPS, que diuen els anglesos), però en aquest cas la instal·lació serà una mica diferent i també perdem la màgia de poder veure i tocar el nostre núvol. També necessitarem connectar l'ordinador o la RPI en la que instal·larem YunoHost a internet per cable. En principi el wifi també serveix però perdem molta velocitat així que no fem el ruc i posem el cable!

Com us comentava YunoHost és una distribució de Linux així que d'entrada el procés per instal·lar és exactament el mateix que per qualsevol altra distro (utilitzem el llenguatge dels guais que és més curt).

Això vol dir descarregar i posar la "iso" en el nostre sistema. El procés varia lleugerament en funció de si ho hem de fer en un pc o en una RaspberryPi. Intentaré cobrir el dos casos el millor que pugui (és a dir malament, però és el que hi ha).

De totes maneres la majoria dels passos són idèntics en els dos casos. Primerament haurem de descarregar la iso del gust (amb anglès li foten "flavour" així que perquè no) que li toca al nostre maquinari, aquesta cosa rara dels 32 bits, 64 bits, ARM i tal. Si no sabeu de què parlo és perquè jo tampoc ho se massa així que demaneu a un motor de recerca.

Pas 0 - Descarregar la ISO

Direm que tenim un ordinador més aviat nou així que descarreguem la "iso" per 64 bits, com que cada interfície gràfica és un món però totes les línies de comandes són iguals posarem les instruccions per la línia de comandes (que li diré terminal perquè sinó això quedarà més llarg que la Bíblia, i més avorrit). Això si, com intenteu fer-ho en un Ruindows no funcionarà. No és que vulgui ser purista però ja no se com funcionen.

També descarregarem alguns fitxers extra per tal de verificar que no s'hagi corromput el fitxer i estar segurs que és el fitxer que han penjat la gent de YunoHost i no un malvat hacker d'aquests ;P. Serà important recordar la carpeta en al que ho posem, en el meu cas direm que és ~/yunohost/


	wget https://build.yunohost.org/yunohost-stretch-3.6.4.6-amd64-stable.iso
	wget https://build.yunohost.org/yunohost-stretch-3.6.4.6-amd64-stable.iso.sig
	wget https://build.yunohost.org/yunohost-stretch-3.6.4.6-amd64-stable.iso.sha256sum

La primera línia baixa la famosa distro, la segona la firma i la tercera el checksum de la iso. Hi ha altres maneres de descarregar però aquesta funciona així que serem feliços amb això. Anem a comprovar aquests fitxers, necessitem gpg i alguna coseta així però acostumen a venir preinstal·lats en les distros. En el cas de la RaspberryPi (RPI) fem el mateix però amb el gust per la RPI.

Pas 1 - Comprovem el que hem baixat


	gpg --verify yunohost-stretch-3.6.4.6-amd64-stable.iso.sig yunohost-stretch-3.6.4.6-amd64-stable.iso

Pot ser que ens surti un error dient que no tenim la clau pública ens sortirà la clau i podem obtenir-la fent els següent:


	gpg --recv-key  1904C5B42E4856DCD4E9CF96360AAF3259A3E6FF

Tornem a provar i hauríem de tenir un missatge com el següent:


	gpg: Signature made dilluns, 12 d’agost de 2019, 01:42:36 CEST
	gpg:                utilitzant RSA clau 1904C5B42E4856DCD4E9CF96360AAF3259A3E6FF
	gpg: Good signature from "YunoHost " [desconeguda]

L'important és que surti el good o bo. Anem a veure ara que el fitxer sigui efectivament el que toca, comprovem el checksum.


	sha256sum -c yunohost-stretch-3.6.4.6-amd64-stable.iso.sha256sum

Ens hauria de sortir el missatge següent si tot va bé:


	yunohost-stretch-3.6.4.6-amd64-stable.iso: CORRECTE

Un cop comprovat que hem baixat el que volíem ja ho podem posar a un USB i començar a instal·lar el sistema. Aquí també hi ha mil i una maneres de fer-ho, veurem una que funciona. Anem amb compte, podem fer una gran destrossa al executar això, així que a vigilar i jo no em faig responsable de cap ordinador que deixi de funcionar així que res de venir a plorar.

Pas 2 - Gravem la ISO al USB

Un cop el USB connectat executem això lsblk per veure quina partició és. El resultat és alguna cosa així:


	NAME   MAJ:MIN RM   SIZE RO TYPE MOUNTPOINT
	loop0    7:0    0 217,7M  1 loop /snap/atom/247
	loop1    7:1    0  93,9M  1 loop /snap/core/9066
	loop2    7:2    0 217,8M  1 loop /snap/atom/248
	loop3    7:3    0  93,8M  1 loop /snap/core/8935
	sda      8:0    0 447,1G  0 disk 
	├─sda1   8:1    0   512M  0 part /boot/efi
	└─sda2   8:2    0 446,6G  0 part /
	sdb      8:16   1   7,5G  0 disk 
	sr0     11:0    1  1024M  0 rom  

En el meu cas veig que el USB de 8GB que he connectat (com veieu vigilar la mida ajuda!) és a la partició sdb. En el teu cas pot ser un altra així que atenció a canviar-ho en la següent comanda! Aquesta gravarà la iso al USB. Si ens equivoquem de partició pot ser que esborrem tot el sistema així que al lloro. Recordeu aquella carpeta que calia recordar, ara és el moment de fer-ho. En la comanda haurem de posar la carpeta amb el nom de la iso al if i la partició de fa un moment (amb /dev/ al davant) al of


	dd bs=4M if=~/yunohost/yunohost-stretch-3.6.4.6-amd64-stable.iso of=/dev/sdb

És possible que la comanda s'hagi d'executar com a super usuària així que si ens surt un error provem amb un bonic sudo al davant. De nou, aneu amb compte!!

Per la RPI fem exactament el mateix però en una targeta SD en lloc del USB.

Molt bé ja tenim l'USB (o targeta SD) preparat per a la instal·lació, ara tocar instal·lar. En aquest punt és en el que si ho estem fent en la RPI som felices, ja està instal·lat així que podem saltar-nos aquest pas, només haurem de posar la targeta SD que acabem de preparar a la RPI. Per les altres tampoc és tan.

Pas 3 - Instal·lem el sistema

Connectem l'USB a l'ordinador, vigilem de dir-li que s'arrenqui des de l'USB i no des del disc dur. Veureu que s'obra un menú d'instal·lació. Podem triar entre "Install" i "Graphical Install", francament la diferència no és molta així que podem fer-ho directament amb la primera opció. La resta del procés ens ve guiat i és exactament el mateix que el d'instal·lar una Debian i segur que trobarem guies per això. Només dir-vos que millor instal·lar-ho en tot el disc, ja que no hauríem d'utilitzar l'aparell per a res més que per fer de servidor per tal de no sobrecarregar-lo.

Després d'un ratet hauríem de tenir els sistema instal·lat, anem a fer la post instal·lació.

Pas 4 - Connectar a la màquina

Fa una moment les de la RPI eren les felices, ara és a la inversa. Però no patiu, tampoc és tan difícil. Val a dir que amb l'ordinador podem seguir els mateixos passos que amb la RPI. Però és complicar la cosa inútilment així que per vosaltres fareu.
Si tenim l'ordinador veurem que ja tenim un terminal obert, si ens demana autenticar-nos el nom d'usuària és: root i la contrasenya: yunohost. I ja estem connectades.

Per la gent amb RPI, el problema és que no tenim la pantalla ni el teclat per fer el mateix que amb l'ordinador. Així que una opció és connectar una pantalla i un teclat i fer el mateix que les altres. L'altra és connectar-se a la RPI per SSH, per això ens farà falta saber quina és la IP local de la nostra RPI. Per fer-ho executarem dues comandes, la primera per saber el rang de la nostra xarxa local i la segona per trobar la nostra RPI:


	ifconfig -a

Que dona una cosa així:


	enp14s0: flags=4099  mtu 1500
	        ether 3c:07:71:5e:af:7b  txqueuelen 1000  (Ethernet)
	        RX packets 0  bytes 0 (0.0 B)
	        RX errors 0  dropped 0  overruns 0  frame 0
	        TX packets 0  bytes 0 (0.0 B)
	        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0
	
	lo: flags=73  mtu 65536
	        inet 127.0.0.1  netmask 255.0.0.0
	
	wlp7s0: flags=4163  mtu 1500
	        inet 192.168.1.132  netmask 255.255.255.0  broadcast 192.168.1.255

Amb això veig que el meu rang és el 192.168.1.X així que aquí executarem la segona comanda:


	nmap -p 22 192.168.1.0/24

Sí no tenim nmap instal·lat ho podem fer amb sudo apt install nmap si estem en una distro filla de Debian.
La comanda nmap dona una cosa així:


	Starting Nmap 7.60 ( https://nmap.org ) at 2020-05-02 03:01 CEST
	Nmap scan report for _gateway (192.168.1.1)
	Host is up (0.057s latency).
	
	PORT   STATE    SERVICE
	22/tcp filtered ssh
	
	Nmap scan report for 192.168.1.111
	Host is up (0.0092s latency).
	
	PORT   STATE    SERVICE
	22/tcp filtered ssh
	
	Nmap scan report for xaloc (192.168.1.132)
	Host is up (0.00017s latency).
	
	PORT   STATE  SERVICE
	22/tcp closed ssh

Aquí hem de buscar una IP que no tingui el port 22 tancat i que no sigui la 192.168.1.1 que serà la nostra RPI, en el meu cas 192.168.1.111. I per connectar-nos utilitzem el següent:


	ssh root@192.168.1.111

Ens demanarà una contrasenya que serà yunohost i ja ens haurem connectat.

Pas 5 - Post instal·lació

La post instal·lació s'executa amb:


	yunohost tools postinstall

Durant el procés de post instal·lació ens demanaran el nostre domini. Si en tenim un és el moment de posar-lo. Si no és el cas cap problema, YunoHost està aquí per salvar-te. Pots escollir el domini que vulguis acabat en .noho.st, .nohost.me o .ynh.fr . És a dir, una cosa de l'estil domini.noho.st, domini.nohost.me o domini.ynh.fr. Ell tot solet s'ocuparà de configurar-ho tot.

També ens demanarà la contrasenya d'administració, que servirà per als usuaris admin i root penseu en escollir-ne una de bona, tot i que no us deixarà posar-ne una amb menys de 8 caràcters. També serà important recordar-la o perdrem accés al servidor!!

Un cop això fet farà algunes configuracions, activarà els serveis de base i ja tindrem el nostre YunoHost instal·lat!


Això vol dir que ja tindreu el vostre núvol i tots els serveis funcionant? Doncs no, només hem instal·lat la base. Ara toca una mica de configuració a nivell de router de casa i començar a instal·lar serveis (que aquí seran aplicacions) i afegir usuàries. Però ja ho farem en un altre post que està quedant llarguet aquest ja.


Això és tot per avui! Fins la propera.

Etiquetes: yunohost, instal·lar, self-hosting, allotjament-propi