MySQL remote root
Publicado por Allan Barcelos (última atualização em 08/06/2015)
[ Hits: 2.736 ]
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
Backup de vários servidores, diferenciado a rotina pela aplicação
Player de música em Shell com Yad
Sysinfo - Informações sobre o seu computador
Passkeys: A Evolução da Autenticação Digital
Instalação de distro Linux em computadores, netbooks, etc, em rede com o Clonezilla
Título: Descobrindo o IP externo da VPN no Linux
Armazenando a senha de sua carteira Bitcoin de forma segura no Linux
Enviar mensagem ao usuário trabalhando com as opções do php.ini
Instalando Brave Browser no Linux Mint 22
vídeo pra quem quer saber como funciona Proteção de Memória:
Encontre seus arquivos facilmente com o Drill
Mouse Logitech MX Ergo Advanced Wireless Trackball no Linux
Compartilhamento de Rede com samba em modo Público/Anônimo de forma simples, rápido e fácil
PC não liga no filtro de linha (3)
Desde que seja DDR3, posso colocar qualquer memória? (3)
Instalar sem formatar, pergunta meio boba. [RESOLVIDO] (7)
Curso gratuito Defesa de redes 10ª Maratona CiberEducação Cisco Brasil... (0)