Wofür sind diese gut? Und was sind mögliche Gefahren, die man hierfür beachten und absichern sollte?
Ich erkläre Dir in diesem Tutorial, was ARP-Tabellen sind und welche Tricks man anwenden kann und wie man Netzwerke besser strukturiert und absichert.
Mein Name ist Jan und bin Technik begeistert, ich gebe mein Wissen zur Forschung und allgemeinen Zwecks kostenlos frei für die Internetgemeinschaft.
Für einen guten Zweck, zur Förderung von Vereinen und Communitys.
Seit vielen Jahren beschäftige ich mich mit den Themen Netzwerk, Server sowie deren Systemadministration.
Jan H. – Autor
1. Was sind ARP-Tabellen?
Die ARP-Tabellen lösen im Endeffekt die MAC zu IP-Adressen auf und oder andersrum.
Die ARP-Tabelle ist im Linux Systemen für IPv4: arp -n einsehbar.
Da IPv4 und das neuere IPv6 Protokoll jeweils getrennt voneinander arbeiten, ist die Neighbour Tabelle für IPv6 unter Linux einsehbar mit folgendem Befehl:
ip -6 neighbour
Es gibt Möglichkeiten mittels statischen ARP-Einträgen, MAC und IP-Adresse manuell zu verknüpfen.
Sehen wir uns zunächst anhand ein paar Beispiele uns die ARP-Tabellen genauer an.
2. Proxy_ARP (IPv4) Tabelle
Hier sehen wir die ARP-Tabelle
Blau → Die jeweiligen virtuellen Maschinen oder Rechner.
Rot → Die MAC-Adressen der jeweiligen im Lokalen Netzwerk betriebenen Maschinen.
Gelb → Das jeweilige Interface, wo der Traffic zu ARP gesendet wurde.
3. Neighbour (IPv6) – Proxy_NDP Tabelle
Hier sehen wir alle Einträge von IPv6 Adressen in der ARP/NDP Tabelle
IPV6-Adresse dev Schnittstelle lladdr MAC-Adresse
Wie ich schon sagte, arbeiten IPV4 und IPv6 jeweils getrennt voneinander.
Deswegen gibt es hierfür im Linux Kernel für IPv4 Proxy_ARP und bei IPv6 Proxy_NDP.
4. Was ist der ARP-Cache?
Der ARP Cache ist das, was oben bereits steht, die zwischengespeicherten Einträge.
Die ARP-Tabellen haben auch einen sogenannten Cache, den man auch selbstverständlich wieder leeren kann.
Mit ip neigh flush all [dev INTERFACE] können wir bei IPv6 den gesamten Cache oder für die jeweilige Schnittstelle flushen.
Sobald die Maschine mit dem jeweiligen Gateway wieder Kontakt aufnimmt, so wird die MAC und IP-Adresse in der ARP-Tabelle wiederaufgenommen.
Bei IPv4 wäre für Proxy_ARP folgender Befehl notwendig, um den Cache einmal zu leeren: ip neigh flush proxy
5. Was ist ein MAC-Filter?
Ein MAC-Filter dient für die Unterbindung sogenanntem MAC-Spoofing.
Man kann durchaus sehr leicht MAC-Adressen fälschen, um somit bei Missbrauch auch die Sicherheit des Netzwerkes gefährden.
Zudem, wenn sehr viele gespoofte MAC-Adressen generiert werden, verliert man dort schnell den Überblick.
Es wäre umso besser einen MAC-Filter zu aktivieren, um selbst genaustens die MACs zu den jeweiligen IP-Adressen zuzuweisen.
Somit wäre das Netzwerk zwar streng von den Filtern her, aber es wäre am sichersten und man weiß, welchen Server man genau im Netzwerk bei sich hat.
Es gibt verschiedene Möglichkeiten, einen MAC-Filter zu aktivieren.
Zumeist passiert das schon ab dem Netzwerk-Switch, der die LAN Ports an die jeweiligen Rechner aufteilt.
Aber auch virtuell, wenn man gerade nicht einen Managed Switch bei sich Zuhause hat, ist das ganze möglich.
6. MAC-Filter (Virtuell) mittels UFW Firewall Linux
Bash
aptinstallufw-y
Wir installieren zunächst das UFW Paket und danach geben wir alle Ports frei, die wir zunächst brauchen
Bash
aptinstallsudo-y# INPUT, OUPUT sowie FORWARD alles bei Standard sperrensudoufwdefaultdenyincomingsudoufwdefaultdenyoutgoingsudoufwdefaultdenyrouted# Für SSHsudoufwallow22/tcp# Und für Proxmoxsudoufwallow8006/tcp# Für ICMP - OUTPUT# Mit Nano folgene Datei öffnen und einfügen bei #ICMP oksudonano/etc/ufw/before.rules-Aufw-before-output-picmp--icmp-typeecho-request-jACCEPT# Für DNS - OUTPUTsudoufwallowoutprotoudptoanyport53sudoufwallowoutprototcptoanyport53sudoufwallowoutprototcptoanyport80sudoufwallowoutprototcptoanyport443
Bash
# Jetzt aktivieren wir die UFWufwenable# Tipps# Schaltet die UFW komplett ausufwdisable# Lädt einmal die Rules komplett neu durch siehe: /etc/ufw/before.rulesufwreload
Wir erstellen eine neue Linux Brücke für unsere VMs die auf den Host geroutet sind
Bash
# Jetzt die Linux Brücke aktivieren mitifreload-a
Jetzt beim anlegen einer neuen VM die Linux Brücke auswählen und die Netzwerk Daten eintragenJetzt haben wir ein sehr strenges Netzwerk
Bash
# Jetzt müssen wir das IPv4 und optional IPv6 Forwarding im Linux Kernel aktivierennano/etc/sysctl.conf# Jetzt einfach einfügen und abspeichernnet.ipv4.conf.default.rp_filter=1net.ipv4.conf.all.rp_filter=1net.ipv4.ip_forward=1net.ipv6.conf.all.forwarding=1net.ipv4.conf.all.accept_redirects=0net.ipv6.conf.all.accept_redirects=0net.ipv4.conf.all.secure_redirects=1# Im Anschluss die neuen Änderungen nun übernehmensysctl-p
Jetzt hat der jeweilige Container aufgrund der vorherigen Regeln keine Internetverbindung und ist auch nicht von außen erreichbar.
Um jetzt die jeweilige MAC-Adresse zu der jeweiligen z. B. IPv4 IP-Adresse zu binden, müssten wir einmal folgendes machen
Hier nutzen wir einmal direkt iptables und dann wird alles im INPUT und FORWAD von Source IP für die eindeutige MAC-Adresse freigegeben.
Wenn IP oder MAC nicht übereinstimmt, geht logischerweise kein Traffic durch.
Hier sehen wir das Resultat wenn MAC und IP übereinstimmen
Der Aufbau meines Netzwerkes
Das ist die Container IP mit der MAC-Adresse in der ARP-Tabelle
11.11.11.0/24 ist mein Subnetz
Erstellt auf vmbr1
BC:24:11:8A:51:1A ist meine MAC-Adresse vom Container
Diese muss übereinstimmend sein zu meiner 11.11.11.2 IP-Adresse
MASQUERADE: Erlaubt die Verwendung meines kompletten vmbr0 Netzwerkes (NAT)
Dabei muss hierfür die IP-Source 11.11.11.0/24 übereinstimmen
Was ist ARP-Spoofing?
Wenn man Proxy_ARP oder Proxy_NDP auf allen Schnittstellen aktiviert, z. B. für IP-Routing oder VPN-Gateways etc.
Müssen Sicherheitsvorkehrungen immer vorgenommen werden.
Wenn dies nicht geschieht, so wird man Opfer eines IP-Spoofing Angriffes.
Stellt Euch das so vor, dass der Angreifer manipulierte ARP Einträge erzeugt, um somit Eure IP-Adressen zu missbrauchen, zumeist für (D)DoS Attacken.
Ein MAC-Filter unterbindet dies zwar sowieso, aber bei Layer 2 Brücken über VPN oder IP-Protokollen ist es immer mit sehr viel Aufwand verbunden.
Es ist aber immer wichtig, das Netzwerk so gut wie möglich abzusichern.
Meine Konfigurationen
Von IPtables und UFW:
Bash
root@pve01:~#cat/etc/iptables/rules.v4# Generated by iptables-save v1.8.9 on Sun Jan 5 01:30:16 2025*raw:PREROUTINGACCEPT [88447:23584120]:OUTPUTACCEPT [75574:19274070]COMMIT# Completed on Sun Jan 5 01:30:16 2025# Generated by iptables-save v1.8.9 on Sun Jan 5 01:30:16 2025*nat:PREROUTINGACCEPT [3783:521782]:INPUTACCEPT [2669:142264]:OUTPUTACCEPT [4031:263967]:POSTROUTINGACCEPT [2672:160715]-APOSTROUTING-s11.11.11.0/24-ovmbr0-jMASQUERADECOMMIT# Completed on Sun Jan 5 01:30:16 2025# Generated by iptables-save v1.8.9 on Sun Jan 5 01:30:16 2025*filter:INPUTACCEPT [329:43229]:FORWARDACCEPT [0:0]:OUTPUTACCEPT [297:42815]:ufw-after-forward- [0:0]:ufw-after-input- [0:0]:ufw-after-logging-forward- [0:0]:ufw-after-logging-input- [0:0]:ufw-after-logging-output- [0:0]:ufw-after-output- [0:0]:ufw-before-forward- [0:0]:ufw-before-input- [0:0]:ufw-before-logging-forward- [0:0]:ufw-before-logging-input- [0:0]:ufw-before-logging-output- [0:0]:ufw-before-output- [0:0]:ufw-reject-forward- [0:0]:ufw-reject-input- [0:0]:ufw-reject-output- [0:0]:ufw-track-forward- [0:0]:ufw-track-input- [0:0]:ufw-track-output- [0:0]-AINPUT-jufw-before-logging-input-AINPUT-jufw-before-input-AINPUT-jufw-after-input-AINPUT-jufw-after-logging-input-AINPUT-jufw-reject-input-AINPUT-jufw-track-input-AINPUT-s11.11.11.2/32-ivmbr1-mmac--mac-sourcebc:24:11:8a:51:1a-jACCEPT-AFORWARD-jufw-before-logging-forward-AFORWARD-jufw-before-forward-AFORWARD-jufw-after-forward-AFORWARD-jufw-after-logging-forward-AFORWARD-jufw-reject-forward-AFORWARD-jufw-track-forward-AFORWARD-s11.11.11.2/32-ivmbr1-mmac--mac-sourcebc:24:11:8a:51:1a-jACCEPT-AOUTPUT-jufw-before-logging-output-AOUTPUT-jufw-before-output-AOUTPUT-jufw-after-output-AOUTPUT-jufw-after-logging-output-AOUTPUT-jufw-reject-output-AOUTPUT-jufw-track-outputCOMMIT# Completed on Sun Jan 5 01:30:16 2025
Danke!
Ich danke Dir für deine Interesse an meinen Inhalten 🙂
Ich würde mich über einen kurzen Kommentar freuen oder eine weiterempfehlung
Der Inhalt ist für die Forschung und Bildung freigegeben (Creative-Commons – Wiederverwendung erlaubt aber mit Namensnennung)
Um dir ein optimales Erlebnis zu bieten, verwenden wir Technologien wie Cookies, um Geräteinformationen zu speichern und/oder darauf zuzugreifen. Wenn du diesen Technologien zustimmst, können wir Daten wie das Surfverhalten oder eindeutige IDs auf dieser Website verarbeiten. Wenn du deine Zustimmung nicht erteilst oder zurückziehst, können bestimmte Merkmale und Funktionen beeinträchtigt werden.
Funktional
Immer aktiv
Die technische Speicherung oder der Zugang ist unbedingt erforderlich für den rechtmäßigen Zweck, die Nutzung eines bestimmten Dienstes zu ermöglichen, der vom Teilnehmer oder Nutzer ausdrücklich gewünscht wird, oder für den alleinigen Zweck, die Übertragung einer Nachricht über ein elektronisches Kommunikationsnetz durchzuführen.
Vorlieben
Die technische Speicherung oder der Zugriff ist für den rechtmäßigen Zweck der Speicherung von Präferenzen erforderlich, die nicht vom Abonnenten oder Benutzer angefordert wurden.
Statistiken
Die technische Speicherung oder der Zugriff, der ausschließlich zu statistischen Zwecken erfolgt.Die technische Speicherung oder der Zugriff, der ausschließlich zu anonymen statistischen Zwecken verwendet wird. Ohne eine Vorladung, die freiwillige Zustimmung deines Internetdienstanbieters oder zusätzliche Aufzeichnungen von Dritten können die zu diesem Zweck gespeicherten oder abgerufenen Informationen allein in der Regel nicht dazu verwendet werden, dich zu identifizieren.
Marketing
Die technische Speicherung oder der Zugriff ist erforderlich, um Nutzerprofile zu erstellen, um Werbung zu versenden oder um den Nutzer auf einer Website oder über mehrere Websites hinweg zu ähnlichen Marketingzwecken zu verfolgen.
Schreibe einen Kommentar