RED:Servidores Proxy:Introdução

De Wiki Unioeste NTI
Ir para: navegação, pesquisa

Tabela de conteúdo

Descrição Geral

Esta página referencia as configurações e detalhes usados nos proxys de acesso web da UNIOESTE.

Identificação dos Servidores

Nome Local Referência
netsr-05 Reitoria 200.201.88.64
netsr-07 Reitoria 200.201.88.65
cacsr-proxybkp Reitoria 200.201.8.30

Disposição de Endereços de Redes

obs: aplicável somente ao netsr-07, que possui múltiplas instâncias do squid.


Interface Endereço de Rede Porta Serviço / Finalidade
1 eth0 200.201.88.65 22 ssh / conexão remota
2 eth1 200.201.88.90 8080 squid / proxy-cache
3 eth1:0 200.201.88.91 8080 squid / proxy-cache
4 eth1:1 200.201.88.92 8080 squid / proxy-cache
5 eth1:2 200.201.88.93 8080 squid / proxy-cache
6 eth1:3 200.201.88.94 8080 squid / proxy-cache
7 eth1:4 200.201.88.95 8080 squid / proxy-cache
8 eth1:5 200.201.88.96 8080 squid / proxy-cache
8 eth1:6 200.201.88.97 8080 squid / proxy-cache (externo)


Rotas

As seguintes rotas devem estar configuradas:

Destination Gateway Genmask Flags Metric Ref Use Iface
default * 255.255.255.255 UH 0 0 0 eth0
localnet * 255.255.255.0 U 0 0 0 eth0
localnet * 255.255.255.0 U 0 0 0 eth1
default 200.201.88.1 0.0.0.0 UG 100 0 0 eth0

SSH, SNMP, ntpdate

Veja item Configurações Comuns ao Servidores

Configuração Geral do Squid

Este tutorial será focado na configuração do servidor principal de proxy (netsr-07), sendo que os demais proxys são de testes e backup, valendo-se basicamente das mesmas regras de ACL.


As regras de ACL encontram-se no arquivo /etc/squid3/config.geral.conf, de onde regras referenciam arquivos variáveis.


Obs: arquivos que não estão presentes na lista abaixo geralmente são fixos e pouco variam ou não variam.


Lista de Arquivos de Configuração

Caminho Finalidade
1 /etc/squid3/direto domínios que NÃO fazem cache
2 /etc/squid3/hosts_proib máquinas da rede interna com acesso NEGADO (infectadas)
3 /etc/squid3/IpOri_Lib máquinas da rede interna com acesso LIBERADO (DRI)
4 /etc/squid3/sites_permit sites acessíveis quando máquina infectada
5 /etc/squid3/squid.geral.conf arquivo principal de configuração: parâmetros e regras
6 /etc/squid3/squid.externo.conf arquivo principal de configuração: proxy de acesso externo

Arquivo Principal de Configuração (squid.geral.conf)

Autenticação LDAP

Seguem configurações para autenticação via LDAP:

auth_param basic program /usr/lib/squid3/squid_ldap_auth -P -b dc=unioeste,dc=br -f "uid=%s" ldaps://netsr-01.unioeste.br
auth_param basic children 30
auth_param basic realm UNIOESTE - ATENCAO: Todos os acessos sao registrados!
auth_param basic credentialsttl 60 minutes
auth_param basic casesensitive on
acl auth_users proxy_auth REQUIRED

snmp

acl snmppublic snmp_community unioestenet

E abaixo das ACL's:

snmp_access allow snmppublic localhost
 acl snmpclient src 200.201.88.10/255.255.255.255
 acl snmpclient src 200.201.88.65/255.255.255.255
 snmp_access allow snmppublic snmpclient
 snmp_access deny all

ACL's

por redes

acl localnet src 200.201.6.0/255.255.255.0
acl localnet src 200.201.60.0/255.255.255.0
acl localnet src 200.201.61.0/255.255.255.0
acl localnet src 200.201.8.0/255.255.255.0
acl localnet src 200.201.80.0/255.255.255.0
acl localnet src 200.201.13.0/255.255.255.0
acl localnet src 200.201.81.0/255.255.255.0
acl localnet src 200.201.28.0/255.255.255.0
acl localnet src 200.201.82.0/255.255.255.0
acl localnet src 200.201.83.0/255.255.255.0
acl localnet src 200.201.84.0/255.255.255.0
acl localnet src 200.201.85.0/255.255.255.0
acl localnet src 200.201.86.0/255.255.255.0
acl localnet src 200.201.87.0/255.255.255.0
acl localnet src 200.201.88.0/255.255.255.0
acl localnet src 200.201.89.0/255.255.255.0
acl localnet src 10.81.0.0/255.255.0.0
acl localnet src 10.82.0.0/255.255.0.0
acl localnet src 10.83.0.0/255.255.0.0
acl localnet src 10.84.0.0/255.255.0.0
acl localnet src 10.85.0.0/255.255.0.0
acl localnet src 10.86.0.0/255.255.0.0
acl localnet src 10.87.0.0/255.255.0.0
acl localnet src 10.88.0.0/255.255.0.0
acl localnet src 10.89.0.0/255.255.0.0
acl localnet src 200.134.24.17/255.255.255.255
acl localnet src 200.134.24.18/255.255.255.255
acl localnet src 200.134.24.24/255.255.255.255
acl icplocal src 200.201.88.0/255.255.255.0

