O
iptables foi implantado na versão 2.4 do kernel, ele também é conhecido como "NetFilter". Antes do iptables, o firewall nativo do
GNU/Linux era o ipchains.
Mas, o que é um firewall? Como o próprio nome já diz, "Fire" + "Wall", ou seja, parede de fogo, onde só vai passar o que você quer.
Vamos imaginar que as informações são escritas em papel e são feitas em forma de bola, para que sua informação chegue até o destino, ela precisa passar por uma grande parede, essa parede contém algumas regras.
Sua informação será "arremessada", então a parede vai conferir suas regras, se a sua informação está na regra com a permissão de "passar", então a parede vai "abaixar" para sua informação passar, e depois vai subir.
Outro conceito válido é um pouco mais técnico, é que o firewall é um servidor que contém determinadas regras e os pacotes que contém informações serão enviados para o destino, passando por ele, se a regra conferir, dizendo que o seu pacote pode passar, então o firewall irá direcionar a sua informação para o destino.
Tendo o conceito básico de firewall, vamos avançar para a parte prática do iptables, mas antes precisamos entender como o iptables funciona.
O iptables tem chains e tables:
- Chains: Local onde as regras são armazenadas. Cada chain tem uma funcionalidade, como por exemplo o chain INPUT, que armazena pacotes que chegam a máquina, de fora para dentro.
- Tables: as tabelas armazenam os chains. Cada tabela possui uma média de 3 (três) chains. A tabela mais utilizada é a Filter, que contém apenas 3 (três) chains: INPUT, OUTPUT, FORWARD.