Ebtables: Unterschied zwischen den Versionen

Aus Xinux Wiki
Zur Navigation springen Zur Suche springen
(Die Seite wurde neu angelegt: „=Was ist ebtables= *Das Programm ebtables ist ein Filtertool für eine Linux-basierte Bridging-Firewall. *Es ermöglicht eine transparente Filterung des Netzw…“)
 
 
(15 dazwischenliegende Versionen desselben Benutzers werden nicht angezeigt)
Zeile 6: Zeile 6:
 
*Erweiterte Protokollierung, MAC DNAT/SNAT und Brouter-Einrichtungen sind ebenfalls enthalten.
 
*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.
 
*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
 +
 +
[[Datei: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=
 
=Installation=
*apt install ebtables
+
*apt install ebtables bridge-utils
 +
=/etc/network/interfaces=
 +
<pre>
 +
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
 +
</pre>
 +
 
 +
*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.
 +
{{#drawio:ebtables-2}}
 +
 
 +
*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
 +
<pre>
 +
#!/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
 +
</pre>
 +
 
 +
==Script ausführbar machen==
 +
*chmod +x bridge-firewall
 +
 
 +
==Testen des Scripts==
 +
*firewall start
 +
*firewall stop
 +
*firewall
 +
=Setup=
 +
{{#drawio:ebtables-1}}
 +
 
 +
=Links=
 +
*https://ebtables.netfilter.org/
 +
*http://www.dilnetpc.com/ebtables-cmd-overview.pdf

Aktuelle Version vom 20. September 2022, 05:02 Uhr

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