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

13 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. Depois de uma introdução ao IPtables e de sabermos o que são tabelas, chains (cadeias) e targets (acções), hoje vamos mostrar alguns exemplos de utilização.

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.

Aqui ficam alguns exemplo de utilização do iptables:

1) Apagar todas as regras

Antes de começar a criar um conjunto de regras, é importante que apague todas as regras existentes. Para isso basta que usem o comando:

iptables -F
ou
iptables –flush
2) Definir politica por omissão para as cadeias (chains)

Como referimos, as cadeias de regras têm sempre uma politica por omissão que pode ser DROP ou ACCEPT (na pratica é uma regra implícita). Vamos considerar que queremos que a cadeia INPUT e FORWARD como DROP e OUTPUT como ACCEPT. Para isso basta executar o seguinte comando:

iptables -P INPUT DROP
iptables -P FORWARD DROP
iptables -P OUTPUT ACCEPT
3) Mostrar o estado da Firewall

Para visualizarem todas as regras, basta que executem o comando:

iptables -L -n –v

onde:

  • L – lista todas as regras
  • n – Mostra o IP e porta num formato numério
  • v – detalhe da informação

iptables_02

4) Mostrar todas as regras (com número de linha)

Para veres as regras com o respectivo número , basta que usem o comando

iptables -n -L -v --line-numbers

iptables_03

5) Bloquear um endereço específico

Como ultima dica ensinamos como podem bloquear/aceitar uma determinada comunicação vinda de um endereço IP especifico. Vamos considerar que pretendemos bloquear as comunicações vindas do endereço 192.168.1.1:

iptables -A INPUT -s 192.168.1.1 -j DROP

Nota: No caso de terem definido a politica por omissão para as cadeia INPUT como DROP e caso pretendam aceitar todas as comunicações do endereço 192.168.1.1, basta que insiram a regra

iptables -A INPUT -s 192.168.1.1 -j ACCEPT

No próximo tutorial vamos apresentar mais 5 exemplos de utilização do iptables. Para isso contamos sempre com as vossas dicas, sugestões e boas práticas de utilização. Quem tiver um raspberry PI, também pode experimentar estas dicas.

Comentários

13

Deixe um comentário

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

  1. Avatar de Leandro
    Leandro

    Muito interessante.

    Uma das ferramentas mais essenciais que se pode ter num computador é a firewall.E nos dias de hoje ela é ainda muito esquecida. Ainda bem que os antivirus ja possuem firewall que trabalham sem a interação do utilizador.

    Um aspeto importante a abordar aqui seria o controlo da firewall no windows. Já agora aproveito para questionar o seguinte.
    No ip tables é possivel bloquear todos os ip a excepção de um unico?

    1. Avatar de Miguel Frade

      Para quem quiser aprender um pouco mais sobre IPTABLES sugiro esta lista com 7 vídeos:

      https://www.youtube.com/playlist?list=PLwBiVeU3uK1lIm6NrtHI7L2iZoY5gojN7

      1. Avatar de Fábio Pires
        Fábio Pires

        Obrigado pela lista de videos. 🙂

        Para completar ainda mais a informação que se encontra neste artigo (e post do Miguel Frade), informo da existência do Shorewall (https://wiki.debian.org/HowTo/shorewall).

        É praticamente um GUI para iptables, permite a configuração do mesmo através de Zonas (à là Next Generation Firewall) e obviamente atribuir políticas diretamente à zona.

        Para além disto, para quem pretende uma funcionalidade L7, aconselho instalarem o seguinte package: http://l7-filter.sourceforge.net/

        Certamente que começa a deixar de fazer sentido fazer-se o bloqueio por portas, mas sim por protocolo, até porque as aplicações estão cada vez mais evasivas e é facilmente possível configurar uma aplicação para utilizar por exemplo a porta 80, sendo ela uma aplicação de voz (i.e skype) e obviamente não faz sentido bloquear a porta 80 mas sim aquela aplicação/protocolo em específico.

        Para uma lista de protocolos suportados pelo package acima, visitem o seguinte endereço: http://l7-filter.sourceforge.net/protocols

        Cumps.

    2. Avatar de Gonçalves
      Gonçalves

      Pessoalmente não conheço nenhuma firewall mais potente e flexível…
      O iptables permite fazer praticamente tudo.

  2. Avatar de Pedro Azevedo
    Pedro Azevedo

    E andaram-me a dizer que não precisava de firewall para nada com os Linuxs…só me dão aflições…:-)

    1. Avatar de Pedro Pinto

      Ter apenas uma firewall num sistema não te dá garantias totais de segurança…no entanto ajuda. Seja no Linux, Windows, Mac e afins.

  3. Avatar de tipsy
    tipsy

    o iptables não foi substituido por uma outra ferramenta no ultimo kernel?

  4. Avatar de Alexandre Martins
    Alexandre Martins

    Belos artigos, estes de IPTables. A seguir pode vir um mini-curso de squid proxy que não me importo. Nadinha.

      1. Avatar de Alexandre Martins
        Alexandre Martins

        Eu prometo (juro, aliás) que para a próxima pesquiso antes de falar 🙂

  5. Avatar de Sergio Lackmann Vieira Junior
    Sergio Lackmann Vieira Junior

    Já ouviram falar no Endiam? ótima ferramenta para estes fins!

  6. Avatar de V@mpyro
    V@mpyro

    Já agora alguns livros úteis sobre o assunto:

    “Designing and Implementing Linux Firewalls and QOS Using Netfilter Iproute2 Nat and L7 Filter” http://www.packtpub.com/linux-firewalls/book

    “Linux Iptables Pocket Reference” http://shop.oreilly.com/product/9780596005696.do

    Se pesquisarem, facilmente os encontram 🙂