Question

Can a multi-node Cassandra cluster be secured in the DO cloud?

I’m configuring the internode connection for Cassandra 3.5, though the same question applies to older versions, also.

In cassandra.yaml, there’s this:

# SSL port, for encrypted communication.  Unused unless enabled in
# encryption_options
# For security reasons, you should not expose this port to the internet.  Firewall it if needed.
ssl_storage_port: 7001

...

server_encryption_options:
    internode_encryption: all


Now, binding to a non-routable NIC will ensure that it’s not exposed outside DO, but it will be exposed to other DO VMs. Is there a way within DO to make this more secure? I don’t see anything about private networking support from DO.

I’ve read Introducing Private Networking, but that doesn’t block others’ droplets from seeing my traffic, so it’s not what I would consider private networking.

Subscribe
Share

We definitely recommend using private networking, but also making use of iptable filters, and encryption with your connections so that the traffic between your nodes is secure.

This guide may also be helpful: https://www.digitalocean.com/community/tutorials/how-to-run-a-multi-node-cluster-database-with-cassandra-on-ubuntu-14-04


Submit an answer
You can type!ref in this text area to quickly search our full set of tutorials, documentation & marketplace offerings and insert the link!

These answers are provided by our Community. If you find them useful, show some love by clicking the heart. If you run into issues leave a comment, or add your own answer to help others.

The most straightforward method would be to setup an IPtables firewall that only allows connections from the other Cassandra nodes. Using UFW, it is pretty straight forward to set up manually. If you set it up to deny incoming connections by default, you can whitelist a specific IP address on a specific port using:

sudo ufw allow from 111.111.111.111 to any port 7001

There’s also a nifty utility that can be used to to automate this a bit if you expect new nodes to join and leave the cluster: