MySQL remote root
Publicado por Allan Barcelos (última atualização em 08/06/2015)
[ Hits: 3.026 ]
Homepage: https://barcelos.dev
Download 6222.mysql-remot-root.tar.gz
Este script ajuda no incremento da segurança na conexão com usuario root remoto em servidores MySQL.
Sua função:
Limita o acesso root ao servidor MySQL ao IP do administrador mesmo que esse IP seja dinâmico para tal utiliza como apoio o serviço No-IP ou similiar.
São dois arquivos:
- mysql-remote-root - deve ser copiado para o diretório /etc/init.d/
- mysql-remote-root-daemon - deve ser copiado para o diretório /usr/local/bin/
Arquivo 1: mysql-remote-root
#!/bin/bash
#
#
#
########################################################################################################################
#
# Escrito por: Allan R. A. Barcelos (Uberaba - Minas Gerais).
# E-mail: allan@barcelos.tk
# Debian GNU/Linux 6.0.1
#
# NOME
# mysql-remote-root-daemon.sh
#
# DESCRIÇÃO
# Atualiza IP remoto para acesso ao MySQL utilizando usuário ROOT.
#
# VERSÃO
# 0.1
#
# NOTA
# Informações sobre a execução poderão ser encontradas em /var/log/mysql/mysql-remote-ip-root.log.
#
# Criando inicializadores para MySQL remote ROOT
# update-rc.d mysql-remote-root defaults
#
# MODIFICADO_POR (DD/MM/YYYY) Comentário
#
# allan.barcelos 01/06/2014 Primeira versão.
#
########################################################################################################################
typeset -x PID=$(pgrep mysql-remote)
LOCK=/tmp/mysql-remote-root-daemon.lock
do_start() {
if [ -f /tmp/mysql-remote-root-daemon.lock ]
then
/usr/local/bin/mysql-remote-root-daemon &
sleep 0.3
else
/usr/local/bin/mysql-remote-root-daemon &
sleep 0.3
typeset -x PID=$(pgrep mysql-remote
echo "Iniciando o mysql-remote-root-daemon: Processo: $PID"
fi
}
do_stop() {
kill -15 $PID 2>/dev/null &
rm $LOCK 2>/dev/null &
echo "Parando o mysql-remote-root-daemon"
}
do_restart() {
if [ -f /tmp/mysql-remote-root-daemon.lock ]
then
kill -15 $PID 2>/dev/null &
echo "Reiniciando o mysql-remote-root-daemon: Processo: $PID"
sleep 1
/usr/local/bin/mysql-remote-root-daemon &
else
do_start
fi
}
case "$1" in
start)
do_start
;;
stop)
do_stop
;;
restart)
do_restart
;;
status)
if [ -f /tmp/mysql-remote-root-daemon.lock ]
then
echo "o mysql-remote-root-daemon está rodando com sucesso"
else
echo "o mysql-remote-root-daemon está parado"
fi
;;
*)
echo "*Modo de uso: /etc/init.d/mysql-remote-root (start|stop|restart|status)"
;;
esac
Arquivo 2: mysql-remote-root-daemon
#!/bin/bash
#
#
#
########################################################################################################################
#
# Escrito por: Allan R. A. Barcelos (Uberaba - Minas Gerais).
# E-mail: allan@barcelos.tk
# Debian GNU/Linux 6.0.1
#
# NOME
# mysql-remote-root-daemon.sh
#
# DESCRIÇÃO
# Atualiza IP remoto para acesso ao MySQL utilizando usuário ROOT.
#
# VERSÃO
# 0.1
#
# NOTA
# Informações sobre a execução poderão ser encontradas em /var/log/mysql/mysql-remote-ip-root.log.
#
#
# MODIFICADO_POR (DD/MM/YYYY) Comentário
#
# allan.barcelos 01/06/2014 Primeira versão.
#
########################################################################################################################
LOCK=/tmp/mysql-remote-root-daemon.lock
LOG=/var/log/mysql/mysql-remote-ip-root.log
YES=/tmp/on
MYSQL=/usr/bin/mysql
URL_NOIP="INFORME AQUI A URL NO-IP QUE ESTA SETADA NO COMPUTADOR QUE ESTA AUTORIZADO A ACESSAR COMO ROOT O SERVIDOR"
SENHA="SENHA DO USUARIO ROOT MYSQL"
DATETIME=$(/bin/date +"%d-%m-%Y %H:%M:%S")
#control_c () {
# echo -e "\nacabou o daemon"
# rm $YES 2>/dev/null
# rm $LOCK 2>/dev/null
# exit 0
#}
#trap control_c INT HUP TERM
echo "Iniciado o mysql-remote-root-daemon `date`" >> $LOG 2>/dev/null
if [ ! -f $LOCK ]
then
touch $LOCK
while true
do
sleep 30
if [ -f $YES ]
then
#echo "o arquivo $YES foi encontrado: `date`" >> $LOG
rm $YES 2>/dev/null
rm $LOCK 2>/dev/null
echo "Finalizado o mysql-remote-root-daemon `date`" >> $LOG 2>/dev/null
break
fi
/bin/ps -C mysqld > /dev/null #Verifica se o DAEMON MySQL esta ativo, caso contrario pode gerar erros.
if [ $? = 0 ]
then
##
IP=$(ping -w 1 -c 1 $URL_NOIP | grep PING | awk -F: '{print $1}' | awk -F "(" '{ print $2 }' | awk -F ")" '{ print $1}')
IP_COUNT=$($MYSQL -B -u root -p$SENHA --disable-column-names -e "SELECT COUNT(*) FROM mysql.user WHERE User = 'root' AND Host = '$IP'" mysql)
if [ $IP_COUNT == 0 ] ; then
OLD_IP=$($MYSQL -B -u root -p$SENHA --disable-column-names -e "SELECT Host FROM mysql.user WHERE User = 'root'\
AND Host REGEXP '^(((1[0-9]|[1-9]?)[0-9]|2([0-4][0-9]|5[0-5]))\.){3}((1[0-9]|[1-9]?)[0-9]|2([0-4][0-9]|5[0-5]))$' AND Host NOT LIKE '127%'" mysql)
if [ $OLD_IP != "" ] 2> /dev/null ; then
$MYSQL -u root -p$SENHA -e "DROP USER 'root'@'$OLD_IP'";
fi
$MYSQL -u root -p$SENHA -e "CREATE USER 'root'@'$IP' IDENTIFIED BY '$SENHA'";
$MYSQL -u root -p$SENHA -e "GRANT ALL PRIVILEGES ON *.* TO 'root'@'$IP' WITH GRANT OPTION";
echo "$DATETIME Novo IP Remoto ROOT MySQL $IP" >> $LOG 2>/dev/null
fi
##
fi
#echo "$DATETIME Sem alteracao" >> $LOG
done
else
echo "O mysql-remote-root-daemon já está em execução"
exit 0
fi
shradio.sh - ouça rádios online
Firewall - Satefull inspection com NAT
Criando usuário com poderes de root
Sincronizar arquivos com rsync
mkzeowmp - zeo mount point para PZP (python, zope e plone)
Cirurgia para acelerar o openSUSE em HD externo via USB
Void Server como Domain Control
Modo Simples de Baixar e Usar o bash-completion
Monitorando o Preço do Bitcoin ou sua Cripto Favorita em Tempo Real com um Widget Flutuante
[Resolvido] VirtualBox can't enable the AMD-V extension
Como verificar a saúde dos discos no Linux
Como instalar , particionar, formatar e montar um HD adicional no Linux?
Como automatizar sua instalação do Ubuntu para desenvolvimento de software.
PFSENSE INACESSIVEL APÓS UM PERIODO DE TEMPO (0)
Quais os códigos mais dificeis que vcs sabem fazer? (7)
Fiz uma pergunta no fórum mas não consigo localizar (18)
Não consigo instalar distro antiga no virtualbox nem direto no hd (9)
Upscaling com imagem cortada no monitor secundário ao usar iGPU Multi ... (1)









