{"id":1925,"date":"2011-03-05T23:30:28","date_gmt":"2011-03-05T22:30:28","guid":{"rendered":"http:\/\/www.devco.net\/?p=1925"},"modified":"2011-03-06T00:14:48","modified_gmt":"2011-03-05T23:14:48","slug":"using_mcollective_113_subcollectives_for_security","status":"publish","type":"post","link":"https:\/\/www.devco.net\/archives\/2011\/03\/05\/using_mcollective_113_subcollectives_for_security.php","title":{"rendered":"Using MCollective 1.1.3 Subcollectives for Security"},"content":{"rendered":"
We’ll be releasing The Marionette Collective version 1.1.3 on Monday which will bring with it a major new feature called Subcollectives<\/a>. This feature lets you partition your collective into multiple isolated broadcast zones much like a VLAN does to a traditional network. Each node can belong to one or many collectives at the same time.<\/p>\n An interesting side effect of this feature is that you can create subcollectives to improve security of your network. I’ll go through a process here for providing untrusted 3rd parties access to just a subset of your servers.<\/p>\n <\/p>\n The image above demonstrates a real world case where a customer wanted to control their machines using the abilities exposed by MCollective on a network hosting servers for many customers. <\/p>\n The customer has a CMS that creates accounts on his backend systems, sometimes he detects abuse from a certain IP and need to be able to block that IP from all his customer facing systems immediately. We did not want to give the CMS access to SSH as root to the servers to we provided a MCollective Agent that expose this ability using SimpleRPC.<\/p>\n Rather than deploy a new collective using different daemons we use the new Subcollectives features to let the customer machines belong to a new collective called custcollective<\/em> while still belonging to the existing collective<\/em>. We then restrict the user at the middleware layer and set his machines up to allow him access to them via the newly created collective.<\/p>\n To properly secure this setup we give the customer their own username on the ActiveMQ server and secure it<\/a> so it can only communicate with his subcollective:<\/p>\n<\/p>\n
\r\n