W niektórych dystrybucjach systemu Linux port 3306 jest otwarty po zainstalowaniu MySQL. W tym artykule opisano dwie metody ograniczania lub blokowania dostępu do portu 3306 na serwerze niezarządzanym.
Informacje zawarte w tym artykule dotyczą tylko produktów niezarządzanych. Aby postępować zgodnie z procedurami opisanymi poniżej, musisz mieć uprawnienia administratora do serwera.Metoda nr 1:Wyłącz sieć MySQL
Jeśli nie potrzebujesz dostępu do MySQL z zewnętrznego komputera, możesz wyłączyć sieć MySQL.
Postępuj zgodnie z poniższą procedurą odpowiednią dla Twojej dystrybucji Linuksa.
Nawet przy wyłączonej sieci MySQL nadal możesz bezpiecznie uzyskać dostęp do MySQL ze zdalnego komputera, jeśli zajdzie taka potrzeba. Aby to zrobić, możesz skonfigurować tunel SSH. Aby uzyskać informacje, jak to zrobić, zapoznaj się z tym artykułem.CentOS i Fedora
Aby wyłączyć sieć MySQL w CentOS i Fedorze, wykonaj następujące kroki:
- Zaloguj się na swój serwer za pomocą SSH.
- W wierszu poleceń użyj preferowanego edytora tekstu, aby otworzyć plik /etc/my.cnf plik.
- Znajdź następujący wiersz w my.cnf plik:
#skip-networking
Jeśli tej linii nie ma w my.cnf plik, dodaj go. -
Usuń # znak na początku linii, aby linia wyglądała następująco:
skip-networking
- Zapisz zmiany w /etc/my.cnf pliku, a następnie wyjdź z edytora tekstu.
-
Wpisz następujące polecenie, aby ponownie uruchomić usługę MySQL:
service mysqld restart
Port 3306 jest teraz zamknięty na serwerze.
Debian i Ubuntu
Domyślnie MySQL w Debianie i Ubuntu jest skonfigurowany do używania tylko localhost interfejs (adres IP 127.0.0.1) do pracy w sieci. Oznacza to, że port 3306 jest zamknięty dla połączeń zewnętrznych. Aby potwierdzić, że taka jest konfiguracja na Twoim serwerze, wykonaj następujące kroki:
- Zaloguj się na swój serwer za pomocą SSH.
- W wierszu poleceń użyj preferowanego edytora tekstu, aby otworzyć plik /etc/mysql/my.cnf plik.
- Zlokalizuj MySQL adres powiązania wiersz w my.cnf plik. Powinno wyglądać tak:
bind-address = 127.0.0.1
Jeśli MySQL adres powiązania linia jest ustawiona na 0.0.0.0 (lub w ogóle nie ma adresu), wtedy połączenia są otwarte na wszystkich interfejsach. - Jeśli dokonałeś jakichkolwiek zmian w /etc/my.cnf pliku, zapisz je, a następnie wyjdź z edytora tekstu.
-
Aby ponownie uruchomić usługę MySQL, wpisz następujące polecenie:
service mysql restart
Port 3306 jest teraz zamknięty na serwerze.
Metoda #2:Skonfiguruj reguły zapory
Możesz użyć iptables do tworzenia reguł zapory, które ograniczają dostęp do portu 3306. Zaletą tej metody jest to, że możesz selektywnie przyznać lub odmówić dostępu do portu 3306 na podstawie adresów IP lub innych kryteriów.
Na przykład, aby całkowicie zablokować zewnętrzny dostęp do portu 3306, wpisz następujące polecenie:
iptables -A INPUT -p tcp --dport 3306 -j DROP
Podobnie, aby przyznać dostęp do określonego adresu IP i zablokować wszystkie inne, wpisz następujące polecenia. Zastąp xxx.xxx.xxx.xxx z adresem IP, dla którego chcesz przyznać dostęp:
iptables -A INPUT -p tcp --dport 3306 -s xxx.xxx.xxx.xxx -j ACCEPT iptables -A INPUT -p tcp --dport 3306 -j DROP
Możesz przyznać MySQL dostęp do dodatkowych adresów IP, wstawiając reguły w INPUT łańcuch przed DROP reguła. Na przykład:
iptables -I INPUT 1 -p tcp --dport 3306 -s xxx.xxx.xxx.xxx -j ACCEPT