Предотвращение атак перебором MySQL?

Я прошел много боли с этим, и нижняя строка - то, что, хотя расширение массива поддержек контроллера, Dell отключил это в их менеджере по Массиву и они не будут поддерживать его. Если Вы заменяете драйвер Dell LSI один (я думаю, что контроллером является LSI, хотя я не поклялся бы, что это не Adaptec), и используйте программное обеспечение управления LSI затем, Вы смогли делать это. Однако я нашел бы это страшным бизнесом!

Мое решение состояло в том, чтобы просто создать новый логический диск в свободном пространстве. Это абсолютно безопасно и не нуждается ни в каких перезагрузках, хотя, очевидно, это - более неуклюжие отдельные диски наличия. Если Вы действительно, действительно хотите единственный раздел затем, необходимо будет скопировать, затем удаляют и воссоздают массив. Обратите внимание, что, если Ваш сервер имеет раздел утилиты Dell на нем, необходимо быть осторожными с разделом инструменты обработки изображений, поскольку необходимо воссоздать раздел утилиты Dell, или сервер не загрузится. Я говорю на основе (горького) опыта.

МЛАДШИЙ

9
задан 22 September 2009 в 22:51
9 ответов

Я не знаю ни о каких подобных denyhosts пакетах программного обеспечения для MySQL, но у меня действительно есть несколько решений:

  • Предельный вход в систему определенных IP-адресов. Не используйте %, чтобы позволить, чтобы все хосты соединились с сервером.
  • Еще более безопасный, настроенный iptables, чтобы только предоставить доступ к 3 306 от авторизованных IP-адресов.
  • Туннель Ваш трафик к полю с ssh затем соединяется через localhost
  • Измените Denyhost или сценарии BFD для анализа mysql журналов доступа и блока любые попытки грубой силы брандмауэра

Править:

Для ответа на комментарий попробуйте это:

iptables -A INPUT -p tcp -s 202.54.1.50 --sport 1024:65535 -d 202.54.1.20 --dport 3306 -m state --state NEW,ESTABLISHED -j ACCEPT
iptables -A OUTPUT -p tcp -s 202.54.1.20 --sport 3306 -d 202.54.1.50 --dport 1024

Где.20 Ваш MySQL, и.50 удаленный соединительный IP-адрес.

8
ответ дан 2 December 2019 в 22:32
  • 1
    Несколько примечаний: Как я могу ограничить доступ к порту 3306 только к данному набору IP-адресов? Просто ограничение пользователей MySQL не работает, поскольку удаленные машины могут затем все еще соединиться и "в лоб" для паролей. Туннели SSH кажутся несколько inconvienent для установки для конечного пользователя... У Вас есть пример IPTables выполнения этого? –  Keith Palmer Jr. 22 September 2009 в 23:16

Используя MySQL Proxy, Вы могли записать маленький сценарий LUA, который берет комбинацию пользователя/передачи, но ожидает X секунд для обработки входа в систему, если запрос на установление соединения прибывает из неутвержденного диапазона IP.

Вы могли, кроме того, добавить немного дополнительной логики к сценарию LUA для помещения в черный список диапазонов IP после трех неудачных попыток.

В целом, это технически выполнимо, но я иду с другими рекомендациями туннелировать через SSH или VPN к общему, добавленному в белый список (через FW или другие средства) диапазон IP.

1
ответ дан 2 December 2019 в 22:32

почему не разрешение доступа к mysqld порту от только защищает хосты?

0
ответ дан 2 December 2019 в 22:32
  • 1
    Я рассмотрел это, но это означает I' d должны наблюдать изменения IP-адреса для подобных 1,000 + клиенты. Это было бы гигантской болью в торце... Как я могу сделать это так или иначе? Это doesn' t помогают заблокировать их в MySQL, потому что они могут все еще соединиться с сервером MySQL, просто не на самом деле выбирают любые базы данных... –  Keith Palmer Jr. 22 September 2009 в 22:58
  • 2
    заключение в кавычки dave тягач выше: " Измените Denyhost или сценарии BFD для анализа mysql журналов доступа и блока любые попытки грубой силы firewall" кажется лучшей идеей, или используйте некоторые иероглифические пароли :) –  quaie 22 September 2009 в 23:14

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

Разве Вы не можете позволить ssh на том поле и использованию, туннелирующему получить доступ к механизму дб?

Или любое другое решение VPN получить доступ к нему (openvpn приходит на ум).

0
ответ дан 2 December 2019 в 22:32

Не действительное решение проблемы, но могло бы помочь, выполняете ли Вы просто сервер на другом порте. Большинство из тех, которые сканируют ботов, вероятно, программируется, чтобы просто проверить 3306. Это не решит проблему, но Вы, вероятно, получите намного меньше сканирований, просто изменив порт.

0
ответ дан 2 December 2019 в 22:32
  • 1
    - 1 для безопасности с помощью мрака –  thepocketwade 23 September 2009 в 18:06
  • 2
    @thepocketwade - Который является, почему я сказал it' s не действительное решение проблемы. Но это могло все еще быть полезно. –  Eric Petroelje 24 September 2009 в 19:34

Я полагаю, что соединения должны быть firewalled: быстрый и хороший. Существует много учебных руководств для iptables и безотносительно :)

Также можно установить cronjob на хостах клиентов, которые выполнят что-то на сервере, чтобы препятствовать тому, чтобы брандмауэр блокировал известные хосты.

0
ответ дан 2 December 2019 в 22:32

использование ssh для туннелей было бы лучшим, но Вы могли попытаться использовать fail2ban вместо denyhosts, потому что я думаю, что это нацелено к контролю более другого appications, таким образом, это не должна быть проблема, добавляющая журнал mysql к нему.

0
ответ дан 2 December 2019 в 22:32

1: Измените порт с 3306. Не для большей безопасности, а для того, чтобы снизить нагрузку на сервер для борьбы с атаками ложного входа

2: Создайте сертификат SSL и включите его на вашем сервере MySQL (в любом случае это необходимо для шифрования соединения клиент-сервер)

3: Создайте один или несколько клиентских сертификатов (все клиенты должны иметь сертификат, и клиентское программное обеспечение должно быть настроено для его использования ). Если ваш клиент - .Net , вам необходимо преобразовать сертификат клиента в формат pkcs12, но это легко сделать, см. это руководство ..

4: Установите учетную запись пользователя MySQL чтобы потребовать сертификат клиента x509, тогда злоумышленнику необходимы учетные данные для входа и сертификат клиента (вы даже можете указать пароль в сертификате клиента, тогда злоумышленник тоже должен это потребовать).

Я использовал this руководство по созданию сертификатов и файлов ключей, но существует множество руководств.

Я предпочитаю использовать свое SSH-соединение только для доступа к моему Linux-серверу в административных целях, а не для клиентского доступа.

1
ответ дан 2 December 2019 в 22:32

Предложение рассмотреть для вашего раздела my.cnf-ini [mysqld]

max_connect_errors=10  # to limit hacker/cracker attempts to guess a password.

, чтобы избежать сотен попыток за 90 секунд. Отрубите их с 10 попыток.

Раз в день подумайте о ПРОМЫВКЕ, чтобы очистить законных людей, пытающихся использовать вашу систему, которые просто НЕ МОГУТ запомнить свой пароль. Может быть, через несколько дней они справятся с этим.

0
ответ дан 2 December 2019 в 22:32

Теги

Похожие вопросы