MySQL remote root
Publicado por Allan Barcelos (última atualização em 08/06/2015)
[ Hits: 2.985 ]
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
Recriando /dev/null facilmente
shradio.sh - ouça rádios online
POSTFIX AUTOMÁTICO COM MYSQL E IPTABLES - CRIANDO USUÁRIOS A PARTIR DE ARQUIVO
ddflash - criar mídia bootável do Linux e FreeBSD
Monitorando o Preço do Bitcoin ou sua Cripto Favorita em Tempo Real com um Widget Flutuante
IA Turbina o Desktop Linux enquanto distros renovam forças
Como extrair chaves TOTP 2FA a partir de QRCODE (Google Authenticator)
Ativando e usando "zoom" no ambiente Cinnamon
Vídeo Nostálgico de Instalação do Conectiva Linux 9
Como realizar um ataque de força bruta para desobrir senhas?
Queda no serviços da Cloudflare, alguns sites estão fora do ar. (1)
Perfil criado no samba ad dc não loga no Windows 10 e 11 (11)









