Skip to main content

Docker ile Kurulum

Docker compose dosyasını kullanarak TheHive ve Cortex'i çalıştırın:

11.jpg

Compose dosyasına aşağıdaki kodu ekleyin.

version: "3"
services:
  thehive:
    image: strangebee/thehive:5.2
    depends_on:
      - cassandra
      - elasticsearch
      - minio
      - cortex
    mem_limit: 1500m
    ports:
      - "9000:9000"
    environment:
      - JVM_OPTS="-Xms1024M -Xmx1024M"
    command:
      - --secret
      - "mySecretForTheHive"
      - "--cql-hostnames"
      - "cassandra"
      - "--index-backend"
      - "elasticsearch"
      - "--es-hostnames"
      - "elasticsearch"
      - "--s3-endpoint"
      - "http://minio:9000"
      - "--s3-access-key"
      - "minioadmin"
      - "--s3-secret-key"
      - "minioadmin"
      - "--s3-bucket"
      - "thehive"
      - "--s3-use-path-access-style"
      - "--cortex-hostnames"
      - "cortex"
      - "--cortex-keys"
      # put cortex api key once cortex is bootstraped
      - "<cortex_api_key>"

  cassandra:
    image: 'cassandra:4'
    mem_limit: 1600m
    ports:
      - "9042:9042"
    environment:
      - MAX_HEAP_SIZE=1024M
      - HEAP_NEWSIZE=1024M
      - CASSANDRA_CLUSTER_NAME=TheHive
    volumes:
      - cassandradata:/var/lib/cassandra
    restart: on-failure

  elasticsearch:
    image: docker.elastic.co/elasticsearch/elasticsearch:7.17.12
    mem_limit: 1500m
    ports:
      - "9200:9200"
    environment:
      - discovery.type=single-node
      - xpack.security.enabled=false
    volumes:
      - elasticsearchdata:/usr/share/elasticsearch/data

  minio:
    image: quay.io/minio/minio
    mem_limit: 512m
    command: ["minio", "server", "/data", "--console-address", ":9090"]
    environment:
      - MINIO_ROOT_USER=minioadmin
      - MINIO_ROOT_PASSWORD=minioadmin
    ports:
      - "9090:9090"
    volumes:
      - "miniodata:/data"

  cortex:
    image: thehiveproject/cortex:3.1.7
    depends_on:
      - elasticsearch
    environment:
      - job_directory=/tmp/cortex-jobs
    volumes:
      - /var/run/docker.sock:/var/run/docker.sock
      - /tmp/cortex-jobs:/tmp/cortex-jobs
    ports:
      - "9001:9001"

volumes:
  miniodata:
  cassandradata:
  elasticsearchdata:

3.jpg

