Headscale: Difference between revisions
m rar formaterings glitch |
skrev om konfigureringen |
||
| Line 8: | Line 8: | ||
være kobla opp mot ei statisk IP-adresse. Om denne IP-adressa ikke er statisk, | være kobla opp mot ei statisk IP-adresse. Om denne IP-adressa ikke er statisk, | ||
vil koblinga kun fungere helt til adressa endrer seg. | vil koblinga kun fungere helt til adressa endrer seg. | ||
=== Nyttig å vite === | |||
Headscale gjør en del, la oss se på noen av tingene vi | |||
har konfigurert. | |||
==== [https://headscale.net/stable/ref/dns/ Magic DNS] ==== For at vi skal | |||
kunne slippe å huske ip-adressa til [[Orange Pi|orangepien]], har vi slått på | |||
den innebygde DNS-en til Headscale. DNS-en kan konfigureres på to måter; vi | |||
bruker måten som krever en ekstra fil, <code>extra-records.json</code>. Det har | |||
vi gjort for å gjøre ting mer oversiktlig. | |||
Her er et eksempel på hva som kan være inne i denne fila: | |||
<syntaxhighlight lang="json"> | |||
[ | |||
{ | |||
"name": "pocketid.private.studenterforpalestina.no", | |||
"type": "A", | |||
"value": "100.64.0.2" | |||
} | |||
] | |||
</syntaxhighlight> | |||
''NB! Hvert å merke seg at vi er nødt til å ha 'private' i sub domenet. '' | |||
I 99.999 % av tilfellene vil vi sette <code>value</code> til å være | |||
<code>100.64.0.2</code>, da dette er ip-adressa til [[Orange Pi|orangepien]] på | |||
Tailscale-nettverket. | |||
==== [https://headscale.net/stable/ref/acls/ ACL (Access Control Lists)] ==== | |||
By deafult setter Headscale opp et mesh-nettverk hvor alle maskiner har | |||
tilgang til hverandre. Det vil si at vi i teorien kunne DDoS-et hverandre, | |||
scanna hverandres porter, eller nådd hverandres private tjenester om vi hoster | |||
noe på egen PC. | |||
I vårt tilfelle har vi satt opp ACLen til å ikke tillate dette. For å lære mer | |||
om hvordan vi begrenser dette, kan man sjekke ACL-fila vi bruker, eventuelt | |||
sjekke dette [https://headscale.net/stable/ref/acls/ eksempelet] fra Headscale | |||
sin nettside. | |||
==== Config-fila ==== | |||
Det er enda mer konfigurering som er gjort i selve <code>config.yaml</code>, | |||
men det er alt for mye å dekke her. I tillegg inneholder standard konfigfila | |||
masse kommentarer som vi har beholdt for å forklare hva de ulike valgene gjør. | |||
Kan anbefale å lese mer på den offisielle dokumentasjonen til [https://headscale.net/stable/ Headscale]. | |||
=== Nyttig å vite (Kommandoer) === | === Nyttig å vite (Kommandoer) === | ||
Revision as of 18:33, 15 January 2026
Magien som får oppsettet vårt til å kjøre heter Headscale. Det er en VPN-løsning som bruker Wireguard protokollen. Dette er en selvhosta versjon av Tailscale, som betyr at vi har kontroll på all trafikken selv. I tillegg slipper vi å betale for Tailscale-tjenesta.
Headscale er hosta på VPS-en (Jaffa). Det var vi nødt til å gjøre fordi måten man kobler seg på nettverket er gjennom en URL, og denne URL-en må være kobla opp mot ei statisk IP-adresse. Om denne IP-adressa ikke er statisk, vil koblinga kun fungere helt til adressa endrer seg.
Nyttig å vite
Headscale gjør en del, la oss se på noen av tingene vi har konfigurert.
==== Magic DNS ==== For at vi skal
kunne slippe å huske ip-adressa til orangepien, har vi slått på
den innebygde DNS-en til Headscale. DNS-en kan konfigureres på to måter; vi
bruker måten som krever en ekstra fil, extra-records.json. Det har
vi gjort for å gjøre ting mer oversiktlig.
Her er et eksempel på hva som kan være inne i denne fila:
[
{
"name": "pocketid.private.studenterforpalestina.no",
"type": "A",
"value": "100.64.0.2"
}
]
NB! Hvert å merke seg at vi er nødt til å ha 'private' i sub domenet.
I 99.999 % av tilfellene vil vi sette value til å være
100.64.0.2, da dette er ip-adressa til orangepien på
Tailscale-nettverket.
By deafult setter Headscale opp et mesh-nettverk hvor alle maskiner har tilgang til hverandre. Det vil si at vi i teorien kunne DDoS-et hverandre, scanna hverandres porter, eller nådd hverandres private tjenester om vi hoster noe på egen PC.
I vårt tilfelle har vi satt opp ACLen til å ikke tillate dette. For å lære mer om hvordan vi begrenser dette, kan man sjekke ACL-fila vi bruker, eventuelt sjekke dette eksempelet fra Headscale sin nettside.
Config-fila
Det er enda mer konfigurering som er gjort i selve config.yaml,
men det er alt for mye å dekke her. I tillegg inneholder standard konfigfila
masse kommentarer som vi har beholdt for å forklare hva de ulike valgene gjør.
Kan anbefale å lese mer på den offisielle dokumentasjonen til Headscale.
Nyttig å vite (Kommandoer)
Siden vi kjører Headscale i en docker container, må vi bruke
docker exec for å kjøre kommandoer. Den første "headscale" i kommandoen er
navnet på containeren, mens den andre er selve programmet.
Liste over brukere
docker exec headscale headscale users list
Opprette en ny bruker
docker exec headscale headscale users create <BRUKERNAVN>
Lage en autentiseringsnøkkel
For å generere en nøkkel som lar en ny enhet koble seg til:
docker exec headscale headscale preauthkeys create --user <BRUKERNAVN>
Hjelp-menyen
Hjelp-kommandoene er veldig nyttige. Du kan få oversikt over alt du kan gjøre her:
docker exec headscale headscale --help
NB! Hver underkommando har sin egen hjelp-side som er veldig godt skrevet. Jeg anbefaler å lese dem hvis du er usikker på flagg eller parametere.