Algum tempo atrás, assim que 'mergulhei de cabeça' no Linux, me deparei com um desafio que, na época, chegava a ser Colossal.
Meu gerente de TI, solicitou que eu implementasse um Servidor Proxy... De preferência, utilizando o Squid.
- Ok chefe! OH WAIT!!!
- Meu Deus, o que eu faço?? Squid?? #Fuuuuuu... oO
Pode até parecer covardia da parte dele, mas, admito que foi uma das mais gratificantes experiências que já tive. Vocês não imaginam a satisfação em ver o usuário perguntando:
- Bloquearam a Internet?? Oww, queria tanto acessar meu Orkut!!! =P
Sim, sim... Sou muito mal mesmo... Certo! Vamos parar de bla-bla-bla e ir direto ao ponto. =]
O Squid (é, se você for pesquisar no Google, possivelmente irá deparar-se com imagens de 'Lulas' saltitantes, porém aqui é um blog de Tecnologia, e não o Discovery Channel, ok?) é um servidor proxy que suporta HTTP, HTTPS, FTP e outros. Sua principal função e utillização, é proporcionar um maior controle de Tráfego, Acessos à internet e Cache em uma rede de computadores.
Hoje vou mostrar a configuração que eu, na época, implementei, visto a mínima experiência e prática com linha de comando (Acreditem quando eu falar que cheguei a ficar 72 horas acordado... =P).
O Squid permite vários tipos de configurações: Bloqueio po IP, por Usuário (Integrado ao AD ou não), por horário e por aí vai... Hoje, vou mostrar-lhe uma solução The Flash que você pode implementar no caso de uma solicitação surpresa (como a que aconteceu comigo! =D).
Como se trata de um 'Diário de Bordo Pessoal', seguirei exatamente os mesmos passos que percorri até chegar ao funcionamento do Proxy.
Nesse 'tuto', utilizarei o Ubuntu 10.04 LST Server devidamente instalado e Atualizado.
Começando pelo começo! =P
Antes de tudo, instale o Squid:
lucasmac@hal9000:~$ sudo su
root@hal9000:/# apt-get install squid
Com o Squid instalado, vamos configurá-lo!
Ao término da instalação, é criado o arquivo squid.conf em /etc/squid. Esse arquivo é responsável por toda a configuração do programa, onde especifica-se desde a Porta de Utilização até o Administrador do Proxy, e possui somente 4937 linhas!!! Mas calma, não vamos utilizar todas as linhas, visto que a maioria trata-se de explicações e comentários dos desenvolvedores.
Bem, o próximo passo, será renomear o arquivo .conf original, e elaborar outro 'do zero':
root@hal9000:/# mv /etc/squid/squid.conf /etc/squid/squid.conf_old
OBS¹.: Isso é feito para preservar o arquivo original, no caso de uma (Deus me Livre!!) possível pane, e para eventuais consultas que possam ser feitas ao mesmo.
Por ser mais simples de configurar, hoje demonstrarei o Controle de Acesso por IP, onde o Bloqueio será Geral, e tendo apenas uma White List, ou seja, uma lista de domínios liberados.
A princípio, utilizando o VIM, crie um arquivo com os IP's que terão Acesso Total à internet:
root@hal9000:/# vim /etc/squid/acesso_total
Com o conteúdo, seguindo o padrão abaixo:
192.168.1.4 #---> José
192.168.1.5 #---> João
192.168.1.9 #---> Maria
Salve o arquivo e saia do editor.
Em seguida, crie um arquivo com os Domínios Liberados (White List):
root@hal9000:/# vim /etc/squid/white_list
Com o conteúdo, seguindo o padrão abaixo:
.dominio1.com.br #---> Domínio 1
.dominio2.com.br #---> Domínio 2
.dominio3.com.br #---> Domínio3
OBS².: O 'ponto' antes do Nome do Domínio, determina que, todo o domínio e sub-domínios estão liberados.
Salve o arquivo e saia do editor.
Arquivo de Configuração - squid.conf
Para elaborar um novo arquivo de configuração, execute o comando:
root@hal9000:/# vim /etc/squid/squid.conf
Abaixo, segue um squid.conf bem simples (e comentado), para facilitar a compreensão. Você pode utiliza-lo, lógico que terá de adequar a sua realidade.
http_port 3128 transparent #---> Porta utilizada pelo Squid
cache_mem 1024 MB #---> Memória RAM destinada ao Proxy
cache_swap_low 90 #---> Cache Rotate
cache_swap_high 95 #---> Cache Rotate
maximum_object_size 512 KB #---> Tamanho max. do arquivo no cache
error_directory /usr/share/squid/errors/pt-br #---> Localização da Msg. de Erro
cache_dir ufs /var/spool/squid 33500 16 512 #---> Diretório do Cache
cache_access_log /var/log/squid/access.log #---> Diretório de Logs
acl all src 0.0.0.0/0.0.0.0 #---> Rede que acessará o Proxy
acl manager proto cache_object #---> Para uso do Squid
acl localhost src 127.0.0.1/255.255.255.255 #---> Para uso do Squid
acl SSL_ports port 443 #---> Portas SSL Liberadas
acl Safe_ports port 80 85 21 443 563 70 210 #---> Portas Liberadas
acl Safe_ports port 25 #---> Portas Liberadas
acl Safe_ports port 110 #---> Portas Liberadas
acl CONNECT method CONNECT #---> Método de Conexão
http_access allow manager localhost #---> Para uso do Squid
http_access deny manager #---> Para uso do Squid
http_access deny !Safe_ports #---> Safe Ports Liberadas
http_access deny !SSL_ports #---> SSL Ports Liberadas
cache_mgr lucas@lucasmac.com #---> Administrador do Proxy
visible_hostname hal9000 #---> Nome da Máquina
acl acesso_total src "/etc/squid/acesso_total" #---> IP's com Acesso Total
acl white_list url_regex -i "/etc/squid/white_list" #---> White List
http_access allow acesso_total #---> Permissão de Acesso 'acesso_total'
http_access allow white_list #---> Permissão de Acesso 'white_list'
http_access deny all #---> Bloqueia Tudo fora da rede
Salve o arquivo e saia do editor.
#----------------------------------------> [ ERRATA ] <---------------------------------------#
Pessoal, uma pequena alteração:
Antes de reiniciar o processo, deve-se criar a Árvore de Diretórios de Swap (Cache), executanto o seguinte comando:
root@hal9000:/# squid -z
Valeu Jader Lima! ;D
#--------------------------------------> [ / ERRATA ] <--------------------------------------#
Reinicie o processo do Squid:
root@hal9000:/# /etc/init.d/squid restart
Pronto! Agora o Squid tá 'funfando legal'! =)
Mas calma! Ainda falta a configuração no Navegador. Sem essa configuração, na realidade da rede no momento da minha configuração, as máquinas não enxergariam o Proxy. Então tive que configurar TODAS as Máquinas (73 Máquinas e 99,9% delas rodando Windows).
Porém, graças a Meu Bom Deus, e um amigo (Fera em Shell, Alexandro Dantas), elaboramos um Script que adicionava automaticamente a configuração de Proxy ao navegador, no momento que o usuário realizava o logon.
Mas isso fica pra depois, vamos pelo modo mais difícil!! (Eu falei que eu era MAL!! =P)
Configurando o Proxy no Navegador
Vamos lá!
Abra o navegador e vá até o Menu Ferramentas > Opções da Internet e clique na aba Conexões e em seguida em Configurações da LAN. Aparecerá a tela abaixo:
Figura 1
Desmarque a primeira check box - Detectar automaticamente as configurações e preencha o Endereço de IP do Proxy (192.168.1.250) e a Porta de Utilização do Proxy (3128), como mostra a Figura 1.
Ahhhh, agora sim!!! Vamos aos testes!
Digite na barra de endereços do navegador, algum site que NÃO se encontra na White List. Se tudo correu bem, aparecerá uma tela parecida com essa (Isso se, a máquina usada para a realização do teste for uma estação de usuário sem privilégios, ou seja, cujo o IP não se encontre na ACL acesso_total):
Figura 2
Da mesma forma, ao digitar um domínio que se encontra na White List, o acesso deverá ser normal. Teste agora em uma máquina com privilégios.
Ahh, ok, ok... o Script né? Beleza, não esqueci não.
Porém, para consegui-lo, envie um e-mail para web@lucasmac.com
(Não se preocupe, o Script é de graça, viu?)
Acho que é isso. Até a Próxima! =D
0sem comentários ainda