Oturum açma sayfasını görmek için [http://localhost:9000] adresinden bağlanın.

Kimlik bilgileri :

Ekran görüntüsü 2024-04-07 172505.png

MinIO'da "thehive" kovasını oluşturmayı unutmayın. Varsayılan kimlik bilgilerini ve gizli dizileri değiştirmeniz önemle tavsiye edilir.

Kendi Yapılandırma Dosyanızı Kullanarak :

Giriş noktası argümanları, bir uygulama.conf dosyasının konteynırda oluşturulması için kullanılır. Özel bir yapılandırma dosyası da sağlanabilir:

thehive:
    image: strangebee/thehive:<version>
    depends_on:
      - cassandra
      - elasticsearch
      - minio
      - cortex
    mem_limit: 1500m
    ports:
      - "9000:9000"
    environment:
      - JVM_OPTS="-Xms1024M -Xmx1024M"
    volumes:
      - <host_conf_folder>:/data/conf
    command:
      - --no-config
      - --config-file
      - /data/conf/application.conf

  ...
docker run --rm -p 9000:9000 -v <host_conf_folder>:/data/conf strangebee/thehive:<version> --no-config --config-file /data/conf/application.conf 

<host_conf_folder> klasörünün bir application.conf dosyası içermesi gerekmektedir.

--no-config, giriş noktasına herhangi bir yapılandırma dosyası oluşturulmamasını söylemek için kullanılır. Aksi takdirde, giriş noktası varsayılan bir yapılandırma oluşturacak ve bu dosya sizin dosyanızla birleştirilecektir.

Komut Satırı Argümanları Kullanarak

Veri depolama için Cassandra ve Elasticsearch ile TheHive'ı çalıştırmanızı ve dosya depolama için minio'yu kullanmanızı öneririz. Örnek olarak, örneklerinizin ana bilgisayar adlarını argümanlar aracılığıyla iletebilirsiniz:

docker run --rm -p 9000:9000 strangebee/thehive:<version> \
    --secret <secret>
    --cql-hostnames <cqlhost1>,<cqlhost2>,...
    --cql-username <cqlusername>
    --cql-password <cqlusername>
    --index-backend elasticsearch
    --es-hostnames <eshost1>,<eshost2>,...
    --s3-endpoint <minio_endpoint>
    --s3-access-key <minio_access_key>
    --s3-secret-key <minio_secret_key>

Bu, docker konteynerinizi harici cassandra ve elasticsearch düğümlerine bağlayacaktır. Veri dosyaları minio üzerinde saklanacaktır. Konteyner, TheHive'ı 9000 numaralı bağlantı noktasında gösterir.

Tüm Seçenekler

Docker giriş noktası tarafından desteklenen tüm seçenekleri -h ile alabilirsiniz:

docker run --rm strangebee/thehive:<version> -h
Available options:
    --config-file <file>                        | configurationYapılandırma filedosyasının pathyolunu belirtir.
    --no-config                                 | doTheHive'ın notgizli trydiziler tove configureElasticsearch TheHiveayarları (addeklemek secretde anddahil elasticsearch)olmak üzere kendini                                                    yapılandırmaya çalışmasını engeller.
    --no-config-secret                          |Yapılandırmada dorastgele notoluşturulmuş addbir randomgizli secretanahtar toeklenmesini configurationhariç tutar.
    --secret <secret>                           | secretOturumları togüvence securealtına sessionsalmak için kullanılan gizli anahtarı ayarlar.
    --show-secret                               | showOluşturulan thegizli generatedanahtarı secretgörüntüler.
    --no-config-db                              | doVeritabanının nototomatik configureolarak databaseyapılandırılmasını automaticallysağlar.
    --cql-hostnames <host>,<host>,...           | resolveCassandra theseörneklerini hostnamesbulmak toiçin findbu cassandraana instancesbilgisayar adlarını çözümler.
    --cql-username <username>                   | usernameCassandra ofveritabanı cassandraiçin databasekullanıcı adını belirtir
    --cql-password <password>                   | passwordCassandra ofveritabanı cassandraiçin databaseparolayı belirtir.
    --no-cql-wait                               | don'tCassandra'nın waitkullanılabilir forolmasını cassandrabeklemeyi atlar.
    --bdb-directory <path>                      | locationCassandra ofkullanılmıyorsa localyerel database,veritabanının ifkonumunu cassandra is not usedtanımlar (default:varsayılan: /data/db).
    --index-backend                             | backendDizin toiçin usekullanılacak forarka index.ucu One ofbelirtir, 'lucene' orveya 'elasticsearch' (default:varsayılan:                                                      lucene).
    --es-hostnames                              | elasticsearchDizin instancesiçin usedkullanılan forElasticsearch indexörneklerini belirtir
    --es-index                                  | elasticsearchKullanılacak indexElasticsearch namedizin toadını usedbelirtir (default:varsayılan: thehive).
    --no-config-storage                         |Depolamanın dootomatik notyapılandırılmasını configuredevre storagedışı automaticallybırakır.
    --storage-directory <path>                  | locationS3 ofkullanılmıyorsa localyerel storage,depolama ifalanının s3konumunu is not usedbelirtir (default:varsayılan: /data/files).)
    --s3-endpoint <endpoint>                    | endpointAWS ofS3 s3 (or other object storage) if used, useiçin 's3.amazonaws.com' forile awsS3'ün s3veya kullanılıyorsa diğer nesne depolamanın uç                                                    noktasını belirtir
    --s3-region <region>                        | s3S3 region,bölgesini optionalbelirtir, forMinIO minioiçin isteğe bağlıdır.
    --s3-bucket <bucket>                        |Kullanılacak namekovanın ofadını the bucket to usebelirtir (default:varsayılan: thehive), thebu bucketkovanın mustzaten alreadyvar existsolması gerekir.
    --s3-access-key <key>                       | s3S3 accesserişim keyanahtarını belirtir (requiredS3 foriçin s3)gereklidir).
    --s3-secret-key <key>                       |S3 s3gizli secretanahtarını keybelirtir (requiredS3 foriçin s3)gereklidir).
    --s3-use-path-access-style                  | setMinIO thisveya flagbaşka ifbir youAWS usedışı minioS3 orsağlayıcısı otherkullanılıyorsa nonbu awsbayrağı s3ayarlar,                                                            provider,varsayılan defaultolarak tosanal virtualana hostbilgisayar stylestili kullanılır.
    --no-config-cortex                          | do not add Cortex configurationyapılandırmasını hariç tutar.
    --cortex-proto <proto>                      | defineCortex'e protocolbağlanmak toiçin connectprotokolü to Cortextanımlar (default:varsayılan: http).
    --cortex-port <port>                        | defineCortex'e portbağlanmak toiçin connectportu to Cortextanımlar (default:varsayılan: 9001).
    --cortex-hostnames <host>,<host>,...        | resolve this hostname to find Cortex instancesörneklerini bulmak için bu ana bilgisayar adlarını çözümler.
    --cortex-keys <key>,<key>,...               | define Cortex keyanahtarlarını tanımlar.
    --kubernetes                                | willDiğer usedüğümlere kuberneteskatılmak apiiçin toKubernetes joinAPI'sini otherkullanır. 
nodes	--kubernetes-pod-label-selector <selector>: |Uygulamayı selectorçalıştıran todiğer usepodları toseçmek selectiçin otherkullanılacak podsseçiciyi running the appbelirtir                                                             (defaultvarsayılan app=thehive).
    --cluster-min-nodes-count <count>           | Bir küme oluşturmak için minimum numberdüğüm ofsayısını nodes to form a clusterbelirtir (defaultvarsayılan to 1)1'dir).
    migrate <param> <param> ...                 | runGeçiş migrationaracını toolçalıştırır.
    cloner <param> <param> ...                  | runKlonlama cloneraracını toolçalıştırır.

Kubernetes'te Kullanım

Bir konteyner, Docker'ın izin verdiğinden çok daha fazla bellek kullanıyor. Konteyner için daha fazla bellek izni vermek için mem_limit parametresini artırabilirsiniz. JVM tabanlı uygulamalar için (TheHive, Cassandra, Elasticsearch gibi) JVM parametrelerini ayarlayarak kullanılacak maksimum heap boyutunu belirleyebilirsiniz. TheHive için JVM_OPTS ortam değişkenini kullanabilirsiniz: JVM_OPTS="-Xms1024M -Xmx1024M"