Firewall no Linux? O IPtables é a solução! (Parte I)

18 Comentários

Todos nós temos a noção que é importante dispormos de mecanismos de segurança nos nossos PC’s. Para quem é utilizador do Linux certamente que já ouviu falar do iptables (firewall)…..mas provavelmente nunca o usou devido à sua complexidade. O iptables é uma ferramenta bastante poderosa por si só, que vem por omissão nas distribuições Linux.

No sentido de desmistificar o iptables, vamos produzir alguns artigos, com alguns exemplos práticos.

tuxfw

O IPtables é um mecanismo de segurança que permite controlar tráfego IP ao nível dos pacotes (layer 3). De uma forma geral, com o iptables podemos definir uma sequência de regras que permitem ou bloqueiam determinados serviços/aplicações. Os serviços/aplicações usam normalmente o protocolo UDP ou TCP.

Protocolo TCP, UDP e ICMP

TCP

O TCP é o protocolo mais usado isto porque fornece garantia na entrega de todos os pacotes entre um PC emissor e um PC receptor. No estabelecimento de ligação entre emissor e receptor existe um “pré-acordo” denominado de Three Way Handshake (SYN, SYN-ACK, ACK).

UDP

O UDP é um protocolo mais simples e por si só não fornece garantia na entrega dos pacotes. No entanto, esse processo de garantia de dados pode ser simplesmente realizado pela aplicação em si (que usa o protocolo UDP) e não pelo protocolo. Basicamente, usando UDP, uma máquina emissor envia uma determinada informação e a máquina receptor recebe essa informação, não existindo qualquer confirmação dos pacotes recebidos. Se um pacote se perder não existe normalmente solicitação de reenvio, simplesmente não existe.

Além do TCP e UDP, o IPTables pode também controlar comunicações que usem o protocolo ICMP, utilizado normalmente para testar a conectividade.

NetFilter vs IPTables

Para que o IPTables funcione correctamente, é necessário que que se activem mecanismos no próprio kernel, que permitem avaliar, controlar e manipular  tráfego ao nível dos pacotes. O IPtables é a aplicação usada para criar e gerir as regras que iremos usar para filtrar os pacotes com base nos mais diversos critérios.

Funcionamento do NetFilter

Como referido, os pacotes são filtrados com base num conjunto sequencial de regras (cadeia), onde cada regra contem um conjunto de condições. A sequência com que a cadeia de regras é criadas é muito importante, uma vez que são processadas pela ordem com que foram criadas até que uma delas se aplique. Quando uma regra é aplicada, esta indica se uma determinada comunicação é permitida, negada ou alterada de acordo com uma acção previamente definida). Por exemplo, podemos bloquear todo o tráfego vindo de uma determinada rede.

iptables_00

Quando os pacotes não encaixam em nenhum dos critérios das regras definidas, é aplicada a politica implícita dessa cadeia de regras, podendo o tráfego ser aceite ou rejeitado.

As cadeias são agrupadas em 3 tabelas pré-definidas:

  • Filter – responsável pela filtragem de pacotes
  • Nat – permite a tradução de endereços e portos (mecanismo de NAT)
  • Mangle – permite a alteração especial nos pacotes
  • Raw – para configurar excepções relativamente  ao registo de sessões

No próximo tutorial vamos apresentar as chains (cadeias predefinidas) disponíveis na tabela filter e Nat  e exemplos de aplicação. Esperamos que tenham gostado deste primeiro artigo sobre este tema e como sempre esperamos o vosso feedback.

Partilhar:
Tags:

Comentários

18

Deixe um comentário

O seu endereço de email não será publicado. Campos obrigatórios marcados com *

  1. Avatar de Vasco
    Vasco

    Existe alguma maneira de ser avisado, quando sairem as outras partes? obrigado

    1. Avatar de Pedro Pinto

      Bom dia Vasco, vais ter de estar sempre atento ao Pplware 🙂

    2. Avatar de @edenfall
      @edenfall

      Você pode assinar o Feed RSS, é assim que eu vejo quando saem posts aqui.

    3. Avatar de Luis Teixeira
      Luis Teixeira

      Ou pelo feed ao fundo desta página carrega em rss, ou pelo twitter se tiveres uma conta.

  2. Avatar de Hugo
    Hugo

    Boas, muito bom tema, fico a espera de mais.
    Já agora conhecem algum pacote para fazer a gestão das regras do iptables sem ser o fwbuilder.
    cumprimentos e continuem o bom trabalho 😀

    1. Avatar de Alexandre
      Alexandre

      Pode dar uma olhada no UFW e no GUFW (modo gráfico).
      O UFW foi o único frontend pro IPTABLES que ainda gostei de utilizar. Pessoalmente prefiro utiliza-lo sem «intermediários».

  3. Avatar de serva
    serva

    Bom dia ,

    Excelente tutorial , aguardo pela segunda parte , já uma vez tentei configurar sem sucesso , a cerca de 3 anos atrás e dei-me muito mal , aguardo pela segunda parte do tutorial .

    Cumprimentos

    Serva

    1. Avatar de José Maria Oliveira Simões
      José Maria Oliveira Simões

      A primeira coisa que tem que observar é:

      Deixar passar passar todo o trafico dentro da própria maquina

      127.0.0.1 127.0.0.1

      lo = 127.0.0.1

      Se não, vai bloquear os processos dentro da própria maquina. Se bloquear, a maquina deixa inclusivamente de enviar ou receber coisas da consola de sistema. A maquina, pura e simplesmente, pára por ter ficado bloqueada.

      No mínimo dos mínimos tem que ter estas duas linhas de instruções no iptables

      /sbin/iptables -A INPUT -i lo -j ACCEPT
      /sbin/iptables -A OUTPUT -j ACCEPT -o lo

  4. Avatar de Carlos
    Carlos

    Já trabalho com Iptables, mas é sempre bom saber mais….
    Abraço e parabéns o site esta sempre melhorando.
    🙂

  5. Avatar de someone
    someone

    Vai ser muito bom 🙂

    Não costumo usar directamente o iptaqbles, mas vai ser bom aprender/recordar.

  6. Avatar de Guilherme de Sousa
    Guilherme de Sousa

    Mais simples e melhor não há! Boa iniciativa!

    cumps!

  7. Avatar de Quantum
    Quantum

    E porque não usar o Firestarter e depois implementar regras

    Quantum

  8. Avatar de Hugo Matos
    Hugo Matos

    Excelente artigo e um óptimo tópico, mais um a não perder…
    Obrigado Pedro

  9. Avatar de José Pedro Silva

    Boa tarde.
    Eu costumo usar a firewall CSF , acho que é muito mais simples de configurar.

  10. Avatar de Renato Guedes
    Renato Guedes

    Bom dia a todos,

    Já tive a oportunidade de configurar o iptables, mas a minha maior preocupação é como verificar que está tudo ok, porque uma coisa é verificar numa rede interna outra será redes com gamas de ip dispares.

    Se alguém tiver alguma ideia de como verificar… estão à vontade 😉

    Um abraço a todos e votos de um óptimo fim de semana… cheio de SOL!

    1. Avatar de José Maria Oliveira Simões
      José Maria Oliveira Simões

      A verificação numa rede interna não é muito diferente numa rede externa.
      Na pratica, o primeiro teste que se efetua é ping à maquina ou as maquinas que pretendemos efetuar os testes. Depois é feito um telnet à porta que se quer testar. Exemplo, telnet 80, testa a porta 80. Depois, há de obter ou não, uma resposta. Isso, agora depende, das configurações que efetuou. Veja, também no lg do iptables. Debaixo da directoria /var/log/ vai lá estar em principio o log.

  11. Avatar de Pedro Paulo
    Pedro Paulo

    Teus textos são muito interessantes e elucidativos, aprendi e venho aprendendo muito com tuas postagens.
    Sucesso!!

    1. Avatar de Pedro Pinto

      Obrigado Pedro Paulo, brevemente sairá a Parte II, fica atento.

      Abraço
      Pedro Pinto