Группа немецких студентов выявили (http://cispa.saarland/wp-content/uploads/2015/02/MongoDB_doc...) массовые проблемы с организацией доступа к СУБД MongoDB. В результате сканирования адресов всемирной сети было выявлено 39890 никак не защищённых публично доступных экземпляров MongoDB. В том числе открытой для любых запросов оказалась БД одной из крупных французских телекоммуникационных компаний, содержащая данные о примерно восьми миллионах абонентах.
Основной причиной проблем с безопасностью MongoDB являются ошибки в настройке СУБД, из-за которых обработчик запросов прикрепляется не к внутреннему адресу 127.0.0.1 (localhost), а ко всем сетевым интерфейсам, включая внешний, без надлежащего ограничения доступа (http://docs.mongodb.org/manual/security/). Администраторы необдуманно применяют настройки по умолчанию, не разобравшись в модели организации ограничения доступа. В частности, базовые настройки MongoDB подразумевают (http://docs.mongodb.org/manual/core/security-network/) присоединение ко всем сетевым интерфейсам без задания (http://docs.mongodb.org/manual/administration/security-check.../) параметров аутентификации.URL: http://cispa.saarland/index.html%3Fp=3068.html
Новость: http://www.opennet.me/opennews/art.shtml?num=41661
Ну это, всё-таки, скорее камень в огород админов, а не разработчиков.
там кривой пример файла конфигурации.указано
# bind_ip=127.0.0.1
поэтому создаётся впечатление, что по дефолту привязывается к 127.0.0.1. Но чтобы привязать к 127.0.0.1 нужно раскомментировать строку.
Это не админы, это гуртовщики мыши.
нда, а бревна то и не заметили
> там кривой пример файла конфигурации.
> указано
> # bind_ip=127.0.0.1
> поэтому создаётся впечатление, что по дефолту привязывается к 127.0.0.1. Но чтобы привязать
> к 127.0.0.1 нужно раскомментировать строку.firewall - не, не слышали!
"netstat -l -p" - не, не слышали!
Нужно привыкать писать:
ss -lp
уже давно привыкли
Вот только Кузнецов - учёный, а не инженер/админ. И на удобочитаемость вывода положил изначально. А желающих помочь сделать съедобный CLI - что-то не наблюдаю. Ну, наверное, админы нынче через web мышью рулят (забыл, как там это решето зовут). </sarcasm>
поклон до земли тебе, мил человек!
Тогда уже:
ss -lpn
> Тогда уже:
> ss -lpnА там есть ключик "сделать вывод читабельным"?
> Нужно привыкать писать:
> ss -lpА почему вывод этой команды напоминает не таблицу, а кашу с запчастями?
Это конечно верно. И то что мога из коробки стартует на всех интерфейсах и то, что админу было лень проверить, но какого художника в ней такая кривая система идентификации/авторизации?
Пользователя нужно создавать с паролем а не под админом сидеть.
Например постгрес вынуждает разбираться с безопастностью и я считаю это правильный подход.
Нет,камень в огород админов,так как то,что часть строки после # является комментарием и не обрабатывается является классикой и известно даже такому простому пользователю,как я.
При этом у меня вызывают затруднение случаи когда это символ не срабатывает или имеет другое значение.Хотя соглашусь,авторам БД лучше бы делать конфиг по умолчанию только для работы с локалхостом.
> Нет,камень в огород админов,так как то,что часть строки после # является комментарием
> и не обрабатывается является классикой и известно даже такому простому пользователю,как я.У нормальных людей, в комментариях указываются значения настроек по умолчанию.
> Ну это, всё-таки, скорее камень в огород админов, а не разработчиков.Вот типичный пример конфига https://github.com/gchef/mongodb-cookbook/blob/master/templa...
про IP там ни слова, только номер порта задаётся.
И всё же эта ошибка компании разработчиков, а точнее релиз инженера, выпустил в продакшин с детской ошибкой.А еще админы локолхоста дропают iptable и selinux для серверов с первых минут работы.
selinux - совершенно заслуженно.
С чего это заслужено? Ваше неумение пользоваться инструментом, не повод обвинять его в негодности.
есть дофига мест где это не приемлимо. К слову любимый Шигориным OpenVZ, там это выключено на уровне конфига ядра.
> есть дофига мест где это не приемлимо. К слову любимый Шигориным OpenVZ,
> там это выключено на уровне конфига ядра.Ну а нахрена вешать хост систему в инет ?
И да, селинукс не виртуализируется до сих пор и никак ( немспейса селинукс по что не наблюдается ), господин заслуженнный аналитег опеннета.
А контейнеры тоже не вешать? в них тоже selinux не работает :)
А что namespace для селинукса нету - так что ж - parallels мог бы и дописать, чай не 1 человек работает в этом проекте.Хотя что там о дописывании. им бы свои баги by design починить :-)
> А контейнеры тоже не вешать? в них тоже selinux не работает :)Лучше не стоит. По крайней мере, если безопасность более-менее важна. В в реализации UID namespaces уже давно и регулярно дыры находят. Сколько их там еще - тайна великая есть.
Это камень в огород всего сообщества монги. Одни олигофрены совершенно не думают об эскплуатационной части, а другие вообще не озадачиваются чтением документации. Дураки нашли друг друга.
А ты попробуй на работе просто сидеть и что-то читать. Начальство (особенно мелкое, которому выслужиться надо) сразу объявит тебя бездельником, которому зря деньги платят.
Меняйте контору уже, адназначна.
Такого практически нигде нет. В какой-нибудь гнилой конторе начальству пофиг чем занимается сотрудник, он обычно нанимается для галочки и получает гроши. Не в гнилой читают все сколько хотят, если конечно предполагается что сотрудник лютый джуниор и может много чего не знать.Но пусть даже и так. Занимайся, млять, самообразованием в свободное от работы время - в конце концов это твоя личная проблема.
Да фиг с ним, что монга слушает 0.0.0.0. Как можно было ее наружу выставить?!
миллиарды виртуалок на копеешных впс-хостингах
> миллиарды виртуалок на копеешных впс-хостингахВнешние IP-адреса нынче не по копеечке, вообще-то.
За 15 баксов в год можно найти впс с реальником и кучей ipv6 . Реальники нынче дороги для клиентов isp.
> 39890 никак не защищённых публично доступных экземпляров MongoDBИ после этого нам говорят, что не хватает IP-адресов. Как-то их плохо не хватает, если столько народу не парится и дает внешний адрес даже Mongo-серверу...
Как будто Mongo-сервер может один стоять на железке.
Если нагрузка не такая, чтобы нужна была отдельная железка, зачем вообще мог понадобиться монго?
Ну ладно, предположим "на вырост". Все равно будет на отдельной виртуалке как минимум, даже если на железке еще что-то есть. И зачем туда внешний IP?
>И после этого нам говорят, что не хватает IP-адресов. Как-то их плохо не хватает, если столько народу не парится и дает внешний адрес даже Mongo-серверу...Вы либо жирный троль, либо полный идиот. Верно?
Как одно мешает другому? Где-то не хватает, где-то хватает и люди пользуются. Почитайте что-ли про распределение адресного пространства. А перед тем как перепрыгивать к любимому: "давайте раскулачим большие корпорации, а IP раздадим нуждающимся" - посмотрим на то что это поломает и каких усилий потребует. А IPv6 - он уже готов, стандарт есть, много где реализован, ждут как правило только мелкие провайдеры последней мили и китай-роутеры, ОСи готовы, серьёзная инфрастуктура - через пень колоду, но двигается туда, сервисы конечные тоже врубают поддержку и не страдают особо.
Тот редкий момент, когда чувствуешь себя не таким дураком...
С внешнего интерфейса закрыть все кроме конкретно нужного - это же азы.
Разумеется, это разрабы накосячили.
> Администраторы необдуманно применяют настройки по умолчаниюБоюсь, не совсем верно называть таких людей администраторами. Скорее localhost-админ. :)
вы думаете на локалхосте у них все иначе, и таких позорных дыр нет? сомневаюсь :)
> вы думаете на локалхосте у них все иначе, и таких позорных дыр нет? сомневаюсь :)Есть, просто их локалхост - неуловимый Джо. Если поломают - то чем-то более массовым, типа ssh root:12345.
И правда, только локалхостеры могут не знать 1 правило админа: никогда не никому не доверять, особенно начинающим программерам.
Для Хипстер-ДБ это нормальное явление.
Хипсторы, такие хипсторы.
Ну главная прелесть Монги вообще-то как раз в том, что можно развернуть кластер ... а там loopback'ом не обойдешься
А в целом - админов нет, на них экономят, кодеры фигарят код по принципу "х..к,х..к в продакшен" и потому архитектурой не заморачиваются ... нет бы выделить internal сервисы в отдельную сеть, или там брандмауэр настроить и т.д.
Всё верно, разработчики отсеивают горе-недо-админов, каким нужно быть дебилом, что бы в такой крупной компании не удосужиться и не настроить iptables на машине, которая имеет публичный адрес...
Я уже не говорю о невнимательности к конфигу самой BD и игнорирование аутентификации..
К базе вообще не нужен публичный доступ.
> Всё верно, разработчики отсеивают горе-недо-админов, каким нужно быть дeбилом, что бы в
> такой крупной компании не удосужиться и не настроить iptables на машине,
> которая имеет публичный адрес...Ага. И ssh-сервер тоже должен по умолчанию пускать под root с пустым паролем. Кто не отключил в настройках - ССЗБ.
> Администраторы необдуманно применяют настройки
> по умолчанию, не разобравшись в модели
> ограничения доступану а "умные" разработчики программ -- не догадались сделать поумолчанию настройки -- безапасными..
Защита - это не состояние, а процесс.
Грамотность, кстати, тоже.
> Защита - это не состояние, а процесс.создание безопасных настроек *уже* поумолчанию -- часть этого процесса. :-)
> Грамотность, кстати, тоже.
про грамотность -- иди пиши на гуманитарных форумах. здесь не интересно об этом болтать.
(можешь даже там [на гуманитарных форумах] выложить скан своего дневника с пятёрками по Русскому Языку :-))
> создание безопасных настроек *уже* поумолчанию -- часть этого процесса. :-)Не пытайтесь аппелировать к логике кричалки лозунгов. Он умеет только баззворды заучивать, а потом декламировать. В смысл вникать - не обучен.
Интересно, кто-нибудь из ботнетчиков уже додумался использовать эту распределенную БД ?
> никак не защищённых публично доступных экземпляров ...
> не к внутреннему адресу 127.0.0.1 (localhost), а ко всем сетевым интерфейсам, включая внешний, без надлежащего ограничения доступа. Администраторы необдуманно применяют настройки по умолчаниюСледует ли эти утверждения понимать как доступ с localhost без аутенфикации?
Кстати, глянул в Archlinux с каким конфигом идёт пакет mongodb по умолчанию -- там кто-то подумал за таких горе-админов :)
https://projects.archlinux.org/svntogit/community.git/tree/t...
Даже вполне известно кто - Thomas Dziedzic
Разработчик != Администратор. Если вы не знаете что делать с отверткой - это не проблема завода-изготовителя инструмента.
> Разработчик != Администратор. Если вы не знаете что делать с отверткой -
> это не проблема завода-изготовителя инструмента.А если завод поставляет пассатижи и изоляционные ручки отдельно?
Более правильное решение - предоставить чистые конфигурационные файлы. Типичная защита от дурака.
> Более правильное решение - предоставить чистые конфигурационные файлы. Типичная защита от дурака.Поттеринг-вей. Он как раз всем втирает, что софт должен нормально запускаться с пустым /etc.
Да все равно по этим монгам никто не лазит, можно и забить на безопастность
Конфигурационные файлы по умолчанию должны обеспечивать достаточный уровень безопасности, так что со стороны разработчиков это косяк. Админы тоже виноваты конечно
буду оригинален - обвиню разрабов Монги.
Я бывший админ, перешёл в девелоперы. Пытался перейти на Монгу в своих проектах - за 15 минут не вышло, потому что удалённо подключаться не выходит, ругается на ошибку доступа. Я повесил Монгу на 0.0.0.0, фаервол настроил - какого хрена еще надо?
Никакой понятной доки нет. Как и в экзиме, есть толстый мануал размером с Новый Завет, и никакого быстрого гайда.
Есть где-то гайд по быстрой настройке Монги, минут за 15, для простого удалённого доступа? Или местная публика неприемлет настройки за 15 минут.
> Я бывший админ, перешёл в девелоперы. Пытался перейти на Монгу в своих
> проектах - за 15 минут не вышло, потому что удалённо подключаться
> не выходит, ругается на ошибку доступа.Страшно представить, начни Вы разбираться с Oracle ...
> Никакой понятной доки нет.Есть:
http://docs.mongodb.org/manual/Есть литература, причем на русском:
http://www.ozon.ru/context/detail/id/8688130/> Как и в экзиме, есть толстый мануал размером
> с Новый Завет, и никакого быстрого гайда.Вы спутали свою профессию.
Вы простите за грубость - кодер невысокого пошива> Есть где-то гайд по быстрой настройке Монги, минут за 15, для простого
> удалённого доступа? Или местная публика неприемлет настройки за 15 минут.Берем стандартный Гуид, читаем quiq install - 10 мин.
Создание ssh туннеля - 2 минуты.
Если Вы администрировали сервера как разбирались в Mongo ...
а вы полностью оправдываете стереотипы о профессии админа - сплошное быкование и тупые ответы.
>> Я бывший админ, перешёл в девелоперы. Пытался перейти на Монгу в своих
>> проектах - за 15 минут не вышло, потому что удалённо подключаться
>> не выходит, ругается на ошибку доступа.
> Страшно представить, начни Вы разбираться с Oracle ...И причём здесь Оракл? Вы полагаете, что веб-девелоперы часто стаявт Оракл? Если не разбираетесь в моей профессии, то зачем пытаетесь тупо наезжать?
>> Никакой понятной доки нет.
> Есть:
> http://docs.mongodb.org/manual/Это понятная дока? По 4 доки в 4 категориях, всего 16 документов. Ну очень полезный ответ, достойный классического админа.
> Есть литература, причем на русском:
> http://www.ozon.ru/context/detail/id/8688130/394 страницы. Скажите, что именно вам объяснить во фразе "быстрая дока за 15 минут"? Может, вы какую-то букву не можете прочитать?
>> Есть где-то гайд по быстрой настройке Монги, минут за 15, для простого
>> удалённого доступа? Или местная публика неприемлет настройки за 15 минут.
> Берем стандартный Гуид, читаем quiq install - 10 мин.Что такое стандартный Гуид?
> а вы полностью оправдываете стереотипы о профессии админа - сплошное быкование и
> тупые ответы.Я не админ с 2011.
Я проф. разработчик, в т.ч. у меня есть проекты как раз с Mongo, весьма большими БД в кластерах ... потому немного в тебе что такое Mongo.
то касается быкования и тупых ответов - ниже мы разберем что Вы из себя представляете>>> Никакой понятной доки нет.
>> Есть:
>> http://docs.mongodb.org/manual/
> Это понятная дока? По 4 доки в 4 категориях, всего 16 документов.Видимо глазенки не позволяют увидеть категорию Getting Started после прочтения которой уже можно использовать без проблем.
Даже средней руки быдлокодер способен прочитать и понять что означает "Getting Started", тамошний уровень написания ориентирован на невысокий уровень, практически - бери, делай.
Справиться любой человек, который знаком с MySQL на уровне "поставил, сделал select" ... кто хоть раз LAMP разворачиав, справиться.
Вас на это не хватило, гражданин ... уровень квалификации - каждый делает вывод сам.
Я могу сказать, что Ваш уровень - даже быдлосайты на WP Вам писать рановато.
Что Вы в прошлом администрировали - тоже не понятно, пока видно, что даже свой localhost для Вас сверх задача.Теперь о профессии, гражданин якобы разработчик, Вы изволили открыть свой ротик что я де не понимаю.
Что Вы понимаете видно по неспособности осилить "Getting Started", но это мелочи ...
Расскажите ка нам тут, каким образом Вы себе представляете продуктивное использование системы, если не способны уделить внимание на прочтение основного массива док ?
Или Вы побежали ставить Mongo только потому, что услышали модное слово от заказчика или на сайте конкурента ?
А разницу между реляционными и документо-ориентированными БД Типа разработчик знает ?
В каких решениях применяется ? В чем недостатки/преимущества ?
А Вы в курсе, что надо менять ряд паттернов и т.д. ?>> Есть литература, причем на русском:
>> http://www.ozon.ru/context/detail/id/8688130/
> 394 страницы. Скажите, что именно вам объяснить во фразе "быстрая дока за
> 15 минут"? Может, вы какую-то букву не можете прочитать?Пока в роли неспособного выступаете Вы, гражданин якобы разработчик.
Т.к. в этой книге есть в самом начале традиционная для книг вещь "Организация материала", , и содержание, которое позволяет очень быстро понять, что надо в первые минуты.
Я понимаю, что чукча не читатель, но делать вид, что Вы не понимаете, что из этих 394 Вам не нужен основной массив страниц не надо.
Если бы Вы осилили прочтение содержания, то увидели, что развертывание описано в главе 10, которая занимает 30 небольших страниц формата A5, из которых половина посвящена рассуждениям о платформах и т.д.
На станице 313 якобы разработчик Вас знакомят с параметром bind_ip, а страницей позднее - авторизацией ...>>> Есть где-то гайд по быстрой настройке Монги, минут за 15, для простого
>>> удалённого доступа? Или местная публика неприемлет настройки за 15 минут.
>> Берем стандартный Гуид, читаем quiq install - 10 мин.
> Что такое стандартный Гуид?Который Вы не осилили (см. Выше). Якобы разработчик и якобы бывший админ.
Вам надо сменить ник "х..к, х..к - в продакшен".
>>>> Никакой понятной доки нет.
>>> Есть:
>>> http://docs.mongodb.org/manual/
>> Это понятная дока? По 4 доки в 4 категориях, всего 16 документов.
> Видимо глазенки не позволяют увидеть категорию Getting Started после прочтения которой
> уже можно использовать без проблем.И тут внезапно выясняется, что я прочитал Getting Started! Да, уже давно. Я уже даже как-то устал указывать, что меня интересует конкретный вопрос, который в Getting Started не раскрыт. После прочтения этого стартеда Монгу можно использовать только локально.
> Справиться любой человек, который знаком с MySQL на уровне "поставил, сделал select"
> ... кто хоть раз LAMP разворачиав, справиться.
> Вас на это не хватило, гражданин ... уровень квалификации - каждый делает
> вывод сам.Да, я вот делаю вывод, что вы любите делать выводы без фактов. Просто надумали себе что-то и из этого выводы делаете.
> Я могу сказать, что Ваш уровень - даже быдлосайты на WP Вам
> писать рановато.Это спорный вопрос. А вот то, что ваше хамство весьма неуместно на опеннет - это бесспорно. Система доказательств в ваших рассуждениях хотя и присутствует, но в весьма зачаточном состоянии. В основном - разбрасывание говна вокруг.
> Что Вы в прошлом администрировали - тоже не понятно, пока видно, что
> даже свой localhost для Вас сверх задача.Как бы снова можно вставить ремарку о том, что я настраиваю Монгу на удалённое соединение, но зачем? Уровень edwin3d понятен.
> Расскажите ка нам тут, каким образом Вы себе представляете продуктивное использование системы,
> если не способны уделить внимание на прочтение основного массива док ?Открою для вас внезапную тайну: для бытия успешным разработчиком прочтение 394 страниц книги по Монге совершенно необязательно. Как и полное чтение миллионов книг по внутреннему устройству Линукс. Работа с Монгой раскрывается в профильных книгах тех языков программирования, которые используют разработчики, а также в многочисленных статьях в Интернете. Этого абсолютно достаточно для 80% задач, а значит - принцип Парето.
Книгу прочитать можно, но у меня желание не возникло.
Я не смог найти статью по моему конкретному вопросу, принцип Парето не сработал и я спросил тут. И что же мы видим? Вместо ответа на вопрос, как на stackoverflow, обычное быкование стандартного россиянина. Я знал, что это национальная черта, но всё-же рискнул и прогадал.
На сём комментирование сего странного опуса мне надоело и я заканчиваю.
> который в Getting Started не раскрыт. После прочтения этого стартеда Монгу
> можно использовать только локально.Вы продолжаете показывать свою низкую квалификацию.
Пробросить порт mongo'и через ssh туннель - 2 минуты, чтобы локальное соединение стало удаленным, НЕ разбираясь.
Существуют также tcp wrapper'ы, - никаких проблем
Я Вам про ssh туннель говорил сообщение назад, Вы проигнорировали, видимо никогда не пользовались таким инструментом.
Все, можно использовать удаленно - не выставляя в паблик, для разработки, параллельно выясняя нюансы.
Факт непонимания фразы о ssh туннеле говорит о том, что администрированием серьезно не занимались. никогда.> что ваше хамство весьма неуместно на опеннет - это бесспорно.
Оно станет неуместно, когда Вы перестанете раз за разом показывать смесь дилетантства и высоким самомнением.
Приведете себя в порядок гражданин якобы бывший админ и якобы разработчик, начнете задавать вопросы, а не поливать грязью в сочетании с неявным мычанием - никто и хамить не будет.> и я спросил тут.
Вы не спросили, Вы начали брызгать слюной, поливая все грязью, при этом описывая проблему совсем никак - описания ошибки нету и т.д.
Если Вы задачи вопрос как человек, Вы бы получили ответ в вежливой форме.> И что же мы видим? Вместо ответа на вопрос, как на stackoverflow,
Какой вопрос - такой и ответ.
Вы получили несколько вариантов. Где искать, что делать.
Видеть их не желаете. Что касается формы - так вопрос задавайте как на stackoverflow, а не в стиле который Вы приписываете другим> а мне надоело и я заканчиваю.
Я тоже. Воспитывать неквалифицированное тело, да еще и вавкой майданизма () нет никакого желания.
> Пробросить порт mongo'и через ssh туннель - 2 минуты, чтобы локальное соединение
> стало удаленным, НЕ разбираясь.А нафига!? Косяк 100 процентов разрабов. Если случилась такая ситуевина, значит подход разрабов кривой by design. По теме - кривые админы. кто в здравом уме БД выставляет голой жопой наружу?! Или я что то пропустил и теперь пользователь сам делает выборку в БД?!