Administração Squid

Publicado por Eduardo Adriano Ramos (última atualização em 19/06/2011)

[ Hits: 7.079 ]

Homepage: http://www.openti.info

Download cadastro.sh




Script para administração de Squid e Usuários Administradores do MSN-PROXY (cadastro senha Apache)
configurações para funcionamento:

######MSN-PROXY########

arquivo senhas : /var/www/msn_password

########SQUID##########

arquivo de senha do squid: /etc/squid/senhas/password
sites bloqueados : /etc/squid/bloqueados
usuarios com acesso total:  /etc/squid/acesso_total

configuracao squid.conf


auth_param basic program /usr/lib/squid/ncsa_auth /etc/squid/senhas/password
auth_param basic children 5
auth_param basic realm Acesso Negado! Digite Suas Credenciais.
auth_param basic credentialsttl 2 hours
auth_param basic casesensitive on

redirect_program /usr/lib/squid/jesred
redirect_children 10

acl MsnSources url_regex -i "/etc/squid/sites.msn"
acl MsnDomains dstdomain -i "/etc/squid/sites.msn"
acl MsnUrls urlpath_regex -i "/etc/squid/sites.msn"
acl MsnProgram req_mime_type application/x-msn-messenger
acl MsnManual dstdomain byrdr.omega.contacts.msn.com local-bay.contacts.msn.com byfiles.storage.msn.com akhtm.nspmotion.com blufiles.storage.msn.com www.gowindowslive.com view.atdmt.com local-sn.contacts.msn.com ec.atdmt.com tkrdr.storage.msn.com livefiles19.vo.msecnd.net www.sqm.microsoft.com sqmserver.dll switch.atdmt.com rsi.hotmail.com nspmotion.com icover.com.br rad.msn.com rmd.atdmt.com t.msn.com

http_access allow MsnManual
http_access allow MsnDomains
http_access allow MsnProgram
http_access allow MsnSources

acl password proxy_auth REQUIRED

#--------------ACESSO TOTAL-------------------#
acl total proxy_auth  "/etc/squid/acesso_total"
http_access allow total

#----------------ACESSO RESTRITO-------------------#

acl bloqueados url_regex  -i "/etc/squid/bloqueados"
http_access deny bloqueados


  



Esconder código-fonte

bin/bash
#Script De Cadastro de Usuarios no Squid 
#Autor: Eduardo A. Ramos

while : ; do

acao=$( dialog --stdout \
 --menu "Cadastro Squid - Shogun Informatica Ltda." 0 0 0 \
   1 "Cadastro de Usuario Proxy" \
   2 "Cadastro de Sites Bloqueado" \
   3 "Desbloquear Site"\
   4 "Listar Usuarios Proxy"\
    5 "Lista Sites e Palavras Bloqueadoas"\
   6 "Excluir Usuario do Proxy"\
   7 "Dar Acesso Total a Usuario"\
   8 "Tirar Acesso Total a Usuario"\
   9 "Listar Usuarios com Acesso total"\
   a "Gerar Relatorio de Acesso a Internet"\
   b "Monitorar Proxy Tempo Real Por IP"\
   c "Alterar Senha Usuario"\
   d "Adiciona Admin. Msn-Proxy"\
   0 "Sair")
   case "$acao" in

   1)    
   
   if   login=$(dialog --stdout --inputbox "Digite o nome do Usuario:" 0 0)
      [ $? -ne 0 ] && continue
      [ "$login" ] || continue
      cat /etc/squid/senhas/password |grep "$login:" 1>/dev/null\      2>/dev/null
   then
      dialog \
      --title 'Cadastro' --sleep 2 --msgbox 'Usuario ja cadastrado!' 6 40
      
   else   senha=$(dialog --stdout --passwordbox "Digite a Senha:" 0 0)
      [ $? -ne 0 ] && continue
      [ "$senha" ] || continue   
      senha2=$(dialog --stdout --passwordbox "Confirme sua Senha:" 0 0 )
      [ $? -ne 0 ] && continue
      [ "$senha2" ] || continue
      htpasswd -b /etc/squid/senhas/password "$login" "$senha" 
      sed -i "82s/^/acl $login proxy_auth $login\n/" /etc/squid/squid.conf
      sed -i "83s/^/http_access allow $login\n/" /etc/squid/squid.conf
      squid -k reconfigure
      sleep 3
      dialog \
             --title 'Cadastro' --sleep 3 --msgbox 'Usuario Cadastrado Com Sucesso!' 6 40

      clear
   fi
      ;;
   
   2)
      site=$(dialog --stdout --inputbox "Digite o Site a Ser Bloqueado:" 0 0 )
      [ $? -ne 0 ] && continue
      [ "$site" ] || continue
      echo $site >> /etc/squid/bloqueados
      dialog \
      --title 'Site Bloqueado' --sleep 3 --msgbox 'Site Bloqueado Com Sucesso!' 6 40
      clear
      ;;

   3)

      desbloquear=$(dialog --stdout --inputbox "Digite o Site a ser Desbloqueado" 0 0 )

      [ $? -ne 0 ] && continue
      [ "$site" ] || continue
      sed -i s/"$site"/g /etc/squid/bloqueados
      dialog \
      --title 'Desbloqueio de Site' --sleep 3 --msgbox 'Site Desbloqueado com Sucesso!'
   ;;



   4) 
      sed -i '/^$/d' /etc/squid/senhas/password
      cut -d ':' -f1 /etc/squid/senhas/password | sort | nl > out &
      dialog \
      --title 'Usuarios Squid' \
      --textbox out \
      15 60

      ;;

   5)
      
      sed -i '/√Ä√ú$/d' /etc/squid/bloqueados
      cat /etc/squid/bloqueados | sort |nl > out & 
      dialog \
      --title 'Sites e Palavras Bloqueadoas' \
      --textbox out \
      15 60

      ;;


   6)
