Com instal·lar i configurar el teu servidor "núvol" personal

Com instal·lar i configurar el teu servidor "núvol" personal
Photo by engin akyurt / Unsplash
upload in progress, 0
Passos a seguir per configurar Ubuntu Server
En la actual era digital, on estem evolucionant cap a un futur distòpic, l'auto allotjament s'ha de convertir en la norma... Tornem a les arrels, per entendre per què cauen les fulles.

Benvinguts al primer blog sobre com tenir el teu propi servidor i diverses aplicacions auto allotjades per a deixar de dependre de les grans corporacions en la gestió de les nostres dades.


En aquesta guia, explicaré com crear el teu propi servidor "cloud" des de zero. Sense utilitzar cap sistema operatiu preinstal·lat, posarem un sistema operatiu Ubuntu Server nou al maquinari que trieu i el configurareu perquè tingui un dispositiu segur i llest per actuar com a servidor personal.

A mesura que hi afegeixi programari nou, seguiré creant i penjant més guies per explicar com he instal·lat i estic utilitzant la resta de programari. Estigueu atents si voleu aprendre a convertir-vos en un ninja d'Internet.

Nota: Tot el que trobareu aquí (fins i tot la pàgina web que estàs veient), està auto allotjat a un servidor que tinc a casa, i ho faig servir al meu dia a dia. El cost total que he invertit en aquest equipament no supera els 250 euros, incloent el mateix servidor, i perifèrics. Si hagués de pagar per a tots els serveis que hi tinc instal·lats, en menys d'un any ja hauria pagat més del que m'ha costat la inversió inicial.
I el valor real és tot el coneixement que guanyes pel camí.
Si hi ha qualsevol cosa que no us quedi clara, no dubteu en contactar-me.

Problema

Depenem en gran mesura de serveis de tercers, tant per a les nostres dades com per als nostres diners. Estem constantment sota vigilància per les nostres accions i no podem ser lliures fins que no aprenguem a utilitzar els serveis digitals de manera privada.

La constant cessió de les nostres dades permet que les grans corporacions facin negocis amb elles, i han de gastar cada cop més materials, recursos i energia en centres de dades per gestionar-les.

Solució

Instal·lar serveis i aplicacions en un ordinador allotjat a casa. Deixem de regalar les nostres dades per al benefici d'altri i aconseguim ser realment lliure al món digital, sense perdre cap avantatge en utilitzar Internet amb els nostres propis dispositius electrònics.

Doneu sentit als dispositius que, en cas contrari, acabarien a la brossa, contribuint a la reducció de residus i fomentant la reutilització de materials informàtics que acabarien obsolets. L'auto allotjament de serveis i l'ús de programes de codi obert ens beneficien tant a nosaltres com al nostre planeta.

La revolució comença amb petits gestos. Si entenem el poder que tenim i l'usem, mai més ens el podran treure.

Converteix-te en un individu sobirà.


Instal·lació

0. Preparacions

Abans de començar a embrutar-nos les mans (o el teclat), és important que tinguem tot el material necessari per construir el nostre propi servidor cloud personal. En cas contrari, haureu de córrer a la vostra tenda electrònica de confiança a comprar l'adaptador més estrany que se us pugui ocórrer perquè el vostre servidor no té un port determinat.

Assegureu-vos de saber quins ports podeu utilitzar amb el vostre maquinari nou per connectar-hi les següents peces:

  • Un portàtil antic o mini-pc (NUC, raspberry, etc.)
  • Monitor
  • Teclat
  • Cable Ethernet
  • Emmagatzematge extern (HDD o SDD) de com a mínim 1TB
  • Un pendrive

Un cop ho tenim tot, podem començar a preparar la nostra nova configuració.

Abans de connectar-lo a la corrent, connecteu el servidor al router mitjançant un cable Ethernet, connecteu l'emmagatzematge extern a través d'USB o SATA i connecteu tant el teclat a un port USB com la pantalla amb un cable HDMI o DisplayPort.

També, abans d'iniciar el servidor, prepararem el nou sistema operatiu que alimentarà la vostra màquina. En aquest cas, utilitzarem Ubuntu Server 22.04. Podeu trobar l'enllaç de descàrrega aquí: https://ubuntu.com/download/server

Descarregueu la versió més recent i emmagatzmeu-la localment al vostre ordinador.

Descarregueu Balena Etcher: https://etcher.balena.io/ → aquest programari us serà útil cada vegada que vulgueu flashejar un sistema operatiu a un dels vostres dispositius.

