Unificando arquivos de bloqueio e liberação no squid
Publicado por RBA OMNQF 07/05/2007
[ Hits: 5.456 ]
Homepage: http://rbaomnqf.multiply.com
Download squid_acl_control_e_atu_squid_acl.sh
Um amigo me apresentou um problema há algum tempo...
Ele controla sozinho alguns servidores linux com função de firewall/proxy em pontos distantes e não estava conseguindo manter os arquivos de bloqueio/liberação iguais, gerando com isso ruído entre a matriz e a filiais.
Visando ajudá-lo, criei 2 scripts: um para buscar e unificar as informações contidas nos vários arquivos de liberação/bloqueio e outro para coloca-los nos locais corretos e reinicar o servidor proxy.
#####################Inicio do script squid_acl_control.sh###################### #!/bin/sh # # squid_acl_control.sh # # # Em um ambiente com mais de um servidor proxy, como matriz e filiais, # baixa os arquivos de bloqueio e liberação dos hosts e unifica, gerando # novos arquivos que são reenviados e processados pelo script atu_squid_acl.sh, # mantendo os mesmos bloqueios e liberações em todo o ambiente. # # # Algumas dependências devem ser verificadas antes da execução deste script: # 1º - Criar usuário de trabalho ou designar um já existente. # 2º - Criar chaves ssh para este usuário e exportar para hosts remotos # # Para facilitar as coisas, aconselho que se crie o mesmo usuário na "matriz" # e nas "filiais". # # # Variáveis de auxílio # # Informe aqui o endereço externo ou IP dos hosts remotos # Ex.: D_UNI="filial1.com.br 200.xxx.xxx.xxx filial3.com.br" D_UNI="" # Informe aqui o endereço externo ou IP do host onde este script # está sendo executado # Ex.: F_UNI="matriz.com.br" F_UNI="" # Informe aqui o usuário a ser utilizado nas conexões remotas # Ex.: USER="suporte" USER="" # Informe aqui a localização e o nome do arquivo de chave ssh # Ex.: USER_KEY="/home/suporte/.ssh/id_dsa" USER_KEY="" # Variável contendo uma sintaxe para o scp, modifique se necessário SCP="/usr/bin/scp -p -C -i $USER_KEY" # Variável contendo uma sintaxe para o ssh, modifique se necessário SSH="ssh -l $USER -i $USER_KEY" # Informe aqui o diretório de trabalho temporário. Aconselho que mantenha o # mesmo utilizado no script squid_acl_control.sh # Ex.: DIR_TMP="/tmp/proxy" DIR_TMP="/home/rba/.Apoio/proxy" # Informe aqui o diretório onde estão localizados os arquivos de bloqueio e # liberação do squid. # Ex.: DIR_B_L="/etc/squid/acls" DIR_B_L="/etc/squid/acls" # Informe aqui o sufixo dos arquivos de bloqueio e liberação # Ex.: SUF_B_L="txt" SUF_B_L="" # Informe aqui o nome do arquivo de bloqueio sem sufixo # Ex: ARQ_B="bloqueados" ARQ_B="" # Informe aqui o nome do arquivo de liberação sem sufixo # Ex: ARQ_L="liberados" ARQ_L="" # # Prepara ambiente para a unificação # test -d "$DIR_TMP" && rm -rf "$DIR_TMP" mkdir "$DIR_TMP" test -d "$DIR_TMP" || mkdir "$DIR_TMP" # # Pega os arquivos do próprio host para unificação # cp $DIR_B_L/$ARQ_L.$SUF_B_L $DIR_TMP/$ARQ_L`date +'%Y%m%d%H%M%S'`.$SUF_B_L cp $DIR_B_L/$ARQ_B.$SUF_B_L $DIR_TMP/$ARQ_B`date +'%Y%m%d%H%M%S'`.$SUF_B_L sleep 5 # # Conecta nas lojas e pega os arquivos para unificação # for FONTE in $D_UNI do $SCP $USER@$FONTE:$DIR_B_L/$ARQ_L.$SUF_B_L $DIR_TMP/$ARQ_L`date +'%Y%m%d%H%M%S'`.$SUF_B_L $SCP $USER@$FONTE:$DIR_B_L/$ARQ_B.$SUF_B_L $DIR_TMP/$ARQ_B`date +'%Y%m%d%H%M%S'`.$SUF_B_L sleep 5 done # # Cria arquivos unificados # # # Move-se para diretório de trabalho # cd $DIR_TMP # # Gera liberados temporário, anexando todos os arquivos colhidos # for T_LIB in "`ls $ARQ_L*`" do cat $T_LIB >> $ARQ_L.$$ done # # Retira duplicidades, gerando novo liberados unificado # sort -u $ARQ_L.$$ > $ARQ_L.new # # Gera bloqueados temporário, anexando todos os arquivos colhidos # for T_BLO in "`ls $ARQ_B*`" do cat $T_BLO >> $ARQ_B.$$ done # # Retira duplicidades, gerando novo bloqueados unificado # sort -u $ARQ_B.$$ > $ARQ_B.new # # Conecta nas lojas e envia novos arquivos unificados # cd $DIR_TMP for DESTINO in $D_UNI do $SSH $DESTINO mkdir $DIR_TMP $SCP *.new $USER@$DESTINO:$DIR_TMP done #######################Fim do script squid_acl_control.sh####################### #######################Inicio do script atu_squid_acl.sh######################## #!/bin/sh # # atu_squid_acl.sh # # # Script complementar do script squid_acl_control.sh que deve ser executado # antes deste, no host considerado "matriz" dos arquivos a serem atualizados. # Ele verifica a existência de novos arquivos de bloqueio/liberação unificados, # corrige permissões, envia para o local apropriado e reinicia o squid. # # Este script deve ser executado como root e pode ser inserido na crontab, # devendo ser executado alguns minutos depois do squid_acl_control.sh # # Algumas dependências devem ser verificadas antes da execução deste script: # 1º - Criar usuário de trabalho ou designar um já existente. # 2º - Criar chaves ssh para este usuário e exportar para hosts remotos # # Para facilitar as coisas, aconselho que se crie o mesmo usuário na "matriz" # e nas "filiais". # # Variáveis de auxílio # # Informe aqui o diretório de trabalho temporário. Aconselho que mantenha o # mesmo utilizado no script squid_acl_control.sh # Ex.: DIR_TMP="/tmp/proxy" DIR_TMP="" # Informe aqui o diretório onde estão localizados os arquivos de bloqueio e # liberação do squid. # Ex.: DIR_B_L="/etc/squid/acls" DIR_B_L="" # Informe aqui o sufixo dos arquivos de bloqueio e liberação # Ex.: SUF_B_L="txt" SUF_B_L="" # Informe aqui o nome do arquivo de bloqueio sem sufixo # Ex: ARQ_B="bloqueados" ARQ_B="" # Informe aqui o nome do arquivo de liberação sem sufixo # Ex: ARQ_L="liberados" ARQ_L="" # # Inicio # # # Verifica a existência do diretório temporário # if [ -d "$DIR_TMP" ] then cd "$DIR_TMP" # # Verifica a existêcia do 2 arquivos novos # if [ -f $ARQ_L.new -a -f $ARQ_B.new ] then # # Corrige permissões # chown root.root *.new chmod 644 *.new # # Faz backup dos arquivos atuais # cp -rpfa $DIR_B_L/$ARQ_L.$SUF_B_L $DIR_B_L/$ARQ_L.old cp -rpfa $DIR_B_L/$ARQ_B.$SUF_B_L $DIR_B_L/$ARQ_B.old # # Copia arquivos novos para local apropriado # cp -rpfa $ARQ_L.new $DIR_B_L/$ARQ_L.$SUF_B_L cp -rpfa $ARQ_B.new $DIR_B_L/$ARQ_B.$SUF_B_L # # Reinicializa o squid # service squid restart >/dev/null 2>&1 fi cd # # Promove a limpeza da área de trabalho # rm -rf "$DIR_TMP" fi #########################Fim do script atu_squid_acl.sh#########################
Controlando Fan Nagios no dialog
Script que gera um relatório diário do sistema!!!
Tornando seu Ubuntu uma distro para testes de intrusão
Automatizar a instalação do IRPF no Linux
Nenhum comentário foi encontrado.
Passkeys: A Evolução da Autenticação Digital
Instalação de distro Linux em computadores, netbooks, etc, em rede com o Clonezilla
Título: Descobrindo o IP externo da VPN no Linux
Armazenando a senha de sua carteira Bitcoin de forma segura no Linux
Enviar mensagem ao usuário trabalhando com as opções do php.ini
Instalando Brave Browser no Linux Mint 22
vídeo pra quem quer saber como funciona Proteção de Memória:
Encontre seus arquivos facilmente com o Drill
Mouse Logitech MX Ergo Advanced Wireless Trackball no Linux
Compartilhamento de Rede com samba em modo Público/Anônimo de forma simples, rápido e fácil
Programa duplicado no "Abrir com" e na barra de pesquisa do ... (1)
VMs e Interfaces de Rede desapareceram (13)
Como abrir o pycharm no linux [RESOLVIDO] (4)