Para começar a trabalhar com módulos via
IPtables, precisamos saber alguns conceitos e aonde cada um se encaixa.
O kernel
Linux deve está ciente de tudo o que entra e sai de sua estrutura, tudo o que é lido e executado, tudo o que é apagado e ou escrito, ou seja, tudo o que acontece em seu sistema. Pois se não fizer isto e outras coisas, não há nenhum tipo de controle.
Porém, nem tudo o kernel consegue fazer sozinho, como por exemplo, controlar o fluxo de dados que entra e sai do sistema, por isso, ele usa módulos, que são
funções agregadas ao sistema que podem ser utilizadas para expandir a funcionalidade do kernel.
Para controlar todo o fluxo interno de dados, é usado um módulo chamado de
Netfilter, que trabalha com situações (Chains) e armazena em
tabelas padrões (Filter, NAT ,Mangle), as Chains, com regras passadas pelo usuário para realização de todo o controle de fluxo de entrada e saída de dados.
Porém, para ter um melhor gerenciamento sobre o Netfilter e manipular suas tabelas, é usada uma ferramenta chamada IPtables. Com Netfilter e suas tabelas juntamente com a ferramenta IPtables, já se tem um controle sobre o fluxo de dados que passa pelo kernel do sistema.
Porém, para ampliar e expandir sua funcionalidade, são usados módulos que permitem dar uma maior flexibilidade para trabalhar com o IPtables é executar regras mais elaboradas.
Agora, que o conceito de módulo já foi apresentado, vamos aprender como chamá-lo para ser executado em uma regra, antes de mais nada, precisa ser
anunciado com a opção "-m <módulo>" ou "--match <módulo>" como mostrado no exemplo abaixo:
# iptables -A INPUT -p tcp -m iprange --src-range 192.168.0.50-192.168.0.100 -j DROP
Nesta regra acima, chamo "-m" o módulo "<iprange>" para especificar um Range de origem (intervalo de IPs), "--src-range" e dou o alvo de Drop para esse Range, ou seja, tudo o que entrar, que venha do Range especificado na regra, seja rejeitado.
A única observação que deixo, é que se algum módulo não estiver disponível no seu sistema, habilite o mesmo na compilação do kernel e compile o kernel.
Nas próximas páginas, irei tratar de abordar alguns módulos bem interessantes para serem usados em regras do IPtables.
Porém, esclareço que não vou abordar módulos que precisam ser aplicados Patchs no kernel e compilá-los junto ao kernel no qual foi aplicado o Patch, somente
os módulos que podem ser compilados quando se configura para a compilação do kernel, então não irei abordar, por exemplo, o Layer7.
Nas próximas páginas, explicarei a função do módulo e em seguida, o colocarei em prática.