Como construir um firewall de baixo custo para sua empresa (parte 3)

Na terceira e última parte deste artigo, você ficará sabendo sobre cada um dos elementos que constituem as regras de um firewall com o iptables. Verá também a relação custo x benefício para a construção de um firewall utilizando Linux.

[ Hits: 35.903 ]

Por: Thiago da Silva Christofoli em 19/11/2003


Componentes de um firewall



Olá comunidade estou de volta...

Nesta terceira parte da série de artigos venho mostrar as explicações para cada parte de uma regra e tomarei como exemplo as regras citadas no artigo anterior, algumas regras simples, mas que são de vital importância para a segurança de uma rede que fica conectada 24 horas por dia com a internet.

Antigos anteriores:

Vamos ver algumas regras simples:

# iptables -A INPUT -p tcp -syn -j DROP
# iptables -A INPUT -i ppp0 -p udp -drport 0:30000 -j DROP


Isso fará com que a sua máquina passe a ignorar as conexões vindas de qualquer porta tcp, sem enviar sequer uma confirmação de que o pacote foi recebido. Você continuará acessando a internet normalmente, mas ninguém conseguirá se conectar diretamente a sua máquina. A Segunda regra bloqueia também parte das portas UDP, adicionando uma camada extra de segurança.

Agora vamos a explicação dos comandos desta regra.

O firewall com iptables funciona com regras e estas regras são chamadas de chains, as três chains possíveis são:
  • INPUT - Utilizada quando o destino final é a própria máquina firewall;
  • OUTPUT - Qualquer pacote gerado na máquina firewall e que deva sair para a rede será tratado por essa chain;
  • FORWARD - Qualquer pacote que atravessa o firewall, oriundo de uma máquina e direcionado a outra será tratada por essa chain.
As regras de um firewall no Linux são compostas assim:

iptables [-t tabela] [opção] [chain] [dados] -j [ação] ]

Um exemplo:

# iptables -A FORWARD -d 192.168.1.1 -j DROP

A linha acima determina que todos os pacotes destinados à máquina 192.168.1.1 devem ser descartados. No caso:

Tabela: filter (é a default)
Opção: -A
Chain: FORWARD
Dados: -d 192.168.1.1
Ação: DROP

Existem várias possibilidades que fogem à sintaxe mostrada anteriormente. É o caso do comando iptables -L, que mostra as regras em vigor.

Análise das regras com a tabela filter


As principais opções são:
  • -P - Policy (política). Altera a política da chain. A política inicial de cada chain é ACCEPT. Isso faz que o firewall, inicialmente, aceite qualquer INPUT, OUTPUT ou FORWARD. A política pode ser alterada para DROP, que irá negar o serviço da chain, até que uma opção -A entre em vigor. O -P não aceita REJECT ou LOG;
  • -A - Append (anexar). Acresce uma nova regra a chain. Tem prioridade sobre o -P. Geralmente, como buscamos segurança máxima, colocamos todas as chains em política DROP, com o -P e, depois, abrimos o que é necessário;
  • -D - Delete (apagar). Apaga uma regra. A regra deve ser escrita novamente, trocando-se a opção para -D;
  • -L - Flush (esvaziar). Remove todas as regras existentes, no entanto, não altera a política (-P).


Dados


Os elementos mais comuns para se gerar dados são os seguintes:
  • -s - Source (origem). Estabelece a origem do pacote. Geralmente é uma combinação do endereço IP com a máscara de sub-rede, separados por uma barra;
  • -d - Destination (destino). Estabelece o destino do pacote. Funciona exatamente como o -s, incluindo a sintaxe;
  • -p - Protocol (protocolo). Especifica o protocolo a ser filtrado. O protocolo IP pode ser especificado pelo seu número ou pelo seu nome. Os protocolos mais utilizados são udp, tcp e icmp;
  • -i - In-Interface (Interface de entrada). Especifica a interface de entrada. As interfaces existentes podem ser vistas com o comando ifconfig. O -i não pode ser utilizado com a chain OUTPUT;
  • -o - Out-Inteface (interface de saída). Especifica a interface de saída. Similar a -i, inclusive nas flexibilidades. O -o não pode ser utilizado com a chain INPUT;
  • -! - Exclusão. Utilizado com -s, -d, -p, -i, -o e outros para excluir o argumento;
  • --sport - Source Port. Porta de origem. Só funciona com as opções -p udp e -p tcp;
  • --dport - Destination Port. Porta de destino. Só funciona com as opções -p udp e -p tcp;


