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
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
}
}