Estou usando as regras do iptable para filtrar e manipular pacotes no meu servidor Ubuntu. mas eu não consigo entender a tabela do mangle.
Citando este tutorial do iptables :
Essa tabela, como já observamos, deve ser usada principalmente para pacotes confusos. Em outras palavras, você pode usar livremente as correspondências mangle, etc., que podem ser usadas para alterar os campos TOS (Tipo de serviço) e assim por diante.
É altamente recomendável não usar esta tabela para qualquer filtragem; nem DNAT, SNAT ou Masquerading funcionarão nesta tabela.
Alguém pode me descrever a tabela mangle e fornecer alguns exemplos para entender quando devo usá-la?
iptables(8)
página de manual possui todas as informações que você deseja, incluindo vários bons exemplos de uso de tabelas mangle.Respostas:
Além das outras boas respostas, recentemente tive que usar a tabela mangle para ajustar as discrepâncias de MTU (unidade máxima de transmissão) causadas pelo tráfego trazido através de PPPoE, PPP e ATM, cada um dos quais adiciona uma sobrecarga que reduz a carga útil disponível para IP a partir dos habituais 1500 bytes de um quadro Ethernet.
Os sistemas em cada extremidade do canal, como é normal, teriam seu MTU no padrão regular de 1500 e, portanto, tentariam enviar quadros IP tão grandes. Como o tamanho real da carga útil disponível era menor, isso causaria fragmentação de pacotes, exceto que geralmente o remetente solicita que os pacotes não sejam fragmentados e, como tal, eles acabam sendo descartados por completo.
Em um mundo ideal, a descoberta de MTU de caminho permitiria que os terminais ajustassem sua MTU para baixo, conforme necessário, mas essa descoberta depende do ICMP, e as redes fora do meu controle eram frequentemente configuradas para descartar o ICMP por razões de segurança.
A única opção era usar a manipulação de pacotes no meu roteador para modificar pacotes TCP SYN para diminuir o tamanho máximo do segmento na camada de transporte:
Esse tipo de coisa é confusa e, idealmente, deve ser evitada, mas eu não tinha outras opções e isso resolveu o problema.
Espero que esses exemplos ajudem, assim como a página de manual.
fonte
Encontrei recentemente uma boa explicação aqui . É basicamente usado para definir cabeçalhos específicos para pacotes IP para afetar a decisão de roteamento tomada mais adiante. Se houver, a opção TTL é provavelmente a mais interessante:
Os outros alvos são
TOS, MARK, SECMARK, CONNSECMARK
.fonte
Como um iptables noob, eu diria: A tabela mangle permite modificar algumas entradas especiais no cabeçalho dos pacotes. (como: Tipo de serviço, tempo de vida) (também permite definir marcas especiais e marcas de contexto de segurança)
fonte
Há um bom mergulho profundo, mas não é muito difícil entender o tutorial sobre o iptables aqui .
Me ajudou muito, pois também explica claramente como todas as partes se encaixam e se interagem.
fonte