MySQL remote root
Publicado por Allan Barcelos (última atualização em 08/06/2015)
[ Hits: 2.672 ]
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
Script de Backup para FITA DAT usando "tar"
Instala JRE no Firefox com Fedora
Manutenção básica em partições Linux
Compartilhando a tela do Computador no Celular via Deskreen
Como Configurar um Túnel SSH Reverso para Acessar Sua Máquina Local a Partir de uma Máquina Remota
Configuração para desligamento automatizado de Computadores em um Ambiente Comercial
Efeito "livro" em arquivos PDF
Como resolver o erro no CUPS: Unable to get list of printer drivers
Flatpak: remover runtimes não usados e pacotes
Mudar o gerenciador de login (GDM para SDDM e vice-versa) - parte 2
Ubuntu 24.04 e problemas de acesso à rede VPN [RESOLVIDO] (9)
big linux sem audio como resolver (1)
[Python] Automação de scan de vulnerabilidades
[Python] Script para analise de superficie de ataque
[Shell Script] Novo script para redimensionar, rotacionar, converter e espelhar arquivos de imagem
[Shell Script] Iniciador de DOOM (DSDA-DOOM, Doom Retro ou Woof!)
[Shell Script] Script para adicionar bordas às imagens de uma pasta