Como descartar conexões RELACIONADAS a outras conexões descartadas?

Como descartar conexões RELACIONADAS a outras conexões descartadas?

Cenário:Eu escrevi iptablesregras para um host onde um mecanismo DPI está observando as filas do Netfilter: as regras de firewall enfileiram o tráfego que chega a esse host em diferentes filas do Netfilter, dependendo se o tráfego vem de um determinado ipsetmeu.

Na FORWARDcadeia, todas as conexões são enfileiradas em diferentes NFQUEUES: o mecanismo DPI monitora nas filas do espaço do usuário os pacotes enviados pelo iptables, se uma conexão proibida for observada ele marca o pacote com um valor especial; O mecanismo DPI reinsere pacotes proibidos na pilha; na POSTROUTINGcadeia eu verifico se as conexões estão marcadas com aquele valor especial, se sim, eu DROPas verifico.

Está tudo funcionando bem, mas...

Problema: o mecanismo de DPI é bom, mas não perfeito: às vezes,

  1. o tráfego que deveria ser identificado como proibido não é identificado como tal e, portanto, não é bloqueado;
  2. o tráfego proibido é bloqueado, mas não imediatamente, e uma conexão proibida enquanto isso pode abrir outra conexão ( RELATED, de acordo com a máquina conntrack) que não está marcada como proibida, mas eu gostaria de bloquear a conexão relacionada também.

O segundo caso é aquele em que quero agir: como exemplo para o caso 2, imagine que o motor DPI quer bloquear o YouTube mas não consegue fazê-lo rapidamente; permite que a conexão do YouTube abra outra conexão rotulada como SSL do mecanismo DPI; O mecanismo DPI finalmente bloqueia o YouTube, mas a conexão SSL é selvagem e gratuita; Não posso dizer ao mecanismo DPI para bloquear conexões SSL, independentemente de quais conexões as abriram.

Considerações: conforme explicado emCenário, os pacotes que chegam em POSTROUTINGcadeia podem ser marcados com 0 (que é o valor padrão, então o mecanismo DPI não tomou nenhuma ação) ou com esse valor especial (o mecanismo DPI viu uma conexão proibida e a marcou): um simples

iptables -t mangle -A POSTROUTING -m mark --mark DROPVALUE -j DROP

quase sempre é suficiente, mas emProblemaseção escrevi que conexões RELACIONADAS às proibidas, mas não são vistas como tal pelo motor DPI, porquemesmo que tenham sido criados por uma conexão proibida, seu protocolo não está na lista negra e por isso não são vistos como proibidos. Isso está certo porque não posso colocar na lista negra SSLe HTTPS.

Preciso bloquear conexões RELATEDproibidas: RELATEDe ESTABLISHED(se entendi bem) não me refiro a conexões específicas, mas preciso me referir a conexões proibidas.

Pergunta: é possível descartar conexões RELATEDpara conexões para serem descartadas (ou já descartadas) iptables? Ou algum hack conntracké necessário?

Agradecemos antecipadamente por qualquer sugestão.

Responder1

Você não entende RELATED. Isso não é usado para todas as conexões que um único endereço possa fazer. Ele é usado apenas para dados realmente relacionados, como o fluxo de dados FTP associado a uma conexão de controle FTP ou mensagens de erro ICMP associadas a uma conexão aberta. Existem muito poucas conexões desse tipo que realmente correspondam RELATED.

informação relacionada