Firewall com Iptables + Squid

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

[ Hits: 54.802 ]

Por: Henrique Augusto em 10/12/2007


Proxy



O proxy é um programa que fica entre a rede interna e a rede mundial controlando a comunicação entre as mesmas.

Squid

Squid é um servidor de proxy e cache de alta performance, suportando HTTP e FTP. Tem como objetivo principal de compartilhar uma conexão com a internet entre vários ou mesmo com todos os usuários de uma rede.

Principais características:
  • Eficiência e segurança no gerenciamento do tráfego de informações;
  • Redução do tráfego HTTP e FTP, pois muito do que é frequentemente acessado fica no cache do servidor;
  • Possibilitar acesso restrito a usuário e sites específicos, com possibilidade de controle de horários permitidos para acesso.

Instalação:

Existem 2 maneiras de se instalar o Squid:

1. Utilizando o pacote rpm (pré-definido):

Arquivo vem junto com a distribuição do Linux:

# rpm -ivh squid-versão.rpm

2. Utilizando o tar.gz (fonte):

2.1. Download

http://www.squid-cache.org/Versions/v2/2.5/squid-2.5.STABLE4.tar.gz

2.2. Descompactar

# tar -zpxvf squid-2.5.STABLE4.tar.gz

2.3. Instalar

Entre no diretório descompactado:

# ./configure --prefix=/etc/squid --enable-err-language=Portuguese
# make all
# make install


Configuração:

Edite o arquivo /etc/squid/etc/squid.conf.

Opções principais:
  • http_port (padrão 3128)
  • Cache_mem (Tamanho da memória a ser utilizado) Ex: cache_mem 32 MB
  • Cache_dir (Diretório onde arquivos serão armazenados. Ex: cache_dir ufs /var/spool/squid 300 16 256
  • Cache_access_log (arquivo no qual será gerado log dos acessos ao servidor). Ex: Cache_access_log /var/log/squid/acces.log

Adicione as linhas:

acl all src 192.168.2.0/255.255.255.0
http_access allow all

Salve o arquivo.

Dentro do diretório do squid/bin:

# ./squid -Z (cria o diretório do cache)

Iniciando o Squid:

Com o pacote rpm:

# cd /etc/rc.d/init.d
#./squid start
# ntsysv
(habilitar squid)

Com o tar:

# cd /etc/squid/bin
# ./RunCache &


Configuração:

1) Exemplo 01 de regras:

authenticate_program /usr/bin/ncsa_auth /etc/squid/password
acl unit proxy_auth REQUIRED
acl interno src 192.168.2.3
acl interno1 src 192.168.2.5
acl pagina_local dst 200.251.159.0/255.255.255.0
acl interno3 src 192.168.2.10
acl Safe_ports port 8000 #ibict
acl negarend url_regex "/etc/squid/negado"
http_access deny negarend
http_access allow interno unit
http_access deny pagina_local interno1
http_access allow interno3
http_access deny all

2) Exemplo 02 de regras:

authenticate_program /usr/bin/ncsa_auth /etc/squid/senhas
acl interno3 src 200.220.20.1
acl userctl proxy_auth "/usuarios/userctl"
acl ip_permitidos_userctl url_regex "/usuarios/ip_permitidos_userctl"
acl sites_permitidos_userctl dstdomain “/usuarios/sites_permitidos_userctl"

http_access allow userctl sites_permitidos_userctl
http_access allow userctl ip_permitidos_userctl
http_access allow interno3
http_access deny all

Arquivos:
    - Criando arquivo de senha:

    # httpasswd -c senhas usuario

    - userctl

    atendimento
    recepcao
    acristina

    - ip_permitidos_userctl

    #Setor de Protocolo
    192.168.3.188
    192.168.3.190
    192.168.2.30

    - sites_permitidos_userctl

    www.uol.com.br
    www.terra.com.br
    www.globo.com

Página anterior    

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

TOR: A Internet sem rastreabilidade

Iptables protege contra SYN FLOOD?

Proteção utilizando fail2ban contra ataques do tipo

Análise Passiva: Analisando seu tráfego de maneira segura

Snort + BarnYard2 + Snorby no Slackware 14.1

  
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