Sie sind auf Seite 1von 3

Como funciona o TOS Type of service e sua integração com o iptables.

Todos nós (ou a maioria) sabemos a fantástica ferramenta que é o Iptables. O Linux
possui suporte a um conjunto de normas e regras para filtragem de pacotes incorporadas
ao Kernel desde a versão 1.X.

Conhecido por sua performance, simplicidade e pouca exigência de hardware, é


considerada a melhor ferramenta da categoria de firewall via software, pode ser usado
como alternativa a ferramentas caras como Check Point e Sonicwall, que são soluções
baseadas em hardware.

Um firewall pode atuar como filtro de pacotes graças à estrutura atual de comunicação
em rede, onde a informação é dividida em diferentes pacotes de diversos tamanhos para
poder ser enviada pelo meio físico, que pode ser um cabo de rede, por exemplo. Esses
pacotes possuem um cabeçalho que podem conter muita informação como, host de
origem, host de destino, porta de origem e porta de destino, tamanho do pacote, tempo de
vida e muito mais. Esse cabeçalho é definido pelo protocolo, que nada mais é que um
conjunto de regras estabelecidas para viabilizar a comunicação.

O protocolo IP faz parte da pilha de protocolos TCP/IP e possui um modelo de cabeçalho


extremamente estruturado, com diversos campos que podem ser usados para armazenar
informações, são 12 campos e mais o que efetivamente irá transportar os dados.

Um desses campos é o Type Of Service (Tipo de Serviço), que é justamente o que vai
proporcionar o controle de prioridade nos pacotes.

Trabalhando com TOS

O Iptables é um gerenciador das tabelas do Netfilter e é um firewall de quarta geração


para Linux. Possui em sua estrutura 3 tabelas padrões:
 Filter
 NAT
 Mangle

cada uma com suas regras específicas para uma determinada função.
 A tabela Filter contém regras de fluxo de dados aplicadas à função de filtro de
pacotes;
 A tabela NAT regras direcionadas a um firewall NAT e ao encaminhamento e
roteamento de pacotes;
 A tabela Mangle tem funções mais complexas no tratamento de pacotes, como o
TOS, por exemplo.

Todas essas tabelas trabalham com situações de entrada e saída de dados para a realização
de seus objetivos.

Este artigo pressupõe que você tenha conhecimento de Iptables e será abordada apenas a
tabela Mangle, que proporcionará o controle por Tipo de Serviço (TOS). Se você quer
saber mais a respeito do Iptables, sugiro primeiro ler outros artigos sobre o seu
funcionamento e comandos básicos na Internet ou aqui no site.

Para eficiência no controle por TOS o Firewall tem que ser o ponto de indução da rede e
deve usar as regras da tabela Mangle.

Teremos em mente então que TOS será o nome dados a um alvo, como DROP, ACCEPT e
REJECT. Esse alvo combinado com o argumento --set-tos vai então aplicar o conceito do
controle de tráfego por Tipo de Serviço.

Essa prioridade será setada conforme um bit que será alterado no pacote, e para saber o
que é mais importante e o que deve ser tratado como normal temos uma tabela
especificando os valores que deverão ser seguidos:

Observamos então que o valor menos significativos nesta tabela na verdade se trata da
prioridade normal de um serviço.

Tráfego de saída

As aplicações das regras de TOS irão seguir o mesmo padrão da sintaxe do Iptables, então
se você tem domínio nas condições vai ter muita facilidade na implementação.

Neste exemplo será demonstrado na prática como ficaria a aplicação da prioridade


máxima para a saída de tráfego pela interface eth0 de pacotes do protocolo SSH.

# iptables -t mangle -A OUTPUT -o eth0 -p tcp --dport 22 -j TOS --set-tos 16

Nesse comando, logados como root chamamos o programa iptables, informamos que
iremos manipular a tabela mangle e que iremos adicionar uma nova regra ao fim da lista
sob a chain PREROUTING. Informamos então, que qualquer pacote que estiver saindo
pela nossa interface eth0, sob a porta 22 do protocolo tcp (SSH), deve ter o bit de
prioridade máxima setado.

Lembrando que assim como as demais tabelas do Iptables, essa regra vai tratar apenas os
pacotes que saírem do host pela interface eth0, pacotes que saírem por outras interfaces ou
que estiverem entrando ou sendo redirecionados para outros hosts não serão afetados. Para
isso é necessário à aplicação de outras regras que especifique qual o tipo de tráfego será
tratado.

Tráfego de entrada

O tráfego de entrada são os pacotes que entram por alguma interface de rede e assim
como as demais regras do Iptables, usaremos apenas a chain OUTPUT para manipulá-lo.

Para então tratarmos o tráfego de entrada será utilizado somente a chain PREROUTING e
ao especificarmos uma interface de rede que a regra será aplicada usaremos a flag "-i",
conforme a sintaxe do Iptables.

A regra a seguir dará prioridade máxima a pacotes entrantes no host sob o protocolo SSH:

# iptables -t mangle -A PREROUTING -i eth0 -p tcp --sport 22 -j TOS --set-tos 16

Uma outra regra que fará com que pacotes FTP entrem no host com máximo
processamento:

# iptables -t mangle -A PREROUTING -i eth0 -p tcp --sport 20 -j TOS --set-tos 8

Conclusão

O controle de tráfego por Tipo de Serviço é muito eficaz para tratar serviços específicos,
dando maior prioridade à eles. É uma forma inteligente de mantê-los funcionando bem em
um ambiente onde existe convivência com outros tipos de serviços menos prioritários
(como envio de e-mails pessoais, downloads e programas de mensagem instantânea) sem
que seja necessário baní-los da rede, bloqueando o seu uso ou impondo severas regras de
filtragem via proxy.

A intenção aqui é permitir que o chamado "tráfego podre" exista na rede, mas sem
atrapalhar o desempenho dos demais serviços.

Das könnte Ihnen auch gefallen