Finalment, connecteu el vostre pendrive a l'ordinador, obriu Balena Etcher i trieu el fitxer que heu acabat de descarregar (fitxer .iso d'Ubuntu Server) per flashejar-lo al vostre pendrive.

upload in progress, 0

Un cop finalitzat el flashejat, podeu extreure el pendrive i estarem llestos per iniciar la instal·lació real del vostre servidor personal.


1. Instal·lació del Sistema Operatiu

En aquesta secció explicarem el procés d'instal·lació pas a pas, incloent-hi instruccions especials per utilitzar tot el disc, però també un disc extern i crear una estructura de dades per muntar-lo (/mnt).

ABANS d'encendre el servidor per primera vegada, connecta-hi la memòria USB que prèviament has flashejat amb Ubuntu Server.

Ara, podem engegar el servidor per primera vegada. Connecta'l a la corrent i prem el botó d'engegada, si n'hi ha.

Habitualment, en el primer inici es mostrarà automàticament una finestra amb diverses opcions. En aquest moment, has de prémer una de les tecles que s'haurien d'indicar per accedir al menú d'arrencada o simplement moure't per la llista d'opcions disponibles amb les fletxes del teclat i seleccionar l'opció d'arrencada del menú.

Allà veuràs l'opció d'arrencar des del dispositiu extraïble (memòria USB). Fes clic en aquesta opció. Ara començarà el procés de flashejar tot el sistema operatiu nou al teu servidor cloud personal.

Utilitza les tecles FLETXA AMUNT, FLETXA ABAIX i ENTER del teclat per navegar per les opcions. Segueix les instruccions següents:

  1. 1. A la primera pantalla, selecciona l'idioma que prefereixes (es recomana anglès)
  2. 2. Si hi ha disponible una actualització del programa d'instal·lació, selecciona "Actualitzar al nou instal·lador", prem ENTER i espera
  3. 3. Selecciona la distribució del teclat i la variant (es recomana espanyol per a usuaris nadius de castellà. Si us hi sentiu còmodes també podeu escollir anglès) i prem [done].
  4. 4. Segueix seleccionant "Ubuntu Server" com a base per a la instal·lació, fins a [done], i prem ENTER.
  5. 5. Selecciona la connexió de xarxa d'interfície que vols utilitzar (es recomana Ethernet) i anota la teva IP obtinguda automàticament mitjançant DHCP. (Normalment 192.168.x.xx). Prem [done] Tingues en compte que més tard assignarem una IP estàtica al servidor.
  6. 6. Deixa l'opció següent buida si no vols utilitzar un proxy HTTP per accedir-hi. Prem [done].
  7. 7. Si no vols utilitzar un mirall alternatiu per a Ubuntu, deixa'l buit i prem [done] directament.
  8. 8. A la distribució d'emmagatzematge, aturem-nos-hi per assegurar-nos que entenem el que estem fent aquí (la configuració del sistema de fitxers és MOLT important perquè el teu servidor funcioni correctament). Segons el teu cas, escull una de les següents opcions:
    1. Marca "Utilitza tot el disc", si només tens una unitat d'emmagatzematge principal (1+ TB). En aquest cas, assegura't que desmarques "Configura aquest disc com a grup LVM" abans de seleccionar [done] i prémer ENTER. A continuació, continua amb el pas 9.
    2. Marca "Distribució d'emmagatzematge personalitzada", si vols utilitzar un disc secundari, per exemple, un disc principal per al sistema i un disc secundari per a dades. Assegura't que aquest disc està muntat i formateja'l si tens dubtes que encara pugui tenir dades que no necessites.

En el meu cas, vaig seguir la segona opció ja que tinc un disc intern per al sistema i algunes aplicacions, i un altre disc dur extern per a altres dades que vull mantenir separades del sistema principal en cas que li passi alguna cosa.

En el futur, hauries de veure el teu sistema de fitxers d'una manera similar a aquesta:

upload in progress, 0

