Ebtables

Aus xinux.net
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

Bridge-22.png

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

Setup

Links