Pull to refresh

Comments 28

На всякий случай — посмотреть все открытые порты можно так:
sudo netstat -nlp

Поискать среди них нужный порт:
sudo netstat -nlp | grep 27017

Можно и без sudo, но тогда не будут показаны имена сервисов.
Netstat устарел, вместо него следует использовать ss.
sudo ss -nlpt
Почему, чем он лучше?

Читается, на мой взгляд, похуже:
О как. Спасибо за информацию.
Нифига подобного, они продолжают развиваться.
Почему, чем он лучше?

При больших объемах трафика он заметно шустрее:

# time (netstat -an|grep ":80\ "|wc -l)
42537
real	0m7.001s
user	0m0.388s
sys	0m6.720s

# time (ss -an|grep ":80\ "|wc -l)
41403
real	0m0.139s
user	0m0.168s
sys	0m0.068s

фря рулит, только netstat -Lan
На случай обнаружения чего-то странного:
Выключить: service name stop
Удалить из автозагрузки:
1) ubuntu 14.04 (upstart): # echo «manual» > /etc/init/name.override
2) centos 6 (upstart): chkconfig name off
3) * (System V): sysv-rc-conf | update-rc.d
4) * (systemd): systemctl disable name
Привентивная защита: настроить firewall
В Ubuntu надо добавить строку в /etc/default/mongod:

DAEMON_OPTS="$DAEMON_OPTS --bind_ip 127.0.0.1"
Иметь настроенный firewall на серверах уже давно стало правилом хорошего тона.
Откройте для себя волшебный мир *nix — по умолчанию большинство сетевых служб слушают все интерфейсы.
Проблема, к сожалению, глубже, чем просто закрыть порты. Безопасность — вещь комплексная и приемлемого её уровня нельзя достичь, просто посадив в одной комнате программера, а в другой — админа.
Ну ок, файрволл админ закроет. А настраивать веб-сервер — так, чтобы и приложение не сломалось, и надёжно было? А озаботиться, чтобы директории, где проходит пользовательский аплоад, не были доступны через веб? И так далее, и так далее.
Лично моё глубокое убеждение — что в каждую комнату, где сидят разработчики, надо сажать по админу с металлической линейкой, чтоб бил по пальцам. Но при этом — в большинстве веб-студий, с которыми приходилось сталкиваться, выделенный админ, следящий за безопасностью разработок, отсутствовал напрочь.
Ну, вообще-то, по хорошему, должно быть
iptables -P INPUT DROP

За исключением случаев, когда функционал сервиса какой-то сильно уж специфичный.
Так и программеры в студиях обычно весьма так себе
Нда… Сколько же надо еще набить шишек, чтобы народ вдруг осознал, что МонгоДеБе это вовсе не такой «другой майэскуель»…

Советую поглядеть в документацию более внимательно, так как модель использования монги довольно сильно отличается от привычного начинающим LAMP'а. В доках однозначно сказано, что безопасность должна обеспечиваться при помощи трастед окружения в первую очередь. И там еще много подобных моментов.
Видимо дело в том, что любой программно-аппаратный комплекс не расчитан на глупых юзеров. Для этого даже выделилась отдельная «IT» сфера, включающая помимо прочих: программистов, системных и DB администраторов e.t.c
Я конечно очень рад вашему посту про то что в mongo не написаны порты или строчка в конфиге репозитория N закомментирована.
Не нравится — форкни и допили. Ну или если таланта не хватает просто не используй. Ныть то зачем?
Наличие на рынке дешёвых VPS с предустановленным «софтом для стартапа» не отменяет необходимости читать документацию на используемые приложения. В документации на MongoDB написано:

IMPORTANT
Make sure that your mongod and mongos instances are only accessible on trusted networks. If your system has more than one network interface, bind MongoDB programs to the private or internal network interface.

Судя по всему, там, где вы работаете, не все ещё алфавит освоили.
Судя по всему, там, где вы работаете, у парней хватило бы опыта открыть документацию и разрешить удаленный доступ по необходимости, как я думаю, они поступают с тем же MySQL. На примере того же амазана, который по-умолчанию закрывает все порты и по необходимости сам открываешь. Я не говорю, что разработчики монгоДБ плохие, я говорю что малоопытных всегда будет хватать везде.

Не думаю что хабр это то место, где добивают лежачих и действует правило: выживает сильнейший. В первую очередь тут делятся опытом. Ведь все совершают ошибки, даже ведущие программисты крупных компаний. Самому не часто удается прочитать всю документацию того или иного софта, чтоб что-то поправить по мелоче в коде чужого проекта. Проекты не всегда крупные с большой посещаемостью, некоторые просто не работают до твоего вмешательства за Спасибо.
Описанное здесь не ошибка, а банальная халатность, которая часто бывает от лени подумать пять минут и хотя бы одним глазом заглянуть в документацию. Плохой тут только тот, кто эти VPS изначально настраивал и отсутствие опыта не оправдание.
указанное автором поведение Монго задумано не просто так — Монга в принципе задумана так, что работает для удалённых серверов, а не только локалхоста. Криворукость разрабов не является основанием отменять устоявшиеся хорошие практики.
С другой стороны в каждом учебнике по программированию рекомендуют «Default deny» правила.
я первый раз такое читаю. По моим наблюдениям далеко не в каждом учебнике программирования вопросы безопасности вообще рассмотрены.
в мире nosql народ делает распределённые системы и ценит каждую долю секунды, логично, что авторизация, это лишнее действие, жрущее время. Тем более, когда надо показать всем конкурентам, что у тебя самая быстрая nosql.
В своё время с открытой монги утянул 300 гигов whois инфы всех доменов, с серверов сеоквейка.

php скрипт круто ) но зачем? )))
nmap -v -p27017 11.22.33.1/24 --open
даст тот же профит, только быстрее. Ну и для психов:
zmap.io/
Сканировать надо так ;-)
zmap -p 27017 -n 100 -i wlan0 -o ips.txt;
nmap -iL ips.txt -p27017  -sV -Pn -n -v

-sV чтобы определять версию монги, если определилась значит можно подключиться.

Еще есть в shodan 99429 хостов, но бесплатно доступны только первые 10: www.shodanhq.com/search?q=port%3A27017
Sign up to leave a comment.

Articles