MySQL remote root
Publicado por Allan Barcelos (última atualização em 08/06/2015)
[ Hits: 2.834 ]
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
Gerar senhas aleatórias de qualquer tamanho
shradio.sh - ouça rádios online
Troca periódica de senhas para usuários
Autenticação automática no Speedy Home
Criar pacotes .deb apartir de script
Aprenda a Gerenciar Permissões de Arquivos no Linux
Como transformar um áudio em vídeo com efeito de forma de onda (wave form)
Como aprovar Pull Requests em seu repositório Github via linha de comando
Quebra de linha na data e hora no Linux Mint
Organizando seus PDF com o Zotero
tentando instalar em um notebook antigo o Linux LegacyOS_2023... [RESO... (9)
Problema com Conexão Outlook via Firewall (OpenSUSE) com Internet Fibr... (5)