MySQL Hardening: Przewodnik zabezpieczania baz danych
Kompletny przewodnik ekspercki dotyczący zabezpieczania instancji produkcyjnych MySQL. Dowiedz się, jak zamienić standardową instalację w cyfrową fortecę.
W dobie nieustannych ataków typu SQL Injection i wycieków danych, domyślna konfiguracja MySQL to proszenie się o kłopoty. Każdy administrator, który szanuje swoje dane (i swój sen), musi przejść przez proces hardeningu. To nie jest opcja — to obowiązek.
01. mysql_secure_installation
To pierwszy krok po każdej instalacji. Skrypt ten automatyzuje kilka kluczowych zadań, które w przeciwnym razie musiałbyś wykonać ręcznie. Usuwa anonimowych użytkowników, bazy testowe i blokuje zdalne logowanie dla konta root.
sudo mysql_secure_installation
02. Bindowanie do Localhost
Domyślnie MySQL może nasłuchiwać na wszystkich interfejsach sieciowych. Jeśli Twoja aplikacja i baza danych znajdują się na tym samym serwerze, MySQL powinien nasłuchiwać tylko na 127.0.0.1.
bind-address = 127.0.0.1
03. Wyłączenie zdalnego Roota
Konto root nigdy nie powinno mieć możliwości logowania się z zewnętrznego adresu IP. Ataki brute-force są wycelowane głównie w to konto. Zawsze twórz dedykowanych użytkowników z ograniczonymi uprawnieniami do konkretnych baz danych.
04. Zasada Minimalnych Uprawnień
Twoja aplikacja WordPress czy sklep e-commerce nie potrzebuje uprawnień SUPER ani GRANT OPTION. Nadawaj tylko to, co niezbędne: SELECT, INSERT, UPDATE, DELETE.
GRANT SELECT, INSERT, UPDATE ON dbname.* TO 'app_user'@'localhost';
Pro Tip od Eksperta
Zawsze używaj TLS/SSL dla połączeń zdalnych, jeśli bindowanie do localhost nie jest możliwe. Szyfrowanie ruchu bazy danych to absolutny standard w 2024 roku.