Как можно защитить memcached / beanstalkd во враждебной облачной среде? - PullRequest
2 голосов
/ 18 октября 2010

Вот как должны выглядеть мои серверы (в Amazon EC2):

        Server 1                    Server 2                  Server 3
__________________________     _____________________      _______________
|  Cloud Monitor Daemon  |    |  Memcached daemon  |      |  beanstalkd  |
|                        |    |  Memcached daemon  |      ________________
| "Hostile" user process | /  |  Memcached daemon  |
| "Hostile" user process | /  |  Memcached daemon  |
| "Hostile" user process | /  |  Memcached daemon  |
| "Hostile" user process | /   ______________________
| "Hostile" user process | /
__________________________

На одном сервере несколько пользовательских процессов.Каждый пользователь затем имеет свой собственный экземпляр memcached, запущенный на (отдельном) сервере (со многими другими экземплярами memcached).Без какой-либо защиты (как по умолчанию) пользовательский процесс B может угадать порт memcached экземпляра пользователя A и получить к нему доступ.Как я могу защитить эту систему, чтобы пользователь C мог получить доступ только к экземпляру memcached C и ни к какому другому (даже если все экземпляры memcached находятся на одном сервере)?Моему пользователю не нужно ничего делать, чтобы использовать безопасность (просто продолжайте подключаться к порту memcached как обычно), все это должно происходить автоматически системой.

Кроме того, демон Cloud Monitor на серверенаряду с «враждебными» пользовательскими процессами необходимо иметь доступ к удаленному серверу beanstalkd.Beanstalkd также не имеет аутентификации, поэтому, если мой демон мониторинга может получить доступ к beanstalkd, то же самое можно сказать и о «враждебных» пользовательских процессах, а я этого не хочу.Как я могу защитить эту часть?

Ответы [ 4 ]

2 голосов
/ 18 октября 2010

Я упомянул несколько советов по защите memcached в сообщении в блоге недавно.В вашем случае SASL, вероятно, очень поможет.

Я не знаю, получал ли когда-нибудь beanstalk поддержку SASL, но это своего рода другое приложение.* Конечно, создайте VPN или включите IPSEC для управления доступом ко всем службам на всех машинах на уровне узлов.

1 голос
/ 31 марта 2011

Пару недель назад Amazon анонсировал Amazon VPC (виртуальное частное облако), которое мы используем для защиты memcached и beanstalkd.

Отлично работает!Серьезно рекомендую это;на один меньше накладных расходов, чтобы иметь дело с самими собой.

1 голос
/ 24 декабря 2010

Вы можете запустить beanstalkd на локальном IP-адресе Server3 (127.0.0.1), а затем использовать SSH-туннели с сервера 1 на сервер 3. В сочетании с inetd и ssh-keys для обеспечения отказоустойчивости используйте их.

0 голосов
/ 24 декабря 2010

Я закончил тем, что пошел с простыми старыми iptables.Позволяет мне выполнять правила per-uid и очень прост в настройке программно.Самое главное, что пользователям не нужно участвовать в процессе, они могут продолжать использовать стандартные протоколы и не должны иметь дело с аутентификацией, а iptables отбрасывает любые «непослушные» пакеты, которые идут туда, куда им не следует.

...