Squid autenticando no AD utilizando o CentOS 7
E ai galera, aqui eu vou abordar a configuração do Squid no CentOS 7 autenticando no AD ou Samba 4, e vamos instalar o lightsquid um gerador de relatórios show de bola.
Prepare o seu sistema com o seguinte script http://wiki.douglasqsantos.com.br/doku.php/confinicialcentos7_en para que não falte nenhum pacote ou configuração.
- Endereço Ip do Proxy: 192.168.1.40
- Endereço Ip do AD PDC ou Samba 4: 192.168.1.50
- 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 fazer um update dos repositórios e vamos fazer um upgrade do sistema
yum check-update && yum update -y
Agora vamos instalar os pacotes do samba, vamos instalar também o squid
yum install samba samba-client samba-common samba-winbind samba-winbind-clients squid -y
Agora vamos inserir o samba o winbind e o squid na incialização do sistema
systemctl enable smb.service systemctl enable nmb.service systemctl enable winbind.service systemctl enable squid.service
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 nameserver 192.168.1.50
Agora vamos testar se o servidor ad esta respondendo corretamente
nslookup douglasqsantos.com.br Server: 192.168.1.50 Address: 192.168.1.50#53 Name: douglasqsantos.com.br Address: 192.168.1.50
Agora vamos atualizar o relógio do sistema no AD ou Samba 4
ntpdate -u 192.168.1.50
Agora vamos fazer backup do arquivo de configuração do cliente kerberos
cp -Rfa /etc/krb5.conf{,.bkp}
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.50 admin_server = 192.168.1.50:749 default_server = 192.168.1.50 } [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 acertar o arquivo /etc/security/limits.conf para não ficar mostrando erro no samba
vim /etc/security/limits.conf [...] #colocar no final do arquivo root hard nofile 131072 root soft nofile 65536 mioutente hard nofile 32768 mioutente soft nofile 16384
Agora vamos fazer um backup do arquivo de configuração do samba
cp -Rfa /etc/samba/smb.conf{,.bkp}
Agora vamos a configuração do samba deixe o arquivo como no exemplo
vim /etc/samba/smb.conf [global] workgroup = DOUGLASQSANTOS realm = DOUGLASQSANTOS.COM.BR netbios name = CENTOS7 server string = Proxy Server security = ADS auth methods = winbind 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/bash 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 [...] passwd: files winbind shadow: files sss group: files winbind
Agora vamos reiniciar o smb e o nmb para eles pegarem a nova configuração
systemctl restart nmb.service systemctl restart smb.service
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 'CENTOS7' 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 'CENTOS' in realm 'DOUGLASQSANTOS.COM.BR '
Agora temos que reiniciar os serviços novamente
systemctl restart nmb.service systemctl restart smb.service systemctl restart winbind.service
Agora já podemos testar a conexão do samba com o AD
wbinfo -t checking the trust secret for domain DOUGLASQSANTOS via RPC calls succeeded
Agora vamos checar os grupos que temos no domínio.
wbinfo -g 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 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 hillary
Reinicie o servidor para ele carregar todas as novas configurações
reboot
Agora vamos parar o squid
systemctl stop squid.service
Vamos fazer um backup do arquivo de configuração do /etc/squid3/squid.conf
cp -Rfa /etc/squid/squid.conf{,.bkp}
Agora vamos a configuração do squid
vim /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 # Add any of your own refresh_pattern entries above these. 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/spool/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 "/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 "/etc/squid/regras/mac_liberado" http_access allow macliberado ### 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 manager localhost http_access deny manager 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 "/etc/squid/regras/direto" \? no_cache deny NOCACHE #### Autenticao no Windows 2008/2012/Samba 4 via WINBIND auth_param ntlm program /usr/bin/ntlm_auth --helper-protocol=squid-2.5-ntlmssp auth_param ntlm children 30 auth_param basic program /usr/bin/ntlm_auth --helper-protocol=squid-2.5-basic auth_param basic children 5 auth_param basic realm Squid proxy server auth_param basic credentialsttl 2 hours #Note que abaixo o meu sistema é 64 então as minhas libs estão em /usr/lib64 caso esteja utilizando sistema 32 troque para /usr/lib external_acl_type ad_group %LOGIN /usr/lib64/squid/ext_wbinfo_group_acl #-----------------------------------------------------------------------------------# # 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 "/etc/squid/regras/downloads" acl sites-liberados url_regex -i "/etc/squid/regras/sites_liberados" acl sites-proibidos url_regex -i "/etc/squid/regras/sites_proibidos" acl sites-bloqueados url_regex -i "/etc/squid/regras/sites_bloqueados" acl sites-gerencia url_regex -i "/etc/squid/regras/sites_gerencia" acl sites-administracao url_regex -i "/etc/squid/regras/sites_administracao" acl sites-logistica url_regex -i "/etc/squid/regras/sites_logistica" #Bloquear determinados usuários autenticados acl usu_bloqueados proxy_auth "/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 "/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/share/squid/errors/pt-br #cache_effective_group squid cache_effective_user squid coredump_dir /var/spool/squid
Galera o site da caixa já é uma merda de natureza, e o maldito ainda tava dando uns paus quando o squid vai acessar, analisando os pacotes percebi que o dns demora pra retornar uma requisição válida para o squid por isso a demora pra navegar, a maneira que eu resolvi foi adicionando os endereços da caixa no /etc/hosts da da seguinte forma
vim /etc/hosts [...] 200.201.161.106 www.caixa.gov.br www.caixa.gov.br 200.201.162.210 www1.caixa.gov.br www1.caixa.gov.br
Com isso o site da caixa vai retornar mais rapido par ao squid. ;)
Agora vamos criar o diretório para armazenar as regras do squid
mkdir -p /etc/squid/regras
Arquivo com os ips que não precisaram de autenticação e não terão bloqueio
vim /etc/squid/regras/liberados #Arquivo que contem os ips que não vão passar por autenticação e não terão bloqueio 192.168.1.1 192.168.1.100
Arquivo com os macs que não precisaram de autenticação e não terão bloqueio
vim /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 /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 /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 /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 /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 /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 /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 /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 /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 /etc/squid/regras/sites_logistica #Sites que o grupo logistica vai ter acesso logistica.siteempresa
Bloquear determinados usuários autenticados
vim /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 DEBIAN\nobody DEBIAN\douglas administrator guest krbtgt douglas.santos hillary
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 Douglas no grupo ti-admin
Agora vamos consultar informações sobre o nosso usuário douglas
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 temos que criar os diretórios para o squid armazenar o cache
squid -z
Agora podemos iniciar ele
systemctl start squid.service
OBS: NÃO ESQUECA DE CRIAR OS GRUPOS NO AD ou Samba 4 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
Agora vamos fazer um update dos repositórios e um upgrade do sistema
yum check-update && yum update -y
Agora vamos instalar as dependências dele
yum install perl-GD perl-CGI httpd -y
Agora vamos obter o lightsquid
cd /var/www/html/ 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 apache:apache /var/www/html/lightsquid
Agora vamos ajustar o arquivo do apache
vim /etc/httpd/conf/httpd.conf [...] #Insira as linhas abaixo no final do arquivo <Directory "/var/www/html/lightsquid"> DirectoryIndex index.cgi Options ExecCGI Indexes MultiViews SymLinksIfOwnerMatch AddHandler cgi-script .cgi Require all granted </Directory> [...]
Agora vamos ajustar o idioma do lightsquid
vim /var/www/html/lightsquid/lightsquid.cfg [...] $lang ="pt_br";
Agora vamos testar o lightsquid
perl /var/www/html/lightsquid/check-setup.pl LightSquid Config Checker, (c) 2005-9 Sergey Erokhin GNU GPL LogPath : /var/log/squid reportpath: /var/www/html/lightsquid/report Lang : /var/www/html/lightsquid/lang/pt_br Template : /var/www/html/lightsquid/tpl/base Ip2Name : /var/www/html/lightsquid/ip2name/ip2name.simple all check passed, now try access to cgi part in browse
Agora vamos inserir o apache na inicialização do sistema
systemctl enable httpd.service
Agora vamos iniciar o apache
systemctl start httpd.service
Agora vamos gerar os nossos relatórios
/var/www/html/lightsquid/lightparser.pl
Agora já podemos acessar o nosso relatório em http://ip_servidor/lightsquid/
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 /var/www/html/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 anderson.angelote 01 ti-admin hillary 02 matriz-logistica nerso 02 matriz-logistica
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.
/var/www/html/lightsquid/lightparser.pl
Outra opção bacana que temos é fazer o mapeamento para nomes completos por exemplo o nome douglas.santos vamos mapear para Douglas Quintiliano dos Santos, o arquivo que precisamos editar é o seguinte
vim /var/www/html/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
/var/www/html/lightsquid/lightparser.pl
Agora vamos criar um agendamento no cron para gerar automaticamente o nosso relatório:
crontab -e [...] */20 * * * * /var/www/html/lightsquid/lightparser.pl today
Agora vamos criar um virtualhost para o lightsquid
vim /etc/httpd/conf.d/lightsquid.conf <VirtualHost *:80> ServerName lightsquid.douglasqsantos.com.br ServerAlias lightsquid.douglasqsantos.com.br DocumentRoot "/var/www/html/lightsquid" #Controle de acesso ao lightsquid <Directory "/var/www/html/lightsquid"> DirectoryIndex index.cgi Options ExecCGI Indexes MultiViews SymLinksIfOwnerMatch AddHandler cgi-script .cgi AllowOverride All #Autenticação do lightsquid AuthUserFile /etc/httpd/access/lightsquid-htpasswd AuthName "LightSquid" AuthType Basic require valid-user </Directory> #Configuração dos logs do apache ErrorLog /var/log/httpd/lightsquid.douglasqsantos.com.br-error.log CustomLog /var/log/httpd/lightsquid.douglasqsantos.com.br-access.log common #Retirando a assinatura do Apache ServerSignature Off #Nivel de alertas de info nos logs LogLevel info </VirtualHost>
Agora vamos criar o diretório que vai conter o arquivo de controle dos usuários que podem acessar o lightsquid
mkdir /etc/httpd/access/
Agora vamos gerar o usuário e a senha, aqui eu vou cadastrar o usuário lightsquid
htpasswd -s -c /etc/httpd/access/lightsquid-htpasswd lightsquid New password: Re-type new password: Adding password for user lightsquid
Agora vamos reiniciar o apache
systemctl restart httpd.service
Agora já podemos acessar http://lightsquid.douglasqsantos.com.br ou http://ip_servidor