Открывать MySQL только для локального хоста и определенного адреса

Открывать MySQL только для локального хоста и определенного адреса

Моя конфигурация: сервер Ubuntu 9 и msyql 5

my.cnf = bind-address = 0.0.0.0

мой скрипт iptables =

iptables -A INPUT -i eth0 -s 99.88.77.66 -p tcp --destination-port 3306 -j ACCEPT

Я могу подключиться к mysql из любого места, не только с этого IP. Я сделал iptables-save, перезапустил /etc/init.d/netwokring... но я все еще могу подключиться с любого IP, есть подсказка?

решение1

Это правило разрешает соединения с 99.88.77.66, оно не запрещает соединения откуда-либо еще. Для этого у вас должно быть правило, которое по умолчанию будет DROP для всех входящих соединений

iptables -P INPUT DROP

и затем переходит к разрешению только тех, кого вы явно хотите. В качестве альтернативы вы можете закрыть порт 3306 специально для всех клиентов, которые не являются 99.88.77.66

iptables -A INPUT -i eth0 -s ! 99.88.77.66 -p tcp --destination-port 3306 -j DROP

решение2

Это правилопозволяеттрафик с определенного IP на порт 3306/tcp. Вам нужно более позднее правило (или политика по умолчанию), чтобы сбросить весь остальной трафик на этот порт, потому что политика iptables по умолчанию разрешает все.

решение3

возможно, ваша политика iptables по умолчанию разрешает весь входящий трафик. Это разрешит соединение с любого IP. Измените эту политику на drop:

iptables -P INPUT DROP

Связанный контент