Firewall com Iptables + Squid

Configuração de um servidor seguro usando iptables e redirecionamento de proxy com Squid.

[ Hits: 54.739 ]

Por: Henrique Augusto em 10/12/2007


Introdução



Configuração de um servidor seguro usando iptables e redirecionamento de proxy com Squid.

Objetivos:
  • Noções sobre firewall;
  • Como utilizar o firewall iptables;
  • Como instalar e configurar o proxy Squid;

Firewall

O Firewall é um programa que tem como objetivo proteger a máquina contra acessos e tráfegos indesejáveis, proteger serviços que esteja rodando e bloquear a passagem de pacotes que não se queiram receber.

Iptables

É um firewall a nível de pacote e funciona baseado no endereço/porta de origem/destino do pacote. Funciona através da comparação de regras para saber se um pacote tem ou não permissão para passar.

Características:
  • Trabalha com a especificação de portas/endereços de origem/destino;
  • Suporte a protocolos TCP/UDP/ICMP;
  • Suporte a interfaces de origem/destino;
  • Manipula serviços de proxy na rede;
  • Tratamento de tráfego divido em chains;
  • Muito rápido, estável e seguro;
  • Permite enviar alertas personalizados ao syslog;
  • Suporte a SNAT e DNAT
  • Permite especificar prioridade para determinados tipos de pacotes.

Regras:

São comandos passados ao iptables para que ele realize uma determinada ação de acordo com o endereço/porta de origem/destino, interface de origem/destino. Exemplo:

# iptables -A INPUT -s 192.168.2.1 -j DROP

As opções passadas ao iptables para manipular as regras são sempre em maiúsculas.

Opções:

1) Adicionado regras (-A):

# iptables -A INPUT -s 127.0.0.1 -j DROP

2) Listando regras (-L):

Opções principais : -v, -n

# iptables -L INPUT
   Chain	INPUT	(policy ACCEPT)	
   Target	prot	opt	source	 	destination
   DROP	       all	  --	 anywhere       localhost

3) Apagando regras (-D):

# iptables -D INPUT 1
# iptables -D INPUT -s 127.0.0.1 -j DROP


4) Inserindo uma regra (-I):

# iptables -I INPUT 1 -s 192.168.2.1 -d 127.0.0.1 -j ACCEPT

5) Substituindo uma regra (-R):

# iptables -R INPUT 2 -d 127.0.0.1 -p icmp -j DROP

Exemplo de regras:

Limpando todas as regras:

# iptables -F

Bloqueia o tráfego vindo da rede 200.200.200.*:

# iptables -A INPUT -s 200.200.200.0/24 -j DROP

Bloqueia conexões com o destino 192.128.2.5:

# iptables -A OUTPUT -d 192.168.2.5 -j DROP

Bloqueia o tráfego da máquina www.dominio.com.br a rede 200.251.159.3:

# iptables -A INPUT -s www.dominio.com.br -d 200.251.159.3 -j DROP

Bloqueia o acesso externo ao serviço de SMTP:

# iptables -A INPUT -p tcp -dport 25 -j DROP

Exemplo de um firewall:

Regras para uma intranet onde o administrador rejeitou todos os tipos de serviços exceto o www e a porta 1521 (Oracle) para sua rede interna.

#!/bin/sh
iptables -F
iptables -P INPUT DROP
iptables -t nat -F
iptables -P FORWARD LOG
iptables -P FORWARD DROP
iptables -A INPUT -p tcp --dport 80 -s 200.251.159.8 -i eth0 -j ACCEPT
iptables -A INPUT -p tcp --dport 80 -s 200.251.159.47 -i eth0 -j ACCEPT
iptables -A INPUT -p tcp --dport 80 -s 192.168.0.0/255.255.0.0 -i eth1 -j ACCEPT
iptables -A INPUT -p tcp --dport 4711 -s 200.251.159.49 -i eth0 -j ACCEPT
iptables -A INPUT -p tcp --dport 4711 -s 200.251.159.5 -i eth0 -j ACCEPT
iptables -A INPUT -p tcp -s 200.251.159.15 -i eth0 -j ACCEPT
iptables -A FORWARD -p tcp --dport 1521 -s 0/0 -d 0/0 -i eth0 -j LOG
iptables -A FORWARD -p tcp --dport 1521 -s 0/0 -d 0/0 -i eth0 -j ACCEPT
iptables -A INPUT -p tcp -s 200.251.159.6 -i eth0 -j ACCEPT

    Próxima página

