Administração Squid

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

[ Hits: 7.353 ]

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

Automação para midias removíveis

LeTRA - cálculo de valores do arquivo de venda do PDV

Script de backup para fita DAT

Remover kernels antigos com zenity

Script Firewall Iptables + compartilhar internet


  

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




Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts