Schicht-2-zugängliche DMZ: ebtables?

462
iAdjunct

Ich möchte eine Netzwerktopologie erstellen, bei der sich alle IoT-Geräte (Drucker, DVR, Thermostat, Blu-Ray-Player usw.) in einer DMZ befinden und alle anderen Geräte sich im LAN befinden. Beachten Sie, dass sich die Verwendung von DMZ hier von den DMZ- Einstellungen auf Routern unterscheidet und sich auf eine "Zone des Netzwerks bezieht, auf die ich Geräte stelle, auf die ich nicht vertraue, um nicht mein Netzwerk zu hacken".

Normalerweise wird dies durch Erstellen von mehrstufigen Gateways (dh ein Gateway innerhalb der DMZ zum Schutz des LANs) oder durch ein benutzerdefiniertes 3-Wege-Gateway mit speziellen iptables-Regeln erreicht. Ich habe beides schon einmal gemacht, aber beide leiden unter dem Problem, dass es sich um eine Layer-3-Lösung handelt. Ich bin auf der Suche nach einer Layer-2-Lösung, in erster Linie, um die Funktionsfähigkeit von mDNS und Service Discovery zu erhalten.

Was ich denke, möchte ich zulassen:

LAN - [irgendetwas] -> DMZ

DMZ - [eingerichtet + Broadcasts + DHCP] -> LAN

Bei der Betrachtung der ebtablesDokumentation scheint es jedoch nicht so zu sein, dass ich zwischen etablierten IP-Verbindungen und neuen IP-Verbindungen unterscheiden kann, was ein notwendiger Bestandteil meines Plans ist.

Es gibt also zwei Möglichkeiten, die sich daraus ergeben:

1) Bestimmen, wie ebtablesich tun soll, was ich will; oder

2) Verwenden Sie den Double-NAT-Ansatz und lassen Sie ein Gerät (RasPi oder etwas anderes) nach Service Discovery-Sendungen in der DMZ suchen und im LAN weiterleiten.

Die letzte Frage: Welcher Ansatz ist möglich und / oder am einfachsten zu handhaben, aus der Perspektive, wie lange ich mich mit Dingen beschäftigen werde, damit es funktioniert?

Hinweis: Tagging unter iptablesstatt, ebtablesweil ich anscheinend nicht, dass Tag erstellen kann ...

1
Wie definieren Sie eine "etablierte" IP-Verbindung? Meinen Sie damit TCP, wenn die IP zustandslos ist? Paul vor 8 Jahren 1
Layer-2 ist problematisch für das, was Sie wollen, da es sich um ein Peer-to-Peer-Netzwerk handelt. Es gibt Switches, die private VLANs ausführen können (Geräte im gleichen VLAN können nicht miteinander kommunizieren) oder MAC-basierte ACLs der Ebene 2 (die hässlich sind und auf den MAC-Adressen der einzelnen Geräte basieren). Ron Maupin vor 8 Jahren 0
Ja, ich meine TCP (oder emuliert / in UDP angenommen). Ich verwende diesen Begriff, weil sich iptables darauf bezieht. iAdjunct vor 8 Jahren 0

1 Antwort auf die Frage

0
MariusMatutiae

Erstens ebtablesist es ein Link-Layer-Protokoll und als solches kann es unmöglich etwas über ESTABLISHED, RELATEDVerbindungen wissen . Laut Wikipedia ,

Die Verbindungsschicht ist die Gruppe von Methoden und Kommunikationsprotokollen, die nur auf der Verbindung arbeiten, mit der ein Host physisch verbunden ist.

Wie kann es also wissen, dass dieses Paket von einer entfernten URL das nächste Paket in einer Reihe ist, das lokal initiiert wurde?

Was Ihre zweite Lösung angeht, ist mir nicht klar, was Sie erreichen wollen. Im Allgemeinen werden DMZs verwendet, um die Menge an Datenverkehr zu begrenzen, die zwischen ihm und dem Nicht-DMZ-LAN ausgetauscht wird, um Netzwerkerkennungen und / oder -untersuchungen usw. zu verhindern. Sie versuchen stattdessen, die Protokolle und die Kommunikation zwischen den beiden zu erhöhen.

Wenn Sie dies tun möchten, können Sie ein einzelnes LAN, das sowohl DMZ als auch Nicht-DMZ umfasst, erstellen und dann den Datenverkehr durchsehen iptables. Auf diese Weise können Sie den Nicht-IP-Verkehr zwischen den beiden zulassen, können jedoch den IP-Verkehr blockieren, z. B. das Trennen aller ssh / telnet-Verbindungen von einer Zone zur anderen.

Alternativ können Sie eine Art Man in the Middle verwenden, z. B. einen PC mit einer Schnittstelle in der Nicht-DMZ und einer in der DMZ, mit IPv4-Weiterleitung aktiviert, jedoch durch gesteuert iptables, und dhcp-relayum die Weitergabe von DHCP-Anforderungen (die Version) zu ermöglichen bereitgestellt von dnsmaqist besonders einfach einzurichten). Sie können auch Proxy-ARP auf diesem MIM-PC aktivieren, sodass er auf ARP-Abfragen im Namen der unter Quarantäne gestellten Computer antwortet.

Dies ist keine Antwort auf die Frage. Erstens weiß ich, dass ebtables Layer-2 ist. Es hat jedoch die Möglichkeit, Pakete zu schnüffeln und basierend auf Quell-IP, Ziel-IP, Port usw. zu filtern. So weiß es: es schnüffelt. Öffentliche Webserver und das Internet der Dinge erfordern auch eine andere Art von DMZ: einen, den Sie isolieren, und einen, den Sie verwenden möchten, aber vertrauen Sie nicht auf die Freiheit. Ich habe auch ausdrücklich erwähnt, dass ich keine iptables verwenden möchte oder ein benutzerdefiniertes Gateway habe. iAdjunct vor 8 Jahren 0
@ iAdjunct Ich denke, Sie täuschen sich: Sie sollten lesen, was Bart de Schuymer, der Autor von ebtables, zu seinen Fähigkeiten zu sagen hat, insbesondere im Zusammenhang mit ESTABLISHED., https://sourceforge.net/p/ebtables/mailman/message / 2821657 / MariusMatutiae vor 8 Jahren 0
Alles, was mir sagt, ist, dass ebtables für diese nicht schnüffelt. Es gibt jedoch keine Sicherheit, dass iptables auf überbrückte Verbindungen angewendet wird, wenn der Datenverkehr über die Brücke erfolgt und nicht für den lokalen Computer bestimmt ist. iAdjunct vor 8 Jahren 0
@iAdjunct Genau gesagt, "ebtables" weiß nichts über ESTABLISHED, CONNECTED. Also deine Frage n. 1 wird beantwortet. Wenn Sie keine iptables oder ein benutzerdefiniertes Gateway verwenden möchten, ist das wie Treten und Schimpfworte: Sie machen Ihre Stimmung transparent, bringen aber keine Lösung näher. MariusMatutiae vor 8 Jahren 0
Ich kann nicht sagen, wohin der letzte Abschnitt in Ihrer Antwort geht (wirkt er wie eine Brücke oder ein Gateway? Unklar). Würden Sie das bitte in einem Schnitt näher erläutern? iAdjunct vor 8 Jahren 0