Securing DataStax Enterprise Ports
All network security starts with strict and proper firewall rules on interfaces that are exposed to the internet, allowing only the absolute minimum traffic in or out of the internal network. Firewall security is especially important when running your infrastructure in a public cloud. Wherever you host your clusters, DataStax strongly recommends using a firewall on all nodes in your cluster.
Begin with a restrictive configuration that blocks all traffic except SSH. Then, open up the following ports in compliance with your security requirements to allow communication between the nodes. If these ports are not opened, the node acts as a standalone database server rather than joining the cluster when you start DataStax Enterprise (DSE) on a node.
If the cluster uses SSL only, close any non-SSL ports that have dedicated SSL ports. To ensure communication is not disabled to any non-SSL clients, DataStax recommends testing the configuration in a staging environment before enabling the firewall in production environments.
Make sure your firewall rules do not restrict traffic between DSE Analytics nodes. Traffic between DSE Analytics nodes must be unrestricted to allow communication between DSE Spark Master and Worker nodes. |
Filename | Location dependent on the type of installation |
---|---|
cassandra-env.sh |
Package installations: Tarball installations: |
cassandra.yaml |
Package installations: Tarball installations: |
dse.yaml |
Package installations: Tarball installations: |
spark-defaults.conf |
Package installations: Tarball installations: |
spark-env.sh |
Package installations: Tarball installations: |
opscenterd.conf |
Package installations: Tarball installations: |
Procedure
Open the following ports:
Default port | Service | Configurable in |
---|---|---|
Public-facing ports |
||
22 |
SSH (default) |
See your OS documentation on |
DataStax Enterprise public ports |
||
(random) |
Spark port for the driver to listen on.
Used for communicating with the executors and the standalone Master.
In client mode, this port is opened on the local node where the Spark application was started.
In cluster mode, this port is opened on one of the Analytics nodes selected randomly.
When used in cluster mode, the port is opened only on the network interface used for internode communication.
To explicitly set the port, set the |
spark-defaults.conf and using the |
(random) |
Spark port for all block managers to listen on.
These ports exist on both the driver and the executors.
To explicitly set the port, set the |
spark-defaults.conf and using the |
(random) |
|
spark-defaults.conf and using the |
(random) |
|
The |
4040 |
Spark application web site port.
If an application is already using the designated port, it increments the port number up to the setting of the |
spark-defaults.conf and using the |
5598, 5599 |
Public/internode ports for DSE File System (DSEFS) clients. |
|
7080 |
Spark Master web UI port. |
|
7081 |
Spark Worker web UI port. |
|
7437 |
spark.dseShuffle.noSasl.port |
The port number on which a shuffle service for unsecured applications is started.
Bound to the listen_address in |
7447 |
spark.dseShuffle.sasl.port |
The port number on which a shuffle service for SASL secured applications is started.
Bound to the listen_address in |
8182 |
The gremlin server port for DSE Graph. |
See Graph configuration. |
8983 |
DSE Search (Solr) port and Demo applications web site port (Portfolio, Search, Search log, Weather Sensors) |
|
8090 |
Spark Jobserver REST API port. |
See Spark Jobserver. |
9042 |
DSE database native clients port.
Enabling native transport encryption in |
|
9091 |
The DataStax Studio server port. |
See DataStax Studio documentation. Configure in <dse_studio_install_dir>/configuration.yaml. |
9077 |
AlwaysOn SQL WebUI port. |
|
DSE client port when SSL is enabled.
Enabling client encryption and keeping |
||
9999 |
Spark Jobserver JMX port. Required only if Spark Jobserver is running and remote access to JMX is required. |
|
18080 |
Spark application history server web site port. Only required if Spark application history server is running. Can be changed with the spark.history.ui.port setting. |
See Spark history server. |
OpsCenter public ports |
||
8888 |
OpsCenter web site port. The opscenterd daemon listens on this port for HTTP requests coming directly from the browser. See OpsCenter ports reference. |
|
Internode ports |
||
DSE database internode communication ports |
||
5599 |
Private port for DSEFS internode communication port. Must not be visible outside of the cluster. |
|
7000 |
DSE internode cluster communication port. |
|
7001 |
DSE SSL internode cluster communication port. |
|
7199 |
DSE JMX metrics monitoring port. DataStax recommends allowing connections only from the local node. Configure Configuring SSL [SSL] and JMX authentication when allowing connections from other nodes. |
|
DataStax Enterprise internode ports |
||
7077 |
Spark Master internode communication port. |
|
8609 |
Port for internode messaging service. |
|
Spark SQL Thrift server |
||
10000 |
Spark SQL Thrift server port. Only required if Spark SQL Thrift server is running. |
Set with the `-p`option with the Spark SQL Thrift server. |