J'ai besoin d'activer la mise en réseau pour MySQLd, mais à chaque fois que je le fais, le serveur est forcé dans l'oubli. Certains scripts de devinette de mot de passe commencent à marteler le serveur, à ouvrir une connexion sur le port 3306 et à essayer des mots de passe aléatoires pour toujours.
Comment puis-je empêcher cela de se produire?
Pour SSH, j'utilise denyhosts, ce qui fonctionne bien. Existe-t-il un moyen de faire fonctionner denyhosts avec MySQLd?
J'ai également envisagé de changer le port sur lequel MySQL fonctionne, mais ce n'est pas idéal et seulement une solution provisoire (et s'ils découvrent le nouveau port?)
Quelqu'un a-t-il d'autres idées?
Si cela change, j'exécute MySQL 5.x sur FreeBSD 6.x.
la source
1: Changer le port de 3306. Pas pour une meilleure sécurité, mais pour prendre la charge du serveur pour faire face aux fausses attaques de connexion
2: Créez un certificat SSL et activez-le sur votre serveur MySQL (c'est un must-have pour crypter votre connexion client-serveur de toute façon)
3: Créez un ou plusieurs certificats clients (tous les clients doivent avoir le certificat et le logiciel client doit être configuré pour l'utiliser). Si vos clients sont .Net, vous devez convertir le certificat client au format pkcs12, mais cela se fait facilement, consultez ce guide.
4: Définissez les comptes d'utilisateur MySQL pour exiger le certificat client x509, puis un attaquant a besoin des informations d'identification de connexion ET du certificat client (vous pouvez même mettre un mot de passe sur le certificat client, puis l'attaquant doit également l'exiger aussi).
J'ai utilisé ce guide pour créer les certificats et les fichiers de clés, mais il existe de nombreux guides.
Je préfère uniquement utiliser ma connexion SSH pour accéder à ma boîte Linux à des fins d'administration, pas pour l'accès client.
la source
En utilisant MySQL Proxy, vous pouvez écrire un petit script LUA qui prend une combinaison utilisateur / passe mais attend X secondes pour traiter la connexion si la demande de connexion provient d'une plage IP non approuvée.
Vous pouvez en outre ajouter un peu de logique supplémentaire au script LUA pour mettre sur liste noire les plages IP après trois tentatives infructueuses.
Dans l'ensemble, c'est techniquement faisable, mais je vais avec les autres recommandations pour tunneler via SSH ou un VPN vers une plage IP commune, sur liste blanche (via FW ou d'autres moyens).
la source
pourquoi ne pas autoriser l'accès au port mysqld à partir uniquement d'hôtes sécurisés?
la source
Bien que ce ne soit pas une "vraie" réponse - je ne sais pas pourquoi vous devez l'exposer directement au monde extérieur.
Vous ne pouvez pas activer ssh sur cette boîte et utiliser la tunnellisation pour accéder au moteur db?
Ou toute autre solution VPN pour y accéder (openvpn vient à l'esprit).
la source
Pas une vraie solution au problème, mais cela pourrait aider si vous exécutez simplement le serveur sur un port différent. La plupart de ces robots d'analyse sont probablement programmés pour vérifier 3306. Cela ne résoudra pas le problème, mais vous obtiendrez probablement beaucoup moins d'analyses en changeant simplement le port.
la source
Je pense que les connexions doivent être pare-feu: rapides et agréables. Il y a beaucoup de tutoriels pour iptables et autres :)
Vous pouvez également installer un cronjob sur les hôtes des clients qui s'exécutera smth sur un serveur pour empêcher le pare-feu de bloquer les hôtes connus.
la source
utiliser ssh pour les tunnels serait le meilleur mais vous pouvez essayer d'utiliser fail2ban au lieu de denyhosts car je pense que cela vise à surveiller plus d'applications différentes, donc cela ne devrait pas être un problème d'y ajouter le journal mysql.
la source
Suggestion à considérer pour votre section my.cnf-ini [mysqld]
pour éviter les centaines de tentatives en 90 secondes. Coupez-les au bout de 10 tentatives.
Pensez une fois par jour à ROSER LES HÔTES pour effacer les personnes légitimes qui essaient d'utiliser votre système et qui NE PEUVENT PAS se souvenir de leur mot de passe. Peut-être que dans quelques jours, ils s'en sortiront.
la source