MySQL remote root
Publicado por Allan Barcelos (última atualização em 08/06/2015)
[ Hits: 2.892 ]
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
Tradução de endereços de uma rede interna
Script Administração SquidFacil Ubuntu 11.10
Ajuste de horário e sincronismo
Servidor de Backup com Ubuntu Server 24.04 LTS, RAID e Duplicati (Dell PowerEdge T420)
Visualizar câmeras IP ONVIF no Linux sem necessidade de instalar aplicativos
Atualizar Debian Online de uma Versão para outra
Dica para encontrar diversos jogos Indies criativos
Instalando Discord no Debian 13
Instalar driver Nvidia no Debian 13
Redimensionando, espelhando, convertendo e rotacionando imagens com script
paginação dos favoritos não funciona no vivaolinux[BU... (4)
Driver da nvidia e desempenho em jogos (2)
A escola é altamente ineficiente e ineficaz! (13)
Sincronização Horario Estação de trabalho máquinas domínio com samba N... (2)