Isso é muito melhor do que muitas pessoas!
Algumas coisas para focar, neste momento:
- Segurança do aplicativo. Injeção de SQL, cross-site scripting, diretório transversal, etc. Depende do que você está executando, e se não for o seu código, não é algo que você pode ser muito proativo, mas provavelmente é sua maior área de superfície.
- Esse ouvinte do MySQL: ele realmente precisa estar aberto para a internet? Desde que você tenha seus usuários restritos a endereços específicos, você pode permitir apenas aqueles? O que você tem é bom se você não tem usuários autorizados a efetuar login a partir de
%
, mas bloquear o ouvinte seria melhor; alguns ataques só precisam enviar um pacote para um soquete de escuta sem autenticar. Você pode fazer o gerenciamento que precisa fazer através do seu acesso SSH? Trazendo-me para: - SSH. Use autenticação de chave pública, se possível. Caso contrário, use o modo
limit
emufw
em vez de umallow
direto para ajudar nas tentativas de força bruta. Alterar o endereço do ouvinte para uma porta alta é uma prática padrão para alguns, mas o valor real da segurança dessa obscuridade é insignificante.