Ebtables
ebtables - aplikacja przestrzeni użytkownika w systemach operacyjnych GNU/Linux, służąca do konfiguracji Netfilter dla mostów sieciowych. Ebtables wchodzi w skład pakietu narzędzi Netfilter.
Warunkiem koniecznym, aby móc używać ebtables jest skompilowana w jądrze jego obsługa (BRIDGE_NF_EBTABLES) oraz istnienie w systemie co najmniej jednego mostu sieciowego.
Reguły dodawane za pomocą ebtables pozwalają na analizowanie/filtrowanie/zmianę/przechwytywanie ramek ethernetowych przekazywanych pomiędzy portami należącymi do mostu sieciowego.
Podobnie jak iptables, reguły dodawane za pomocą ebtables są grupowane w łańcuchy, a te w tablice. Istnieją 3 tablice z następującymi domyślnymi łańcuchami:
- tablica filter – w tej tablicy umieszcza się reguły odpowiedzialne za filtrowanie ruchu. Dzieli się ona na 3 łańcuchy (tradycyjnie pisane wielkimi literami):
- INPUT – służy do filtrowania ruchu przeznaczonego dla interfejsu mostu (na podstawie adresu MAC)
- FORWARD – służy do filtrowania ruchu przekazywanego pomiędzy portami mostu
- OUTPUT – służy do filtrowania ruchu wychodzącego przez interfejs mostu (generowanego lokalnie)
- tablica nat – w tej tablicy umieszcza się reguły, które mają modyfikować ramki ethernetowe. Tak jak filter dzieli się na 3 łańcuchy:
- PREROUTING – służy do modyfikowania pakietów zaraz po wejściu do mostu
- OUTPUT – służy do modyfikowania pakietów wygenerowanych lokalnie, wysyłanych przez interfejs mostu
- POSTROUTING - służy do modyfikowania pakietów tuż przed wyjściem z mostu
- tablica broute - w tej tablicy istnieje tylko jeden łańcuch:
- BROUTING - służy do odbierania (przez podsystem IP) ramek, które normalnie byłyby przekazywane przez most. Ramki takie przez wyższą warstwę stosu sieciowego są traktowane tak, jakby ich docelowym adresem MAC był adres interfejsu mostu.
Z formalnego punktu widzenia łańcuchy PREROUTING i POSTROUTING powinny nazywać się PREFORWARDING oraz POSTFORWARDING, jednak w celu ujednolicenia nazewnictwa użyto nazw zaczerpniętych z iptables.
Przykłady użycia
[edytuj | edytuj kod]- przekaż pakiety wchodzące przez interfejs eth1 i o docelowym adresie MAC 00:17:08:22:17:35 do podsystemu routingu (w tym wypadku DROP ma specjalne znaczenie)
ebtables -t broute -A BROUTING -i eth1 -d 00:17:08:22:17:35 -j DROP
- dokonaj DNAT dla pakietów wchodzących przez interfejs eth1 i o docelowym adresie MAC 00:17:08:22:17:35 na adres MAC 00:17:08:35:17:22
ebtables -t nat -A PREROUTING -i eth1 -d 00:17:08:22:17:35 -j DNAT --to-dst 00:17:08:35:17:22 --dnat-target ACCEPT