if      remove=$( dialog --stdout --inputbox 'Digite o Usuario a ser Excluido' 0 0 )

   [ $? -ne 0 ] && continue
   [ "$remove" ] || continue
   sed -i /"$remove"/d /etc/squid/squid.conf
   htpasswd -D /etc/squid/senhas/password $remove

then   dialog --title 'Remover Usuario' --sleep 3 --msgbox 'Usuario Excluido com Sucesso!'
fi
;;

   7)
if     total=$(dialog --stdout --inputbox 'Digite o Usuario a Ter Permicao Total:' 0 0 )   
     [ $? -ne 0 ] && continue
     [ "$total" ] || continue
     echo $total >> /etc/squid/acesso_total
then
     dialog --title 'Acesso Total' --sleep 1 --msgbox 'Alterado Permicoes de Usuario Com Sucesso!'
fi
;;


   8)
if   removetotal=$(dialog --stdout --inputbox 'Digite o Usuario a Retirar Permi‚àö√ü‚àö¬£o Total:' 0 0 )
   [ $? -ne 0 ] && continue
   [ "$removetotal" ]  || continue

   sed -i /"$removetotal"/d /etc/squid/acesso_total
   sed -i '/√Ä√ú$/d' /etc/squid/acesso_total
then   dialog --title 'Remor‚àö√ü‚àö¬£o Acesso Total' --sleep 2 --msgbox 'Retirado permi‚àö√ü‚àö¬µes de Usuario com Sucesso!'
fi
;;


   9)

      sed -i '/√Ä√ú$/d' /etc/squid/acesso_total
      cat /etc/squid/acesso_total | sort |nl > out & 
      dialog \
      --title 'Usuarios com Acesso Total' \
      --textbox out \
      15 60

      ;;
   
   a) 
      sarg
;;    

   b)
      tail -f /var/log/squid/access.log | awk '{print$3 " - " $4 " - " $7 }' > out &
 
      dialog \
      --title 'monitorando usuario'\
      --tailbox out \
      30 80
      clear
      exit
;;


   c)

if      troca2=$(dialog \
      --stdout               \
      --title 'Redefinir Senha'         \
      --inputbox 'Informe o Usuario:'   \
      0 0)
       cat /etc/squid/senhas/password | grep "$troca2:" 1>/dev/null 2>/dev/null;
      then
      senha5=$(dialog         \
      --stdout            \
      --title 'Redefinir Senha'         \
      --passwordbox 'Nova Senha'   \
      0 0)
      htpasswd -b /etc/squid/senhas/password "$troca2" "$senha5"
      dialog                  \
      --title 'CONFIRMA‚àö√°‚àö√âO'            \
      --msgbox 'Senha Alterada Com Sucesso!'   \
      0 0
      else
      dialog            \
      --title 'Erro!'         \
      --msgbox 'usuario nao existe'   \
      0 0
      fi
      ;;

d)


        if      login_msn=$(dialog --stdout --inputbox "Digite o nome do Usuario:" 0 0)
                [ $? -ne 0 ] && continue
                [ "$login_msn" ] || continue
                cat /var/www/msn_password |grep "$login_msn:" 1>/dev/null\        2>/dev/null
        then
                dialog \
                --title 'Cadastro' --sleep 2 --msgbox 'Usuario ja cadastrado!' 6 40

        else    senha_msn=$(dialog --stdout --passwordbox "Digite a Senha:" 0 0)
                [ $? -ne 0 ] && continue
                [ "$senha_msn" ] || continue
                senha2_msn=$(dialog --stdout --passwordbox "Confirme sua Senha:" 0 0 )
                [ $? -ne 0 ] && continue
                [ "$senha2_msn" ] || continue
                htpasswd -b /var/www/msn_password "$login_msn" "$senha_msn"
                dialog \
                --title 'Cadastro' --sleep 3 --msgbox 'Usuario Cadastrado Com Sucesso!' 6 40

                clear
        fi
                ;;



   0) 
    sair=$(dialog    \
   --stdout         \
   --yesno 'VOCE DESEJA SAIR?'   \
   0 0)         \
   &&
   clear
   exit
   ;;
esac
done
exit

Scripts recomendados

Shell Script / Perl para sincronizar base de usuários do AD com o Zimbra

Recriando /dev/null

Envio de e-mail via console

WallpaperID - papel de parede com IP e kernel do usuário

Bloquear o DHCP de dispositivos móveis


  

Comentários
[1] Comentário enviado por diegotesch em 13/06/2013 - 11:40h

Eduardo, muito bom o script cara, estou implementado-o para uso em meu trabalho, porém não precisarei de todas as opções.
ainda estão ocorrendo alguns erros com ele, se puder ajudar serei muito grato.

[2] Comentário enviado por Virgil_Dantas em 06/05/2015 - 09:49h


Olá, voce deu continuidade ao script que fez?? estou tentando utilizar a opção a do menu, onde gera um relatório, porem sem retorno. se puder dar uma ajuda eu agradeço.


Contribuir com comentário