Prestaketa

Gida hau John Bowdreren tutorialaren itzulpen librea da. Matrix.org erakundeak berak ere antzeko gida bat dauka, baina ez dago hain garatuta.

  1. oharra: Oracle ez da pribatutasunaren lagun (mezuak zifratuta egon arren, oso litekeena da Oraclek metadatuak eskuratu ahal izatea) eta, beraz, beste aukerak izatekotan, ekidin Oracle. Hala ere, aukerak Matrix Oracleri esker edo WhatsApp erabiltzen jarraitzea baldin badira, nik badakit zein nahiago dudan.

  2. oharra: zerbitzari bat (hardware) debalde eskuratu dezakegun arren, ezinbestekoa izango zaigu domeinu bat erostea. Badaude lehen urtea 0,99 eurotan eskaintzen dituzten erregistro-enpresak (.xyz eta antzeko domeinuak). .eus domeinuei buruzko nformazioa.

Une honetan bi zerbitzari (software) daude Matrix erabili ahal izateko: Synapse eta Dendrite. Dendrite berriagoa da eta sistema-baliabide gutxiago behar dituen arren oraindik garatzen ari diren proiektua da. Horregatik, gida honetan, Synapse instalatuko dugu, Docker kontainer batean hain zuzen ere. Etorkizunean, nahi izanez gero, erraza izan beharko litzateke kontainer hori Dendriterekin ordezkatzea.

Sortu instantzia

Oracle Cloud-en makina birtual (MB) bat sortzea nahiko erraza da. Kontua sortu dugunean (agian ordu pare bat itxaron beharko dugu) goazen Menu -> Compute -> Instances eta sakatu Create Instance botoi urdin handia.

Instantzia honetan nire-domeinua.eus ostatatuko dugu. Izena ezartzea ez da derrigorrezkoa baina lagungarri gerta daiteke etorkizunean, adibidez beste instantzia bat sortzea erabakitzen dugunean, Oraclek bi instantzia eskaintzen baititu.

Instantziak Oracle Linux sistema eragilea erabiliko du guk ezer aldatzen ez badugu. Proiektu honetarako Ubuntu aukera egokiagoa izango litzateke, informazio gehiago dagoelako Synapse Debianen oinarritutako sistema batean exekutatzeari buruz. Gauzak horrela, Image and Shape ataletik gertu dagoen Edit botoia sakatu eta aukeratu Change Image. Zerrendatik hautatu Canonical Ubuntu 20.04 minimal, eta amaitzeko Select Image sakatu aukera baieztatzeko.

Instantziak AMD EPYC 7551 CPU bakarra erabiliko du, 2,0 GHz eta RAM Gb bakarrarekin. Ez da asko baina doakoa da eta nahikoa izan beharko litzateke proiektu honetarako.

Gainontzeko aukerak beren horretan utz ditzakegu. Egiaztatu Assign a public IPv4 address: Yes dioela. [Oracleren hodeiaren abantailetako bat da IPa estatikoa dela eta ez dugula DynDNS zerbitzurik erabili beharko, hasiberrientzako errazagoa]

Goazen beheruntz eta Add SSH keys atala ikusiko dugu. Egiaztatu Generate a key pair for me aukera hautatuta dagoela eta sakatu Save Private Key botoia gakoa gure ordenagailura deskargatzeko, Makina Birtualera SSH bidez konektatzeko beharko dugulako.

Azken pausoa monitorizazioa kentzea izango litzateke:

Show advanced options -> remove monitoring

Orain bai, Create Instance botoi urdina sakatu dezakegu, pantailaren amaieran dagoena, eta minutu batzuk itxaron ondoren, prest izango dugu abiarazteko. Running egoera ikusten dugunean, berdez, konektatzeko prest dago. Idatzi nonbait Makina Birtualaren IPa. (aldatuko ez dena) eta erabiltzailea: ubuntu.

SSH bidez konektatzeko hainbat aukera daude: Secure Shell extension Google Chrome eta web-nabigatzaile baliokideetarako, PuTTY Windowserako (?), edota terminalaren bidez. Gida honetan terminala erabiliko dugu. Linuxen eta macOSen ez dugu ezer instalatu beharko.

Idatzi ssh -i gakoa ubuntu@ip-helbidea eta sakatu intro.

oharra: gakoa terminalera eraman dezakegu ssh -i idatzi ondoren

ubuntu@ip-helbidea:~$ ikusi beharko genuke terminaleko leihoan [edo ubuntu@matrix.nire-domeinua.eus:~$ etorkizunean].

Barruan gaude.

Oracleren monitorizazio-herraminta ezabatu dezakegu (banan-banan exekutatu): snap remove oracle-cloud-agent eta apt purge snapd open-iscsi lxd lxcfs

Bide batez sistema eguneratu sudo apt-get update eta ondoren sudo apt-get upgrade komandoak exekutatuz. Noizean behin egin behar da, batez ere segurtasun-eguneraketak instalatzeko.

DNS ezarpenak

Aurrerago esan bezala, Oraclek esleitu digun IP publikoa ez da aldatuko instantzia itzaltzen badugu ere. Gurea izango da instantzia ezabatu [terminate] arte.

Registrar / Domeinu-enpresaren webgunera joango gara eta A motako bi erregistro sortuko ditugu: nire-domeinua.eus eta matrix.nire-domeinua.eus, gure IP publikoarekin. [Matrixek azpidomeinu bat behar du]

nire-domeinua.eus webgune arrunt bat izango da —html eta css dokumentuak igo ditzazkegu— eta matrix azpidomeinuan Synapsek egingo du lan. Hala ere, identitateak @erabiltzailea:nire-domeinua.eus izatea nahi dugu, ez @erabiltzailea:matrix.nire-domeinua.eus.

Horregatik, SRV erregistroa ere sortuko dugu identitateak kudeatzeko: SRV _matrix._tcp.nire-domeinua.eus eta ondorengo datuak: priority=0, weight=10, port=8448, target=matrix.nire-domeinua.eus, bestelako matrix zerbitzari batzuekin federatu ahal izateko.

[domeinua nagusia eta matrix bi zerbitzari desberdinetan izan nahi badituzue, prozesua korapilatsuagoa da. Gida originala irakurtzea gomendatzen dizuet]

Suebakiaren ezarpenak

Synapse 8008. atakari adi egongo zaio eta 8448. ataka ere badarabil federatutako beste Matrix zerbitzariekin harremana egon dadin. Ataka horiek ikusgai egin ordez, reverse proxy bidez babestuko dugu Synapse, HTTPS eta 443 ataka erabiliz. HTTP eta 80. ataka ere eskuragarri egon beharko dira ACME ziurtagirietarako. Bi suebaki ditugu: Oracle Cloud eta Makina Birtualaren barnean dagoena.

Lehenengo Oracle Cloudena moldatuko dugu. Gure instantziaren xehetasunak erakusten dituen gunera jo beharko dugu eta Primary VNIC atalean dagoen subnetean klikatu beharko dugu.

Security Lists aurkitu beharko dugu eta Default Security List hautatu.

Ingress Rules atalak suebakiak baimendutako sarrera atakak zerrendatzen ditu eta hasieran SSH baino ez du ahalbidetzen. Guk Add Ingress Rules botoia sakatu beharko dugu.

Irudikoa gehitu:

Zerrendaren amaieran agertuko zaigu.

Honi esker, internetetik gure instantziara konexioak ahalbidetuko ditugu, baina sistema eragileak (hots, Ubuntuk) konexio horiek deuseztatuko ditu bere suebakia dela-eta. Horretarako iptables delakoa aldatu beharko dugu.

Exekutatu sudo iptables -L INPUT --line-numbers uneko ezarpenak ikusi ahal izateko. Horrelako zerbait ikusi beharko genuke:

Chain INPUT (policy ACCEPT)

num target prot opt source destination

  1. ACCEPT all – anywhere anywhere state RELATED,ESTABLISHED

  2. ACCEPT icmp – anywhere anywhere

  3. ACCEPT all – anywhere anywhere

  4. ACCEPT udp – anywhere anywhere udp spt:ntp

  5. ACCEPT tcp – anywhere anywhere state NEW tcp dpt:ssh

  6. REJECT all – anywhere anywhere reject-with icmp-host-prohibited

————— 6. lerroa (REJECT all) baino lehen 80 eta 443. atakak gehitu behar ditugu:

sudo iptables -I INPUT 6 -m state --state NEW -p tcp --dport 80 -j ACCEPT

sudo iptables -I INPUT 6 -m state --state NEW -p tcp --dport 443 -j ACCEPT

Eta ondoren hasierako komandoa exekutatuko dugu HTTP eta HTTPS zuzen gehitu ditugula baieztatzeko. 6. eta 7. lerroetan HTTP eta HTTPS ikusi beharko genituzke, hurrenez hurren.

Aldaketa hauek behin-betikoak izateko, ondorengo komandoa erabiliko dugu:

sudo netfilter-persistent save

eta hau ikusi beharko genuke:

run-parts: executing /usr/share/netfilter-persistent/plugins.d/15-ip4tables save

run-parts: executing /usr/share/netfilter-persistent/plugins.d/25-ip6tables save

Honen antzeko zerbait ikusi beharko genuke:

Reverse proxy konfiguratzen

Apache eta Nginx erabili daitezkeen arren, Caddy errazagoa da, besteak beste ziurtagiriak automatikoki kudeatu beharko lituzkeelako.

Caddy instalatzeko exekutatu ondokoak, banan-banan:

sudo apt install -y debian-keyring debian-archive-keyring apt-transport-https

curl -1sLf 'https://dl.cloudsmith.io/public/caddy/stable/gpg.key' | sudo apt-key add -

curl -1sLf 'https://dl.cloudsmith.io/public/caddy/stable/debian.deb.txt' | sudo tee /etc/apt/sources.list.d/caddy-stable.list

sudo apt update

sudo apt install caddy

Eta orain Caddyren ezarpenak moldatuko ditugu. Exekutatu:

sudo nano /etc/caddy/Caddyfile

Honako hau idatzi:

nire-domeinua.eus { root * /var/www/html file_server }

nire-domeinua.eus:8448 { reverse_proxy http://localhost:8008 }

matrix.nire-domeinua.eus { reverse_proxy /_matrix/* http://localhost:8008 reverse_proxy /_synapse/client/* http://localhost:8008 }

Gorde aldaketak ctl+o teklak sakatuz eta ondoren intro. ctl+x fitxategia ixteko.

Abiarazi Caddy, eta berrabiarazi ezarpen berriak erabil ditzan (banan-banan):

sudo systemctl enable caddy

sudo systemctl start caddy

sudo systemctl restart caddy

Nabigatzailean https://matrix.nire-domeinua.eus bisitatzerakoan orri zuri bat ikusiko dugu, baina ziurtagiria duela egiaztatuko dugu. Ondo goazelaren seinale.

Hurrengoa: Synapse instalatu