Perturba hash:net,port support 0.0.0.0/0

Perturba hash:net,port support 0.0.0.0/0

Existe uma maneira de adicionar 0.0.0.0/0 ao tipo ipset hash:net,port? Parece suportar apenas comprimentos de prefixo de 1 a 32, mas e se eu quiser que uma entrada no meu hash ipset suporte todo o tráfego IP em uma determinada porta? Por exemplo

ipset create testset hash:net,port
ipset add testset 0.0.0.0,22
iptables -I INPUT 1 -m set --match-set testset src, src -j ACCEPT
iptables -I INPUT 2 -j LOG --log-prefix "** FIREWALL **"

não fará nada. O tráfego SSH atingirá o firewall e gerará um log. 0.0.0.0/0 não é aceito como notação CIDR válida, embora pareça que eles o adicionaram ao hash:net,iface na revisão 2. Estou ciente de que poderia armazenar a porta em um bitmap:port e aplicá-la à sua própria regra do iptables. No entanto, eu gostaria especificamente de armazenar portas em um hash, pois algumas portas podem se preocupar com o endereço IP src e outras não, e não quero manter um conjunto separado para 0.0.0.0/0.

Responder1

A sintaxe correta seria usar 0.0.0.0/0, pois 0.0.0.0 é padronizado como 0.0.0.0/32. Infelizmente, como você descobriu, isso não é compatível:

# ipset add testset 0.0.0.0/0,22
ipset v7.3: The value of the CIDR parameter of the IP address is invalid

O que você pode fazer é usar o mesmo tipo de truque usado no OpenVPN ao substituir rotas: dividir 0.0.0.0/0 pela metade: 0.0.0.0/1 e 128.0.0.0/1:

ipset add testset 0.0.0.0/1,22
ipset add testset 128.0.0.0/1,22

Observação:

Normalmente, para um servidor executando umlocalservidor ssh, otabelas de ipos parâmetros provavelmente deveriam ser estes:

iptables -I INPUT 1 -m set --match-set testset src,dst -j ACCEPT

Já que estamos noENTRADAcadeia, significadorecebendo, src,dstsignifica verificar o IP remoto (origem) e a porta local (destino), enquanto src,srcsignificaria verificar o IP remoto (origem) e a porta remota (origem). O único uso para isso seria permitir o tráfego de resposta de servidores SSH remotos, mas isso normalmente já seria tratado em -m conntrack --ctstate ESTABLISHEDoutro lugar.

informação relacionada