Observa com tenim el directori personal (/) muntat a la partició sda2, i el directori d'emmagatzematge extern (/mnt) muntat a la partició sdb1.

  1. 9. Confirma l'acció destructiva seleccionant l'opció [Continua]. Prem ENTER
  2. 10. Segueix seleccionant "Ometre per ara", quan aparegui la secció "Actualitza a Ubuntu Pro", prem ENTER al botó [done]
  3. 11. Tria el teu nom d'usuari i contrasenya. Assegura't que no siguin fàcils d'endevinar ni contrasenyes que s'hagin filtrat a internet (ho pots comprovar a https://haveibeenpwned.com). Encara que no obrim el servidor a la xarxa pública d'internet, la seguretat mai no s'ha de menysprear.
  4. 12. Prem ENTER per marcar "Instal·lar servidor OpenSSH" prement la tecla ENTER, i cap avall per seleccionar la casella [done] i prem ENTER novament
  5. 13. Si vols preinstal·lar programari addicional (no recomanat, es poden instal·lar més tard), selecciona'ls, si no, prem [done] directament per saltar al següent pas.
  6. 14. Ara es duran a terme totes les configuracions anteriors i s'instal·larà el sistema. Això trigarà uns minuts en funció del maquinari utilitzat. Pots mostrar registres extensos prement [View full log] si vols.
    ⌛ Espera fins que finalitzi la instal·lació, quan succeeixi, apareixerà [Reboot now]. Selecciona-ho i prem ENTER.
  7. 15. Quan el missatge et mostri "Elimina el medi d'instal·lació, després prem ENTER", treu la memòria USB del PC i prem ENTER finalment.

Ja tenim el sistema operatiu instal·lat! Ara l'ordinador hauria de reiniciar-se i mostrar-te el missatge per iniciar la sessió. Pots desconnectar el teclat i la pantalla, i continuar connectant-te remotament des del teu ordinador habitual per continuar amb la instal·lació. Si no saps com fer-ho, ho explico a la següent secció 👇.


2. Accés remot per SSH

Connectar la pantalla i el teclat al servidor directament és un bon últim recurs per utilitzar-lo, però idealment volem poder accedir-hi des de qualsevol lloc. Sobretot quan som a casa, però també en cas que instal·lem algunes aplicacions que vulguem utilitzar en el nostre dia a dia, necessitem una manera de connectar-nos remotament a ell, i si és possible, de manera segura i privada.

Per això, en lloc d'utilitzar la pantalla i el teclat, ara iniciarem la sessió al nostre servidor a través d'SSH. SSH és un protocol anomenat Secure SHell, que ens permet crear una connexió xifrada i segura entre dos dispositius.

Per fer-ho, obrirem el terminal al nostre ordinador personal i escriurem la següent comanda:

ssh <usuari>@<IP_del_servidor>

L'adreça IP del servidor es mostrarà a la pantalla del servidor si encara el tens connectat. En cas contrari, el pots trobar mitjançant una aplicació de smartphone com Fing, o utilitzant un software de CLI com Netdiscover, que detecta els dispositius que estan connectats a la mateixa xarxa que tu.

IMPORTANT: Assegureu-vos que esteu connectat a la mateixa xarxa wifi que el vostre servidor personal, en cas contrari Fing serà inútil.

Un cop identificat, podeu accedir al vostre servidor a través de ssh mitjançant aquesta IP i el nom d'usuari que heu seleccionat prèviament.

Normalment les IP tenen aquest format: 192.168.XXX.XXX
Fixeu-vos en la següent imatge com al meu servidor se li ha assignat la IP 192.168.1.79 per a la interfície de xarxa en01.

Genial! Ara hauríeu d'iniciar la sessió dins del vostre servidor! Enhorabona! 😉

upload in progress, 0

No obstant això, encara hi ha un petit problema. Aquesta manera de connectar-nos al servidor és genial, però només funciona si estem a la mateixa xarxa que el servidor. Per tant, ara per ara, només quan som a casa podem connectar-nos-hi.

Per això, el primer que farem al nostre servidor és blindar-lo des de fora i instal·lar una VPN privada per poder connectar-nos-hi des de qualsevol lloc sense preocupar-nos d'estar exposats a internet.

Seguim!


3. Configuracions inicials

Per assegurar-nos que les comunicacions amb el servidor siguin segures, ara aplicarem algunes mesures de seguretat i usabilitat adequades.

  1. 1. Fes que el teu usuari sigui un superusuari
sudo usermod -a -G sudo <usuari>

En aquest comandament, <usuari> substitueix-ho pel nom d'usuari que has escollit durant la instal·lació.

  1. 2. (opcional) Inicia la sessió amb claus SSH –>En lloc d'introduir la contrasenya del servidor cada vegada, també el podem configurar perquè només permeti que determinats dispositius s'hi connectin.

Per fer-ho, necessitem afegir la nostra pròpia clau SSH al fitxer .ssh/authorized_keys teclejant

sudo nano .ssh/authorized_keys

i afegint-hi les nostres claus SSH.

Si no tens una clau SSH, pots crear-ne una al teu ordinador personal (no al servidor) executant aquesta comanda:

ssh-keygen -t rsa -b 2048

Després, simplement copia i enganxa el contingut de la clau generada dins del fitxer authorized_keys, i estaràs a punt per iniciar la sessió autenticant-te amb la teva clau SSH privada, en lloc d'utilitzar la contrasenya.

  1. 3. Com que en el nostre cas hem creat un directori muntat al disc connectat, li donarem permisos suficients al nostre usuari per accedir-hi sense problemes. En el nostre cas, el directori muntat a l'emmagatzematge secundari és /mnt.
sudo chown <usuari>:<usuari> /mnt

En aquesta comanda, <usuari> substitueix-ho pel nom d'usuari que has escollit durant la instal·lació.

  1. 4. Assignarem una IP estàtica al servidor. No volem descobrir cada vegada que el connectem a una xarxa si l'adreça IP ha canviat, per això li assignarem una d'estàtica. Pots escollir la que vulguis (que encara no s'utilitzi) del rang de 192.168.1.2 a 192.168.1.254.

Per modificar la configuració de xarxa actual, necessitem editar el següent fitxer:

sudo nano /etc/netplan/00-installer-config.yaml

A continuació, afegeix les següents línies:

network: 
  ethernets: 
    eno1: 
      dhcp4: false 
      dhcp6: false 
      addresses: 
      - 192.168.1.79/24 
      nameservers: 
        addresses: 
        - 9.9.9.9 
        - 149.112.112.112 
        search: [] 
      routes: 
      - to: default 
        via: 192.168.1.1 
  version: 2

Si no vols que se't tanqui la sessió SSH actual, assegura't d'utilitzar la mateixa IP que el teu router t'havia assignat prèviament a l'IP estàtica.

Nota: També he modificat els servidors de noms per utilitzar els de Quad9 a causa de la major privadesa que ofereix. Pots escollir els que prefereixis, o simplement no afegir-los per a utilitzar els predeterminats.

Desa i tanca l'editor amb CTRL+O i CTRL+X i executa la següent comanda:

sudo netplan apply

Ara, la teva adreça IP i els servidors DNS s'haurien d'haver modificat.

Per comprovar-ho, pots executar ip a, ifconfig i resolvectl status, i hauries de veure els nous valors.

  1. 5. Finalment configurarem i iniciarem el tallafoc preinstal·lat del nostre servidor Linux; UFW (Uncomplicated Firewall) amb les següents comandes:
$ sudo ufw default deny incoming 
$ sudo ufw default allow outgoing 
$ sudo ufw allow 22/tcp comment 'allow SSH from anywhere' 
$ sudo ufw logging off 
# Enable ufw, when the prompt shows you "Command may disrupt existing ssh connections. Proceed with operation (y|n)?", press "y" and enter 
$ sudo ufw enable

4. Connexió des de l'exterior (Tailscale)

Genial, gairebé hem acabat per avui, però fa falta una última cosa abans de plegar. Ara que tenim el servidor correctament protegit i configurat, seria ideal poder-hi accedir des de fora sense sacrificar la nostra privadesa. Per això, utilitzarem un programari VPN privat anomenat Tailscale. Aquesta VPN és, en essència, un túnel WireGuard que no requereix cap coneixement per configurar-lo.

En cas de tenir coneixements més elevats, i vulgueu configurar la vostre pròpia connexió amb WireGuard, endavant! Us donarà més flexibilitat en la configuració que Tailscale, tot i que aquest ofereixi certs serveis que WireGuard no fa.

upload in progress, 0

El més interessant de Tailscale és que encara que sigui un servei de tercers per comunicar-nos amb els nostres dispositius personals, l'empresa no pot veure res perquè tot el tràfic està xifrat de punta a punta (E2EE; End to End Encrypted). Tailscale només ajuda els nostres dispositius a identificar-se i comunicar-se entre ells de manera segura, sense comprometre les dades que envien.

Quan vulgueu crear la vostra pròpia xarxa privada amb Tailscale, necessitareu un compte per connectar els vostres dispositius entre ells. I aquest serà el compte que utilitzareu en tots ells. Tailscale ofereix diverses opcions per iniciar la sessió. En el meu cas, utilitzo el meu compte de Github.

Per tant, anirem al seu lloc web aquí i farem clic a "Prova gratuïta". A continuació, se'ns mostrarà l'opció d'iniciar la sessió i haurem de triar quin proveïdor de serveis utilitzarem. Introduïu les vostres dades d'autentificació i haureu creat el vostre compte de Tailscale.

Instal·lació de Tailscale als nostres dispositius

Un cop dins, volem començar a afegir dispositius nous. La manera més fàcil és fent clic a "Afegeix dispositiu nou" a la part superior esquerra del tauler d'administració. Allà veureu les diferents opcions en funció del sistema operatiu del vostre dispositiu.

upload in progress, 0

Per a dispositius mòbils i d'escriptori, podem descarregar les aplicacions Tailscale i seguir exactament el mateix procediment que hem fet fins ara. Els vostres dispositius començaran a aparèixer al tauler de control un cop inicieu la sessió al vostre compte de Tailscale a través d'un d'ells. Però tingueu en compte que heu d'aprovar individualment cadascun dels dispositius des del tauler d'administració.

Tanmateix, per als nostres servidors, és una mica més complicat. Hauràs d'iniciar la sessió al servidor a través de SSH la primera vegada que el vulguis connectar a Tailscale. Un cop dins, hauràs d'executar l'ordre proporcionada per Tailscale:

sudo curl -fsSL https://tailscale.com/install.sh | sh

Això instal·larà totes les biblioteques i paquets necessaris perquè Tailscale funcioni correctament. Un cop finalitzada la instal·lació, executa la següent comanda al terminal del servidor:

sudo tailscale up

Copia l'URL que et dóna a la sortida del terminal i enganxa-la al teu navegador. Inicia la sessió amb el mateix compte que vas utilitzar anteriorment, i ara tindràs el servidor connectat a través d'un túnel WireGuard amb els teus altres dispositius!

Magia! Sense obrir ports ni lluitar amb la configuració de la xarxa!

Tanmateix, afegirem al nostre tallafoc una nova regla:

sudo ufw allow in on tailscale0 
sudo ufw reload

Ara veureu que Tailscale ha assignat algunes IP als vostres diferents dispositius connectats. Aquestes IP seran les que utilitzarem per accedir a (gairebé) totes les nostres aplicacions allotjades per nosaltres mateixos. Connectar-s'hi a través de Tailscale ofereix beneficis de seguretat i privadesa, ja que tot el tràfic que passa per la vostra xarxa de malla (mesh network) Tailscale serà xifrat de punta a punta (E2EE), de manera que ningú podrà espiar el vostre tràfic encara que estigui dins de la vostre xarxa wifi.

Si ara voleu augmentar encara més la seguretat del vostre servidor permetent només l'inici de sessió mitjançant la xarxa de Tailscale, podeu seguir aquesta guia.

Consell ràpid: Després d'aprovar el vostre dispositiu nou des del lloc web del tauler de control de Tailscale, feu clic a Machine Settings > Disable key expiry. Això garantirà que el servidor SEMPRE estigui connectat a la vostra xarxa privada i no necessiteu tornar a casa per tornar-vos a autenticar cada dos dies.


5. Últim pas: reiniciar el servidor

Doncs ja ho tens! El teu nou "cloud" personal està llest per començar a instal·lar-hi aplicacions!

Ara el tenim protegit del tràfic d'internet extern i ens hi podem connectar a través de Tailscale des de qualsevol lloc del món.

Fem un reinici final i assegurem-nos que un cop tornem a iniciar la sessió tot està correcte. Si no és així, és que t'has saltat algun dels passos i hauràs de revisar quin és el problema que s'ha de resoldre abans de continuar.

Aplica el reinici amb sudo reboot now i després d'uns minuts, intenta iniciar la sessió però aquesta vegada utilitzant l'IP de Tailscale, en lloc de la de la teva xarxa local.

Si pots iniciar la sessió, Tailscale funciona bé. Ara comprova que el sistema d'arxius encara està muntat correctament amb lsblk . Hauries de veure el mateix que hem vist al principi d'aquest article:

upload in progress, 0

En cas que el sistema ho necessiti, també aplica les actualitzacions necessàries. Pots comprovar-ho amb sudo apt list --upgradable

I si tens actualitzacions pendents, executa sudo apt update && sudo apt upgrade

Després d'això, només puc dir-te:
Enhorabona. Estàs en el camí correcte per convertir-te en un veritable individu soberà digital.


Notes finals

En cas de tenir qualsevol dubte, trobaràs les meves dades de contacte a la pàgina de contacte.

Si aquest blog t'ha aportat valor o has après alguna cosa nova, pots ajudar-me compartint-lo a xarxes socials, o deixant-me una donació a través de la icona del llamp que trobareu a la part inferior dreta.
Sí, aquí només s'accepta Bitcoin ⚡