Помогите корректно закрыть доступ к mysql для внешки

123
Himiko
На сайте с 28.08.2008
Offline
559
#11

Вы понимаете, что такое "слушать"? Слушать он может только на собственных ip-адресах. И если он "слушает", то отвечает на запросы, которые приходят на эти адреса. ("слушать" в данном понимании можно не кого-то, а чем-то. Вы же не можете слушать чужим ухом, а можете только своим :) Только здесь сервер может слушать на своих ip-адресах)

Если всё так, как вы пишете, то вы ошиблись про 127.0.0.1, т.к. снаружи получить доступ к сервисам, которые находятся на этом адресе, невозможно.

Чтобы работало внутри сервера используйте skip-networking. Это самый верный способ. Запросы никто обрабатывать не будет и он станет работать как раз на 127.0.0.1, как вы и писали.А так - вы используете фаервол, который через себя пропускает коннекты и блокирует.

Идеологически вернее вообще перестать слушать внешние ip.

Профессиональное администрирование серверов (https://systemintegra.ru). Круглосуточно. Отзывы (/ru/forum/834230) Лицензии (http://clck.ru/Qhf5) ISPManager,VDSManager,Billmanager e.t.c. по низким ценам.
iHead
На сайте с 25.04.2008
Offline
137
#12

skip-networking отключает возможность коннекта к серверу по tcp, в том числе и на 127.0.0.1. в этом случае коннекты происходят через unix-сокет или именованный канал (для винды).

Рекомендуемый хостинг партнер 1С-Битрикс (https://www.ihead.ru/bitrix/), PHP-хостинг (https://www.ihead.ru/php/), доверенный партнер RU-CENTER (https://www.ihead.ru/news/573.html), официальный представитель REG.RU в Кирове (https://www.ihead.ru/news/851.html)
Lupus
На сайте с 02.11.2002
Offline
241
#13
Himiko:
Чтобы работало внутри сервера используйте skip-networking. Это самый верный способ. Запросы никто обрабатывать не будет и он станет работать как раз на 127.0.0.1, как вы и писали.

Меня в детсадике учили, что skip-networking полностью отключает TCP-интерфейс, оставляя только сокет. А в данном случае нужна строчка

"bind-address = 127.0.0.1"

There are two types of people in this world: 1. Those who can extrapolate from incomplete data.
P
На сайте с 08.03.2007
Offline
250
#14

Приятно читать такие топики в пятницу вечером! Сразу себя таким умным ощущаю :)

M
На сайте с 16.09.2009
Offline
278
#15
uoOk:
На нем стоит mysql сервер. Он случает 127.0.0.1 но к нему возможно подключаться из вне.

Налицо противоречие.

Вам категорически следует определиться что сервер "слушает". И уже после этого сконфигурировать его так, чтобы слушал только нужное. Файервол совсем для другого.

uoOk:
смысл сея поста было закрыть 3306 порт на ружу, то есть что бы с наружи порт 3306 был вообще закрыт для любого коннекта

Вы русский язык подучите, пожалуйста.

"Наружу" и "снаружи" - противоположные по смыслу слова. Если вам нужно заблокировать порт 3306 для доступа извне - zexis вам написал половину ответа. Вторая половина:

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

Абонементное сопровождение серверов (Debian) Отправить личное сообщение (), написать письмо ().
N
На сайте с 06.05.2007
Offline
419
#16
Lupus:
Меня в детсадике учили, что skip-networking полностью отключает TCP-интерфейс, оставляя только сокет. А в данном случае нужна строчка
"bind-address = 127.0.0.1"

А вот не обязательно это нужно. В группе продленного дня рассказывали, что библиотека mysql как только видит имя сервера "localhost", то пытается подключиться через unix-сокет. То есть вполне нормально будет сделать skip-networking. И так даже лучше будет - обмен данными через unix-сокет быстрее, чем задействовать сложный стек tcp/ip пусть даже его часть для локального обмена.

myhand:
iptables -A INPUT -p udp --dport 3306 -j DROP

Непонятно, что именно имел ввиду Единственный Непогрешимый Одминистратор раздела, но точно получилась фигня. не использует mysql udp по крайней мере для обычных клиентских подключений на порт 3306.

Кнопка вызова админа ()
Lupus
На сайте с 02.11.2002
Offline
241
#17
netwind:
В группе продленного дня рассказывали, что библиотека mysql как только видит имя сервера "localhost", то пытается подключиться через unix-сокет.

Да, это не секрет. Но я отвечал на такое высказывание:

Himiko:
используйте skip-networking...
Himiko:
...и он станет работать как раз на 127.0.0.1
M
На сайте с 16.09.2009
Offline
278
#18
netwind:
А вот не обязательно это нужно. В группе продленного дня рассказывали, что библиотека mysql как только видит имя сервера "localhost", то пытается подключиться через unix-сокет. То есть вполне нормально будет сделать skip-networking.

Вы телепат и знаете что написано в качестве реквизитов доступа в каждом скрипте ТС?

netwind:
Непонятно, что именно имел ввиду Единственный Непогрешимый Одминистратор раздела, но точно получилась фигня. не использует mysql udp по крайней мере для обычных клиентских подключений на порт 3306.

Зато другие приложения - могут и использовать. Напоминаю, задача ставилась: закрыть доступ к порту (снаружи).

N
На сайте с 06.05.2007
Offline
419
#19
myhand:
Вы телепат и знаете что написано в качестве реквизитов доступа в каждом скрипте ТС?

Можете и так называть качественную техническую поддержку

Вполне нормально давать ответ не на то, что написано, а на то что клиенту на самом деле надо.

Мало кто прописывает в скрипты "127.0.0.1" (кто это мог порекомендовать вообще? смысла то нет) и уж совсем с маленькой вероятностью ТС повесил на порт udp 3306 какую-то другую программу, к которой он хотел закрыть доступ.

zexis
На сайте с 09.08.2005
Offline
358
#20

Правильнее было бы сделать:

в my.cnf написать skip-networking

что бы mysql не использовал tcp/ip, а вместо него unix сокет

в скриптах коннекты к mysql делать

$ids = mysql_connect('localhost','user','pass');

Правила закрывающие порт 3306 из iptables убрать, так как необходимости в них нет.

К unix сокету можно подключаться только локально.

123

Авторизуйтесь или зарегистрируйтесь, чтобы оставить комментарий