Implementar um servidor proxy [RESOLVIDO]

1. Implementar um servidor proxy [RESOLVIDO]

Bárbara Luisa Pinheiro
bpinheiro

(usa Debian)

Enviado em 08/08/2011 - 23:21h

Boa noite pessoal.
Tenho a seguinte tarefa, configurar um servidor linux de proxy.
Andei procurando na internet a respeito de squid, iptables, proxy transparente, webmin e outros, por onde devo começar e o que implementar?
Meu gerente gostaria de que os usuários fizessem login ao acessar a net, porem com a mesma senha do ad.
Se eu utilizar proxy transparente posso deixar fora alguns usuários?

Obrigada pessoal


  


2. Re: Implementar um servidor proxy [RESOLVIDO]

Jairo de Menezes Rodrigues
jairovisks

(usa Debian)

Enviado em 09/08/2011 - 09:52h

Se você utilizar proxy transparent nunca(palavra forte...rs) vai conseguir fazer a autenticação com AD.
Proxy transparent não funciona com autenticação.

Aqui no vol tem vários tutorias ensinando passo a passo o que fazer para integrar os dois, particularmente recomendo o link http://www.vivaolinux.com.br/artigo/Integrando-autenticacao-do-Squid-ao-Active-Directory

Montei o meu squid seguindo esse tutorial e funcionou redondo.

abs


3. Duvidas

Bárbara Luisa Pinheiro
bpinheiro

(usa Debian)

Enviado em 09/08/2011 - 12:59h

Na verdade estou tão perdida que nem sei por onde começar! Não tenho experiencia com linux!
O que você recomenda, instalar o squid, iptables, autenticar ou não??

Abraços


4. Re: Implementar um servidor proxy [RESOLVIDO]

5. NTLM

Thiago Israel Rocha
thiagoirch

(usa CentOS)

Enviado em 09/08/2011 - 14:35h

Amigão, procura ai Squid com autenticação NTLM é oq há demelhor em integração squid AD.


6. Duvidas

Bárbara Luisa Pinheiro
bpinheiro

(usa Debian)

Enviado em 10/08/2011 - 00:36h

Boa Noite Pessoal.
Eu estava lendo os tópicos que o pessoal me enviou, uma duvida, existe a ferramenta webmin, que tem todos os recursos de forma gráfica, alguém já utilizou?

Abraços


7. Re: Implementar um servidor proxy [RESOLVIDO]

Ezequiel Gonzaga
ezgonzaga

(usa Debian)

Enviado em 10/08/2011 - 08:56h

Barbara,
Seguinte, estou no mesmo barco que você, tem um mês que comecei a me aventurar neste caminho de montar um servidor linux para internet.
Já li muito. Já testei bastante e agora estou na fase final já do meu servidor.
A primeira coisa que fiz foi ir pro lado das ferramentas gráficas também, mas por incrivel que pareça, fiquei mais perdido ainda.
Então voltei para a parte texto mesmo. Segui basicamente o link postado acima do guiadohardware, livro de servidores linux e fui pesquisando na internet o que não entendia.
Se quiser te mando o meu passo-a-passo.
Apenas não utilizei firewall neste servidor, porque ja tenho outro na rede, e a minha autenticação não é por AD, mas no livro acima explica como fazer com o AD também.
Att,
Ezequiel


8. Dúvidas

Bárbara Luisa Pinheiro
bpinheiro

(usa Debian)

Enviado em 10/08/2011 - 11:25h

Oi Ezequiel.
Se puder me mandar o seu passo a passo me ajuda e muito, vou ficar muito grata!!!


9. Segue... dúvidas pode perguntar...

Ezequiel Gonzaga
ezgonzaga

(usa Debian)

Enviado em 10/08/2011 - 11:47h

Configurando Servidor Internet Linux

1. Instalar Debian

2. Instalar Squid (terminal como root - sudo su)
apt-get install squid

3. Fazer backup arquivo configuração do Squid
cp /etc/squid/squid.conf /etc/squid/squid.conf.orig

4. Cadastro de usuários
apt-get install apache2-utils

touch /etc/squid/squid_passwd #cria um arquivo texto vazio para armazenar usuários e senhas
ou
gedit /etc/squid/squid_passwd
Salva e Fecha

Cadastre os usuários
htpasswd /etc/squid/squid_passwd nome_do_usuário #digite a senha em seguida

Para alterar a senha repita o processo acima

Para deletar usuário
htpasswd -D /etc/squid_passwd nome_do_usuário

5. Criar diretório para listas (ACLs)
mkdir /etc/squid/listas

