Diferenças

Aqui você vê as diferenças entre duas revisões dessa página.

Link para esta página de comparações

linux:artigos:squid-ldap-admin [13/01/2015 10:44] (atual)
Linha 1: Linha 1:
 +~~NOTOC~~
 +====== Squid autenticado no ldap com módulo de administração ======
 +
 +**Observações:​**
 +  * Iremos levar em consideração que você possui uma instalação "​limpa"​ do S.O. Debian GNU/Linux.
 +  * É pré-requisito para este tutorial que o //apache2// com //PHP5// estejam instalados e configurados. Um modelo desta instalação está disponível em [[linux:​artigos:​apache-completo_php_ssl |Instalando e configurando Apache2 com suporte PHP e SSL]].
 +
 +===== Instalando e configurando o Squid =====
 +
 +Primeiramente vamos instalar o pacote.
 +
 +<​code>​
 +root@debian:​~#​ aptitude install squid3
 +</​code>​
 +
 +Agora, vamos configurá-lo.
 +
 +Para facilitar, vamos fazer um //backup// do arquivo original e baixar um pré-configurado alterando apenas o necessário.
 +
 +<​code>​
 +root@debian:​~#​ cd /etc/squid
 +root@debian:/​etc/​squid#​ mv squid.conf squid.conf.orig
 +root@debian:/​etc/​squid#​ wget -c http://​downloads.fabriciovc.eti.br/​squid/​squid3.conf
 +root@debian:/​etc/​squid#​ cp squid3.conf squid.conf
 +</​code>​
 +
 +Não esquece de ajustar algumas linhas que são específicas para a sua instalação.
 +
 +<​code>​
 +root@debian:/​etc/​squid#​ vi squid.conf
 +
 +[...]
 +
 +#​Recommended minimum configuration per scheme:
 +auth_param basic program /​usr/​lib/​squid/​ldap_auth -b ou=usuarios,​dc=dominio,​dc=com,​dc=br 127.0.0.1
 +auth_param basic children 5
 +auth_param basic realm Digite Seu Login e senha para acesso a Internet
 +auth_param basic credentialsttl 1 hours
 +auth_param basic casesensitive off
 +
 +[...]
 +
 +visible_hostname squid.dominio.com.br
 +
 +[...]
 +</​code>​
 +
 +Em seguida, precisamos das regras de //ACL// necessárias para o seu funcionamento de acordo com as configurações setadas no **//​squid.conf//​**.
 +
 +<​code>​
 +root@debian:/​etc/​squid#​ wget -c http://​downloads.fabriciovc.eti.br/​squid/​regras.tar.gz
 +root@debian:/​etc/​squid#​ tar xzvf regras.tar.gz
 +</​code>​
 +
 +Com isso já podemos reiniciar o processo do //squid//.
 +
 +<​code>​
 +root@debian:/​etc/​squid#​ /​etc/​init.d/​squid stop
 +root@debian:/​etc/​squid#​ /​etc/​init.d/​squid start
 +</​code>​
 +
 +===== Instalando e configurando o Sarg - Relatórios =====
 +
 +Aqui iremos configurar o //Sarg//, ferramenta que utilizamos pra gerar os relatórios de acesso à internet dos usuários.
 +
 +Para iniciar, precisamos instalar o pacote do //Sarg//.
 +
 +<​code>​
 +root@debian:​~#​ aptitude install sarg
 +</​code>​
 +
 +Em seguida vamos remover alguns arquivos que são adicionados no cron que não costumo utilizar. Se quiser manter, fique a vontade, mas não vou explicar o seu funcionamento.
 +
 +<​code>​
 +root@debian:​~#​ rm /​etc/​cron.daily/​sarg
 +root@debian:​~#​ rm /​etc/​cron.monthly/​sarg
 +root@debian:​~#​ rm /​etc/​cron.weekly/​sarg
 +</​code>​
 +
 +Assim como fizemos com o //Squid//, vamos fazer um //backup// do arquivo original e baixar um arquivo pré-configurado.
 +
 +<​code>​
 +root@debian:​~#​ cd /etc/squid
 +root@debian:/​etc/​squid#​ mv sarg.conf sarg.conf.orig
 +root@debian:/​etc/​squid#​ wget -c http://​downloads.fabriciovc.eti.br/​squid/​sarg.conf
 +</​code>​
 +
 +Em seguida, edite o arquivo e altera alguma possível opção necessária,​ mas o arquivo deve estar pronto para o funcionamento.
 +
 +<​code>​
 +root@debian:/​etc/​squid#​ vi sarg.conf
 +
 +[...]
 +</​code>​
 +
 +O próximo passo, é realizar o download do //script// necessário para gerar os relatórios diários.
 +
 +<​code>​
 +root@debian:/​etc/​squid#​ wget -c http://​downloads.fabriciovc.eti.br/​squid/​sarg_diario.sh
 +</​code>​
 +
 +Não esqueça de dar permissão de execução para o //script// ...
 +
 +<​code>​
 +root@debian:/​etc/​squid#​ chmod 754 sarg_diario.sh ​
 +</​code>​
 +
 +E por fim, podemos executá-lo para fins de testes.
 +
 +<​code>​
 +root@debian:/​etc/​squid#​ ./​sarg_diario.sh
 +</​code>​
 +
 +Com isso, os relatórios já estarão funcionando e disponíveis via web pelo endereço:
 +
 +<​code>​
 +http://​seu_servidor/​squid-reports
 +</​code>​
 +
 +Não esqueça de agendar o //script// no //crontab// para que o relatório seja gerado diariamente de maneira automática.
 +
 +<​code>​
 +root@debian:/​etc/​squid#​ crontab -e
 +
 +[...]
 +
 +0 23      *      *      *      /​etc/​squid/​sarg_diario.sh
 +</​code>​
 +
 +===== Instalando e configurando o squidadmin =====
 +
 +Desenvolvi um programinha em PHP com ajuda de um amigo, bem simples, mas que permite a administração do //Squid// pela web. Vamos ver como implementá-lo.
 +
 +Primeiramente,​ baixe o //​squidadmin//​ no **//​DocumentRoot//​**.
 +
 +**Obs.:** lembre-se que precisa de //apache2// com suporte a //php5// instalado.
 +
 +<​code>​
 +root@debian:​~#​ cd /var/www
 +root@debian:/​var/​www#​ wget -c http://​downloads.fabriciovc.eti.br/​squid/​squidadmin.tar.gz
 +root@debian:/​var/​www#​ tar xzvf squidadmin.tar.gz
 +</​code>​
 +
 +Com isso você já pode acessar o painel de controle pelo endereço:
 +
 +<​code>​
 +http://​seu_servidor/​squidadmin
 +</​code>​
 +
 +==== Configurando a segurança do squidadmin ====
 +
 +Um item importante que precisamos nos preocupar, é a segurança no acesso do //​squidadmin//​. ​
 +
 +Aqui, iremos alterar o sistema para que tenhamos o funcionamento correto do //​squidadmin//​ e também, garantir a segurança do aplicativo, pois não queremos que todos os usuários da rede acessem ele.
 +
 +Primeiramente,​ precisamos acertar as permissões da pasta de regras para permitir que o //​squidadmin//​ possa alterá-las.
 +
 +<​code>​
 +root@debian:​~#​ cd /etc/squid
 +root@debian:/​etc/​squid#​ chmod 755 regras
 +root@debian:/​etc/​squid#​ chown root.root regras
 +root@debian:/​etc/​squid#​ cd regras
 +root@debian:/​etc/​squid/​regras#​ chmod 664 *
 +root@debian:/​etc/​squid/​regras#​ chown root.www-data *
 +</​code>​
 +
 +Em seguida, vamos instalar e ajustar o sudo para que o //​squidadmin//​ possa manipular os arquivos corretamente e também recarregar o //Squid// quando houver alterações.
 +
 +<​code>​
 +root@debian:​~#​ aptitude install sudo
 +</​code>​
 +
 +Editando o sudo, adicione a linha a seguir para permitir que o //apache2// manipule alguns binários necessários para o funcionamento correto do //​squidadmin//​.
 +
 +<​code>​
 +root@debian:​~#​ visudo
 +
 +[...]
 +
 +www-data ALL=NOPASSWD:/​usr/​sbin/​squid -k reconfigure,​ NOPASSWD:/​usr/​bin/​sort
 +</​code>​
 +
 +Com essas alterações,​ o //​squidadmin//​ já deve estar funcionando corretamente.
 +
 +O bloqueio de acesso utilizando usuário e senha pode ser realizado de duas maneiras. ​
 +
 +Uma delas é por //​htaccess//​ que é usado com um arquivo **//​.htaccess//​** armazenado junto ao diretório do //Squid//.
 +
 +A segunda, é por autenticação via //Ldap//, que é a que iremos utilizar neste exemplo pois o nosso //Squid// está configurado para autenticar a navegação por //Ldap//.
 +
 +Primeiramente habilite o módulo no //​apache2//​.
 +
 +<​code>​
 +root@debian:​~#​ a2enmod authnz_ldap
 +</​code>​
 +
 +Em seguida, ajuste o //​apache2//​.
 +
 +<​code>​
 +root@debian:​~#​ cd /​etc/​apache2/​sites-available
 +root@debian:​~#​ vi default
 +
 +<​Directory /​var/​www/​squidadmin>​
 +       ​Options Indexes FollowSymLinks MultiViews
 +       ​AllowOverride None
 +       Order allow,deny
 +       allow from all
 +
 +       ​AuthType Basic
 +       ​AuthName "​Acesso Restrito"​
 +       ​AuthBasicProvider ldap
 +       ​AuthzLDAPAuthoritative off
 +       ​AuthLDAPURL ldap://​127.0.0.1/​dc=exemplo,​dc=com,​dc=br?​uid
 +       ​Require valid-user
 +       #​Require user1 user2 user3
 +</​Directory>​
 +</​code>​
 +
 +Caso seja necessário autenticação p/ acessar a base //Ldap// insira as linhas a seguir:
 +
 +<​code>​
 +AuthLDAPBindDN "​cn=pesquisador,​ou=usuarios,​dc=exemplo,​dc=com,​dc=br"​
 +AuthLDAPBindPassword "​senha"​
 +</​code>​
 +
 +E não esqueça de instalar o //​ldap-utils//​.
 +
 +<​code>​
 +root@debian:​~#​ aptitude install ldap-utils ​
 +</​code>​
 +
 +Processo concluído.
 +
 +Feche seu navegador, abra-o novamente e acesso o endereço:
 +
 +<​code>​
 +http://​seu_servidor/​squidadmin
 +</​code>​
 +
 +Se tudo funcionou corretamente,​ o navegador vai lhe pedir um usuário e senha. Forneça as informações baseadas no cadastro de usuários do //Ldap//.
 +
 +Para finalizar, configure seu navegador para utilizar o //proxy squid// recém configurado e boa navegação,​ monitorada é claro.
 +
 +----
 +<​html>​
 +<a href="​javascript:​window.history.go(-1)">​Voltar</​a>​
 +</​html>​
  
linux/artigos/squid-ldap-admin.txt · Última modificação: 13/01/2015 10:44 (edição externa)