Ebtables
Zur Navigation springen
Zur Suche springen
Was ist ebtables
- Das Programm ebtables ist ein Filtertool für eine Linux-basierte Bridging-Firewall.
- Es ermöglicht eine transparente Filterung des Netzwerkverkehrs, der eine Linux-Bridge passiert.
- Die Filtermöglichkeiten beschränken sich auf die Link-Layer-Filterung
- Sowieeinige grundlegende Filterungen auf höheren Netzwerkschichten.
- Erweiterte Protokollierung, MAC DNAT/SNAT und Brouter-Einrichtungen sind ebenfalls enthalten.
- Das ebtables-Tool kann mit den anderen Linux-Filtertools (iptables, ip6tables und arptables) kombiniert werden.*um eine *Damit kann man überbrückende Firewall erstellen, die auch in der Lage ist, diese höheren Netzwerkschichten zu filtern. *Dies wird durch die Bridge-Netfilter-Architektur ermöglicht, die Teil des Standard-Linux-Kernels ist.
Wichtig
- Die Bridge Interfaces in der VirtualBox müssen auf promisc stehen
- Das bedeutet die müssen alles annehmen
Haupteigenschaften
- Verwendung analog zu iptables
- Ethernet-Filterung
- MAC NAT: Möglichkeit, die MAC-Ethernet-Quell- und -Zieladresse zu ändern.
- Dies kann in einigen sehr seltsamen Setups nützlich sein (ein reales Beispiel ist verfügbar).
- Brouting: Entscheiden Sie, welcher Datenverkehr zwischen zwei Schnittstellen überbrückt werden soll.
- Beziehungsweisewelcher Datenverkehr zwischen denselben beiden Schnittstellen geleitet werden soll.
- Die beiden Schnittstellen gehören zu einem logischen Bridge-Gerät
- haben aber ihre eigene IP-Adresse und können zu einem anderen Subnetz gehören.
- Übergeben Sie Pakete an Userspace-Programme, indem Sie Netlink-Sockets verwenden.
Installation
- apt install ebtables bridge-utils
/etc/network/interfaces
auto lo iface lo inet loopback auto enp0s3 iface enp0s3 inet static address 10.0.10.11/24 gateway 10.0.10.1 auto enp0s8 iface enp0s8 inet manual auto enp0s9 iface enp0s9 inet manual auto vmbr0 iface vmbr0 inet manual bridge_ports enp0s8 enp0s9 bridge_fd 5 bridge_stp no
- ifup vmbr0
Schaubild
Die Ketten
- FORWARD: für Pakte, die über eine Schnittstelle hereinkommen und den Rechner auch wieder verlassen.
- INPUT: für Pakete, die über eine Schnittstelle hereinkommen und einen Dienst auf dem Rechner ansprechen
- OUTPUT: für herausgehende Pakete, die von einem lokalen Dienst erzeugt wurden.
- Jedes Paket durchläuft nur eine Filter Kette
Die Regeln der Tabelle
Regeln werden mit ebtables erstellt und an Ziele geschickt.
Ziele der Tabelle
- ACCEPT: das Paket kann passieren
- LOG: schreibt einen Eintrag in die syslog
- DROP: das Paket wird ignoriert und keine Antwort gesendet
Syntax Allgemein
- eptables -L
-L # Listing -t filter # anzeigen der filter Kette
Da -t filter Default ist, kann man es auch weglassen,
- ebtables -L -t filter
Firewallscript
Der Rumpf
Zuerst wird in dem firewall-Skript ein case start - stop Block angelegt:
- cd /usr/local/sbin/
- vi bridge-firewall
#!/bin/bash FRONT=enp0s8 FRONTMAC=08:00:27:bf:99:11 BRIDGEMAC=72:18:e5:f6:68:ed CLIENTMAC=08:00:27:3c:e0:f9 CLIENT=192.168.56.106 BACK=enp0s9 BRIDGE=vmbr0 case $1 in start) echo "starte firewall" #flushen der Regeln ebtables -F ebtables -F -t nat ebtables -P INPUT ACCEPT ebtables -P OUTPUT ACCEPT #Block MAC Adresse #ebtables -A FORWARD -i $BACK -o $FRONT -d 08:00:27:75:ba:ec -j DROP #Antispoofing #ebtables -A FORWARD -p IPv4 --ip-src 172.16.1.4 -s ! 00:11:22:33:44:55 -j DROP #Only forward IPv4 for a specific MAC address: #ebtables -A FORWARD -s 00:11:22:33:44:55 -p IPV4 -j ACCEPT #ebtables -A FORWARD -s 00:11:22:33:44:55 -j DROP #IPv4 Pakete #ebtables -A FORWARD -p IPv4 -j ACCEPT #ARP Pakete #ebtables -A FORWARD -p ARP -j ACCEPT #Pakete die 802.3 und 802.2 Frames haben #ebtables -A FORWARD -p LENGTH -j ACCEPT ebtables -A FORWARD --log-level info --log-ip --log-prefix EBFW ebtables -P FORWARD ACCEPT ;; stop) echo "stoppe firewall" ebtables -F ebtables -F -t nat ebtables -P INPUT ACCEPT ebtables -P OUTPUT ACCEPT ebtables -P FORWARD ACCEPT ;; esac
Script ausführbar machen
- chmod +x bridge-firewall
Testen des Scripts
- firewall start
- firewall stop
- firewall