Skip to main content

Veritabanı ve Dizin Yapılandırması

TheHive, verileri ve dizini yönetmek için Cassandra ve Elasticsearch veritabanlarını kullanır. Kuruluma göre, örnek kullanabilir:

Temel Yapılandırma

TheHive için tipik bir veritabanı yapılandırması şu şekildedir:

## Database configuration
db {
  provider = janusgraph
  janusgraph {
    ## Storage configuration
    storage {
      backend = cql
      hostname = ["IP_ADDRESS"]
      cql {
        cluster-name = thp
        keyspace = thehive
      }
    }
    ## Index configuration
    index.search {
      backend = elasticsearch
      hostname = ["127.0.0.1"]
      index-name = thehive
    }
  }
}

Mümkün parametrelerin listesi

Parametre Tipi Açıklama

ParametreTipi
Açıklama
providerstringprovider name. Default: janusgraph
storagedict

storage configuration

(deepolama yapılandırması)

storage.backendstring

storage type. Can be cql or berkeleyje

(depolama türü.)

storage.hostnamelist of string

list of IP addresses or hostnames when using cql backend

(cql arka ucunu kullanırken IP adreslerinin veya ana bilgisayar adlarının listesi)

storage.directorystringlocal path for data when using berkeleyje backend
storage.usernamestringaccount username with cql backend if Cassandra auth is configured
storage.passwordstringaccount password with cql backend if Cassandra auth is configured
storage.portintegerport number with cql backend (9042 by default). Change this if using an alternate port or a dedicated port number when using SSL with Cassandra
storage.cqldictconfiguration for cql backend if used
storage.cql.cluster-namestringname of the cluster name used in the configuration of Apache Cassandra
storage.cql.keyspacestringKeyspace name used to store TheHive data in Apache Cassandra
storage.cql.ssl.enabledbooleanfalse by default. set it to true if SSL is used with Cassandra
storage.cql.ssl.truststore.locationstringpath the the truststore. Specify it when using SSL with Cassandra
storage.cql.ssl.passwordstringpassword to access the truststore
storage.cql.ssl.client-authentication-enabledbooleanEnables use of a client key to authenticate with Cassandra
storage.cql.ssl.keystore.locationstringpath the the keystore. Specify it when using SSL and client auth. with Cassandra
storage.cql.ssl.keystore.keypasswordstringpassword to access the key in the keystore
storage.cql.ssl.truststore.storepasswordstringpassword the access the keystore
index.searchdictconfiguration for indexes
index.search.backendstringindex engine. Default: lucene provided with TheHive. Can also be elasticsearch
index.search.directorystringpath to folder where indexes should be stored, when using lucene engine
index.search.hostnamelist of stringlist of IP addresses or hostnames when using elasticsearch engine
index.search.index-namestringname of index, when using elasticseach engine
index.search.elasticsearch.http.auth.type: basicstringbasic is the only possible value
index.search.elasticsearch.http.auth.basic.usernamestringUsername account on Elasticsearch
index.search.elasticsearch.http.auth.basic.passwordstringPassword of the account on Elasticsearch
index.search.elasticsearch.ssl.enabledbooleanEnable SSL true/false
index.search.elasticsearch.ssl.truststore.locationstringLocation of the truststore
index.search.elasticsearch.ssl.truststore.passwordstringPassword of the truststore
index.search.elasticsearch.ssl.keystore.locationstringLocation of the keystore for client authentication
index.search.elasticsearch.ssl.keystore.storepasswordstringPassword of the keystore
index.search.elasticsearch.ssl.keystore.keypasswordstringPassword of the client certificate
index.search.elasticsearch.ssl.disable-hostname-verificationbooleanDisable SSL verification true/false
index.search.elasticsearch.ssl.allow-self-signed-certificatesbooleanAllow self signe certificates true/false

 

Not: İlk başlatma veya dizinleri yapılandırdıktan sonraki ilk başlatma, veritabanı büyük miktarda veri içeriyorsa biraz zaman alabilir. Bu süre, dizinlerin oluşturulmasından kaynaklanır.

Kullanım durumları

Veritabanı ve dizin motoru, kullanım durumuna ve hedef kuruluma bağlı olarak farklı olabilir:

Cassandra & Elasticsearch ile bağımsız sunucu  :

  1. Install a Cassandra server locally
  2. Install Elasticsearch
  3. Configure TheHive accordingly
## Database Configuration
db {
  provider = janusgraph
  janusgraph {
    ## Storage configuration
    storage {
      backend = cql
      hostname = ["127.0.0.1"]
      ## Cassandra authentication (if configured)
      username = "thehive_account"
      password = "cassandra_password"
      cql {
        cluster-name = thp
        keyspace = thehive
      }
    }
    ## Index configuration
    index.search {
      backend = elasticsearch
      hostname = ["127.0.0.1"]
      index-name = thehive
    }
  }
## Database Configuration
db {
  provider = janusgraph
  janusgraph {
    ## Storage configuration
    storage {
      backend = cql
      hostname = ["127.0.0.1"]
      ## Cassandra authentication (if configured)
      username = "thehive_account"
      password = "cassandra_password"
      cql {
        cluster-name = thp
        keyspace = thehive
      }
    }
    ## Index configuration
    index.search {
      backend = elasticsearch
      hostname = ["127.0.0.1"]
      index-name = thehive
    }
  }

Cassandra ve Elasticsearch ile Küme:

    1. Install a cluster of Cassandra servers
    2. Get access to an Elasticsearch server
    3. Configure TheHive accordingly

      ## Database Configuration
      db {
        provider = janusgraph
        janusgraph {
          ## Storage configuration
          storage {
            backend = cql
            hostname = ["10.1.2.1", "10.1.2.2", "10.1.2.3"]
            ## Cassandra authentication (if configured)
            username = "thehive_account"
            password = "cassandra_password"
            cql {
              cluster-name = thp
              keyspace = thehive
            }
          }
          ## Index configuration
          index {
            search {
              backend  = elasticsearch
              hostname  = ["10.1.2.5"]
              index-name  = thehive
              elasticsearch {
                http {
                  auth {
                    type = basic
                    basic {
                      username = httpuser
                      password = httppassword
                    }
                  }
                }
                ssl {
                  enabled = true
                  truststore {
                    location = /path/to/your/truststore.jks
                    password = truststorepwd
                  }
                }
              }
            }
          }
        }
      }                
      

Uyarı: Bu yapılandırmada, tüm TheHive düğümleri aynı yapılandırmaya sahip olmalıdır. Elasticsearch yapılandırması script.allowed_types için varsayılan değeri kullanmalı veya aşağıdaki yapılandırma satırını içermelidir =

script.allowed_types: inline,stored