Firewall com Iptables + Squid

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

[ Hits: 55.100 ]

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

SELinux - Security Enhanced Linux

Segurança extrema com LIDS: novos recursos

From Deploy WAR (Tomcat) to Shell (FreeBSD)

Chkrootkit - Como determinar se o sistema está infectado com rootkit

Melhorias generalizadas de segurança (parte 2)

  
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