Definição
Tabela Mangle nada mais é que a tabela usada para marcar pacotes. Em cada pacote de dados há um cabeçalho, e neste cabeçalho há campos que podem ser marcados. Com tais marcações podemos criar regras de modo que se obtém prioridade de serviços, tempo de vida de pacotes, entre outros.
Pré-requisitos
Para o pleno entendimento deste material, recomendo que você já saiba o básico de iptables, lunux e sistema de camadas OSI. Abaixo você confere links do próprio Purainfo sobre estes conteúdos:
Iptables Parte I | Parte II | Parte III | Parte IV (Breve)
Comandos básicos de Linux
Gerenciando usuários no Linux
Modelo OSI
Resumo sobre Protocolos
Siglas e seus significados
TOS -> Type of Service (tipo de Serviço). Usamos esta propriedade para criarmos nossas políticas de prioridades. Usando TOS podemos definir qual serviço terá prioridade sobre outro, como por exemplo, videos do YouTube serão enviados para 2º plano e Ssh tem Espera Mínima. Vale ressaltar que alguns roteadores não tratam este campos, o que pode gerar problemas quando o tráfego vai para a internet.
TTL -> Time to live (Tempo de vida). Esta propriedade afeta o tempo de vida de um pacote, levando-se em conta que cada roteador diminui 1 to TTL atual do pacote. O máximo que o TTL pode conter é 255.
MARK -> Usado para atribuir um valor especial ao pacote.
SECMARK -> Secure Context Mark (Mark de contextos de segurança). Esta propriedade seta marcas de segurança em um pacote.
CONNSECMARK -> Igual ao SECMARK, porém, aplica a marca de segurança na conexão inteira, e não apenas no pacote.
TOS
Nos cabeçalhos dos datagramas (parte do pacote) existe a propriedade (ou campo) onde escolhe-se a prioridade. O uso de prioridades em uma rede com vários computadores torna a conexão claramente mais rápida em serviços cruciais, enquanto outros serviços usam “a sobra” da banda.
No iptables, o TOS é usado como target (-j), seguido do parâmetro –set-tos com a prioridade definida.
Tipo de Prioridade TOS
Espera Mínima |
0x10 ou 16 |
Máximo Processamento | 0x08 ou 8 |
Máxima Confiança | 0x04 ou 4 |
Custo Mínimo | 0x02 ou 2 |
Prioridade Normal | 0x00 ou 0 |
Conforme tabela acima, a Espera mínima tem a maior prioridade entre todos, e obviamente, a Prioriadade normal, a menor.
Exemplos de uso:
iptables -t (tabela) mangle -A (inclui regra) REGRA -j TOS (sempre em maiúsculo) –set-tos NumeroDaPrioridade
Colocando FTP em Prioridade “Máxima Confiança”:
iptables -t mangle -A PREROUTING -p tcp –dport 20:21 -j TOS –set-tos 4 (poderia ser 0x04)
Colocando prioridade Máximo Processamento em conexões na porta 22 (porta padrão do ssh)
iptables -t mangle -A PREROUTING -p tcp –dport 22 -j TOS –set-tos 8 poderia ser 0x08)
para ver as regras aplicadas, o processo é o mesmo:
iptables -t mangle -L
As opções de regra podem ser PREROUTING, POSTROUTING, OUTPUT, INPUT, FORWARD. Os detalhes de cada um já abordamos em capítulos anteriores.
TTL
A maneira de usar o TTL é basicamente a mesma do TOS, apenas mudando o -j para TTL e o –set-tos para –ttl-set NUMERO
Exemplo de uso:
iptables -t mangle -A POSTROUNTING -o eth1 -j TTL –ttl-set 32
O exemplo acima faria o TTL do pacote ficar 32 ao sair pelo iptables, independente do número que tenha entrado. Podemos somar ou subtrair o TTL, com as seguintes opções:
–ttl-set 32 –> Seta o TTL para 32
–ttl-dec 4 –> Dimiui 4 to TTL. Se entrou com 32, sairá com 28
–ttl-inc 4 –> Aumenta 4 do TTL. Se entrou com 32, sairá com 36
Bom pessoal, fico por aqui, espero que seja útil estta postagem. Até a próxima