Mysql
 sql >> база данни >  >> RDS >> Mysql

Как да ограничим достъпа до MySQL порт

В някои дистрибуции на Linux порт 3306 е отворен, след като инсталирате MySQL. Тази статия описва два метода за ограничаване или блокиране на достъп до порт 3306 на неуправляван сървър.

Информацията в тази статия се отнася само за неуправлявани продукти. Трябва да имате root достъп до сървъра, за да следвате процедурите, описани по-долу.

Метод №1:Деактивиране на MySQL мрежа

Ако не е необходимо да осъществявате достъп до MySQL от външен компютър, можете да деактивирате MySQL мрежата.

Следвайте съответната процедура по-долу за вашата Linux дистрибуция.

Дори когато MySQL мрежата е деактивирана, все още можете да получите достъп до MySQL сигурен от отдалечен компютър, ако е необходимо. За да направите това, можете да конфигурирате SSH тунел. За информация как да направите това, моля, вижте тази статия.
CentOS и Fedora

За да деактивирате MySQL мрежата на CentOS и Fedora, следвайте тези стъпки:

  1. Влезте в сървъра си чрез SSH.
  2. В командния ред използвайте предпочитания от вас текстов редактор, за да отворите /etc/my.cnf файл.
  3. Намерете следния ред в my.cnf файл:
    #skip-networking
    Ако този ред не е в my.cnf файл, добавете го.
  4. Изтрийте # знак в началото на реда, така че редът да изглежда по следния начин:

    skip-networking
  5. Запазете промените си в /etc/my.cnf файл и след това излезте от текстовия редактор.
  6. Въведете следната команда, за да рестартирате услугата MySQL:

    service mysqld restart

    Порт 3306 вече е затворен на сървъра.

Debian и Ubuntu

По подразбиране MySQL на Debian и Ubuntu е конфигуриран да използва само localhost интерфейс (IP адрес 127.0.0.1) за работа в мрежа. Това означава, че порт 3306 е затворен за външни връзки. За да потвърдите, че това е конфигурацията на вашия сървър, изпълнете следните стъпки:

  1. Влезте в сървъра си чрез SSH.
  2. В командния ред използвайте предпочитания от вас текстов редактор, за да отворите /etc/mysql/my.cnf файл.
  3. Намерете MySQL bind-address ред в my.cnf файл. Трябва да изглежда така:
    bind-address = 127.0.0.1
    Ако MySQL bind-address линията е настроена на 0.0.0.0 (или без адрес), тогава връзките са отворени на всички интерфейси.
  4. Ако сте направили някакви промени в /etc/my.cnf файл, запазете ги и след това излезте от текстовия редактор.
  5. За да рестартирате услугата MySQL, въведете следната команда:

    service mysql restart

    Порт 3306 вече е затворен на сървъра.

Метод №2:Конфигуриране на правила за защитна стена

Можете да използвате iptables за създаване на правила за защитна стена, които ограничават достъпа до порт 3306. Предимството на този метод е, че можете избирателно да предоставите или откажете достъп до порт 3306 въз основа на IP адреси или други критерии.

Например, за да блокирате напълно външен достъп до порт 3306, въведете следната команда:

iptables -A INPUT -p tcp --dport 3306 -j DROP

По същия начин, за да предоставите достъп до конкретен IP адрес и да блокирате всички останали, въведете следните команди. Заменете xxx.xxx.xxx.xxx с IP адреса, за който искате да предоставите достъп:

iptables -A INPUT -p tcp --dport 3306 -s xxx.xxx.xxx.xxx -j ACCEPT
iptables -A INPUT -p tcp --dport 3306 -j DROP

Можете да предоставите MySQL достъп до допълнителни IP адреси, като вмъкнете правила в INPUT верига преди DROP правило. Например:

iptables -I INPUT 1 -p tcp --dport 3306 -s xxx.xxx.xxx.xxx -j ACCEPT

  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Как да вмъкна BLOB и CLOB файлове в MySQL?

  2. Алтернатива на mysql_real_escape_string без свързване към DB

  3. Стойности, разделени със запетая, в MySQL IN клауза

  4. Mysql заявка за динамично преобразуване на редове в колони на базата на две колони

  5. Най-важните грешки, които трябва да избягвате при репликацията на MySQL