por arquivo / infectados

acl Pal_Proi url_regex -i "/var/lib/squidguard/db/unioeste/expressions"
acl Dom_Lib dstdom_regex "/etc/squid3/Dom_Lib"
acl infected src "/etc/squid3/hosts_proib"
acl infected1  url_regex -i "/etc/squid3/sites_permit"
deny_info ERR_ACCESS_DENIED_INFECTED infected
deny_info ERR_ACCESS_DENIED_INFECTED infected1
acl NOCACHE url_regex "/etc/squid3/direto" \?

youtube

acl youtube dstdomain .youtube.com
cache allow youtube

Item abaixo deve ser adicionado após os refresh_patterns que vem configurados por padrão.

refresh_pattern -i \.flv$ 10080 90% 999999 ignore-no-cache override-expire ignore-private

Ativação

http_access deny infected !infected1
no_cache deny NOCACHE
always_direct allow NOCACHE
http_access allow manager localhost
http_access deny manager
http_access allow Dom_Lib
http_access deny Pal_Proi
http_access allow icplocal
############# AUTENTICAÇÃO ###############
#http_access allow auth_users !maxuserip
http_access allow purge localhost
http_access deny purge
http_access allow localhost

http_access deny !Safe_ports

http_access deny CONNECT !SSL_ports

http_access allow localnet
http_access allow localhost

http_access deny all

Outras configurações importantes

Aqui constam outras configurações pertencentes ao arquivo /etc/squid3/squid.geral.conf que podem ter impacto sobre seu funcionamento e performance.


Obs: eles devem ser, preferenciamente, declarados após as ACL's e as ativações destas, OU no ponto onde consta na documentação do arquivo padrão.

Tamanho de Cache em Memória

cache_mem 2048 MB

Tamanho Máximo de Arquivo em Memória

maximum_object_size_in_memory 100 KB

Objetos Populares Pequenos na Memória

memory_replacement_policy heap GDSF

Objetos Populares Grandes em Cache

cache_replacement_policy heap LFUDA

Tamanho Máximo de Arquivo em Cache

maximum_object_size 102400 KB

Substituições de Arquivo em Cache

Permite definir margens de substituições para quando o cache estiver sobrecarregado ou cheio.

cache_swap_low 85
cache_swap_high 95

Cancelamento de Cache por Usuário

Permite cancelar o cacheamento caso o usuário interrompa a conexão.

Obs: No nosso caso, com parâmetro em -1, NÃO será abortada a tentativa de cache, mesmo que o usuário cancele.

quick_abort_min -1 KB

Nome visível

Este parâmetro define o nome comum às instâncias do squid. Ele será usado, por exemplo, nas mensagens de negação de serviço ou bloqueio.

visible_hostname proxy.unioeste.br

Diretório de Mensagens de Erros

error_directory /usr/share/squid3/errors/Portuguese

Configuração Individual das Instâncias

A configuração das instâncias encontram-se no diretório /etc/squid3/configs/ e estão nomeadas com "squid." + final do ip onde atendem + ".conf". Por exemplo, a instância que atende em 200.201.88.90 encontra-se em /etc/squid3/configs/squid.90.conf.


Identificação

http_port é a configuração do ip onde o serviço atende.

http_port 200.201.88.90:8080

unique_hostname é o parâmetro para dar um nome único ao serviço.

unique_hostname proxy90.unioeste.br

snmp_port é usada para que os servidores de monitoramento detectem inatividade ou falha no serviço. icp_port é a porta onde os mecanismos de icp vão atender, permitindo a "conversação" entre as instâncias e, consequentemente, a troca de informações e arquivos cacheados, somente buscando-os se não forem encontrados localmente.

snmp_port 3400
icp_port 3130

pid_filename nomeia um arquivo para que o kernel identifique a unicidade da instância, permitindo que exista mais de uma rodando no mesmo servidor.

pid_filename /var/run/squid3.90.pid

Log

