Estou interessado em usar addrtype
em combinação com, -src
como regra, em uma das minhas cadeias de filtros, assim, para soltar alguns ips de bogon:
-A INPUT -p tcp --dport 80 -m addrtype --src-type UNICAST ! -s 127.0.0.0/8 -j WEB
A página do manual diz o seguinte
addrtype
Este módulo corresponde a pacotes com base em seu tipo de endereço. Os tipos de endereço são usados na pilha de rede do kernel e categorizam os endereços em vários grupos. A definição exata desse grupo depende do protocolo específico da camada três.Os seguintes tipos de endereço são possíveis:
- UNSPEC um endereço não especificado (ou seja, 0.0.0.0)
- UNICAST um endereço unicast
- LOCAL um endereço local
- TRANSMISSÃO um endereço de transmissão
- ANYCAST um pacote anycast
- MULTICAST um endereço multicast
- BLACKHOLE um endereço de buraco negro
- Inacessível um endereço inacessível
- PROIBIR um endereço proibido
- THROW FIXME
- NAT FIXME
- XRESOLVE
Não está claro quais são as definições exatas e diz que depende do protocolo específico da camada 3. Isto é o que eu penso:
- UNICAST (! BROADCAST,! MULTICAST,! ANYCAST)
- LOCAL (
127.0.0.0/8
) - TRANSMISSÃO (
*.*.*.255
) - ANYCAST (
*.*.*.*
) - MULTICAST (
224.0.0.0/4
)
Alguém tem uma idéia clara do que isso significa e como é implementado pelo iptables (por exemplo, como ele sabe onde diabos está o BLACKHOLE)?
LOCAL
certamente não é127.0.0.0/8
. Eu descobri da maneira mais difícil :( ... aparentemente um endereço local refere-se a qualquer endereço atribuído a uma interface.127.0.0.0/8
é reservada especificamente para loopback, no entanto, LOCAL não se limita apenas a esse intervalo.Respostas:
Eu acho que depende de você fazer o kernel saber qual é o tipo de endereço do buraco negro.
De xt_addrtype.h arquivo no iptables código-fonte, você pode ver:
E em
rtnetlink.h
, você verá a mesma definição:Você pode ver
iptables
usar a mesma definição de tipo de endereço com a pilha de rede do kernel tcp.Depois de
man ip
:Portanto, quando você define uma rota para uma rede por
ip
comando e a marca como rota de buraco negro, o kernel agora faz esse tipo de buraco de endereço de rede:fonte
blackhole
tipo de endereço, nem todo tipo de endereço. Eu mostro que aiptables
addrtype
extensão usa a mesma definição addrtype com o kernel. E a definição do kernel do tipo de endereço pode ser vista emman ip
.ip route list type local
mas todos os tipos produzem uma string vazia, exceto o unicast que fornecedefault 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
. Você pode fornecer mais informações sobre como interpretá-las? Obrigado.ip route add blackhole
versus usar o firewall para bloquear essa sub-rede específica? Existe uma diferença funcional / de desempenho ou uma maneira diferente de atingir o mesmo fim?