| ||
1. Apresentação Proxy representa o serviço de armazenamento de algo (cache/guardar). Usando simplesmente o termo "Proxy", temos o serviço de armazenamento de páginas web (sites). Existem outros serviços de Proxy, como: Proxy de E-Mail, Proxy de DNS e etc ... Mas, não tão usados como o Proxy de Web. Para Linux, temos um bem famoso chamado "Squid" e é justamente dele que iremos falar. Existe duas formas mais comuns de usar o squid, são elas: - Proxy Transparente (não requer configuração nas estações) - Proxy Autenticado (com suporte a usuário e senha) (sobre a autenticação, irei criar algo sobre isso em breve) 2. Compilando Primeiro, baixe o squid: # wget http://www.squid-cache.org/Versions/v2/2.5/squid-2.5.STABLE4-20040210.tar.bz2 Descompactando: # tar -xvjf squid-2.5.STABLE4-20040210.tar.bz2 Entre no diretório criado: # cd squid-2.5.STABLE4-20040210 Agora isso, vamos ao passos: # ./configure --prefix=/usr/local/squid --enable-auth --prefix - diretório de destino --enable-auth - ativa suporte a autenticação Habilite apenas se for usar autenticação. # make all # make install 3. Configurando Aqui veremos uma configuração básica, depois teremos alguns exemplos prontos e comentários. Primeiro, edite o arquivo de configuração: # vi /usr/local/squid/etc/squid.conf # Informe o IP da placa de rede e porta que irá fornecer o serviço de proxy, # se tiver vários IPs, não tem problema, basta criar novas linhas http_port e informá-los. # Essa opçõa pode ser mudada apenas para a porta do proxy, causando falha de segurança, # pois ao fazer isso, muitos administradores não lembram de bloquear o acesso a estranhos, # deixando o proxy aberto para ser usado como servidor de ataque. http_port 192.168.0.1:3128 # Padrão ... hierarchy_stoplist cgi-bin ? acl QUERY urlpath_regex cgi-bin \? no_cache deny QUERY # Informa quanto de memória RAM será disponibilizado para o proxy. # Detalhe importante, geralmente esse valor se multiplica por 4, # então cálcule 1/4 do valor que será disponível. # Recomendo utilizar 32 MB, sendo necessário disponibilizar um total de: 128 MB. cache_mem 8 MB # Tamanho máximo de arquivo que será armazenado no proxy. # Arquivos maiores que esse serão discartados/não armazenados. maximum_object_size 4096 KB # Tamanho mínino de arquivo que será armazeando no proxy. minimum_object_size 0 KB # Tamanho máximo de arquivo que ficará em memória (no caso RAM). # Isso é útil para não sobrecarregar a memória disponível (cache_mem). maximum_object_size_in_memory 8 KB # Diretório, tamanho, divisão e sub-divisão para arquivar em disco. cache_dir ufs /usr/local/squid/var/cache 512 16 256 # Explicação: # /usr/local/var/cache - seria o diretório onde ficarão os arquivos armazenados. # 512 - é um número de MB disponível para se ocupado com arquivos. # Sendo eles, divididos em 16 diretórios que conterão cara um, 256 sub-diretórios. # Com isso, os diretórios não ficarão sobregarregados de arquivos. # Dica: Altera apenas o tamanho e caminho, os divisores não precisam ser alterados. # Caminho e arquivo para LOG de Acessos. # Para não gerar LOG de Acessos, mude o caminho e arquivo para "none". cache_access_log /usr/local/squid/var/logs/access.log # Caminho e arquivo para LOG do Cache. # Para não gerar LOG do Cache, mude o caminho e arquivo para "none". cache_log /usr/local/squid/var/logs/cache.log # Caminho e arquivo para LOG do Histórico. # Para não gerar LOG do Histórico, mude o caminho e arquivo para "none". cache_store_log /usr/local/squid/var/logs/store.log # Caminho e arquivo responsável para a criação de um arquivo de controle contendo apenas o número do processo (PID). pid_filename /usr/local/squid/var/logs/squid.pid # DEBUG - Depurador do proxy, responsável pelos LOGs. debug_options ALL,1 # Tratar os "cliente" como qual classe? # Usando "255.255.255.255", os usuários serão tratados individualmente. client_netmask 255.255.255.255 # Padrão ... auth_param basic children 5 auth_param basic realm Squid proxy-caching web server auth_param basic credentialsttl 2 hours # Padrão ... refresh_pattern ^ftp: 1440 20% 10080 refresh_pattern ^gopher: 1440 0% 1440 refresh_pattern . 0 20% 4320 # Padrão ... Regras de controle acl all src 0.0.0.0/0.0.0.0 # Regra informando origem da minha rede acl rede_local src 192.168.0.0/255.255.255.0 acl manager proto cache_object acl localhost src 127.0.0.1/255.255.255.255 acl to_localhost dst 127.0.0.0/8 acl SSL_ports port 443 563 2000-3000 acl CONNECT method CONNECT # Autorizações / Proibições http_access allow manager localhost http_access deny manager http_access deny !Safe_ports http_access deny CONNECT !SSL_ports # Liberação da minha rede http_access allow rede_local http_access deny all http_reply_access allow all icp_access allow all # E-Mail do responsável pelo Proxy. cache_mgr emota@emota.com.br # Usuário do sistema responsável pelo processo do Proxy cache_effective_user proxy # Grupo do sistema, no qual o resposável faz parte cache_effective_group proxy # Hiostname do servidor visible_hostname servidor.inet # Período para descartar arquivos não utilizados # Essa configuração é responsável por são sobrecarregar o proxy. announce_period 1 day # Trabalhando com Base de Dados para um melhor controle client_db on netdb_low 900 netdb_high 1000 # Diretório de ícones icon_directory /usr/local/squid/share/icons # Diretório das mensagens de erro error_directory /usr/local/squid/share/errors/Portuguese # Diretório para CoreDump :-) coredump_dir /usr/local/squid/var/cache # Habilita o Internet Explorer 5.5 SP1 ou superior a atulizar um site ie_refresh on # Pronto, com isso, nosso proxy já funciona! # Vejamos agora algumas outros opções ... 3.1 Exemplos de Configurações: -> Proxy Transparente 3.2 Proxy Transparente Muito usado, não requer configuração nas estações. A única exigência desta opção é ter o Squid rodando na máquina que será o gateway da rede. Sua configuração é simples, requer apenas algumas modificações. Edite o squid.conf e configure conforme exemplo abaixo: # vi squid.conf httpd_accel_host virtual httpd_accel_port 80 httpd_accel_single_host off httpd_accel_with_proxy on httpd_accel_uses_host_header on Após isso, é necessário incluir uma regra no Firewall. Usando IPTABLES: # iptables -t nat -A PREROUTING -p tcp --dport 80 -j REDIRECT --to-port 3128 4. Detalhes no Sistema # mkdir -p /usr/local/squid/var/cache # groupadd proxy # useradd -g proxy -d /usr/local/squid -s /bin/false proxy # chown proxy.proxy /usr/local/squid/var/* # /usr/local/squid/sbin/squid -z 5. Executando / Ligando # /usr/local/squid/sbin/squid 6. Dicas Ao alterar o arquivo de configurações com o proxy rorando, digite: # killall -HUP squid Para ele atulizar as configurações automaticamente. Outra dica é acompanhar os LOGs para analisar possíveis erros. # tail -f /var/log/messages # tail -f /usr/local/squid/var/logs/access.log 6.1 Links Oficial do Projeto Squid - http://www.squid-cache.org EMotaWeb | Textos | Programação | Linux | Wireless | Contato | Topo ^ |