6. Crie as listas necessárias:
/etc/squid/listas/pal_blq #Palavras bloqueadas nas URLs
/etc/squid/listas/url_blq #Sites bloqueados
/etc/squid/listas/url_ign #Sites ignorados, que não passarão pelo Squid
/etc/squid/listas/url_lib #Sites liberados
/etc/squid/listas/usr_blq_parcial #Usuários que acessarão tudo, exceto sites bloqueados
/etc/squid/listas/usr_blq_total #Usuários bloqueados
/etc/squid/listas/usr_lib_parcial #Usuários que acessarão apenas sites liberados
/etc/squid/listas/usr_lib_total #Usuários liberados

Para editar listas (colocar sempre um (site ou usuário) por linha:
gedit /etc/squid/listas/______



7. Configuração squid.conf
apague todo conteúdo do squid.conf
gedit /etc/squid/squid.conf

Obs: Ao encontrar uma ACL que encaixa o Squid ignora as demais abaixo

http_port 3128 #Porta a ser usada

visible_hostname debian #Nome do servidor da rede

error_directory /usr/share/squid/errors/Portuguese/ #Caminho das Mensagens

#Configurações de cache
cache_mem 350 MB #memoria usada
maximum_object_size_in_memory 64 KB #tamanho máximo arquivo na memória
maximum_object_size 512 MB #tamanho máximo arquivo no hd
minimum_object_size 0 KB #tamanho minimo arquivo no hd
cache_swap_low 90 #percentual de uso do hd antes de apagar
cache_swap_high 95 #percentual de uso do hd antes de apagar
cache_dir aufs /var/spool/squid 20480 16 256 #Caminho no disco do cache - tamanho em disco - Qtd pastas - Qtd subpastas
cache_access_log /var/log/squid/access.log #Caminho no disco do log
refresh_pattern ^ftp: 15 20% 2280 #padrão de atualização do cache
refresh_pattern ^gopher: 15 0% 2280 #padrão de atualização do cache
refresh_pattern . 15 20% 2280 #padrão de atualização do cache

#Cria listas
acl all src 0.0.0.0/0.0.0.0 #todos os IPs da rede
acl manager proto cache_object
acl localhost src 127.0.0.1/255.255.255.255 #lista para acesso do servidor a internet
acl SSL_ports port 443 563 #portas configuradas
acl Safe_ports port 80 # http
acl Safe_ports port 21 # ftp
acl Safe_ports port 443 563 # https, snews
acl Safe_ports port 70 # gopher
acl Safe_ports port 210 # wais
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 901 # swat
acl Safe_ports port 1025-65535 # portas altas
acl purge method PURGE
acl CONNECT method CONNECT

acl url_ign dstdomain -i "/etc/squid/listas/url_ign" #Sites Ignorados, que não passarão pelo Squid
http_access allow url_ign #Libera os Sites Ignorados antes de tudo

http_access allow manager localhost #Configurações Padrões
http_access deny manager #Configurações Padrões
http_access allow purge localhost #Configurações Padrões
http_access deny purge #Configurações Padrões
http_access deny !Safe_ports #Configurações Padrões
http_access deny CONNECT !SSL_ports #Configurações Padrões

acl redelocal src 10.0.0.0/24 #Bloqueia acesso de fora da rede local antes de tudo
http_access deny !redelocal #Bloqueia acesso de fora da rede local antes de tudo

acl url_lib url_regex -i "/etc/squid/listas/url_lib" #Sites liberados, caso bloqueie tudo
#http_access allow url_lib #Sites liberados, caso bloqueie tudo
#http_access deny all #Sites liberados, caso bloqueie tudo

#acl url_blq url_regex -i "/etc/squid/listas/url_blq" #Sites bloqueados, caso libere tudo
#http_access deny url_blq #Sites bloqueados, caso libere tudo

#acl pal_blq dstdom_regex -i "/etc/squid/listas/pal_blq" #Palavras bloqueadas (na url do site)
#http_access deny pal_blq #Palavras bloqueadas (na url do site)

#Autentica o usuario:
auth_param basic realm Digite sua senha para acesso a internet. #Frase que aparecerá na mensagem de usuário e senha
auth_param basic program /usr/bin/ncsa_auth /etc/squid/squid_passwd #Método de autenticação e arquivo dos usuários
acl autenticados proxy_auth REQUIRED #Cria lista de usuários autenticados
acl usr_lib_total proxy_auth "/etc/squid/listas/usr_lib_total" #Cria lista de usuários com acesso total
http_access allow usr_lib_total #Libera acesso total aos usuários da lista
http_access allow autenticados url_lib #Libera acesso aos demais usuários autenticados apenas para a lista de sites liberados
http_access deny all #Bloqueia o restante

#libera acesso da rede local para os autenticados e bloqueia o resto
http_access allow localhost
http_access allow redelocal
http_access deny all



8. Configurando o SARG para relatórios
Baixe o programa do site http://sarg.sourceforge.net/ ( http://sourceforge.net/projects/sarg/files/sarg/sarg-2.3.1/sarg-2.3.1.tar.gz/download )

No diretório onde foi salvo o arquivo baixado ( sarg-2.3.1.tar.gz ) digite:
# tar zpfx sarg-1.2.2.tar.gz
# cd sarg-1.2.2
# ./configure --enable-sysconfdir=/etc/sarg

[...configurando a compilação...]

# make

[...compilando...]

# make install

O arquivo de configuração está em:
/usr/local/etc/sarg.conf

Acesse e altere as linhas referentes a linguagem e caminho do log do squid:
gedit /usr/local/etc/sarg.conf
language Portuguese
access_log /var/log/squid/access.log Colocar esta linha depois do realtime
graphs yes
title "Relatórios de Acesso de Usuários Squid"
temporary_dir /tmp
output_dir /var/www/squid-reports
date_format e
lastlog 0 Se quiser apagar relatorio antigos mude o 0 para quantos dias salvar
remove_temp_files yes
index yes
overwrite_report yes
report_type topusers topsites sites_users users_sites date_time denied auth_failures site_user_time_date downloads
show_successful_message yes
topuser_fields NUM DATE_TIME USERID CONNECT BYTES %BYTES IN-CACHE-OUT USED_TIME MILISEC %TIME TOTAL AVERAGE
realtime_refresh_time 3
realtime_access_log_lines 1000
realtime_types GET,PUT,CONNECT
realtime_unauthenticated_records: show
access_log /var/log/squid/access.log

chmod -R a+rw /var/log/squid/
chmod -R a+rw /var/log/squid/access.log

9. Para atualizar os relatórios digite:
sarg


10. Gerar relatorio automatico todos os dias:
gedit /etc/cron.daily/sarg-dia

Insira este conteúdo e salve:

#!/bin/bash

HOJE=$(date --date "1 day ago" +%d/%m/%Y)

/usr/sbin/sarg -f /usr/local/etc/sarg.conf -d $HOJE-$HOJE
exit 0

chmod +x /etc/cron.daily/sarg-dia


11. Para visualizar os relatórios:
apt-get install apache2
apt-get install libapache2-mod-php5
a2enmod
/etc/init.d/apache2 restart

http://ip-do-servidor/squid-reports ( http://10.0.0.5/squid-reports ) Relatório completo, porém até a última geração
http://ip-do-servidor/sarg-php/sarg-realtime.php ( http://10.0.0.5/sarg-php/sarg-realtime.php ) Acesso em tempo real


12. Para administrar o Debian remotamente:
apt-get install xrdp

Acesso via terminal server


13. Aplicar alterações:
/etc/init.d/squid restart

squid -k reconfigure


10. Dúvidas

Bárbara Luisa Pinheiro
bpinheiro

(usa Debian)

Enviado em 11/08/2011 - 00:07h

Boa Noite Ezequiel.
Valeu pela configuração, vai me ajudar e muito.
Posso te pentelhar mais um pouquinho?
Estava vendo sua configuração, aqui você cria uma senha para os usuários,ou eles entram por algum local para cadastrar?
Na empresa onde trabalho temo um servidor linux, um computador com duas placas de redes, um onde chega a internet e outra linkando no switch, o squid é muitooooo lento, sem condições.
Na sua rede funfa legal?

Abraços.



11. Re: Implementar um servidor proxy [RESOLVIDO]

Ezequiel Gonzaga
ezgonzaga

(usa Debian)

Enviado em 17/08/2011 - 11:01h

Desculpa a demora, mas eu não recebo email de atualização do tópico, ai demorei pra olhar aqui.
Então, no caso aqui eu crio os usuários manualmente. Eles me mandam um email com usuário e senha e eu crio, excluo ou altero quando necessário. Mas aqui mesmo no viva o linux tem um script que diz permitir o próprio usuário fazer isto, mas eu não entendi como funciona e nem fiquei quebrando a cabeça.
Tem alguma coisa errada nas suas configurações ou no seu hardware, porque aqui utilizo o virtualbox, dentro dele instalei o Debian com 1Gb de ram e tá rodando legalzinho. Detalhe: tudo em uma placa de rede só.
Mas tenho outro servidor Mikrotik que faz firewall, roteamento e dhpc.
Rapidinho. Mas tenho cerca de 20 usuários somente, não sei seu volume ai.
Qualquer coisa pode perguntar, se eu demorar manda email! hehe
Ezequiel






Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts