Eu tenho uma configuração de servidores MySQL mestre/escravo. Minha preocupação é que se o banco de dados mestre for hackeado e os hackers excluírem tabelas ou descartarem completamente os bancos de dados, todas as alterações serão propagadas para o escravo, excluindo-o também.
Sem usar atrasos, qual é uma boa maneira de evitar que um hacker também destrua meu banco de dados escravo?
Responder1
Uma configuração MySQL Master/Slave funciona bem quando você deseja criar um banco de dados backend tolerante a falhas para seu aplicativo web ou site.
Se o banco de dados mestre falhar, você poderá alternar o aplicativo para usar o escravo. Portanto, esse tipo de abordagem só pode funcionar como uma solução de recuperação de desastres caso haja falha de hardware ou software no servidor que hospeda o mestre.
Porém, como você mencionou, se um hacker excluir dados do banco de dados mestre, as alterações serão rapidamente selecionadas pelo escravo.
Por segurança, aconselho você a criar backup automatizado do banco de dados no escravo. Você pode usar uma ferramenta comobackup automático do mysql.
Com o backup instalado, você pode restaurar seu banco de dados ao estado original a partir dos logs dos escravos.
Se você deseja criar sua própria ferramenta de backup personalizada, certifique-se de incluir o carimbo de data e hora do banco de dados de backup para poder identificar o backup mais recente.
Além disso, se você sentir que não tem tempo para construir um cluster de banco de dados seguro e tolerante a falhas para seu aplicativo, aconselho você a optar por soluções MySQL auto-hospedadas, como ApsaraDB. Com esse tipo de solução, seu banco de dados fica protegido contra DDoS, injeção de SQL e ataques de força bruta.
Eu espero que isso ajude.
Responder2
Remova permissões excessivas de seus aplicativos. Isso provavelmente não protegerá contra uma 'tabela DELETE FROM', a menos que você possa remover essa permissão com segurança;
Portanto, faça backups como um instantâneo pontual (mysqldump --single-transaction / lvm / xtrabackup) e salve a posição do log binário. Salve os arquivos de log binário (mapeamento para a gravação, observando que os logs mestre/relay são diferentes) e certifique-se de que o log binário não seja eliminado.
Teste o procedimento de recuperação aplicando um log binário até um ponto especificado para garantir que você tenha as informações e o procedimento corretos para quando precisar usá-lo.