Подключение к базе данных по конкретному IP

Главные вкладки

Аватар пользователя Happy Smile Happy Smile 7 февраля 2019 в 16:18

Я искала, искала и ничего не нашла, странно, что такую тему никто не поднял.

Так вот, мне нужно сделать так, чтобы подключение к моей базе данных могло выполняться только с конкретного IP?

Вход в админку по IP получилось сделать таким образом - вписать правило в файле .htaccess

<IfModule mod_rewrite.c>
RewriteCond %{REQUEST_URI} (admin) [NC]
RewriteCond %{REMOTE_ADDR} !мой IP
RewriteRule  .*  -  [F]
</IfModule>

Можно что то такое сделать, чтобы так само ограничить подключение БД по IP ?

Лучший ответ

Аватар пользователя ivnish ivnish 7 февраля 2019 в 17:32

К базе данных или к сайту? Через .htaccess вы доступ к БД не запретите, доступ к БД идет по порту 3306 и к сайту особо не имеет отношения

Комментарии

Аватар пользователя ivnish ivnish 7 февраля 2019 в 17:32

К базе данных или к сайту? Через .htaccess вы доступ к БД не запретите, доступ к БД идет по порту 3306 и к сайту особо не имеет отношения

Аватар пользователя yaro yaro 7 февраля 2019 в 18:57

имеется ввиду разрешение на коннект к базе с каких-то IP?
https://stackoverflow.com/questions/14779104/how-to-allow-remote-connect...
по этому кейзу тут расписано
по умолчанию, насколько я знаю, мускл не разрешает коннекты не с локалхоста

Аватар пользователя sas@drupal.org sas@drupal.org 8 февраля 2019 в 9:38

- Коннект к базе с внешних IP обычно закрыт на уровне настройки веб сервера, но можно открыть например для своих нужд Smile
- Ограничение доступа к сайту drupal по IP например https://www.drupal.org/project/restrict_ip

Аватар пользователя Happy Smile Happy Smile 8 февраля 2019 в 11:21

Коннект к базе с внешних IP обычно закрыт на уровне настройки веб сервера, но можно открыть например для своих нужд Smile

А каким именно он закрыт ? Спрашиваю как новичок, допустим каким образом узнали пароль и логин к базе данных, то возможно в БД зайти прямо с другого компьютера с другой IP?

Ограничение доступа к сайту drupal по IP например https://www.drupal.org/project/restrict_ip

Это тоже самое что это правило -

вписать правило в файле .htaccess

<IfModule mod_rewrite.c>
RewriteCond %{REQUEST_URI} (admin) [NC]
RewriteCond %{REMOTE_ADDR} !мой IP
RewriteRule  .*  -  [F]
</IfModule>

или что то получше?

Аватар пользователя sas@drupal.org sas@drupal.org 8 февраля 2019 в 11:44

> А каким именно он закрыт ?
Например в настройках веб сервер просто может быть не прописан host для mySql внешний, а на localhost смогут зайти только скрипты которые лежат на сервере, например если я попытаюсь получить коннект к базе с другого сервер, например через php файл - то получу отлуп
> Это тоже самое что это правило
Если у вас FPM + fastCGI без апача, то не сработает правило в .htaccess

Аватар пользователя gun_dose gun_dose 8 февраля 2019 в 11:30
1

<a href="mailto:sas@drupal.org">sas@drupal.org</a> wrote:

Коннект к базе с внешних IP обычно закрыт на уровне настройки веб сервера

Не совсем верное утверждение. Коннект к MySQL с других машин заблокирован на уровне самого MySQL, независимо от настроек веб-сервера.
SkySofiaK wrote:

А каким именно он закрыт ? Спрашиваю как новичок, допустим каким образом узнали пароль и логин к базе данных, то возможно в БД зайти прямо с другого компьютера с другой IP?

Если в settings.php у вас в настройках базы указано

<?php
'host' => 'localhost',
?>

