Linux slogan
Visite também: Segurança Linux · BR-Linux.org · Dicas-L · Doode · NoticiasLinux · SoftwareLivre.org · UnderLinux



» Screenshot
Linux: Limpo e funcional
Por L30N3
» Login
Login:
Senha:

Se você ainda não possui uma conta, clique aqui.

Esqueci minha senha



Artigo

Como construir um firewall de baixo custo para sua empresa (parte 3)
Linux user
thiagosc
19/11/2003
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.
Por: Thiago da Silva Christofoli
[ Hits: 25453 ]
Conceito: 10.0   3 voto(s)3 voto(s)3 voto(s)3 voto(s)3 voto(s) + quero dar nota ao artigo

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

Leitura recomendada

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....


Contribuir com comentário


  
Para executar esta ação você precisa estar logado no site, caso contrário, tudo o que for digitado será perdido.
Responsável pelo site: Fábio Berbert de Paula - Conteúdo distribuído sob licença GNU FDL
Site hospedado por:

Viva o Linux

A maior comunidade Linux da América Latina! Artigos, dicas, tutoriais, fórum, scripts e muito mais. Ideal para quem busca auto-ajuda em Linux.