É importante que cada instância tenha seus próprios arquivos de log, para identificar mais facilmente um possível motivo de parada e, principalmente, porque o squid não trata bem arquivos de log comunitários, podendo parar de atender por isso. Tenha clareza dessa limitação caso deseje suprimir esta configuração.


Obs: a configuração de rotatividade de logs está no arquivo /etc/squid3/squid.geral.conf.

access_log /var/log/squid3/access.90.log
cache_log /var/log/squid3/cache.90.log
cache_store_log /var/log/squid3/store.90.log

Cache

Neste local configuramos os caches disponíveis para CADA instância. Está configurado 3 (três) caches por instância pois, segundo alguns tutoriais, isso melhora o desempenho e garante mais estabilidade em caso de corrupção de um dos caches, porém tivemos comprovação disso pois os caches encontram-se no mesmo disco físico.

cache_dir

A seguir descreveremos cada um dos itens que compõe a linha de configuração dos caches.


  1. cache_dir é o próprio comando.
  2. diskd é o tipo de arquivo criado nos caches. É o tipo que apresenta melhor desempenho.
  3. /var/spool/squid3/... define o caminho onde será mantido o cache.
  4. define o tamanho do cache. Deve-se levar em consideração o tamanho da partição onde está montado o parâmetro anterior, pois sua capacidade NÃO pode ser extrapolada com a soma dos caches de TODAS as instâncias.
  5. número de pastas. Define a granulação dos arquivos no cache.
  6. número de subdiretórios. Estende a granulação dos arquivos no cache.
  7. usado somente com diskd. Define quantos arquivos podem ser abertos antes do squid parar de abrir novos.
  8. usado somente com diskd. Define quantos arquivos podem ser abertos antes do squid começar a bloquear novos.


Exemplo:

cache_dir diskd /var/spool/squid3/squid.90.1 2300 128 512 Q1=128 Q2=256
cache_dir diskd /var/spool/squid3/squid.90.2 2300 128 512 Q1=128 Q2=256
cache_dir diskd /var/spool/squid3/squid.90.3 2300 128 512 Q1=128 Q2=256


cache_peer

Utilizando a opção sibling, permite a comunicação entre as instâncias, evitando a redundância dos arquivos cacheados; ou seja, se uma das instâncias já tem o arquivo, a outra instância contata o cache onde já existe e o usa, não saindo para a rede.

Obs: devem constar nesta configuração TODAS as OUTRAS instâncias, suprimindo as configurações da própria instância.

  1. cache_peer é o próprio comando.
  2. ip onde atende a outra instância.
  3. sibling opção que permite o uso de cache de outras instâncias.
  4. porta onde o serviço de proxy atende.
  5. porta onde o icp atende. Vide ..
  6. proxy-only os objetos buscados em outros caches NÃO são armazenados localmente, evitando a redundância.


Exemplo:

cache_peer 200.201.88.91 sibling 8080 3131 proxy-only
cache_peer 200.201.88.92 sibling 8080 3132 proxy-only
cache_peer 200.201.88.93 sibling 8080 3133 proxy-only
cache_peer 200.201.88.94 sibling 8080 3134 proxy-only
cache_peer 200.201.88.95 sibling 8080 3135 proxy-only

include

Este parâmetro permite que o arquivo onde encontram-se as configurações comuns a TODAS as instâncias seja carregado como extensão da configuração individual, não precisando redeclará-las novamente.

include /etc/squid3/squid.geral.conf

SquidGuard

Para instalar o SquidGuard digite:

sudo apt-get install squidguard

Para configurá-lo, baixe uma das diversas bibliotecas disponíveis, como a shalla (http://www.shallalist.de/). Neste exemplo, baixe o arquivo e descompacte-o em /var/lib/squidguard/.

Para acrescentar itens de bloqueio personalizados, crie uma pasta na estrutura do squidguard e copie de uma das outras pastas os arquivos:

cd /var/lib/squidguard/db
mkdir unioeste
cp ../warez/* unioeste/
chown -R proxy:proxy unioeste

Para não ter informações duplicadas, lembre-se de ESVAZIAR os arquivos:

  • /var/lib/squidguard/db/unioeste/domains
  • /var/lib/squidguard/db/unioeste/expressions
  • /var/lib/squidguard/db/unioeste/urls

Em seguida, pode usar o arquivo /var/lib/squidguard/db/unioeste/domains para acrescentar todas as suas excessões personalizadas.


Para que suas alterações entrem em vigor, reinicie o squid.

/etc/init.d/squid3 stop

(aguarde o encerramento das conexões)

/etc/init.d/squid3 start

DansGuardian

Não implementado.

Ferramentas pessoais
Espaços nominais
Variantes
Ações
Navegação
Ferramentas