Ações


As principais ações são:
  • ACCEPT - Aceitar. Permite a passagem do pacote;
  • DROP - Abandonar. Não permite a passagem do pacote, descartando-o. não avisa a origem sobre o ocorrido;
  • REJECT - Igual ao DROP, mas avisa a origem sobre o ocorrido (envia pacote icmp);
  • LOG - Cria um log referente à regra, em /var/log/messages.


Relação custo benefício


Este é um aspecto bem interessante quando lidamos com o Linux, pois como todos nós sabemos o Linux é um software livre e gratuito, mas o desenvolvimento de uma solução não é gratuito, pois o desenvolvedor do firewall deverá sempre estar atento a possíveis ataques com isso ele tem que estar sempre atento a novas regras e principalmente verificar os logs do sistema...

Mas como cobrar por isso??? Esse é um fator que devemos estar muito atentos, pois devemos saber quanto cobrar, ou seja, cobrar pelo seu tempo de desenvolvimento, como o próprio título do artigo frisa, este é um firewall de baixo custo devido as ferramentas envolvidas no processo, softwares livres. O que devemos levar em conta são as horas de desenvolvimento do mesmo.

Conclusão


Conclui-se que um firewall, sem dúvida nenhuma, é um fator essencial para a segurança de uma empresa, pois como vimos nestes três artigos, o mesmo protege a integridade dos dados de uma rede de computadores e devemos levar em conta que a construção da mesmo requer muita atenção e auditorias constantes.

Para um estudo mais aprofundado sobre segurança, sugiro o IDS (sistemas de Detecção de Intrusão).

Até o próximo artigo!!!

Thiago da Silva Christofoli
Analista de Sistemas

   

Páginas do artigo
   1. Componentes de um firewall
Outros artigos deste autor

Como criar um firewall de baixo custo para sua empresa

Linux: Uma ótima opção para sua empresa

Configurando o Squid no Kurumin

Como construir um firewall de baixo custo para sua empresa (parte 2)

Leitura recomendada

Balanceamento de link + redundância

Criando firewalls dinâmicos com Iptables Recent

Squid + iptables (método ninja)

Balanceamento de carga entre 2 placas de rede

Firewall e NAT em FreeBSD com controle de banda e redirecionamento de portas e IPs

  
Comentários
[1] Comentário enviado por fabio em 19/11/2003 - 11:12h

Ficou muito bem explicado, parabéns!

[2] Comentário enviado por jeffestanislau em 19/11/2003 - 11:42h

Grande thiago, seu artigo ficou muito bom.
Fez um encerramento bem detlhado!!!
Parabéns!!!

[3] Comentário enviado por lacierdias em 21/11/2003 - 07:05h

Ficou exelente detalhou bem cada passo....Ficamos gratos pos matérias assim.....Abraço

[4] Comentário enviado por thiagosc em 21/11/2003 - 09:35h

valeu galera pelo insentivo !!! Obrigado!!!

[5] Comentário enviado por paulo neiva em 22/11/2003 - 21:48h

Boa contribuição, Thiago! Simples e claro sobre os pontos mais importantes.
Apenas uma pequena errata: onde se lê

"-L - Flush (esvaziar). "

acredito que deveria ser

"-F - Flush (esvaziar)."

OK?

[6] Comentário enviado por guachinim em 21/11/2005 - 16:19h

Cara, acabo de encontrar seu artigo, ainda não o li, mas gostaria de saber se com ele [iptables] consigo fazer bloqueios de socks, urls e outros?????
Valeu..
Chiko

[7] Comentário enviado por math em 24/08/2006 - 12:29h

Parabléns.
Gostaria de trabalhar com linux firewall(segurança da informação) vc tem alguma dia pra me dar pra começar nesta area?
Valeu.

[8] Comentário enviado por fer em 27/08/2007 - 20:37h

legal mesmo
mt bom esse artigo num tenhu firewall na empresa
ja estou procurandu mais info
otimo artigo super completo
volto a entrar em conto depois q estiver usandu firewall no meu serv..
valeu ...

FER....

[9] Comentário enviado por ede_linux em 19/10/2016 - 12:08h

Parabéns pelo artigo, excelente!

Devo aplicar isto ao meu pc, o que utilizo no dia a dia para trabalhar/aceder ao email?
Obrigado


Contribuir com comentário




Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts