Jestem chętny do użycia addrtype
w połączeniu z -src
regułą w jednym z moich łańcuchów filtrów, aby upuścić trochę bogon ips:
-A INPUT -p tcp --dport 80 -m addrtype --src-type UNICAST ! -s 127.0.0.0/8 -j WEB
Strona podręcznika zawiera następujące informacje
addrtype
Ten moduł dopasowuje pakiety na podstawie ich typu adresu. Typy adresów są używane w stosie sieciowym jądra i dzielą adresy na różne grupy. Dokładna definicja tej grupy zależy od konkretnego protokołu trzeciej warstwy.Możliwe są następujące typy adresów:
- UNSPEC nieokreślony adres (tj. 0.0.0.0)
- UNICAST adres emisji pojedynczej
- LOKALNY adres lokalny
- BROADCAST adres emisji
- ANYCAST anycast pack
- MULTICAST adres multiemisji
- BLACKHOLE adres czarnej dziury
- UNREACHABLE nieosiągalny adres
- ZABRONIA zabronionego adresu
- Rzuć FIXME
- NAT FIXME
- XRESOLVE
Nie jest jasne, jakie są dokładne definicje, i mówi, że zależy to od konkretnego protokołu warstwy 3. To jest to, co myślę:
- UNICAST (! BROADCAST,! MULTICAST,! ANYCAST)
- LOKALNE (
127.0.0.0/8
) - BROADCAST (
*.*.*.255
) - ANYCAST (
*.*.*.*
) - MULTICAST (
224.0.0.0/4
)
Czy ktoś ma jasne pojęcie, co to znaczy i jak jest implementowany przez iptables (na przykład, skąd wie, gdzie, u diabła, jest BLACKHOLE)?
LOCAL
z pewnością nie jest127.0.0.0/8
. Dowiedziałem się na własnej skórze :( ... najwyraźniej adres lokalny odnosi się do dowolnego adresu przypisanego do interfejsu.127.0.0.0/8
jest zarezerwowany specjalnie dla sprzężenia zwrotnego, jednak LOKALNY nie ogranicza się tylko do tego zakresu.Odpowiedzi:
Myślę, że to zależy od ciebie, aby jądro wiedziało, który typ adresu jest czarnej dziury.
Z pliku xt_addrtype.h w kodzie źródłowym iptables można zobaczyć:
I
rtnetlink.h
zobaczysz tę samą definicję:Możesz zobaczyć
iptables
użycie tej samej definicji typu adresu w stosie sieciowym jądra TCP.Następnie z
man ip
:Kiedy więc zdefiniujesz trasę do sieci za pomocą
ip
polecenia i oznaczysz ją jako trasę czarnej dziury, jądro uczyni teraz ten adres sieciowy typem czarnej dziury:źródło
blackhole
typ adresu, nie wszyscy typ adresu.iptables
addrtype
Pokazuję, że rozszerzenie używa tego samego addrtype definicji z jądrem. I definicja jądra typu adresu można zobaczyć wman ip
.ip route list type local
ale wszystkie typy generują pusty ciąg z wyjątkiem emisji pojedynczej, która dajedefault via 192.168.1.1 dev eth0 proto static metric 1024 192.168.1.0/24 dev eth0 proto kernel scope link src 192.168.1.2
. Czy możesz podać więcej informacji na temat ich interpretacji? Dzięki.ip route add blackhole
korzystania z zapory sieciowej w celu zablokowania tej konkretnej podsieci? Czy istnieje różnica funkcjonalna / wydajnościowa lub inny sposób osiągnięcia tego samego celu?