Firewall für "Self-made-Router" mit Linux, nftables-Firewall

SvenjaW

Newbie
Registriert
Juni 2023
Beiträge
2
Hallo zusammen,

wir sind gerade dabei uns einen eigenen Router mit einem Bananpi R64 aufzusetzen. Als Betriebssystem nutzen wir ArchLinux und als Firewall sind wir gerade dabei entsprechende Regeln mit nftables zu konfigurieren. Hat hier jemand schonmal Erfahrung gesammelt? Wir würden gerne mehrere getrennt Subnetze einrichten (home, private, guest, evtl. noch weitere). Die Zuordnung zu den Subnetzen würden wir gerne über die MAC-Adressen machen (Listen mit MAC-Adressen für home und private, alle unbekannten MAC-Adressen ins Guest-Netz). Macht das aus eurer Sicht Sinn? Oder gibt es da noch bessere Möglichkeiten.
Bisher haben wir die physikalischen Interfaces (WAN, mehrere Eth-Ports, Wifi-Interface) mit einer Bridge miteinander verbunden. Der Wifi-AP ist mit hostapd realisiert und dnsmasq dient als DHCP und DNS-Server. Idee war es jetzt den Netzwerkverkehr anhand der MAC-Adresse auf weitere "in der Luft hängende" Bridges aufzuteilen, um die Subnetze zu realisieren. Wisst ihr, ob und wie eine Weiterleitung der Datenverkehrs an die verschiedenen Bridges mit nftables möglich ist? Habt ihr bessere Ideen, um die Subnetze zu erstellen? Evtl. VLANs basierend auf dem Bridge-Interface? Wie würde da die Zuordnung erfolgen? Schön wäre es mit möglichst wenigen Services auszukommen und möglichst viel mit nftables zu realisieren...

Ich bin gespannt auf eure Ideen und Erfahrungen.:)
 
Was nftables angeht bin ich tatsächlich raus, aber ich würde andere Subnetze grundsätzlich immer mit VLANs realisieren. Sonst hast du ja grundsätzlich alles immer noch im gleichen L2, wenn auch mit anderer Subnetzmaske. erweiter ich die dann komm ich ja auch wieder überall hin.

Sonst läuft hier ne *sense die sich darum kümmert, aber ich denke mal der Sinn des ganzen ist es genau sowas nicht zu nutzen? :D
 
  • Gefällt mir
Reaktionen: madmax2010
subnetze / netzaufteilung wuere ich in netplan // /etc/network/interfaces & Co machen
Grub:
JSON:
network:
  version: 2
  renderer: networkd
  ethernets:
    eth0:
      addresses: []
  vlans:
    eth0.1:
      id: 1
      link: eth0
      addresses: [10.123.1.1/24]
    eth0.2:
      id: 2
      link: eth0
      addresses: [10.123.2.1/24]
    eth1.3:
      id: 3
      link: eth1
      addresses: [10.123.3.1/24]
    eth1.4:
      id: 4
      link: eth1
      addresses: [10.123.4.1/24]
    eth2.5:
      id: 5
      link: eth2
      addresses: [10.123.5.1/24]
    eth2.6:
      id: 6
      link: eth2
      addresses: [10.123.6.1/24]
    eth3.7:
      id: 7
      link: eth3
      addresses: [10.123.7.1/24]
    eth3.8:
      id: 8
      link: eth3
      addresses: [10.123.8.1/24]
    eth3.9:
      id: 9
      link: eth3
      addresses: [10.123.9.1/24]
    eth3.10:
      id: 10
      link: eth3
      addresses: [10.123.10.1/24]

dnsmasq schaut dann so aus:
Code:
interface=eth0.1
dhcp-range=10.123.1.2,10.123.1.254,255.255.255.0,12h

interface=eth0.2
dhcp-range=10.123.2.2,10.123.2.254,255.255.255.0,12h

interface=eth1.3
dhcp-range=10.123.3.2,10.123.3.254,255.255.255.0,12h

[/QUOTE]
usw

Leases steuerst du hiermit ganz gut:
dhcp-option=3,10.123.1.1
dhcp-option=6,10.123.1.1, 8.8.8.8
dhcp-host=00:01:02:03:04:05,set:device1,10.123.1.10
tag:device1,option:router,10.123.1.1
tag:device1,option:dns-server,10.123.1.1

und auch welcher traffic fuer wen wo lang soll
 
SvenjaW schrieb:
Die Zuordnung zu den Subnetzen würden wir gerne über die MAC-Adressen machen (Listen mit MAC-Adressen für home und private, alle unbekannten MAC-Adressen ins Guest-Netz).
[..]
. Idee war es jetzt den Netzwerkverkehr anhand der MAC-Adresse auf weitere "in der Luft hängende" Bridges aufzuteilen, um die Subnetze zu realisieren.
Das klingt nach 802.1X, RADIUS bzw. Dynamic MAC-based VLAN. Kann man machen, wenn man möchte.

Die Frage, die sich mir eher stellt: Wenn du sowas fragen musst, warum willst du dann unbedingt einen Router von Hand basteln?!? Für sowas gibt es doch auch genug fertige Linux-Distributionen oder auch auf BSD basierende OS, die das deutlich handlicher verpacken. List of router and firewall distributions
 
  • Gefällt mir
Reaktionen: madmax2010
Danke für eure Antworten. Am einfachsten wäre es ein Gerät zu kaufen mit dem man alles per GUI einstellen kann ;) Für unser Projekt wollen wir durch "Learning by doing" etwas tiefer in die ganze Technik einsteigen und als Belohnung einen Router erhalten, bei dem wir auch genau wissen und kontrollieren können, was intern passiert. Bei uns basieren fast alle selbst-konfigurierten System Zuhause auf Arch Linux, deswegen auch die Motivation den Router damit aufzusetzen. Das mit dem Radius/dynamic MAC-based VLAN haben wir bisher nur im Zusammenhang mit hostapd und einem wifi-AP gesehen. @Raijin Weißt du, ob man das auch für Ethernet-Verbindungen anwenden kann?
Im Moment versuchen wir uns mit zwei Ansätzen:
1. Alle physikalischen Interfaces in einer Bridge zusammenzufassen, die Subnetze als VLAN auf der Bridge aufbauen und entsprechende VLAN-Tags über die MAC-Adressen zu vergeben. Alternativ auch ohne Bridge direkt über die physikalischen Interfaces --> Bisher haben wir allerdings noch keine Möglichkeit gefunden die VLAN-Tags anhand der MAC-Adressen zuzuweisen.
2. Bridges als Ersatz für "virtuelle Interfaces" nutzen und die Destination-Adresse aller im Router eingehenden Pakete mit nftables im Ingress-hook entsprechend zu verändern. Also je nach MAC-Adresse der Source die MAC-Adresse der Destination zu ändern, um das Pakte einer der Bridges zuzuordnen.


BildRouter.png
 
Zurück
Oben