то вам не за что переживать, даже если логин и пароль к базе объявят по центральному телевидению (нет не из-за того, что кулхацкеры не смотрят телевизор, а из-за того, что MySQL сконфигурирован нормально.

Если же у вас там вместо локалхоста указан айпишник или URL, то зная логин и пароль от самой базы можно подключиться к ней с любой машины.

Аватар пользователя sas@drupal.org sas@drupal.org 8 февраля 2019 в 11:39

> Не совсем верное утверждение. Коннект к MySQL с других машин заблокирован на уровне самого MySQL, независимо от настроек веб-сервера.

Можно закрыть коннект к mySql серверу из вне на уровне настроек веб сервера.

Аватар пользователя sas@drupal.org sas@drupal.org 8 февраля 2019 в 11:48

[quote=gun_dose]
Не совсем верное утверждение. Коннект к MySQL с других машин заблокирован на уровне самого MySQL, независимо от настроек веб-сервера.

Можно закрыть коннект к mySql серверу из вне на уровне настроек веб сервера и тогда "Коннект к MySQL с других машин заблокирован на уровне самого MySQL " - не нужен и не поможет.

Аватар пользователя ivnish ivnish 8 февраля 2019 в 12:10

Главное правило безопасности друпала - своевременное обновление. Всё остальное зависит от настроек веб-сервер

Аватар пользователя Happy Smile Happy Smile 8 февраля 2019 в 13:12

Ограничение доступа к сайту drupal по IP например https://www.drupal.org/project/restrict_ip

Это тоже самое что это правило -

вписать правило в файле .htaccess

<IfModule mod_rewrite.c>
RewriteCond %{REQUEST_URI} (admin) [NC]
RewriteCond %{REMOTE_ADDR} !мой IP
RewriteRule  .*  -  [F]
</IfModule>

или что то получше?

Аватар пользователя gun_dose gun_dose 8 февраля 2019 в 21:48

Просто для справки: MySQL - это система управления базами данных общего назначения. Она может использоваться как с веб-сервером, так и вовсе без него, то есть вообще вне контекста веба, например, как часть десктопного приложения. Именно поэтому там есть встроенные инструменты контроля доступа и по умолчанию доступ возможен только с локалхоста.

Аватар пользователя sas@drupal.org sas@drupal.org 9 февраля 2019 в 10:48

Спасибо тебе gun_dose ты очень много помогаешь на этом форуме, надеюсь и в дальнейшем тебя здесь видеть и слышать. Кстати то что ребята настроили на localhost это правильно, правда есть более универсальные СУБД, например https://ru.wikipedia.org/wiki/PostgreSQL она удобно например тем, что с ней работает 1С и можно обратиться с другого сервера на host где она установлена и использовать совместно с Drupal, так как он тоже поддерживает эту СУБД.

Аватар пользователя sas@drupal.org sas@drupal.org 9 февраля 2019 в 12:08

Это для справки как и gon_dose про использование СУБД без веб-сервера, но да ребята мы отклонились от темы топика - закрываем холивар.

Аватар пользователя Happy Smile Happy Smile 8 февраля 2019 в 23:27
2

Для меня вы всегда будете хорошими, ведь столько помогли, что бы я без Вас делала...

ОБЕЩАЮ ТАК ЧАСТО ВАМ НЕ НАДОЕДАТЬ )))

Ну и спасибо Админам за классный проект drupal.ru, который многим помог сделать хорошие свои проекты!

Аватар пользователя bsyomov bsyomov 9 февраля 2019 в 11:53

Прав был @gun_dose - доступ к MySQL контролируется настройками MySQL, и системой прав MySQL. К настройками веб сервера (apache/nginx/etc.) это всё отношения не имеет.
В настройках MySQL может быть разрешён удалённый доступ или нет. Если глобально разрешён удалённый доступ, то конкретному пользователю может быть разрешён или запрещён доступ с определенных ip/хостов/сетей.

Аватар пользователя sas@drupal.org sas@drupal.org 9 февраля 2019 в 12:52

Да это частая ситуация для хостингов. Но я рекомендую использовать для контроля доступа по IP restrict_ip так как если вписыватся в .htaccess то не на всех конфигуациях веб серверов будет работать.

Аватар пользователя Happy Smile Happy Smile 9 февраля 2019 в 12:56

Нечайно нашла статью по теме безопасности, может кому то будет интересно https://www.drupalway.ru/blog/top-20-moduley-bezopasnosti-drupal.html

К Базам Данных там нету ничего, но по самим модулям красиво и понятно все написано!

Аватар пользователя Orion76 Orion76 9 февраля 2019 в 13:18

Пацаны, не сорьтесь..
Закрыть доступ к БД "из вне" можно кучей способов.
Но чаще всего MySql слушает только локалхост..(localhost, 127.0.01)
Так безопаснее, потому что высовывать MySql в паблик голой опой - гарантия взлома.
Разрешать доступ к MySql с других IP безопасно, только если этот IP из "внутренней сети" (интранет) или из шифрованного тунеля (SSH, VPN и т.п.)

Аватар пользователя yaro yaro 9 февраля 2019 в 18:38

@SkySofiaK, у меня сейчас возник вопрос: а для чего всё это?
В обычных случаях в вебе такая необходимость возникает только тогда, когда необходимо разделить mysql и php. Я очень сомневаюсь, что у вас случай такой, да и для таких операций нужен специалист.
По итогу - я на 100% уверен что вы решаете свою проблему неправильным путем.

Если нужна какая-то копия сайта с другим кодом - просто поставьте его на копию базы, а настройки переносите с помощью конфигов.
Если нужно ещё и контент переносить, есть прекрасный Workflow, который в этом помогает