Firewall com Iptables + Squid

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

[ Hits: 54.860 ]

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

Antivírus ClamAV com proteção em tempo real

VPN entre servidores CentOS 6 e Windows 7

Hardering com Red Hat 5

Scanners de portas e de vulnerabilidades

Construindo um Log Server utilizando Linux, Unix e Windows

  
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