LinuxForum.Fans
Тема

Закрыть доступ к MySQL с помощью iptables

Автор: u23397 29 сообщений 5210 просмотров
#248004

А не лучше с bind-address провернуть? Зачем всем доступ давать?

#248006

ы. Да и вообще сначала все политики в DROP
3306 (или другой) открывать только для доверенного интерфейса или адреса.

#248008
"newzenon" написал:
А не лучше с bind-address провернуть? Зачем всем доступ давать?

Можно подробней? bind-address - адрес на котором будет крутиться сервис, разве нет? Как с его помощью ограничить доступ?

"newzenon" написал:
3306 (или другой) открывать только для доверенного интерфейса или адреса.

Вроде так и делаем...

#248009

В /etc/mysql/my.cnf есть опция bind-address.
По умолчанию, сервер не слушает ничего кроме внутреннего интерфейса: bind-address = 127.0.0.1
При bind-address = 0.0.0.0 будет слушать все хосты.
То же самое справедливо для случая, когда опция закомментирована.
Для нескольких адресов кажется просто несколько строк надо добавить (тут надо уточнить):
bind-address = 127.0.0.1
bind-address = 192.168.0.xxx
bind-address = 192.168.0.xxx
ы. Ну и про GRANT [привилегии] ON база_данных.* TO '[пользователь]'@'[узел]' - не забываем.

#248010

Это понятно, только каким образом ограничить доступ исп-я bind-address? Нужен доступ к сервису извне.
Скажем мускул слушает 88.198.0.1, клиент находится на 88.198.0.2. Как?..

#248013

man говорит:

text
bind-address = IP
IP-адрес, с которым необходимо установить связь. 
#248025
"NW" написал:
newzenon пишет:

3306 (или другой) открывать только для доверенного интерфейса или адреса.

Вроде так и делаем...

Если бы так делал, то вопрос звучал бы совсем не так. А - "Как _открыть_ доступ к mysql с определенного IP и с одного из интерфейсов"
Предполагаю, что политики изначально никак не выставлены.
Должно быть

text
-P INPUT   DROP
-P OUTPUT  DROP
-P FORWARD DROP
-A INPUT   -m state --state ESTABLISHED,RELATED -j ACCEPT
-A OUTPUT  -m state --state ESTABLISHED,RELATED -j ACCEPT
-A FORWARD -m state --state ESTABLISHED,RELATED -j ACCEPT

Иначе вся затея дырява.

#248030
newzenon написал:
man говорит:
text
bind-address = IP
IP-адрес, с которым необходимо установить связь. 

выбросьте тот man, где подобное написано. Буквально bind -- связать, address -- адрес. Обычно подобным образом названные параметр/опция указывают привязанный адрес, то есть задают, на каком из нескольких интерфейсов будет прослушиваться заданный порт. В противном случае порт слушается на всех интерфейсах (0.0.0.0). mysqld в этом вопросе исключением не является.

Руководство по mysqld согласно полностью: http://dev.mysql.com/doc/refman/5.1/en/server-options.html#option_mysqld_bind-address

Войдите или зарегистрируйтесь, чтобы ответить.