Securing Solr Deployments - SearchStax
SearchStax® takes the security of your Solr search infrastructure very seriously. We have built-in industry-standard security at the level of the cluster, network and SearchStax dashboard. Custom firewall rules enable you to lock down your search infrastructure to a whitelist of IP addresses and IP address ranges. Solr basic authentication lets you restrict search access to clients with appropriate user credentials.
The SearchStax dashboard and all communications between SearchStax and your search engine use Secure-Sockets Layer encryption (SSL). This is the system's default behavior out of the box.
Security Best Practices
The Zookeeper Ensemble does not support authentication. Therefore we recommend very restricted IP filtering on Zookeeper servers, even limiting IP access to a single address.
For greater security, we suggest removing all access on Zookeeper port 2181. Require your team to use our Zookeeper API for config updates. The API requires SearchStax authentication, so config changes are logged in the SearchStax access logs.
Advanced Security Options
Premium customers may also request at-rest encryption for their data files. Send email to firstname.lastname@example.org to learn more about these options.
- Cluster Security
- SearchStax Dashboard Security
Connecting to the Cluster
SearchStax recommends that you situate your application infrastructure in the same local network as your hosting provider (for example, AWS or Azure). Internal network security for these hosting providers is extremely high and eliminates any chance of a hacker potentially sniffing your network traffic.
If your application is hosted elsewhere, try to host it as close to your search infrastructure as possible. This can be done by choosing the Cloud Provider Region which is closest to your application. This improves both security and performance.
Solr Basic Authentication
You can optionally enable the Solr Basic Authentication Plugin through the SearchStax Dashboard. This restricts access to your Solr dashboard and demands authorization for query requests and index updates.
Warnings: Effects of Basic Authentication
- Enabling/Disabling this feature will suspend service for a couple of minutes while it restarts
all of your Solr nodes.
- Once enabled, Solr will require a username and password for:
- Opening the Solr Dashboard.
- Making a query request (via the /select command).
- Adding records to the index (via the /update command).
- When disabled, Solr will delete all existing Solr users.
To enable the Basic Authentication plugin:
- Select the desired Deployment and click the Security > Auth command in the menu bar.
- Click the Enable button.
- Add a user, entering the username, password and role (see below). Click Add.
Note that Solr user accounts are independent of SearchStax user accounts.
To disable the Authentication and Authorization plugin, click on the Disable Auth button and confirm the action. Disabling Basic Auth erases all Solr users. (Again, Solr services will be restarted.)
Solr Basic Authentication provides three user roles:
- Admin users have full access to the Solr Dashboard. They can query the index from an external location using a /select command, and they can load new records into the index using a /update command.
- Read users can query the index using /select.
- Write users can add new records to the index using /update.
Using /select and /update with Solr Basic Auth
After enabling Solr authentication, your /select and /update interactions with
Solr must include the username and password of a Solr user.
For cURL, add the Solr credentials using the
-u 'username:password' parameter.
If your search application doesn't use cURL, your <Solr HTTP Endpoint> changes from
Connections to Zookeeper remain unchanged.
You can limit access to a Solr deployment to a list of IP addresses using the Security > IP Filter
You can configure access for Solr+Zookeeper, Solr, and Zookeeper endpoints separately.
The addresses are expressed in IPv4 format, using the familiar dot-decimal notation. Ranges are specified using Classless Inter-Domain Routing (CIDR) format.
CIDR notation can be daunting, but note the following three examples of typical CIDR rules:
- 0.0.0.0/0 This rule permits unrestricted access. Any IP address whatsoever may connect to Solr.
- 184.108.40.206/32 This rule permits a connection from exactly one IP address.
- 220.127.116.11/24 This rule allows Solr access from any of the 256 IP addresses on a subnet.
The /n at the end of each rule is called the prefix length.
To limit access to a specific IP address or IP address range:
- From within a Deployment's details page, click on the Security > IP filter menu.
- Click on Add Row.
- Add a specific IP address in the appropriate field. Note that SearchStax can detect your computer's IP address. Click My current IP to enter it automatically.
- Select a service you need to limit access to (Solr+Zookeeper, Solr, or Zookeeper).
- Click Save changes.
To remove a filter, click on the X button and then Save changes.
Use the SearchStax API to update Zookeeper Configurations
Reminder: The Best Practice is to lock Zookeeper down to a single internal IP address, and then upload/update configs using the Zookeeper API instead of ZkCLI. The API requires authentication and logs access events, which ZkCLI does not.
IP Filtering by Cloud Provider
Each of our Cloud Providers handles IP filtering a little differently.
- For Google Cloud Provider (GCP) and Microsoft Azure, removing all of the IP filters allows unrestricted access.
- For Amazon Web Services (AWS), removing all of the IP filters makes the deployment unreachable.
- For AWS and Azure, new filters take effect immediately.
- For GCP, new filters can take a few minutes to become active.
SearchStax User Roles
Each SearchStax account is restricted to the Owner of that account plus
any SearchStax users who have been granted access to that account by the owner. The
additional users may be limited to specific roles at the Owner's discretion. See SearchStax User Roles.
SearchStax Dashboard Security
The SearchStax activity log provides you with a list of all user actions within your account, including those of the SearchStax Support team. The list consists of a User column including email of the user who performed the logged change, his/her role, Timestamp of action in UTC, Action itself, Action detail and IP address where the action originated.
Do not hesitate to contact the SearchStax Support Desk.