MySQL remote root
Publicado por Allan Barcelos (última atualização em 08/06/2015)
[ Hits: 2.590 ]
Homepage: http://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 Gravador CD-R ou CD-Rw
Bloquear Facebook no Linux Educacional 3
Instalar o Navegador Tor em qualquer distribuição Linux
Como ativar o módulo de cancelamento de ruído no Pipewire
Como escolher o melhor escalonador de CPU para melhorar o desempenho da máquina
Curiosidade sobre DOOM Guy e Isabelle de Animal Crossing
Inicializando servidor Ubuntu na AWS e rodando apache em Container
Otimizando o seu sistema com swappiness
Instalando Brave Browser no Debian 12
Adicionando ícones de status do teclado no system tray do Xfce4
Instalar ubuntu ao lado do Windows 10, só que em outro SSD (1)
Não é possível logar com usuário, apenas com root | ArchLinux [RESOLVI... (8)
Zorin OS não reconhece placa de rede do pc [RESOLVIDO] (37)
Apertei Crtl+alt+f1 e agora somente inicia na linha de comando (7)