Páginas do artigo
   1. Introdução
   2. Proxy
Outros artigos deste autor
Nenhum artigo encontrado.
Leitura recomendada

Implementando uma política de segurança eficaz

Configurando proxy no shell

Análise sobre políticas de segurança da informação

Consegue guardar um segredo?

Traduzindo plugins do OpenVAS/Nessus para português

  
Comentários
[1] Comentário enviado por y2h4ck em 10/12/2007 - 11:01h

Superficial, da uma ideia interessante de receitinha de bolo pra iptables..

Mas isso ai nao tem nada de "servidor seguro" :-)

[]s

[2] Comentário enviado por rickordeb em 10/12/2007 - 11:07h

É mesmo bem superficial, para quem está começando ter uma idéia!!!

[]s

[3] Comentário enviado por elgio em 10/12/2007 - 11:34h

Achei um erro de sintaxe;

iptables -P FORWARD LOG

A política LOG não pode ser a padrão. Logo após esta regra tu coloca DROP como padrão.

[4] Comentário enviado por rickordeb em 10/12/2007 - 12:21h

OK

[5] Comentário enviado por removido em 10/12/2007 - 15:15h

Olha, não está "O PRIMOR" do firewall, mas as regras estão com uma explicação legal, e satisfatória para quem quer começar a aprender.

Eu recomendo (e muito) o guia foca, eu lí apenas a parte de iptables (por enquanto) e foi o divisor de águas!


[6] Comentário enviado por petrucius em 10/12/2007 - 15:51h

Ja que vcs. querem ajudar com comentarios, por favor HELLP-me pois gostaria que enviassem um modelo mais simples porem que funcione de verdade pois so consigo colocar o servidor para rodar na internet...to todo enrolado. to usando a eth0 para internet e eth1 para rede interna.
gostaria de um modelo sem muitos flus..flus...quero somente fazer a minha rede rodar na internet atraves do iptable e squid. Ja tentei de tudo, e sei que deve ser um pequeno detalhe. mas nao encontro..por favor mim ajudem.

[7] Comentário enviado por professordavid em 10/12/2007 - 16:04h

Cara.. explica melhor. . o que voce quer fazer.?? É compartilhar a internet?? Dá uma explicada melhor que a gente tenta ajudar..

[8] Comentário enviado por jotapedesp em 10/12/2007 - 17:40h

Muito mau Explicado seu artigo.....

[9] Comentário enviado por adrianoturbo em 11/12/2007 - 08:47h

Faço minhas palavras aos demais .

[10] Comentário enviado por fjbvn em 11/12/2007 - 21:13h

Cara, sendo sincero.

Apesar de até hoje não ter tido tempo para produzir nada para a comunidade, tenho que fazer minhas as palavras de alguns colegas...

Mais amigo, encare como crítica construtiva, para vc vim e criar outro artigo melhor.

[11] Comentário enviado por nil_anderson em 18/12/2007 - 21:34h

Sinceramente, concordo com o último comentário...
O objetivo não é criticar para "ofender", mas sim, que sirva como insentivo para poder melhorar seus artigos e trazer mais informações interessantes.

Estes comentários/criticas são frequentes, devemos aprender a aceitá-las, ok?

Achei muito insuficiente/superficial este artigo (minha opinião).

[12] Comentário enviado por Jeremias Costa em 05/01/2008 - 15:20h

muito massa esse artigo !!
simples e eficiente, princialmente par usuarios iniciantes no squid !!
legal


Contribuir com comentário




Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts