Squid (squid.conf)

Squid com autenticação e controle de banda

Categoria: Segurança

Software: Squid

[ Hits: 22.224 ]

Por: Rodrigo Mendes Pasini


Configuração básica do Squid usando delay pools, liberação de alguns sites e requisição de senha para outros.


#########################
#                                                     #
#        SQUID COM AUTENTICAÇÃO    #
#         RODRIGO MENDES PASINI      #
#                   04/08/2009                 #
#                                                    #
#########################

################
#    AUTENTICAÇÃO     #
################

auth_param basic program /usr/bin/ncsa_auth /etc/squid/passwd 
#Localização do programa de autenticação e o arquivo de usuários
auth_param basic children 5
auth_param basic realm Para acessar esse Site e necessário permissão especial 
#mensagem exibida para o usuario na janela de autenticação
auth_param basic credentialsttl 2 hours 
#tempo que expira a autenticação
auth_param basic casesensitive off 
#desativa diferenciação de maiúsculas e minúsculas

####################
#  CONTROLES DE ACESSO   #
####################

acl all src all
acl manager proto cache_object
acl localhost src 127.0.0.1/32
acl to_localhost dst 127.0.0.0/8
acl SSL_ports port 443      # https
acl SSL_ports port 563      # snews
acl SSL_ports port 873      # rsync
acl Safe_ports port 80      # http
acl Safe_ports port 21      # ftp
acl Safe_ports port 443      # https
acl Safe_ports port 70      # gopher
acl Safe_ports port 210      # wais
acl Safe_ports port 1025-65535   # unregistered ports
acl Safe_ports port 280      # http-mgmt
acl Safe_ports port 488      # gss-http
acl Safe_ports port 591      # filemaker
acl Safe_ports port 777      # multiling http
acl Safe_ports port 631      # cups
acl Safe_ports port 873      # rsync
acl Safe_ports port 901      # SWAT
acl Safe_ports port 5000           # VPN
acl purge method PURGE
acl CONNECT method CONNECT

### CONTROLE DE BANDA ###

delay_pools 1
delay_class 1 2
delay_parameters 1 229376/229376 8192/8192


acl rede src 192.168.2.0/24                   # acl que registra a rede que acessará a Internet
acl siteson url_regex -1 "/etc/squid/on"      #acl da lista de sites permitidos
acl password proxy_auth REQUIRED              #acl que obrigará a autenticação
acl sitesoff url_regex -i "/etc/squid/off"    #acl dos sites bloqueados
acl governo dstdom_regex .gov.br            #acl que indica domínios do governo

#############
#   PERMISSÕES   #
#############
delay_acces 1 allow 192.168.2.0/24
http_access allow manager localhost
http_access deny manager
http_access allow purge localhost
http_access deny purge
http_access deny !Safe_ports
http_access deny CONNECT !SSL_ports
http_access allow localhost

# regra que bloqueia todas redes menos a nossa
http_access deny all !rede 
# libera a lista de sites permitidos
http_access allow siteson
#Libera sites do governo
http_access allow governo
# daqui pra frente só com senha
http_access allow password 
# bloqueia os sites não permitidos caso não forneça senha
http_access deny sitesoff 

http_access allow rede

icp_access allow rede
icp_access deny all

################ 
# NETWORK OPTIONS  #
################ 


http_port 192.168.2.99:3128
hierarchy_stoplist cgi-bin ?

########################
# OPÇÕES DE CACHE EM MEMÓRIA #
########################

cache_mem 16 MB
maximum_object_size_in_memory 8 KB
memory_replacement_policy lru

######################
# OPÇÕES DE CACHE EM DISCO #
######################

cache_replacement_policy lru
cache_dir ufs /var/spool/squid 100 16 256
store_dir_select_algorithm least-load
max_open_disk_fds 0
minimum_object_size 0 KB
maximum_object_size 20480 KB
cache_swap_low 90
cache_swap_high 95
update_headers on

#######################
# OPÇÕES DE ARQUIVOS DE LOG #
#######################

access_log /var/log/squid/access.log squid
logfile_daemon /usr/lib/squid/logfile-daemon
cache_log /var/log/squid/cache.log
cache_store_log /var/log/squid/store.log

################################
# OPÇÕES PARA PERFORMANCE DO CACHE       #
################################

refresh_pattern ^ftp:      1440   20%   10080
refresh_pattern ^gopher:   1440   0%   1440
refresh_pattern -i (/cgi-bin/|\?) 0   0%   0
refresh_pattern (Release|Package(.gz)*)$   0   20%   2880
refresh_pattern .      0   20%   4320
acl shoutcast rep_header X-HTTP09-First-Line ^ICY\s[0-9]
upgrade_http0.9 deny shoutcast
acl apache rep_header Server ^Apache
broken_vary_encoding allow apache
extension_methods REPORT MERGE MKACTIVITY CHECKOUT

#############################
#  PARAMETROS ADMINISTRATIVOS          #
#############################
cache_mgr Rodrigo

###################
# INTERNAL ICON OPTIONS #
###################

icon_directory /usr/share/squid/icons

global_internal_static on

#######################
# OPÇÕES DE PAGINA DE ERRO   #
#######################

error_directory /usr/share/squid/errors/Portuguese
hosts_file /etc/hosts
coredump_dir /var/spool/squid
  


Comentários
[1] Comentário enviado por augusto1217 em 23/08/2009 - 09:23h

Bacana este seu conf, bem organizado é isto ae vlw pela contribuição

[2] Comentário enviado por kina em 24/08/2009 - 08:56h

Parabens, esse seu .conf está bem legal, e tudo bem organizado e explicado, valeu!

[3] Comentário enviado por paulotrad em 23/09/2009 - 12:24h

eai blz..
to tentando configurar meu squid pra autenticar
só q o ideal seria que: a opção de proxy estiver desmarcada o usuario nao navegasse,
como faço isso ??

obrigado. :)

[4] Comentário enviado por rodrigo8819 em 23/09/2009 - 17:54h

Você faz uam configuração no firewall para bloquear todo acesso ao serrvidor que nao seja pela porta do proxy (no caso 3128) ou redireciona tudo pra essa porta.

[5] Comentário enviado por eltonhbm em 25/09/2009 - 00:55h

hehe eu tenho um squid.conf quase igual a esse ai.. a diferença eh q o meu ta um arquivo enorme (o original) mas vou refaze-lo dessa maneira ai..mto bom,, mto bem organizado,, vlw ae!!!!!!!

[6] Comentário enviado por paulotrad em 25/09/2009 - 09:10h

vlw rodrigo...
vou fazer isso..

abrçs..

[7] Comentário enviado por paulotrad em 25/09/2009 - 13:29h

rodrigo.. apliquei o seu modelo aqui no meu servidor

ubuntu 9.04 x86 server

deu tudo certo, porém quando o squid inicia aparece a seguinte mensagem:

parse_delay_pool_access: Ignoring pool 1 not in 1 ... 0

mas o proxy funciona normalmente, o que significa esta mensagem ?

ai diz q está ignorando alguma coisa,


[8] Comentário enviado por removido em 28/09/2009 - 15:14h

Caro
Meu squid está funcionado normalmente com autenticação, gostaria de saber como faço para que tenha um tempo de limite para a senha do usuario ou seja não ficar pedindo senha toda vez que o usuario abre o browser.

Os usuarios reclaman muito que toda vez que abrem o browser fica pedindo senha.

[9] Comentário enviado por paulotrad em 28/09/2009 - 17:22h

esta acontecendo o mesmo comigo
toda vez que abre o browser ele pede senha..
deveria ter um tempo limite

[10] Comentário enviado por brunobrambati em 08/10/2009 - 16:56h

Boa tarde rodrigo !Cara to com um problema
É que eu tenho que configurar um servidor proxy com centos
ai eu usei essa conf sua ( muito boa por sinal ),e queria saber como eu faço pra que 1 usuario (tipo diretor da empresa)possa ter acesso sem restrição.
queria saber se pode me ajudar
Obrigado

[11] Comentário enviado por paulotrad em 09/10/2009 - 10:25h

defina a seguinte regra:

acl diretor src 192.168.1.1 (o ip do seu diretor)
http_access allow diretor

[12] Comentário enviado por paulotrad em 09/10/2009 - 10:37h

dependendo de como está o seu /etc/rc.local vc poderá liberar por iptables se quiser

com a seguinte regra:

iptables -A FORWARD -s 192.168.1.1 -d 0/0 -j ACCEPT
iptables -A FORWARD -s 0/0 -d 192.168.1.1 -j ACCEPT

obs: trocar o ip informado pelo do seu diretor.

aqui funfou blz
o diretor nao usa proxy no navegador, o acesso é direto
o resto da galera toda usa.




[13] Comentário enviado por brunobrambati em 09/10/2009 - 17:33h

Brigadão paulo
Funfo aki
=D

vlwssss

[14] Comentário enviado por mrjeday em 04/02/2010 - 12:47h

Olha só, pelo que percebi fizeste autenticação para acesso para todos os usuários da tua rede.
Vou te falar a minha idéia, tem como limitar essa autenticação para acesso a determinados sites por usuário?
Mais ou menos assim...
Cenário:
-Squid roteando a conexão normalmente.
-Acls criadas e em perfeito funcionamento para bloqueio de sites.

Situação:
-Quando o usuário tentar acessar a internet, ele conseguirá normalmente. Porém, quando tentar acessar algo proibido (blacklist), retornar uma mensagem a ele informando o bloqueio e solicitando um nome de usuário e senha para acesso ao determinado site.

Teria algo parecido com isso?

Agradeço,

Victor Figueira
Administrador de Redes
Universidade do Estado do Pará

[15] Comentário enviado por mrjeday em 04/02/2010 - 12:54h

Aproveitando o post do Paullo acima, ele ou alguém teria como me dizer alguma regra para fazer o acesso a um determinado site passar por fora do proxy.

Exemplo:

-Tenho um servidor squid
-Usuários recebem o proxy atribuido automaticamente pelas configurações de proxy automáticas da rede em seu navegador internet explorer. Porém, ao acessar de outro qualquer navegador eles tem obrigatoriamente que escrever o proxy pra poder navegar.
-Acesso a atualizações de antivirus também tem que escrever o proxy no antivirus.

Teria como fazer a conexão com destino ao servidor de atualização do antivirus passar por fora do proxy? Ou melhor, teria como entregar automaticamente esse proxy do mesmo modo que é feito ao internet explorer para outros navegadores e ao antivirus?

Agradeço,

Victor Figueira
Administrador de Redes
Universidade do Estado do Pará

[16] Comentário enviado por paulotrad em 04/02/2010 - 16:22h

mrjeday para vc liberar um site pra acesso direto, ou seja, sem passar pelo proxy, basta vc inserir o ip do site como nesta regra
no seu iptables (rc.local)

iptables -A FORWARD -s 192.168.1.1 -d 200.207.173.68 -j ACCEPT
iptables -A FORWARD -d 192.168.1.1 -s 200.207.173.68 -j ACCEPT

este no caso foi pra liberar o site cmt.caixa.gov.br ... com isso a máquina do adm (192.168.1.1) acessa direto sem precisar
do proxy

[17] Comentário enviado por paulotrad em 04/02/2010 - 16:25h

a mesma coisa vc deverá fazer com os sites de atualização do antivirus,
eu particularment prefiro configurar manualmente os aplicativos...

no windows server 2008 tem um diretiva de grupo que insere automaticamente o ip do proxy
no navegador dos clientes.

pros clientes não terem q configurar o browser toda vez, só vc usando proxy transparente.

[18] Comentário enviado por mrjeday em 04/02/2010 - 17:54h

Obrigado ao paullo por responder, mas da forma que vc pede pra liberar eu já havia pensado. Porém, eu teria que trabalhar com uma ou mais estações clientes de ip fixo.
Vou tentar me expor melhor:

-Possuo um SAMBA PDC atuando como meu domínio. (Debian Etch)
-Possuo um Proxy não transparente entregando DHCP. (Debian Etch)
-Meus clientes navegam com proxy fixo no navegador, com excessão de quem navega pelo internet explorer, pois o DHCP entrega automaticamente o proxy via java script. (Não consegui fazer ele entregar as demais navegadores e aplicativos que necessitam acesso a internet. Dessa forma, nestes exclusivamente tenho que escrever o proxy).

Até aí tudo bem, só que parte destes usuários que navegam por este proxy também navegam foram de minha instituição e tem que ficar removendo e recolocando o proxy para navegarem fora e dentro respectivamente. Assim, se você me explicasse uma forma de fornecer o acesso a um determinado site sem passar pelo proxy, independente de ip específico, já ajudaria bastante minha situação.
Ou, caso saiba, como eu poderia entregar aos aplicativos e navegadores diferentes do internet explorer de forma automatica, como já faço em minha rede, pois sei que é possível via servidor DNS, e até fiz um teste que foi mal sucedido.

Acho que terei que abrir um tópico pra levantar esta questão. :-(

Agradeço a ajuda de todos vocês,

Victor Figueira
Administrador de Redes
Universidade do Estado do Pará

[19] Comentário enviado por alecsandrofrs em 02/06/2010 - 20:59h

Boa Noite a todos

Eu sou novo em Linux e estou com algumas dúvidas de configuração.

Atualmente tem na minha empresa 50 funcionarios desses 50 funcionarios

Sendo 47 Usuários e 3 Diretores

Eu gostaria que os 47 funcionarios terão o acesso, mais algumas paginas devem ser bloqueadas e suas logs serão gravadas e os 03 Diretores terão acesso a todas as paginas, mais seus acessos devem ser gravados.

Alguem podem me ajudar.

Att;

Alecsandro


Contribuir com comentário

  



Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts