iptables: Perguntas sobre a tabela bruta

1

Eu posso ler em toda a Internet que a tabela bruta do iptables está lá apenas para especificar se o rastreamento de conexão não deve ser aplicado. No entanto, quando um destino de regras na tabela bruta é -j DROP, por exemplo, o pacote é descartado e tudo parece funcionar bem.

Eu tenho o seguinte conjunto de perguntas sobre este tópico:

  • O rastreamento de conexão fica confuso quando eu -j DROP um pacote na tabela bruta? Pode-se supor que o kernel verifica primeiro o destino DROP ao atingir mangle / PREROUTING ao descartar um pacote de acordo com "a internet" é permitida inicialmente e, portanto, seria rastreada para conexão.
  • O uso do destino -j SYNPROXY na tabela bruta funciona?
  • O uso de um destino final como -j ACCEPT na tabela bruta também leva ao rastreamento de conexão?
  • O uso do -j NOTRACK interromperá a avaliação das seguintes regras na tabela bruta?

Meu objetivo é usar o iptables com o maior desempenho possível, porque eu preciso configurar um roteador Linux que precisa proteger uma conexão de Internet de 10 GbE. Minha esperança é que deixar um pacote na tabela sem primeiro especificar -j NOTRACK e depois descartar o pacote em um estágio posterior funcionará bem. Estou ciente do problema de não poder usar módulos de rastreamento de conexão na tabela bruta. Meu objetivo é usá-lo como uma primeira linha de defesa com algumas regras genéricas de hashlimit, SYNPROXY e DROP.

    
por Matthias 29.09.2018 / 05:34

1 resposta

1

EstaimagemmostraofluxodepacotesnosubsistemaNetfilterdokernelLinuxeémuitoútilparaentendercomoregrasdiferentesafetamotráfegoderede.

Agora,assuasperguntas:

Orastreamentodeconexãoficaráconfusoquandoeu-jDROPumpacotenatabelabruta?

Quandoumpacotecaiemrawtable,opacotenuncachegaaomóduloconntrack.Issosignificaquenenhumaentradaderastreamentodeconexãoécriada/consultadaduranteofluxodopacotenadireçãobloqueada.

Noentanto,podehavercasosemqueumaentradaderastreamentodeconexãoécriadaquandootráfegovaiparaadireçãooposta.Oconntracksabequeissopodeaconteceretem,porexemplo,INVALIDstateparaessasconexões.

Portanto,conntracknãoficará"confuso". No entanto, você pode encontrar algum comportamento inesperado devido a regras diferentes que afetam pacotes em diferentes direções para uma conexão.

O uso do destino -j SYNPROXY no trabalho bruto da tabela?

De acordo com o link , a meta SYNPROXY é projetada para a cadeia PREROUTING da tabela 'RAW' . Então, a resposta é sim.

O uso de um destino final como -j ACCEPT na tabela bruta também leva ao rastreamento de conexão?

O ACCEPT é um destino final "local", ou seja, quando um pacote atinge uma regra ACCEPT em uma cadeia, ele deixa a corrente atual e passa para a próxima cadeia de acordo com o diagrama.

Então, ele levará ao rastreamento de conexão, a menos que você insira o NOTRACK como a meta de salto.

O uso do -j NOTRACK interromperá a avaliação das seguintes regras na tabela bruta?

Não, não é um alvo de terminação de cadeia.

    
por 29.09.2018 / 14:17