Я искала, искала и ничего не нашла, странно, что такую тему никто не поднял.
Так вот, мне нужно сделать так, чтобы подключение к моей базе данных могло выполняться только с конкретного IP?
Вход в админку по IP получилось сделать таким образом - вписать правило в файле .htaccess
RewriteCond %{REQUEST_URI} (admin) [NC]
RewriteCond %{REMOTE_ADDR} !мой IP
RewriteRule .* - [F]
</IfModule>
Можно что то такое сделать, чтобы так само ограничить подключение БД по IP ?
Комментарии
К базе данных или к сайту? Через .htaccess вы доступ к БД не запретите, доступ к БД идет по порту 3306 и к сайту особо не имеет отношения
имеется ввиду разрешение на коннект к базе с каких-то IP?
https://stackoverflow.com/questions/14779104/how-to-allow-remote-connect...
по этому кейзу тут расписано
по умолчанию, насколько я знаю, мускл не разрешает коннекты не с локалхоста
СПасибочки!!!!
- Коннект к базе с внешних IP обычно закрыт на уровне настройки веб сервера, но можно открыть например для своих нужд![Smile](https://drupal.ru/sites/all/modules/contrib/smiley/packs/kolobok/smile.gif)
- Ограничение доступа к сайту drupal по IP например https://www.drupal.org/project/restrict_ip
А каким именно он закрыт ? Спрашиваю как новичок, допустим каким образом узнали пароль и логин к базе данных, то возможно в БД зайти прямо с другого компьютера с другой IP?
Это тоже самое что это правило -
вписать правило в файле .htaccess
RewriteCond %{REQUEST_URI} (admin) [NC]
RewriteCond %{REMOTE_ADDR} !мой IP
RewriteRule .* - [F]
</IfModule>
или что то получше?
> А каким именно он закрыт ?
Например в настройках веб сервер просто может быть не прописан host для mySql внешний, а на localhost смогут зайти только скрипты которые лежат на сервере, например если я попытаюсь получить коннект к базе с другого сервер, например через php файл - то получу отлуп
> Это тоже самое что это правило
Если у вас FPM + fastCGI без апача, то не сработает правило в .htaccess
Не совсем верное утверждение. Коннект к MySQL с других машин заблокирован на уровне самого MySQL, независимо от настроек веб-сервера.
Если в settings.php у вас в настройках базы указано
<?php
'host' => 'localhost',
?>
то вам не за что переживать, даже если логин и пароль к базе объявят по центральному телевидению (нет не из-за того, что кулхацкеры не смотрят телевизор, а из-за того, что MySQL сконфигурирован нормально.
Если же у вас там вместо локалхоста указан айпишник или URL, то зная логин и пароль от самой базы можно подключиться к ней с любой машины.
Ого, А вы умный! надо мне тоже умнеть!
> Не совсем верное утверждение. Коннект к MySQL с других машин заблокирован на уровне самого MySQL, независимо от настроек веб-сервера.
Можно закрыть коннект к mySql серверу из вне на уровне настроек веб сервера.
[quote=gun_dose]
Не совсем верное утверждение. Коннект к MySQL с других машин заблокирован на уровне самого MySQL, независимо от настроек веб-сервера.
Можно закрыть коннект к mySql серверу из вне на уровне настроек веб сервера и тогда "Коннект к MySQL с других машин заблокирован на уровне самого MySQL " - не нужен и не поможет.
Кстати может знаете модули или какие то хорошие статьи по безопасности drupal 7?
Главное правило безопасности друпала - своевременное обновление. Всё остальное зависит от настроек веб-сервер
Обновляю всегда!
Кстати хорошая мысль надо будет в план поставить написать такую.
Это тоже самое что это правило -
вписать правило в файле .htaccess
RewriteCond %{REQUEST_URI} (admin) [NC]
RewriteCond %{REMOTE_ADDR} !мой IP
RewriteRule .* - [F]
</IfModule>
или что то получше?
Полный бред.
Категоричность свойственна молодости.
Возраст не всегда == мудрость
Это да, особенно у поколения пепси.
Просто для справки: MySQL - это система управления базами данных общего назначения. Она может использоваться как с веб-сервером, так и вовсе без него, то есть вообще вне контекста веба, например, как часть десктопного приложения. Именно поэтому там есть встроенные инструменты контроля доступа и по умолчанию доступ возможен только с локалхоста.
Спасибо тебе gun_dose ты очень много помогаешь на этом форуме, надеюсь и в дальнейшем тебя здесь видеть и слышать. Кстати то что ребята настроили на localhost это правильно, правда есть более универсальные СУБД, например https://ru.wikipedia.org/wiki/PostgreSQL она удобно например тем, что с ней работает 1С и можно обратиться с другого сервера на host где она установлена и использовать совместно с Drupal, так как он тоже поддерживает эту СУБД.
Дак и к mysql можно обращаться извне. Необязательно для этого PostgreSQL использовать
Да ты прав можно, только 1С с ним не работает.
А при чем тут 1С вообще?
К совместному использованию.
А топикстартер разве спрашивала про совместное использование друпала и 1С ?
Это для справки как и gon_dose про использование СУБД без веб-сервера, но да ребята мы отклонились от темы топика - закрываем холивар.
Теперь могу спать спокойно)))
Для меня вы всегда будете хорошими, ведь столько помогли, что бы я без Вас делала...
ОБЕЩАЮ ТАК ЧАСТО ВАМ НЕ НАДОЕДАТЬ )))
Ну и спасибо Админам за классный проект drupal.ru, который многим помог сделать хорошие свои проекты!
Прав был @gun_dose - доступ к MySQL контролируется настройками MySQL, и системой прав MySQL. К настройками веб сервера (apache/nginx/etc.) это всё отношения не имеет.
В настройках MySQL может быть разрешён удалённый доступ или нет. Если глобально разрешён удалённый доступ, то конкретному пользователю может быть разрешён или запрещён доступ с определенных ip/хостов/сетей.
Да на хостинге это никак не настраивается, я их спрашивала вчера, так что пока все без толку((((((((
Да это частая ситуация для хостингов. Но я рекомендую использовать для контроля доступа по IP restrict_ip так как если вписыватся в .htaccess то не на всех конфигуациях веб серверов будет работать.
Нечайно нашла статью по теме безопасности, может кому то будет интересно https://www.drupalway.ru/blog/top-20-moduley-bezopasnosti-drupal.html
К Базам Данных там нету ничего, но по самим модулям красиво и понятно все написано!
Модулями конечно универсальней.
Пацаны, не сорьтесь..
Закрыть доступ к БД "из вне" можно кучей способов.
Но чаще всего MySql слушает только локалхост..(localhost, 127.0.01)
Так безопаснее, потому что высовывать MySql в паблик голой опой - гарантия взлома.
Разрешать доступ к MySql с других IP безопасно, только если этот IP из "внутренней сети" (интранет) или из шифрованного тунеля (SSH, VPN и т.п.)
@SkySofiaK, у меня сейчас возник вопрос: а для чего всё это?
В обычных случаях в вебе такая необходимость возникает только тогда, когда необходимо разделить mysql и php. Я очень сомневаюсь, что у вас случай такой, да и для таких операций нужен специалист.
По итогу - я на 100% уверен что вы решаете свою проблему неправильным путем.
Если нужна какая-то копия сайта с другим кодом - просто поставьте его на копию базы, а настройки переносите с помощью конфигов.
Если нужно ещё и контент переносить, есть прекрасный Workflow, который в этом помогает