O que é a tabela mangle no iptables?

21

Estou usando regras de iptable para filtrar & manipular pacotes no meu servidor Ubuntu. mas não consigo entender a mesa mangle.

Citações de este tutorial do iptables :

This table should as we've already noted mainly be used for mangling packets. In other words, you may freely use the mangle matches etc that could be used to change TOS (Type Of Service) fields and so on.

You are strongly advised not to use this table for any filtering; nor will any DNAT, SNAT or Masquerading work in this table.

Alguém pode me descrever a tabela mangle e fornecer alguns exemplos para entender quando devo usá-la?

    
por pylover 14.01.2013 / 05:49

4 respostas

18

Além das outras boas respostas, recentemente tive que usar a tabela mangle para ajustar as discrepâncias de MTU (Maximum Transmission Unit) causadas pelo tráfego sendo transmitido através de PPPoE, PPP e ATM, cada uma adicionando uma sobrecarga que reduz a carga útil disponível para IP a partir dos 1500 bytes usuais de um quadro Ethernet.

Os sistemas em cada extremidade do pipe, como é normal, teriam seu MTU no padrão regular de 1500 e, assim, tentariam enviar quadros IP tão grandes. Como o tamanho real de carga útil disponível era menor, isso teria causado a fragmentação de pacotes, exceto que, muitas vezes, o remetente solicitará que os pacotes não sejam fragmentados e, como tal, acabarão sendo descartados completamente.

Em um mundo ideal, a descoberta do caminho MTU teria permitido que os endpoints ajustassem sua MTU conforme necessário, mas essa descoberta depende do ICMP, e as redes fora do meu controle geralmente eram configuradas para descartar o ICMP por motivos de segurança.

A única opção foi usar o processamento de pacotes no meu roteador para modificar os pacotes TCP SYN para diminuir o tamanho máximo do segmento na camada de transporte:

iptables -t mangle -A FORWARD -p tcp --tcp-flags SYN,RST SYN -j TCPMSS --set-mss 1452

Esse tipo de coisa é confuso e idealmente deve ser evitado, mas eu não tinha outras opções e isso resolveu o problema.

Espero que esses exemplos ajudem, assim como a página do manual.

    
por 15.01.2013 / 18:40
19

Recentemente, encontrei uma boa explicação aqui . É basicamente usado para definir cabeçalhos específicos para pacotes IP para afetar a decisão de roteamento feita posteriormente. Se houver, a opção TTL é provavelmente a mais interessante:

The TTL target is used to change the TTL (Time To Live) field of the packet. We could tell packets to only have a specific TTL and so on. One good reason for this could be that we don't want to give ourself away to nosy Internet Service Providers. Some Internet Service Providers do not like users running multiple computers on one single connection, and there are some Internet Service Providers known to look for a single host generating different TTL values, and take this as one of many signs of multiple computers connected to a single connection.

Os outros alvos são TOS, MARK, SECMARK, CONNSECMARK .

    
por 14.01.2013 / 06:08
7

Como um noob do iptables, eu diria: A tabela mangle permite modificar algumas entradas especiais no cabeçalho dos pacotes. (tipo: tipo de serviço, tempo de vida) (também permite definir marcas especiais e marcas de contexto de segurança)

    
por 05.05.2016 / 10:25
1

Há um bom mergulho profundo, mas não é muito difícil entender o tutorial sobre o iptables aqui .

The mangle table is used to alter the IP headers of the packet in various ways. For instance, you can adjust the TTL (Time to Live) value of a packet, either lengthening or shortening the number of valid network hops the packet can sustain. Other IP headers can be altered in similar ways.

This table can also place an internal kernel "mark" on the packet for further processing in other tables and by other networking tools. This mark does not touch the actual packet, but adds the mark to the kernel's representation of the packet.

Ajudou-me muito, pois também explica claramente como todas as partes se encaixam e interagem umas com as outras.

    
por 27.06.2018 / 12:03

Tags