1

Temat: iptables TEE po nowemu (nftables)

Cześć,
czy można prosić o wsparcie w realizacji duplikowania pakietów (wgrana wersja najnowsza na edgerouter-x jeśli to by miało znaczenie), do tej pory działała u mnie prosta regułka wpisana do "Własne reguły":

#iptables -t mangle -A PREROUTING -p tcp -i br-lan -s 10.10.10.10 -d X.X.X.X -m length --length 240:310 -j TEE --gateway 10.10.10.15

teraz trochę po omacku testuję jakieś takie konstrukcje ale bez rezultatu:

#nft add rule inet mangle prerouting dup to 10.10.10.15 device br-lan ip length 240-310 ip protocol tcp ip saddr 10.10.10.10 ip daddr \{X.X.X.X, X.X.X.Y \} counter

oczywiście docelowo chciałbym to zapisać persystentnie, więc pewnie w pliku - ale na razie poległem na samej składni lub działaniu nft

--
pico

2 (edytowany przez Cezary 2023-02-01 13:19:23)

Odp: iptables TEE po nowemu (nftables)

iptables-translate tłumaczy to jako

nft add rule ip mangle PREROUTING iifname "br-lan" ip protocol tcp ip saddr 10.10.10.10 ip daddr X.X.X.X meta length 240-310 counter dup to 10.10.10.15

(o ile masz łańcuch PREROUTING)

Masz niepotrzebny router, uszkodzony czy nie - chętnie przygarnę go.

3

Odp: iptables TEE po nowemu (nftables)

Error: Could not process rule: No such file or directory
add rule ip mangle PREROUTING iifname br-lan ip protocol
            ^^^^^

w takiej wersji też nie działa

4

Odp: iptables TEE po nowemu (nftables)

Nie masz tablicy mangle  po prostu. Zrób to na takiej zasadzie: https://forum.openwrt.org/t/working-nft … 3/144838/8

Masz niepotrzebny router, uszkodzony czy nie - chętnie przygarnę go.

5

Odp: iptables TEE po nowemu (nftables)

nie umiałem w tamten sposób napisać całej reguły, ale pokombinowałem inaczej i zatrzymałem się na

Error: unsupported family

czy to może być:

    # CONFIG_NFT_DUP_IPV4 is not set
    # CONFIG_NFT_DUP_IPV6 is not set

https://forum.openwrt.org/t/firewall4-c … y/139043/3

6

Odp: iptables TEE po nowemu (nftables)

Może być.

Masz niepotrzebny router, uszkodzony czy nie - chętnie przygarnę go.

7

Odp: iptables TEE po nowemu (nftables)

pico napisał/a:

Cześć,
czy można prosić o wsparcie w realizacji duplikowania pakietów (wgrana wersja najnowsza na edgerouter-x jeśli to by miało znaczenie),...

ja to kiedyś zrobiłem tak...
https://eko.one.pl/forum/viewtopic.php? … 33#p273833
ostatni test źle opisałem, bo żądanie DHCP poleciało wcześniej smile

Xiaomi AX3000T @ Netgear R6220
* DVBT2 - T230C *

8

Odp: iptables TEE po nowemu (nftables)

Jeszcze nie testowałem czy na pewno działa, ale udało mi się dopisać reguły. Aby to się udało musiałem dorzucić moduły o których pisano w linku wcześniej podanym (+zależności nf_dup_*).
Niestety nie da się tego umieścić w standardowej tabeli "inet fw4" musi być tabela "ip".
Z tego co widzę to konfiguracja w /etc/nftables.d/ można być dodawana tylko do tabeli fw4.

