Temat: Iptables restore-translate

Witam forumowiczów

poszukuje rozwiązania do automatycznej migracji reguł iptables do nftables.
Obecnie używam wydania openwrt 21.07 i chcąc zmienić firmware do 23... openwrt
muszę przepisać kilkanaście reguł.
Szukają odpowiedzi znalazłem pakiet na forum linuxa
iptables-restore-translate, jednak nie jest on dostępny wydaniu 21.07.
Zatem czy jest jakieś rozwiązanie na powyższe?

ASUS TUF AX 6000 <-> QNAP TS-473A <->Pihole<->

2 (edytowany przez mar_w 2024-03-22 21:34:53)

Odp: Iptables restore-translate

piszesz trochę tajemniczo, bo nie wiadomo jakiego typu są te reguły.

Ja robię tak, że tłumaczę sobie na dużym linuxie interesujące mnie reguły i dopasowuję do Openwrt.
z tym, że wykorzystuję łańcuchy obecne w Openwrt takie jak: input_wan zamiast głównego input lub srcnat_wan zamiast srcnat
łańcuchy w Openwrt możesz wylistować:

 # nft list ruleset | grep chain
lub 
# nft list ruleset 

żeby zobaczyć gdzie są powtykane domyślne reguły Openwrt takie jak maskarada czy dostęp do Wanu na ustawionym przez siebie przykładowym porcie

Ile ludzi tyle sposobów.
Próbuj

Xiaomi AX3000T @ Netgear R6220
* DVBT2 - T230C *

3

Odp: Iptables restore-translate

np
#iptables -t mangle -I PREROUTING -i eth0.2 -m set --match-set WON src -j DROP
#iptables -t mangle -I PREROUTING -i eth0.2 -m set --match-set BAN src -j DROP
iptables -t raw -I PREROUTING -m recent --name portscan --rcheck --seconds 8640000 -j DROP
iptables -t raw -I PREROUTING -p tcp -m multiport --dport 21,22,23,113,587,666,777,778 -j SET --add-set WON src --exist --timeout 8640000

ASUS TUF AX 6000 <-> QNAP TS-473A <->Pihole<->

4

Odp: Iptables restore-translate

tu masz ipset-y
https://openwrt.org/docs/guide-user/fir … nfig_ipset

Xiaomi AX3000T @ Netgear R6220
* DVBT2 - T230C *

5

Odp: Iptables restore-translate

dzięki coś będę kombinował

ASUS TUF AX 6000 <-> QNAP TS-473A <->Pihole<->

6

Odp: Iptables restore-translate

bulgar71 napisał/a:

Witam forumowiczów
...
Szukają odpowiedzi znalazłem pakiet na forum linuxa
iptables-restore-translate, jednak nie jest on dostępny wydaniu 21.07.
Zatem czy jest jakieś rozwiązanie na powyższe?

w sumie to jest jeszcze:

# opkg update
# opkg install iptables-nft
# iptables-translate ........
....

a po wpisaniu

# iptables-nft -t raw -I PREROUTING -m recent --name portscan --rcheck --seconds 8640000 -j DROP
# nft list ruleset
....
# Warning: table ip raw is managed by iptables-nft, do not touch!
table ip raw {
    chain PREROUTING {
        type filter hook prerouting priority raw; policy accept;
        xt match "recent" counter packets 0 bytes 0 drop
    }
}

ale nie wiem czy to będzie OK

Xiaomi AX3000T @ Netgear R6220
* DVBT2 - T230C *

7

Odp: Iptables restore-translate

@bulgar71
Z tego co zrozumiałem chciałeś dynamicznie dopisywać atakujące adresy do odpowiednich tablic żeby potem dawać im czasowego bana.
To co przykładowo można zrealizować na tablicach nftables w Openwrt
Komputer ofiara ma adres 192.168.22.1 i otwarte porty http (80) oraz ssh (22)
Komputer będzie blokował atakujący adres IP po wykryciu ataków na port 80.

# nft add set inet fw4 blackhole '{ type ipv4_addr; flags dynamic, timeout; }'
# nft add rule inet fw4 raw_prerouting ct state new,invalid,untracked tcp dport 80 meter flood '{ ip saddr timeout 1s limit rate over 10/second }' add @blackhole '{ ip saddr timeout 10m }'
# nft add rule inet fw4 raw_prerouting ip saddr @blackhole counter drop


# nft list ruleset | grep raw_prerouting -A 5
chain raw_prerouting {
        type filter hook prerouting priority raw; policy accept;
        ct state invalid,new,untracked tcp dport 80 meter flood size 65535 { ip saddr timeout 1s limit rate over 10/second } add @blackhole { ip saddr timeout 10m }
        ip saddr @blackhole counter packets 0 bytes 0 drop
    }


# nft list sets
table inet fw4 {
    set blackhole {
        type ipv4_addr
        size 65535
        flags dynamic,timeout
    }
}

I teraz z innego kompa 192.168.22.2 robimy atak na ofiarę na port 80 smile
Ofiara widzi te ataki i odpowiednio je identyfikuje smile

# nft list ruleset | grep raw_prerouting -A 5
    chain raw_prerouting {
        type filter hook prerouting priority raw; policy accept;
        ct state invalid,new,untracked tcp dport 80 meter flood size 65535 { ip saddr timeout 1s limit rate over 10/second } add @blackhole { ip saddr timeout 10m }
        ip saddr @blackhole counter packets 24952 bytes 12566684 drop
    }

root@OpenWrt:~# nft list sets
table inet fw4 {
    set blackhole {
        type ipv4_addr
        size 65535
        flags dynamic,timeout
        elements = { 192.168.22.2 timeout 10m expires 9m46s270ms }
    }
}

Set uzupełnił się dynamicznie.
Przy tych regułach zablokowany został "cały" atakujący adres 192.168.22.2 tzn że z tego adresu nie mogłem wejść do 192.168.22.1po innym udostępnionym porcie np. po ssh (port 22)

Dalej to już kwestia własnych zachcianek smile

Xiaomi AX3000T @ Netgear R6220
* DVBT2 - T230C *

8

Odp: Iptables restore-translate

Fajnie to rozpisałeś jeszcze raz dzięki.
muszę to ogarnąć jakoś bo mam trochę tego do zmian na fw4

ASUS TUF AX 6000 <-> QNAP TS-473A <->Pihole<->