korhonen.cc/content/posts/firewall_rules_openwrt_ipv6_dynamic_prefix/index.fi.adoc
Marko Korhonen dfcf791d6f
All checks were successful
Build and deploy site / Build and deploy site (push) Successful in 53s
Add new post
2024-06-10 17:12:33 +03:00

60 lines
4.2 KiB
Text

---
title: OpenWRT palomuurisäännöt dynaamisella IPv6-prefixillä
description: Helpommat palomuurisäännöt OpenWRT:n kanssa, kun käytössä on dynaaminen IPv6-prefix.
date: 2024-06-10
featured_image: hero.jpg
menu:
sidebar:
name: Palomuurisäännöt OpenWRT:llä ja dynaamisella IPv6-prefixillä
identifier: firewall_rules_openwrt_ipv6_dynamic_prefix
weight: 30
---
= Palomuurisäännöt OpenWRT:llä ja dynaamisella IPv6-prefixillä
Marko Korhonen <marko@korhonen.cc>
v1.0, 2024-06-10
Sain äskettäin IPv6-yhteyden kotiini, joten halusin luonnollisesti lisätä IPv6-tuen palvelimelleni. Törmäsin muutamiin ongelmiin, joita en löytänyt dokumentoituna yhdessä paikassa, joten tässä löytämäni ratkaisu.
== Ongelma
Huomasin nopeasti, että Internet-palveluntarjoajani ei ole toteuttanut IPv6-tukea "oikein". En saa /56 prefixiä prefix delegoinnilla vaan /64-prefixin, jota ei voi jakaa edelleen aliverkkoihin. Tämä pätee kaikkiin mobiilioperaattoreihin Suomessa, ja koska en voi saada kiinteää yhteyttä nykyiseen osoitteeseeni niin tämän on riitettävä.
Prefix delegoinnin puute tarkoittaa, että minun on asetettava RA ja NDP relay tilaan OpenWRT:ssä, eikä minulla ole kontrollia IPv6-osoitteisiin jotka laitteeni saavat. Tämä puolestaan tarkoittaa, että en voi luoda pysyviä palomuurisääntöjä näiden osoitteiden perusteella, koska ne voivat muuttua milloin tahansa.
Muutaman viikon ajan selvisin manuaalisesti muuttamalla palomuurisääntöjä aina, kun prefix muuttui, mutta se ei ollut riittävän hyvä ratkaisu pitkässä juoksussa, koska minulla on paljon palomuurisääntöjä.
== IPv6 SLAAC:n yksityisyyden laajennusten poistaminen käytöstä
Vaikka en saa ennustettavaa prefixiä, voin saada ennustettavan suffixin poistamalla käytöstä IPv6 SLAAC:n yksityisyyden laajennukset käytöstä palvelimellani. Näin suffix (host osa) johdetaan laitteen MAC-osoitteesta ja se pysyy aina samana.
SLAAC:n yksityisyyden laajennukset ovat olemassa syystä, lisäämään yksityisyyttä generoimalla satunnainen tunniste, joka muuttuu ajan myötä. En usko, että tämä on ongelma palvelimelleni, koska se on joka tapauksessa avoin julkisuudelle ja yksityisyyden laajennusten pääasiallinen syy on se, että mobiililaitteita ei voida seurata verkkojen välillä ja palvelimeni pysyy luonnollisesti aina samassa verkossa. On hyvä tiedostaa, että tämä käytännössä tekee MAC-osoitteestasi julkisen, mutta en henkilökohtaisesti näe siinä ilmeistä riskiä.
Käytän NetworkManageria palvelimellani. Voit poistaa yksityisyyden laajennukset käytöstä etsimällä verkkoyhteytesi asetukset hakemistosta `/etc/NetworkManager/system-connections/`. Omalla palvelimellani se oli `Wired connection 1.nmconnection`. Lisää/muuta seuraavat rivit `[ipv6]`-osioon:
[source,config]
----
[ipv6]
addr-gen-mode=eui64
method=auto
ip6-privacy=0
----
Tämän jälkeen voit joko käynnistää NetworkManagerin tai koko koneen uudelleen. Sen jälkeen tietokoneellasi pitäisi olla uusi IPv6 osoite.
Logiikkaa, jolla IPv6-osoite nyt lasketaan, kutsutaan EUI-64:ksi. Löysin loistavan työkalun sen testaamiseen ja paremmin ymmärtämiseen: link:https://eui64-calc.princelle.org/[EUI-64 calculator].
== Dynaamisen prefixin edelleenlähetys
Löysin, että OpenWRT:ssä voi asettaa osan palomuurisäännön kohdeosoitteesta dynaamiseksi. Tätä tekniikkaa kutsutaan dynaamisen prefixin edelleenlähetykseksi. Käsittääkseni se on OpenWRT spesifinen ominaisuus, joten tämä syntaksi ei siis todennäköisesti toimi muissa palomuureissa. Tämän tekniikan avulla voimme käyttää staattista host osaa palomuurisäännön kohdeosoitteena, jonka asetimme palvelimelle edellisessä osassa.
[cols="1,>s"]
|===
|*Palvelimen IPv6-osoite*
|`2001:14bb:8ad:6b:f279:59ff:fe65:f9e4`
|*Palomuurisäännön kohdeosoite*
|`::f279:59ff:fe65:f9e4/-64`
|===
Tässä näet palvelimeni nykyisen IPv6-osoitteen ja siitä johdetun palomuurisäännön kohdeosoitteen. `/-64` kertoo palomuurille, että se jättää huomioimatta osoitteen ensimmäiset 64 bittiä ja tarkastelee vain osoitteen viimeisiä 64 bittiä, jotka ovat host osa.
Lisätietoja palomuurin asetuksista löydät link:https://openwrt.org/docs/guide-user/firewall/fw3_configurations/fw3_ipv6_examples#dynamic_prefix_forwarding[OpenWRT wikistä].