Teraz rodzą się m inne pytania:
1. jak takie dodawanie nowych reguł koszernie zrobić? przez skrypt /etc/init.d/*?
aktualnie dodałem tak, jak coś niepoprawnie to prośba o naprowadzenie:

# nft add table ip tab
# nft 'add chain ip tab mangle_prerouting { type filter hook prerouting priority mangle; policy accept; }'
# nft 'add rule ip tab mangle_prerouting iifname "br-lan.1" ip protocol tcp ip saddr 192.168.X.X ip daddr {a.a.a.a,a.a.a.b} meta length 240-310 counter dup to 192.168.X.Y'

2. czy może ktoś ma/używa "dup" w tabeli inet fw4 - nie znalazłem czegoś na kształt "*NFT_DUP_INET" i cały czas przy próbie dodawania reguły dostawałem "unsupported family"
3. @Cezary  - czy w przyszłości możesz dodać do swoich obrazów:
CONFIG_NFT_DUP_NETDEV=y
CONFIG_NFT_DUP_IPV4=y
CONFIG_NFT_DUP_IPV6=y
na pewno mi by się przydało a może i innym... (?)

4. czy te moje moduły jak mają dodane "[permanent]" w lsmod - to jest ok, czy coś nie tak zrobiłem

--
pico

9

Odp: iptables TEE po nowemu (nftables)

1 w /etc/nftables.d/ lub robisz includa z własnymi regułami. Jeżeli zrobisz to w oddzielnym /etc/init.d to możesz to stracić bo firewall jest często przeładowywany.
3. Jeżeli to tylko nie zepsuje czegość w systemie to tak, mogę włączyć.

Masz niepotrzebny router, uszkodzony czy nie - chętnie przygarnę go.

10

Odp: iptables TEE po nowemu (nftables)

kończąc wątek dopowiem tylko, że rozwiązanie działa
ad.1 zdobiłem jednak w /etc/init.d/, w sekcje boot wpisałem te 3 polecenia, restarty firewalla nie powodują modyfikacji tej dodanej tabeli - zachowuje się stabilnie/niezmiennie. OpenWrt chyba znęca się tylko na swojej tabeli fw4 przy restartach/przeładwaniach firewalla.

11

Odp: iptables TEE po nowemu (nftables)

Pokaż swoje rozwiązanie, może komuś się przyda.

Masz niepotrzebny router, uszkodzony czy nie - chętnie przygarnę go.

12 (edytowany przez pico 2023-02-03 12:26:54)

Odp: iptables TEE po nowemu (nftables)

PO CO:
używam duplikacji pakietów aby przechwytywać komunikaty wysyłane do chińskich chmurek, żeby mieć dane lokalnie - w tym przypadku dotyczy to invertera od fotowoltaiki

JAK:

w tej wersji obrazów nie ma (jeszcze ;-) ) wymaganych pakietów do dup-likacji, więc trzeba skompilować obraz z parametrami (oczywiście wersja kodu powinna/musi się zgadzać):
CONFIG_NFT_DUP_NETDEV=y
CONFIG_NFT_DUP_IPV4=y
CONFIG_NFT_DUP_IPV6=y
ew. więcej danych z linku który wcześniej podawałem.

następnie skopiować moduły/pliki: nft_dup_ipv4.ko,nft_dup_ipv6.ko,nft_dup_netdev.ko + zalezności: nf_dup_ipv4.ko, nf_dup_ipv6.ko, nf_dup_netdev.ko do /lib/modules/5.10.161
(chociaż ponieważ to finalnie wylądowało w tabeli "ip" to chyba potrzebne będą tylko te z końcówką *ipv4.ko")

następnie utworzyć plik w /etc/init.d/ np taki: /etc/init.d/customrules

#!/bin/sh /etc/rc.common

START=60

boot() {
    echo "Dodawanie custom regul firewalla - boot"
    nft 'add table ip private'
    nft 'add chain ip private mangle_prerouting { type filter hook prerouting priority mangle; policy accept; }'
    nft 'add rule ip private mangle_prerouting iifname "br-lan.15" ip protocol tcp ip saddr 192.168.2.5 ip daddr {47.88.8.200,115.29.186.234} meta length 240-310 counter dup to 192.168.2.10'
}

później:

chmod +x /etc/init.d/customrules
/etc/init.d/customrules enable
reboot

... i powinno działać

dopowiadając:
br-lan.15 - tu akurat jest vlan 15 na br-lan
192.168.2.5 - to urządzenie podsłuchujemy
192.168.2.10 - tu wysyłamy
47.88.8.200,115.29.186.234 - adresy chińczyków gdzie lecą pakiety
240-310 - interesująca mnie wielkość pakietu (żeby całego śmietnika nie zbierać)


finalnie

nft list ruleset

pokaże coś takiego (oprócz standardowej tabeli inet fw4)

table ip private {
        chain mangle_prerouting {
                type filter hook prerouting priority mangle; policy accept;
                iifname "br-lan.15" ip protocol tcp ip saddr 192.168.2.5 ip daddr { 47.88.8.200, 115.29.186.234 } meta length 240-310 counter packets 0 bytes 0 dup to 192.168.2.10
        }
}

13

Odp: iptables TEE po nowemu (nftables)

nft_dup_netdev.ko i nf_dup_netdev.ko są w pakiecie kmod-nft-netdev
zapomniałem dopisać że trzeba doinstalować ten pakiet.

można tak i można inaczej smile

Xiaomi AX3000T @ Netgear R6220
* DVBT2 - T230C *

14

Odp: iptables TEE po nowemu (nftables)

I dokładnie w kmod-nft-netdev umieszczę nf_dup* i nft_dup*. Więc jak ktoś będzie chciał użyć to wystarczy zainstalować ten pakiet - od nastepnego buildu.

Masz niepotrzebny router, uszkodzony czy nie - chętnie przygarnę go.

15

Odp: iptables TEE po nowemu (nftables)

Sorry za odgrzane ale w 23.05 nie trzeba już patcha, jest paczka kmod-nft-dup-inet która ma te 4 moduły brakujące.

16

Odp: iptables TEE po nowemu (nftables)

Tak, wiem, trzymam rękę na pulsie.

Masz niepotrzebny router, uszkodzony czy nie - chętnie przygarnę go.

17 (edytowany przez kw 2023-06-01 18:48:43)

Odp: iptables TEE po nowemu (nftables)

Miło że są też inni którzy w wolnym czasie czytają commity big_smile