Protegendo scripts em shell

Protegendo scripts em shell
scripts

Em todas as turmas que dou aula de DBA, sempre me fazem a mesma pergunta: Como faço para esconder as senhas que coloco em meus scripts? E, a maioria tem a ver com automatização de backup efetuada através do mysqldump. Existem algumas formas de fazer isso. A mais fácil é utilizar o SHC.

O SHC foi criado por Francisco Javier Rosales García da Faculdad de Informática da Universidad Politécnica de Madrid. O objetivo do SHC se traduz em:

– Proteger scripts shell
– Criptografar scripts shell
– Esconder senhas importantes que são passadas em linha de comando para automatização de tarefas
– Impedir que algum Zé Ruela mude um script funcional e o transforme em algo que vai lhe custar a cabeça

Basicamente, puxando a sardinha para o nosso lado “bancal” de dados de ser, imagine que voce precisa deixar no crontab um script de backup através do mysqldump. Como esconder a senha? Qualquer um pode editar seu script de backup, ver a senha (que neste caso é de menos), e, até mudar seu script de backup.

Para evitar isso, pode-se usar o SHC para “compilar” seu script e torná-lo um executável indecifrável. Na verdade o que o SHC faz é transformar seu script shell em um código fonte C, e, então compilar este código fonte C gerando um executável, um binário.

Antes de mais nada, obviamente, recomenda-se que guarde uma backup de seu script compilado, pois, ele é irreversível. Se perder seu script e precisar mudá-lo no futuro não poderá contar com o binário gerado pelo SHC.

Para rodar o SHC, deve-se ter instalado: gcc e libc6-dev.

scripts

Instalando o SHC

[root@teste_server local]# wget http://www.datsi.fi.upm.es/~frosal/sources/shc-3.8.6.tgz
[root@teste_server local]# tar -xzf shc-3.8.6.tgz
[root@teste_server local]# cd shc-3.8.6
[root@teste_server local]# sudo make install

Crie um banco de dados e um usuário para teste em seu servidor MySQL

mysql> create database teste;

mysql> grant all on teste.* to teste@localhost identified by ‘123’;

Agora, criamos um script de backup usando o editor de sua preferência

[root@teste_server local]# vi meu_script_de_backup

#!/bin/bash
mysqldump -uteste -p123 teste > bkp.sql

Compilando o script

[root@teste_server local]# shc -r -v -T -f  meu_script_de_backup

* Note que no seu diretório foram criados 2 arquivos: meu_script_de_backup.x e meu_script_de_backup.x.c. O primeiro é o binário executável que você poderá usar a vontade, despreocupado! O segundo é o código fonte C gerado pelo programa, que pode ser descartado.

Agende uma reunião aqui

Visite nosso Blog

Saiba mais sobre bancos de dados

Aprenda sobre monitoramento com ferramentas avançadas

scripts

Tem dúvidas sobre nossos serviços? Acesse nosso FAQ

Quer ver como ajudamos outras empresas? Confira o que nossos clientes dizem nesses depoimentos!

Conheça a História da HTI Tecnologia

Compartilhar: