Squid autenticando no AD utilizando o FreeBSD 9.2
E ai galera, aqui eu vou abordar a configuração do Squid no FreeBSD 9.2 autenticando no AD, e vamos instalar o lightsquid um gerador de relatórios show de bola.
- Endereço Ip do Proxy: 192.168.1.60
- Endereço Ip do Ad PDC: 192.168.1.100
- Domínio utilizado: douglasqsantos.com.br
- Habilitar o dns do Windows a fazer atualizações seguras e não seguras, pois vamos inserir o centos no domínio.
Grupos que precisam ser criados no AD, não esqueça de inserir os usuários nos grupos ;)
- ti-admin
- matriz-diretoria
- matriz-gerencia
- matriz-administracao
- matriz-logistica
Vamos obter o ports para podermos começar a trabalhar
portsnap fetch && portsnap extract && portsnap update
Eu vou mandar desabilitar o DIALOG que é aquela telinha chata que fica aparecendo quando mandamos instalar algo :P
echo "NO_DIALOG=yes" >> /etc/make.conf
Agora vamos mandar instalar o samba pelo ports
cd /usr/ports/net/samba36 && make WITH_ADS=yes install clean
Agora vamos inserir algumas variáveis na inicialização do sistema para não ficarmos recebendo erros do samba.
echo 'kern.maxfiles="20000"' >> /boot/loader.conf echo 'kern.maxfilesperproc="20000"' >> /boot/loader.conf
Agora vamos inserir o samba na inicialização do sistema
echo 'samba_enable="YES"' >> /etc/rc.conf echo 'winbindd_enable="YES"' >> /etc/rc.conf
Vamos agora fazer um backup do arquivo /etc/resolv.conf
cp -Rfa /etc/resolv.conf{,.bkp}
Agora vamos ajustar o arquivo /etc/resolv.conf
vim /etc/resolv.conf #Domínio e Ip do servidor AD search douglasqsantos.com.br domain douglasqsantos.com.br nameserver 192.168.1.100
Agora vamos testar se o servidor ad esta respondendo corretamente
nslookup douglasqsantos.com.br Server: 192.168.1.100 Address: 192.168.1.100#53 Name: douglasqsantos.com.br Address: 192.168.1.100
Agora vamos atualizar o relógio do sistema
ntpdate -u ntp.usp.br
Agora vamos configurar o arquivo /etc/krb5.conf
vim /etc/krb5.conf [libdefaults] default_realm = douglasqsantos.com.br krb4_config = /etc/krb.conf krb4_realms = /etc/krb.realms kdc_timesync = 1 ccache_type = 4 forwardable = true proxiable = true v4_instance_resolve = false v4_name_convert = { host = { rcmd = host ftp = ftp } plain = { something = something-else } } fcc-mit-ticketflags = true [realms] douglasqsantos.com.br = { kdc = 192.168.1.100 admin_server = 192.168.1.100:749 default_server = 192.168.1.100 } [domain_realm] .douglasqsantos.com.br=douglasqsantos.com.br douglasqsantos.com.br=douglasqsantos.com.br [login] krb4_convert = true krb4_get_tickets = false [kdc] profile = /etc/krb5kdc/kdc.conf [appdefaults] pam = { debug = false ticket_lifetime = 36000 renew_lifetime = 36000 forwardable = true krb4_convert = false } [logging] default = file:/var/log/krb5libs.log kdc = file:/var/log/krb5kdc.log admin_server = file:/var/log/kadmind.log
Agora vamos fazer um backup do arquivo de configuração do samba
cp -Rfa /usr/local/etc/smb.conf{,.bkp}
Agora vamos a configuração do samba deixe o arquivo como no exemplo
vim /usr/local/etc/smb.conf [global] workgroup = DOUGLASQSANTOS realm = DOUGLASQSANTOS.COM.BR netbios name = FREEBSD server string = Proxy Server security = ADS auth methods = winbin socket options = TCP_NODELAY SO_RCVBUF=8192 SO_SNDBUF=8192 load printers = No printcap name = cups disable spoolss = Yes local master = No domain master = No winbind cache time = 15 winbind enum users = Yes winbind enum groups = Yes winbind use default domain = Yes idmap config * : range = 10000-15000 idmap config * : backend = tdb idmap uid = 10000-15000 idmap gid = 10000-15000 template shell = /bin/sh template homedir = /home/%U
Vamos fazer um backup do arquivo /etc/nsswitch.conf
cp /etc/nsswitch.conf{,.bkp}
Agora temos que acertar o arquivo /etc/nsswitch.conf que controla aonde vai ser consultado usuários e senhas deixe o arquivo como abaixo.
vim /etc/nsswitch.conf # # nsswitch.conf(5) - name service switch configuration file # $FreeBSD: release/9.2.0/etc/nsswitch.conf 224765 2011-08-10 20:52:02Z dougb $ # group: compat group_compat: winbind nis hosts: files dns networks: files passwd: compat passwd_compat: winbind nis shells: files services: compat services_compat: nis protocols: files rpc: files
Agora vamos iniciar o samba, aqui no FreeBSD quando mandamos iniciar o samba ele já reinicia o winbind
/usr/local/etc/rc.d/samba start
Agora temos que inserir a maquina no domínio AD
net ads join douglasqsantos.com.br -U administrator Enter administrator's password: #senha Using short domain name -- DOUGLASQSANTOS Joined 'FREEBSD' to realm 'douglasqsantos.com.br'
Caso precise retirar a maquina do domínio da forma correta (Excluindo as ligações dela no AD), podemos fazer da seguinte forma
net ads leave douglasqsantos.com.br -U Administrator Enter Administrator's password: Deleted account for 'FREEBSD' in realm 'douglasqsantos.com.br'
Agora temos que reiniciar os serviços novamente
/usr/local/etc/rc.d/samba restart
Agora já podemos testar a conexão do samba com o AD
wbinfo -t checking the trust secret for domain DOUGLASQSANTOS via RPC calls succeede
Agora vamos checar os grupos que temos no domínio.
wbinfo -g winrmremotewmiusers__ domain computers domain controllers schema admins enterprise admins cert publishers domain admins domain users domain guests group policy creator owners ras and ias servers allowed rodc password replication group denied rodc password replication group read-only domain controllers enterprise read-only domain controllers cloneable domain controllers dnsadmins dnsupdateproxy ti-admin matriz-diretoria matriz-gerencia matriz-administracao matriz-logistica
Agora vamos chegar os usuários do domínio
wbinfo -u administrator guest krbtgt douglas.santos susan.cris karolayne.santos hillary.santos
Reinicie o servidor para ele carregar todas as novas configurações
reboot
Instalação e Configuração do Squid
Agora vamos acessar o ports do squid 3.3 e vamos mandar instalar ele
cd /usr/ports/www/squid33 && make WITH_ARP_ACL=yes AUTH_LDAP=yes install clean
Agora vamos inserir ele na inicialização do sistema
echo 'squid_enable="YES"' >> /etc/rc.conf
Vamos fazer um backup do arquivo de configuração do /etc/squid3/squid.conf
cp -Rfa /usr/local/etc/squid/squid.conf{,.bkp}
Agora vamos a configuração do squid
vim /usr/local/etc/squid/squid.conf #Porta padrão do proxy http_port 3128 #Endereco de E-mail do administrador do proxy cache_mgr suporte@douglasqsantos.com.br #Nao faz cache de dados de formularios html,em de resultados de programas cgi #hierarchy_stoplist cgi-bin ? #Cria uma access control list, baseando-se na url e utilizando exp. regulares nesta situacao #foi criado uma exp. regular para cgi e ?. acl QUERY urlpath_regex cgi-bin \? #Nao faz cache da acl QUERY cache deny QUERY #Define o tamonho maximo de um objeto para seu armazenamento no cache local maximum_object_size 4096 KB #Define o tamanho minimo de um objeto para seu armazenamento no cache local minimum_object_size 0 KB #Define o tamanho maximo de um objeto para seu armazenamento no cache de memoria maximum_object_size_in_memory 64 KB #Definicao da quantidade de memoria ram a ser alocada para cache cache_mem 60 MB #Para nao bloquear downloads quick_abort_min -1 KB # Resolve um problema com conexões persistentes que ocorre com certos servidores, # e que provoca delays em nosso cache. detect_broken_pconn on # Provoca um ganho de performance ao usar conexões Pipeline (requisições em paralelo) pipeline_prefetch on #Para cache de fqdn fqdncache_size 1024 #Tempo de atualizacao dos objetos relacionados aos prot ftp, gopher e http. refresh_pattern ^ftp:// 1440 20% 10080 refresh_pattern ^gopher: 1440 0% 1440 refresh_pattern -i (/cgi-bin/|\?) 0 0% 0 refresh_pattern . 0 20% 4320 #Definicao da porcentagem do uso do cache que fara o squid descartar os arquivos mais antigos cache_swap_low 90 cache_swap_high 95 #Logs access_log /var/log/squid/access.log squid cache_log /var/log/squid/cache.log cache_store_log /var/log/squid/store.log #Define a localizacao do cache de disco, tamanho, qtd de diretorios pai, e por fim a qtd de dir filhos cache_dir aufs /var/squid/cache/squid 100 16 256 #Controle do arquivo de Log logfile_rotate 10 #Arquivo que contem os nomes de maquinas hosts_file /etc/hosts #Maquinas que nao precisaram de autenticacao acl liberados src "/usr/local/etc/squid/regras/liberados" http_access allow liberados #liberar o acesso ao site da caixa que está com problemas acl caixa dstdomain .caixa.gov.br always_direct allow caixa cache deny caixa #MACS que estão liberados. acl macliberado arp "/usr/local/etc/squid/regras/mac_liberado" http_access allow macliberado #### Autenticao no Windows 2008 via WINBIND auth_param ntlm program /usr/local/bin/ntlm_auth --helper-protocol=squid-2.5-ntlmssp auth_param ntlm children 10 auth_param basic program /usr/local/bin/ntlm_auth --helper-protocol=squid-2.5-basic auth_param basic children 10 auth_param basic realm Squid proxy server auth_param basic credentialsttl 2 hours external_acl_type ad_group ttl=600 children-max=35 %LOGIN /usr/local/libexec/squid/wbinfo_group.pl ### ACL Padroes 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 563 # https, snews 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 1080 acl Safe_ports port 1863 acl Safe_ports port 8443 # https acl Safe_ports port 5222 # gTalk acl Safe_ports port 5223 # gTalk acl Safe_ports port 47057 # torrent acl purge method PURGE acl CONNECT method CONNECT http_access allow purge localhost http_access deny purge http_access deny !Safe_ports http_access deny CONNECT !SSL_ports #Limita conexeos HTTP acl connect_abertas maxconn 8 #sites que não serão feito cache geralmente bancos acl NOCACHE url_regex "/usr/local/etc/squid/regras/direto" \? no_cache deny NOCACHE #-----------------------------------------------------------------------------------# # Nome ACL TIPO Nome Grupo AD # #-----------------------------------------------------------------------------------# acl ti-admin external ad_group ti-admin acl matriz-diretoria external ad_group matriz-diretoria acl matriz-gerencia external ad_group matriz-gerencia acl matriz-administracao external ad_group matriz-administracao acl matriz-logistica external ad_group matriz-logistica # Whitelists / Blacklists acl downloads urlpath_regex -i "/usr/local/etc/squid/regras/downloads" acl sites-liberados url_regex -i "/usr/local/etc/squid/regras/sites_liberados" acl sites-proibidos url_regex -i "/usr/local/etc/squid/regras/sites_proibidos" acl sites-bloqueados url_regex -i "/usr/local/etc/squid/regras/sites_bloqueados" acl sites-gerencia url_regex -i "/usr/local/etc/squid/regras/sites_gerencia" acl sites-administracao url_regex -i "/usr/local/etc/squid/regras/sites_administracao" acl sites-logistica url_regex -i "/usr/local/etc/squid/regras/sites_logistica" #Bloquear determinados usuários autenticados acl usu_bloqueados proxy_auth "/usr/local/etc/squid/regras/usu_bloqueados" #Controle de acesso por horário aqui, vamos liberar o acesso no horário do almoço #aqui os usuário vão poder acessar alguns sites diferenciados entre as 12:00 até as 13:00 acl almoco time MTWHFAS 12:00-13:00 #Agora vamos criar uma regra para garantir que os usuários que vão acessar no almoço estão autenticados acl autenticados proxy_auth REQUIRED #Agora vamos criar uma lista de sites que eles vão poder acessar no horário do almoço acl sites-almoco url_regex -i "/usr/local/etc/squid/regras/sites_almoco" # Permissoes de Acesso http_access allow ti-admin http_access allow sites-liberados http_access deny sites-proibidos http_access allow matriz-diretoria #Aqui vamos cruzar as acls para garantir que os usuários que vão acessar os sites no almoço estejam autenticados http_access allow almoco autenticados sites-almoco http_access deny sites-bloqueados http_access deny downloads http_access deny usu_bloqueados http_access allow matriz-administracao sites-administracao http_access allow matriz-logistica sites-logistica #Acesso ao site da caixa #http_access allow caixa matriz-administracao #http_access allow caixa matriz-diretoria http_access deny all http_reply_access allow all icp_access allow all miss_access allow all visible_hostname proxy.douglasqsantos.com.br error_directory /usr/local/etc/squid/errors/pt-br #cache_effective_group squid cache_effective_user squid coredump_dir /var/squid/cache/squid
Agora vamos criar o diretório para armazenar as regras do squid
mkdir -p /usr/local/etc/squid/regras
Arquivo com os ips que não precisaram de autenticação e não terão bloqueio
vim /usr/local/etc/squid/regras/liberados #Arquivo que contem os ips que não vão passar por autenticação e não terão bloqueio 10.13.0.1 10.13.0.2
Arquivo com os macs que não precisaram de autenticação e não terão bloqueio
vim /usr/local/etc/squid/regras/mac_liberado #MACS que não precisaram de autenticação e não terão bloqueio. 01:01:01:01:01:01
Arquivo com os sites que não vamos fazer cache
vim /usr/local/etc/squid/regras/direto #Sites que não vamos fazer cache bradesco itau caixa.gov hsbc squid-cache
Arquivo com os sites que vão poder ser acessados no horário do almoço das 12:00 as 13:00
vim /usr/local/etc/squid/regras/sites_almoco #Sites que vão poder ser acessados no horário de almoço facebook gmail
Arquivo com as extensões bloqueadas ou seja as extensões que os usuários não vão poder baixar
vim /usr/local/etc/squid/regras/downloads #Arquivo com as extensões que os usuários não vão poder baixar .ace$ .af$ .afx$ .asf$ .asx$ .avi$ .bat$ .cmd$ .com$ .cpt$ .divx$ .dms$ .dot$ .dvi$ .ez$ .gl$ .hqx$ .kar$ .lha$ .lzh$ .mov$ .movie$ .mp2$ .mp3$ .mpe$ .mpeg$ .mpg$ .mpga$ .pif$ .qt$ .ra$ .rm$ .rpm$ .scr$ .spm$ .vbf$ .vob$ .vqf$ .wav$ .wk$ .wma$ .wmv$ .wpm$ .wrd$ .wvx$ .wz$
Arquivo com os sites que vão estar liberados para todos os usuários autenticados
vim /usr/local/etc/squid/regras/sites_liberados #sites que vão estar liberados para todos os usuários autenticados squid-cache site_da_empresa
Arquivo com os sites que estão proibidos para todos os usuários
vim /usr/local/etc/squid/regras/sites_proibidos #Sites que vão estar proibidos para todos os usuários 041vip 4shared abusado acervoamador acompanhante amador amante anal aninha anus arquivonet arquivosex arrebitadas arrombadas baixaki bangbus batepapo bizarro boceta boneca bronha bruninha buceta bunda buttman cabaret calcinhas camerasex caralho caricia carlinha chantily checkip.dyndns.org chupar classisex climax clitoris cocota curitibasexo curitibastarnight cwbvip cybersex delicia deliciosas delirius deliriusonline easyquarto ebuddy ejacula erotic erotismo estupro foda foder fuck furacao galinhas gang-bang gangbang gata gatinhas gay getmyip.co.uk getmyip.org gostosa gostoso homosexual hustler idealcompany juggworld lolita malicia marcinha megaupload molhadinhas morango.ig ninfeta ninfetinha orgia orkut parperfeito partypoker penis penthouse pica pinto playboy porno private pubshop pussy puta putinha redtube revistabrazil sandrinha secretas sedutoras sensual sex sexlive sexo sexxxyvideo sexy sexyclube shemale swing talk teen trafficconverter.biz transa travestis tufos vagina virgen youtube zipmail zoofilia
Arquivo que vai conter os sites bloqueados somente a diretoria pode acessar esses sites
vim /usr/local/etc/squid/regras/sites_bloqueados #Sites que estão bloqueados para todos os usuários menos a diretoria 208.80.152.2 4shared adorocinema afterhour altoagito altosagitos amazon americanas aoe aondenamoro apolar atleticoparanaense atleticopr atoouefeito atrativa atrativagames aumentonatural baixaki batepapo blog blogdocebolinha blogspot blowjob bluebell bondedorole brasilviagem caiobafm caixabranca caixapreta caixapretta cartasdeamor cartoon chantily cineplayers cocemsuacasa collider comercioeletronico corinthians corinthians coritiba corpoperfeito cowboysdoasfalto coxa coxanautas declaracaodeamor ebuddy facearfacebook films filmschoolrejects fimdostempos flogao forumpcs furacao furiajovem fusion futebol galinhas games globo.com gonzagaaluguel gravatar guiademulher guruweb gvt hartmannimoveis humortadela icq idolos ig imoveiscuritiba imoveisportoseguro imperioalviverde investeloto jovemnerd jovempanfm jpfm jtavaresimoveis judao last.fm latinoreview lojadojardim marisa meebo meebo.com megaupload mercadolivre metal-archives meucarronovo morehate morte mtv music myspace namoro nokia ofuxico orkut padrereginaldomanzotti palmeiras parperfeito pindavale pontofrio portal3.casasoft portalnoivas powerscrap radio rapidshare samsung shop shopfacil shopfacil shopinvest shoppingtotal siemens socarrao sonico sony superdownload talk televisao teologia teologica tim timmusicstore tirinhas tribal twitter upload.wikipedia.org videolar violencia virtua vivo vocoxa webmotors webnoivas wikia wikimedia wikipedia.com.br wikipedia.org yahoo youtube zipmail
Sites que a gerencia vai ter acesso
vim /usr/local/etc/squid/regras/sites_gerencia #Sites que o grupo de gerencia vai ter acesso terra uol google gerencia.siteempresa bradesco itau caixa.gov hsbc .gov
Sites que a administração vai ter acesso
vim /usr/local/etc/squid/regras/sites_administracao #Sites que o grupo adminstracao vai ter acesso adm.siteempresa bradesco itau hsbc caixa.gov
Sites que a logística vai ter acesso
vim /usr/local/etc/squid/regras/sites_logistica #Sites que o grupo logistica vai ter acesso logistica.siteempresa
Bloquear determinados usuários autenticados
vim /usr/local/etc/squid/regras/usu_bloqueados #Usuários que vão ser bloquados no proxy jose.silva
Agora crie os grupos e usuários no AD
Vamos consultar os nossos usuários do Ad
wbinfo -u administrator guest krbtgt douglas.santos susan.cris karolayne.santos hillary.santos
Agora crie os grupos e usuários no AD, caso ainda não tenha feito isso
wbinfo -g winrmremotewmiusers__ domain computers domain controllers schema admins enterprise admins cert publishers domain admins domain users domain guests group policy creator owners ras and ias servers allowed rodc password replication group denied rodc password replication group read-only domain controllers enterprise read-only domain controllers cloneable domain controllers dnsadmins dnsupdateproxy ti-admin matriz-diretoria matriz-gerencia matriz-administracao matriz-logistica
Agora vamos consultar o grupo ti-admin para conferir os usuários que fazem parte deste grupo.
wbinfo --group-info=ti-admin ti-admin:x:10000:douglas.santos
Como pode ser notado nós temos o usuário DOUGLASQSANTOS no grupo ti-admin
Agora vamos consultar informações sobre o nosso usuário DOUGLASQSANTOS.santos
wbinfo --user-groups=douglas.santos 10001 10000
O nosso usuário pertence a dois grupos do domínio o grupo 10001 e o 10000 vamos descobrir quem são estes grupos.
Vamos consultar primeiro o grupo 10000
wbinfo --gid-info=10000 ti-admin:x:10000:douglas.santos
Como pode ser notado o grupo 10000 é o grupo ti-admin agora vamos consultar o grupo 10001
wbinfo --gid-info=10001 domain users:x:10001:
Como pode ser notado o grupo 10001 é o grupo domain users ou seja os usuários de domínio.
Agora vamos acertar as permissões do diretório que vai armazenar o cache do squid
chown -R squid:squid /var/squid/cache/squid
Agora vamos dar permissão para o squid obter as informações do winbind
chgrp squid /var/db/samba/winbindd_privileged chmod -R g+rw /var/db/samba/winbindd_privileged
Agora vamos obter o wbinfo_group que faz o mapeamento de grupos do ad
cd /usr/local/libexec/squid/ wget -c http://wiki.douglasqsantos.com.br/Downloads/scripts/wbinfo_group.txt -O wbinfo_group.pl chmod +x wbinfo_group.pl
Agora temos que criar os diretórios para o squid armazenar o cache
squid -z
Agora podemos iniciar ele
/usr/local/etc/rc.d/squid start
OBS: NÃO ESQUECA DE CRIAR OS GRUPOS NO AD E COLOCAR OS USUÁRIOS NOS GRUPOS
Para testar a autenticação com o AD pode ser efetuado com o seguinte comando
wbinfo -a usuario%senha plaintext password authentication succeeded #-> saída com sucesso challenge/response password authentication succeeded #-> saída com sucesso
Agora um teste com uma saída de erro
wbinfo -a usuario%senhaerrada plaintext password authentication failed #-> saída com erro Could not authenticate user usuario%senhaerrada with plaintext password #-> saída com erro challenge/response password authentication failed #-> saída com erro error code was NT_STATUS_NO_LOGON_SERVERS (0xc000005e) #-> saída com erro error messsage was: No logon servers #-> saída com erro Could not authenticate user usuario with challenge/response #-> saída com erro
Podemos testar a autenticação do Squid com o AD da seguinte forma
ntlm_auth --help-protocol=squid-2.5-basic --domain=dominio --username=usuario --password=senha NT_STATUS_OK: Success (0x0) #-> saída com sucesso
Agora um teste com saída de erro
ntlm_auth --help-protocol=squid-2.5-basic --domain=dominio --username=usuario --password=senhaerrada NT_STATUS_IO_TIMEOUT: NT_STATUS_IO_TIMEOUT (0xc00000b5) #-> saída de erro
Instalação e Configuração do lightsquid
Podemos ver um demo do lightsquid em http://lightsquid.sourceforge.net/demo18/index.cgi?year=2009&month=08
Vamos ajustar o nome da máquina no /etc/hosts
vim /etc/hosts [...] 192.168.1.60 freebsd.douglasqsantos.com.br freebsd
Vamos instalar o apache
cd /usr/ports/www/apache24 && make install clean
Agora vamos inserir algumas variáveis na inicialização do sistema para não obtermos erros
echo 'accf_http_load="YES"' >> /boot/loader.conf echo 'accf_data_load="YES"' >> /boot/loader.conf
Vamos carregar os módulos para o apache
kldload accf_http kldload accf_data
Agora vamos colocar o apache na inicialização do sistema
echo 'apache24_enable="YES"' >> /etc/rc.conf
Agora vamos instalar o suporte perl para o apache
cd /usr/ports/graphics/p5-GD && make install clean
Agora vamos obter o lightsquid
cd /usr/local/www/ wget -c http://wiki.douglasqsantos.com.br/Downloads/monitoring/lightsquid-1.8.tgz
Agora vamos desempacotar ele
tar -xzvf lightsquid-1.8.tgz
Agora vamos remover o tgz
rm -rf lightsquid-1.8.tgz
Agora vamos renomear o nosso diretório do lightsquid
mv lightsquid-1.8 lightsquid
Agora vamos acertar as permissões dos arquivos
cd lightsquid chmod +x *.cgi chmod +x *.pl
Agora vamos mudar o dono do diretório
chown -R www:www /usr/local/www/lightsquid
Agora vamos ajustar algumas variáveis do lightsquid
vim /usr/local/www/lightsquid/lightsquid.cfg [...] #path to additional `cfg` files $cfgpath ="/usr/local/www/lightsquid"; #path to `tpl` folder $tplpath ="/usr/local/www/lightsquid/tpl"; #path to `lang` folder $langpath ="/usr/local/www/lightsquid/lang"; #path to `report` folder $reportpath ="/usr/local/www/lightsquid/report"; #path to access.log $logpath ="/var/log/squid"; #path to `ip2name` folder $ip2namepath ="/usr/local/www/lightsquid/ip2name"; [...] $lang ="pt_br";
Agora vamos testar o lightsquid
perl /usr/local/www/lightsquid/check-setup.pl LightSquid Config Checker, (c) 2005-9 Sergey Erokhin GNU GPL LogPath : /var/log/squid reportpath: /usr/local/www/lightsquid/report Lang : /usr/local/www/lightsquid/lang/pt_br Template : /usr/local/www/lightsquid/tpl/base Ip2Name : /usr/local/www/lightsquid/ip2name/ip2name.simple all check passed, now try access to cgi part in browser
Agora vamos gerar os nossos relatórios
/usr/local/www/lightsquid/lightparser.pl
Agora vamos habilitar o virtualhost no apache e vamos habilitar o mod_cgi
vim /usr/local/etc/apache24/httpd.conf [...] #Descomentar a linha abaixo linha: 140 LoadModule dir_module libexec/apache24/mod_dir.so [...] # Virtual hosts descomentar a linha abaixo linha: 470 Include etc/apache24/extra/httpd-vhosts.conf
Agora vamos ajustar o Virtualhost para ele
vim /usr/local/etc/apache24/extra/httpd-vhosts.conf <VirtualHost *:80> ServerName lightsquid.douglasqsantos.com.br ServerAlias lightsquid.douglasqsantos.com.br DocumentRoot "/usr/local/www/lightsquid" #Controle de acesso ao lightsquid <Directory "/usr/local/www/lightsquid"> DirectoryIndex index.cgi Options ExecCGI Indexes MultiViews SymLinksIfOwnerMatch AddHandler cgi-script .cgi AllowOverride All #Autenticação do lightsquid AuthUserFile /usr/local/etc/apache24/access/lightsquid-htpasswd AuthName "LightSquid" AuthType Basic require valid-user </Directory> #Configuração dos logs do apache ErrorLog /var/log/apache24/lightsquid.douglasqsantos.com.br-error.log CustomLog /var/log/apache24/lightsquid.douglasqsantos.com.br-access.log common #Retirando a assinatura do Apache ServerSignature Off IndexIgnore .??* *~ *# README RCS CVS *,v *,t * # Possible values include: debug, info, notice, info, error, crit, # alert, emerg. LogLevel info </VirtualHost>
Agora vamos criar um diretório para armazenar os nossos logs e o arquivo de controle de acesso e vamos ajustar as permissões
mkdir -p /var/log/apache24 /usr/local/etc/apache24/access chown -R www:www /var/log/apache24 /usr/local/etc/apache24/access
Umas das opções interessantes que eu acho desse cara é que podemos configurar grupos para os usuários, com isso podemos mandar consultar quais grupos acessaram o que e quais usuários pertences a eles.
Vamos acessar o diretório do lightsquid
cd /usr/local/www/lightsquid
Agora vamos fazer uma copia do group.cfg
cp group.cfg.src group.cfg
Agora vamos editar o nosso arquivo
vim group.cfg douglas.santos 01 ti-admin susan.cris 02 matriz-diretoria hillary.santos 02 matriz-administracao karolayne.santos 03 matriz-gerencia
Aqui temos na primeira coluna o nome do usuário poderia ser o endereço ip do cliente, na segunda coluna o número do grupo e a terceira coluna é o nome do grupo
Agora para que apareça a identificação dos grupos precisamos gerar novamente o nosso relatório.
/usr/local/www/lightsquid/lightparser.pl
Outra opção bacana que temos é fazer o mapeamento para nomes completos por exemplo o nome DOUGLASQSANTOS.santos vamos mapear para DOUGLASQSANTOS Quintiliano dos Santos, o arquivo que precisamos editar é o seguinte
vim /usr/local/www/lightsquid/realname.cfg douglas.santos Douglas Quintiliano dos Santos 192.168.1.3 Nerso da Silva
Aqui podemos mapear tanto nomes de usuários como endereço ip com isso no relatório podemos não lembrar na hora quem utilizar o ip 192.168.1.3 mais pelo nome é bem mais fácil de cobrar um determinado usuário, após efetuar a modificação precisamos gerar o relatório novamente
/usr/local/www/lightsquid/lightparser.pl
Agora vamos criar um agendamento no cron para gerar automaticamente o nosso relatório:
crontab -e [...] */20 * * * * /usr/local/www/lightsquid/lightparser.pl today
Agora vamos gerar o usuário e a senha, aqui eu vou cadastrar o usuário lightsquid
htpasswd -s -c /usr/local/etc/apache24/access/lightsquid-htpasswd lightsquid New password: Re-type new password: Adding password for user lightsquid
Agora vamos reiniciar o apache
/usr/local/etc/rc.d/apache24 restart
Agora já podemos acessar http://lightsquid.douglasqsantos.com.br ou http://ip_servidor