edukia: dyndns-kaxeroa posta sortzen du

This commit is contained in:
txarli committed 2025-11-08 11:38:46 +01:00
1 parent d587d9e5ca
commit 2f194eef4b
4 files changed
+93 -2

No files matched your search

+4 -1
View File
@@ -1 +1,4 @@
export default new Map();
import __ASTRO_IMAGE_IMPORT_17cH5r from "../assets/dyndns-kaxeroa/dyndns-kaxeroa.svg?astroContentImageFlag=&importer=posts%2Fdyndns-kaxeroa.md";
export default new Map([["../assets/dyndns-kaxeroa/dyndns-kaxeroa.svg?astroContentImageFlag=&importer=posts%2Fdyndns-kaxeroa.md", __ASTRO_IMAGE_IMPORT_17cH5r]]);
+1 -1
View File
@@ -1 +1 @@
[["Map",1,2,9,10],"meta::meta",["Map",3,4,5,6,7,8],"astro-version","5.15.3","content-config-digest","f756207bb1b45114","astro-config-digest","{\"root\":{},\"srcDir\":{},\"publicDir\":{},\"outDir\":{},\"cacheDir\":{},\"site\":\"https://txarli.dev/\",\"compressHTML\":true,\"base\":\"/\",\"trailingSlash\":\"ignore\",\"output\":\"static\",\"scopedStyleStrategy\":\"attribute\",\"build\":{\"format\":\"directory\",\"client\":{},\"server\":{},\"assets\":\"_astro\",\"serverEntry\":\"entry.mjs\",\"redirects\":true,\"inlineStylesheets\":\"auto\",\"concurrency\":1},\"server\":{\"open\":false,\"host\":false,\"port\":4321,\"streaming\":true,\"allowedHosts\":[]},\"redirects\":{},\"image\":{\"endpoint\":{\"route\":\"/_image\"},\"service\":{\"entrypoint\":\"astro/assets/services/sharp\",\"config\":{}},\"domains\":[],\"remotePatterns\":[],\"responsiveStyles\":false},\"devToolbar\":{\"enabled\":true},\"markdown\":{\"syntaxHighlight\":{\"type\":\"shiki\",\"excludeLangs\":[\"math\"]},\"shikiConfig\":{\"langs\":[],\"langAlias\":{},\"theme\":\"material-theme-darker\",\"themes\":{},\"wrap\":false,\"transformers\":[]},\"remarkPlugins\":[],\"rehypePlugins\":[],\"remarkRehype\":{},\"gfm\":true,\"smartypants\":true},\"security\":{\"checkOrigin\":true,\"allowedDomains\":[]},\"env\":{\"schema\":{},\"validateSecrets\":false},\"experimental\":{\"clientPrerender\":false,\"contentIntellisense\":false,\"headingIdCompat\":false,\"preserveScriptOrder\":false,\"liveContentCollections\":false,\"csp\":false,\"staticImportMetaEnv\":false,\"chromeDevtoolsWorkspace\":false,\"failOnPrerenderConflict\":false},\"legacy\":{\"collections\":false}}","posts",["Map",11,12,32,33],"hello-world",{"id":11,"data":13,"body":20,"filePath":21,"digest":22,"rendered":23},{"title":14,"slug":11,"description":15,"added":16,"updated":17,"tags":18},"Kaixo, Mundua!","Horrela hasten dira proiektu guztiak frikion unibertsoan.","2025-11-3","2025-11-4",[19],"pertsonala","Kaixo, Mundua! Horrela hasten dira proiektu guztiak frikion unibertsoan. Nik nire proiektu hau horrela hasiko dut eta esdakitpero dut, gerora, jarraipena ematea. Nire blogarekin nator, edo nire interneteko txokoarekin, edo nire lorategi digitalarekin. Edonola ere, korporazio teknokapitalisten atzaparretatik urrun mantenduz, nire pedradak, katxarreoak, eta abar luze bat partekatzeko asmoz sortu dut blog hau.\n\nEz dakit nora joango den proiektutxo hau eta zein izango den bere etorkizuna, baina bidezkoa da nondik datorren adieraztea. Izan ere, [Cassidy Williamsen](https://cassidoo.co/) bloga ezaguna nuen eta, [Astron](https://astro.build) egina zegoela eta MIT lizentzia erabiltzen zuela ikusi nuenean, software librearen printzipioei men eginez, fork bat egin eta nire beharretara egokitu nuen. Ez dut uste hau irakurriko duzunik, Cassidy, baina eskerrik asko! 💚","posts/hello-world.md","9df26a0b44f9746c",{"html":24,"metadata":25},"\u003Cp>Kaixo, Mundua! Horrela hasten dira proiektu guztiak frikion unibertsoan. Nik nire proiektu hau horrela hasiko dut eta esdakitpero dut, gerora, jarraipena ematea. Nire blogarekin nator, edo nire interneteko txokoarekin, edo nire lorategi digitalarekin. Edonola ere, korporazio teknokapitalisten atzaparretatik urrun mantenduz, nire pedradak, katxarreoak, eta abar luze bat partekatzeko asmoz sortu dut blog hau.\u003C/p>\n\u003Cp>Ez dakit nora joango den proiektutxo hau eta zein izango den bere etorkizuna, baina bidezkoa da nondik datorren adieraztea. Izan ere, \u003Ca href=\"https://cassidoo.co/\">Cassidy Williamsen\u003C/a> bloga ezaguna nuen eta, \u003Ca href=\"https://astro.build\">Astron\u003C/a> egina zegoela eta MIT lizentzia erabiltzen zuela ikusi nuenean, software librearen printzipioei men eginez, fork bat egin eta nire beharretara egokitu nuen. Ez dut uste hau irakurriko duzunik, Cassidy, baina eskerrik asko! 💚\u003C/p>",{"headings":26,"localImagePaths":27,"remoteImagePaths":28,"frontmatter":29,"imagePaths":31},[],[],[],{"title":14,"slug":11,"description":15,"tags":30,"added":16,"updated":17},[19],[],"pi-hole-pivpn",{"id":32,"data":34,"body":40,"filePath":41,"digest":42,"rendered":43},{"title":35,"slug":32,"description":36,"added":37,"tags":38},"Pi-Hole eta PiVPN: nabigazio segurua edonon","Nola erabili Raspberry Pi bat nabigazioa babesteko etxean eta mugikorrean.","2025-11-5",[39],"katxarreoa","Etxean, beti daukagu [Raspberry Pi](https://www.raspberrypi.com/) bat sarera konektatuta. Honekin, hamaika erreminta jarri ditut martxan: produkzioan dauzkadan webguneen babes kopiak egiten ditut, prototipoak frogatu ditut, webguneak ostatu... Urrutira joan gabe, webgune hau Raspberry Pi batean ostatuta dago.\n\nAspaldi, [Pi-Hole](https://pi-hole.net/) proiektuari buruz hitz egin zidaten. Honen xedea, DNS zerbitzaritxo bat sortuta, sare osorako tracker eta iragarkiak blokeatzea da. Interesgarria iruditu zitzaidan eta, ikasleei, honi buruzko lanketatxo bat egiteko eskatu nien DNS sistema aztertzen ari ginela. Hortxe pikatu nintzen eta frogatzeko grina etorri zitzaidan.\n\nPi-HoLine truncated [["Map",1,2,9,10],"meta::meta",["Map",3,4,5,6,7,8],"astro-version","5.15.3","content-config-digest","f756207bb1b45114","astro-config-digest","{\"root\":{},\"srcDir\":{},\"publicDir\":{},\"outDir\":{},\"cacheDir\":{},\"site\":\"https://txarli.dev/\",\"compressHTML\":true,\"base\":\"/\",\"trailingSlash\":\"ignore\",\"output\":\"static\",\"scopedStyleStrategy\":\"attribute\",\"build\":{\"format\":\"directory\",\"client\":{},\"server\":{},\"assets\":\"_astro\",\"serverEntry\":\"entry.mjs\",\"redirects\":true,\"inlineStylesheets\":\"auto\",\"concurrency\":1},\"server\":{\"open\":false,\"host\":false,\"port\":4321,\"streaming\":true,\"allowedHosts\":[]},\"redirects\":{},\"image\":{\"endpoint\":{\"route\":\"/_image\"},\"service\":{\"entrypoint\":\"astro/assets/services/sharp\",\"config\":{}},\"domains\":[],\"remotePatterns\":[],\"responsiveStyles\":false},\"devToolbar\":{\"enabled\":true},\"markdown\":{\"syntaxHighlight\":{\"type\":\"shiki\",\"excludeLangs\":[\"math\"]},\"shikiConfig\":{\"langs\":[],\"langAlias\":{},\"theme\":\"material-theme-darker\",\"themes\":{},\"wrap\":false,\"transformers\":[]},\"remarkPlugins\":[],\"rehypePlugins\":[],\"remarkRehype\":{},\"gfm\":true,\"smartypants\":true},\"security\":{\"checkOrigin\":true,\"allowedDomains\":[]},\"env\":{\"schema\":{},\"validateSecrets\":false},\"experimental\":{\"clientPrerender\":false,\"contentIntellisense\":false,\"headingIdCompat\":false,\"preserveScriptOrder\":false,\"liveContentCollections\":false,\"csp\":false,\"staticImportMetaEnv\":false,\"chromeDevtoolsWorkspace\":false,\"failOnPrerenderConflict\":false},\"legacy\":{\"collections\":false}}","posts",["Map",11,12,45,46,78,79],"pi-hole-pivpn",{"id":11,"data":13,"body":19,"filePath":20,"digest":21,"rendered":22},{"title":14,"slug":11,"description":15,"added":16,"tags":17},"Pi-Hole eta PiVPN: nabigazio segurua edonon","Nola erabili Raspberry Pi bat nabigazioa babesteko etxean eta mugikorrean.","2025-11-5",[18],"katxarreoa","Etxean, beti daukagu [Raspberry Pi](https://www.raspberrypi.com/) bat sarera konektatuta. Honekin, hamaika erreminta jarri ditut martxan: produkzioan dauzkadan webguneen babes kopiak egiten ditut, prototipoak frogatu ditut, webguneak ostatu... Urrutira joan gabe, webgune hau Raspberry Pi batean ostatuta dago.\n\nAspaldi, [Pi-Hole](https://pi-hole.net/) proiektuari buruz hitz egin zidaten. Honen xedea, DNS zerbitzaritxo bat sortuta, sare osorako tracker eta iragarkiak blokeatzea da. Interesgarria iruditu zitzaidan eta, ikasleei, honi buruzko lanketatxo bat egiteko eskatu nien DNS sistema aztertzen ari ginela. Hortxe pikatu nintzen eta frogatzeko grina etorri zitzaidan.\n\nPi-Hole proiektuak nola funtzionatzen zuen ikusita, etxean bakarrik ez, eta mugikorrean ere trafikoa nik konfiguratutako Pi-Hole horretatik pasatzea erabaki nuen. Horretarako, [PiVPN](https://www.pivpn.io/) proiektuan oinarritu nintzen.\n\nSistema hau martxan daukat eta erabiltzen ari naiz. Gehiago jakiteko, segi irakurtzen.\n\n## Pi-Hole\n\n### Instalazioa\n\nPi-Hole instalazioa nahiko erraza da. Posible da Docker edukiontzi batean jartzea edo, nahiago baduzu, sistema eragilean zuzenean instalatzea. Nik, hasiera batean sistema eragilean instalatu nuen, baina azkar damutu nintzen Raspberry Pi hau gauza gehiagorako erabiltzen dudalako. Docker edukiontzi batean instalatuta, erabilera ezberdinen uztartze hori errazten dit.\n\nBehin instalatuta, zure DHCP zerbitzarian DNS zerbitzari bezala Pi-Hole gailua konfiguratu beharko duzu. Hau egiteko, hoberena da Raspberry Pi-ak IP helbide estatikoa izatea. Guzti hau, Pi-Hole proiektuaren webguneak ongi azaltzen du, beraz, ez naiz asko luzatuko :).\n\n### Konfigurazioa: blokeo zerrendak\n\nPi-Hole instalazioan, blokeo zerrenda bat lehenetsita dator. Zerrenda honek, 100.000 DNS baino gehiago blokeatuko ditu eta, nire kasuan behintzat, aski izan zen gehien erabiltzen ditudan webguneen iragarkiak blokeatzeko. Hale ere, pixka bat haratago joatea erabaki nuen eta [Githuben \"hagezi\" erabiltzaileak sortutako zerrenda hauek konfiguratu nituen](https://github.com/hagezi/dns-blocklists). Oso eguneratuta daude eta gaika sailkatzen dira. Nik, hurrengo zerrendak sartu nituen:\n\n- [Multi PRO](https://github.com/hagezi/dns-blocklists#pro): oinarrizko DNS orokorrak.\n- [Intelligence](https://github.com/hagezi/dns-blocklists#tif): segurtasuna hobetzeko.\n- [Gambling](https://github.com/hagezi/dns-blocklists#gambling): online apostu etxeak ekiditeko.\n- [NSFW](https://github.com/hagezi/dns-blocklists#nsfw): online pornografia ekiditeko.\n\nZerrenda hauekin, milaka DNS blokeatu ditut eta ez dut inoiz sentitu nire nabigazioa oztopatzen zenik.\n\n## PiVPN\n\nPiVPN instalatzeko, hoberena da [iturrira joatea](https://www.pivpn.io/). Erabiltzeko, hurrengoa beharko duzu:\n- Raspberry Pi gailu bat.\n- Zuk kudeatzen duzun domeinu izen bat.\n- WAN aldeko IP fijoa, edo dyndns moduko bat. Nik, script bat sortu nuen hau lortzeko, baina hurrengo post batean azalduko dut.\n\nBehin webgunean azaltzen den inLine truncated
+4
View File
@@ -0,0 +1,4 @@
<?xml version="1.0" standalone="no"?>
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
<svg version="1.1" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 740 280" width="1480" height="560"><!-- svg-source:excalidraw --><metadata></metadata><defs><style class="style-fonts">
@font-face { font-family: Excalifont; src: url(data:font/woff2;base64,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 truncated

After

Width:  |  Height:  |  Size: 16 KiB

+84
View File
@@ -0,0 +1,84 @@
---
title: Proiektutxoak zure etxean ostatzeko bi modu
slug: dyndns-kaxeroa
description: >-
Nola lortu, IP finkorik ez duzunean, domeinu batek zure etxeko zerbitzaritxo batera apuntatzea?.
tags:
- katxarreoa
added: "2025-11-8"
---
Jende guztiak ez du zerbitzari dedikatu bat kontratatuta, baina edonork izan dezake katxarreo bat egiteko grina. Batzuetan gertatzen da proiektutxo bat montatu duzula (webgunetxo bat, web aplikazio bat, zerbitzu bat...) eta etxeko saretik internet bidez lagunei, familiari, kolektibo bati, etab. erakutsi nahi diezula. Igual `.com` domeinutxo bat erosi duzu eta guzti, total, ez dira horren garestiak. Momentu horretan, arazo bat izango duzu: zure internet hornitzaileak ez dizu IP finko bat ematen eta ezinezkoa egingo zaizu munduari erakustea.
Egoera hau gertatzen denean, hainbat aukera daude. Lehenengoa, internet hornitzaileak IP finkoa emateko aukerak aztertzea da. Askotan, ez dute aukera hau ematen edo kobratu egingo dizute. Ez baduzu horretan sartu nahi zure jostailutxoa erabiltzeko, horratx nik kasu hauetan erabili izan ditudan beste bi aukera.
## Ngrok: tunel bat zure aplikaziora
[ngrok](https://ngrok.com/) tresnak tunel seguruak sortzen ditu zure makina eta webaren artean. Esate baterako, Raspberry Pi batean web aplikazio bat jarri baduzu, aukera ematen dizu web aplikazio horretara apuntatuko duen url publiko bat lortzeko. Gaur gaurkoz, kontua irekita, ezer ordaindu gabe url bat sortzeko aukera ematen du (hori bai, ezin da zuk nahi duzuna izan, berak ausaz sortuko du `xxx-xxx.ngrok-free.ap` url bat).
Lehenengo hilabeteetan, Fosil.eu azpiegitura autogestionatura migratu aurretik, [laba.eus](https://laba.eus) webgunearen backend-a horrela zerbitzatzen genuen nire etxean zegoen Raspberry Pi batetik. Oso ongi funtzionatzen du gauza basikoetarako, ea ez den azkar [kakazten](https://eu.wikipedia.org/wiki/Kakazte_(Internet)). Muga nagusia, makina batean proiektu bakarra izan dezakezula da, ez baitu portu ezberdinekin jolasteko aukerarik ematen.
## Behin-behineko DynDNS sistema moduko bat
Sistema hau xinplea da: garapenerako API bat duen erregistradore bat baliatu, zure zerbitzaritik `cron` bidez IP publikoa eguneratzen joateko. Nik _script_ bat sortu nuen eta orduro egiten dut eguneraketa hori. Modu honetan, nire hornitzaileak esleitu didan IP helbidea aldatuko balu, orria erorita egongo den eperik luzeena ordu betekoa izango da.
![Konexioaren bloke diagrama. Ezkerrean zerbitzaria azaltzen da eta gezi batzuek https://api.apify.org URLra apuntatzen dute, "IP publikoa lortu" mezuarekin. Azpian, zerbitzaritik gezi batzuek IONOSen API-a koadrora apuntatzen dute, "Berritu bada, IONOS eguneratu" mezuarekin.](../assets/dyndns-kaxeroa/dyndns-kaxeroa.svg)
Erregistradoreari dagokionez, denetarik aurkitu dut: APIrik eskaintzen ez duten erregistradoreak, API ziztrin bat erabiltzeko extra bat kobratzen dutenak... Zin dagit ez dudala komisiorik jasoko honekin, baina nik [IONOS](https://www.ionos.es/) erabili dut domeinu izenak erregistratzeko. Arrazoia: [eskaintzen duten APIa](https://developer.hosting.ionos.es/docs/dns) doakoa dela eta ederki dokumentatuta dagoela.
Automatizatu aurretik, zure domeinuari `A` DNS erregistro bat sortu beharko diozu. Zure IP helbide publikoa sar dezakezu, edo `1.1.1.1` IP helbidea, total, aurrerago modu automatikoan jarriko diozu dagokion helbidea eta oso polita izango da funtzionatzen duela ikustea :).
### IONOS-en IP helbidea modu automatikoan eguneratzeko
Lehen esan bezala, _script_ bat sortu dut IONOS-ekin nire IP helbide publikoa eguneratzeko. Horretarako, lehen pausoa [zure _API key_-ak eskuratzea izango da](https://developer.hosting.ionos.es/). Honek bi kode emango dizkizu: publikoa eta sekretua (sekretua ongi gorde beharko duzu).
Behin _API key_ hauek lortuta, bigarren pausua eguneratuta mantendu nahi duzun erregistroaren identifikadoreak aurkitzea izango da. Horretarako, [IONOSek eskaintzen duen Swagger dokumentazioa](https://developer.hosting.ionos.es/docs/dns) baliatu dezakezu. Honen bidez, bi datu lortu beharko dituzu:
1. Zure domeinuaren zonalde identifikadorea: `/v1/zones` _endpointean_. Aurrerago ikusiko duzun kodean `ZONALDE_IDENTIFIKADOREA` balio honekin aldatu.
2. Zonalde horretan, zure erregistroak hartzen duen identifikadorea: `/v1/zones` _endpointean_. Aurrerago ikusiko duzun kodean, `ERREGISTRO_IDENTIFIKADOREA_ balio honekin aldatu.
Lortutako datu hauekin, hurrengo _script_ hau sortu beharko duzu zure ekipoan.
```bash
#!/bin/env bash
ip=$(curl -s https://api.ipify.org)
current_file="./current_ip"
if [ -f "$current_file" ]; then
read -r old_ip < "$current_file"
else
old_ip=""
fi
if [ "$old_ip" = "$ip" ]; then
echo "${ip} IP helbidea konfiguratuta dago"
exit 0
fi
printf '%s\n' "$ip" > "$current_file"
curl -X 'PUT' \
'https://api.hosting.ionos.com/dns/v1/zones/ZONALDE-IDENTIFIKADOREA/records/ERREGISTRO_IDENTIFIKADOREA' \
-H 'accept: application/json' \
-H 'X-API-Key: KEY_PUBLIKOA.KEY_SEKRETUA' \
-H 'Content-Type: application/json' \
-d @- <<EOF
{
"disabled": false,
"content": "$ip",
"ttl": 3600,
"prio": 0
}
EOF
```
_Script_ honek, hurrengo ekintzak egiten ditu:
1. Zure IP helbide publikoa lortzen du.
2. Iada helbide hori kargatu duen aztertzen du, `current_ip` fitxategia erabiliz.
3. Fitxategian IP helbide hori ikusi badu, exekuzioa itxiko du. Bestela, IP helbidea eguneratuko du.
### Segurtasunaren inguruko hainbat ohar
Estrategia hau erabilitzeak, zure router-eko portuak irekitzera behartuko zaitu. Egiten ari zarena badakizu, ongi dago behin-behineko aukera bezala eta pixkatxo bat jolasteko, baina proiektua "serioagoa" bada edo epe luzerako martxan izan nahi baduzu, gomendagarriena ostatzeko zerbitzari dedikatu bat lortzea dela uste dut. Edonola ere, behin-behineko aukera honetan segurtasuna pixkatxo bat hobetzeko, Linux makina batean bazaude, `ufw` (firewall xinple bat) eta `fail2ban` (eraso posibleak blokeatzeko) erabiltzea gomendatuko nuke.