İstemci kimlik denetimini etkinleştirmek için Apache Kafka ' nın yapılandırılması

This task discusses how to enable Client Authentication with Apache Kafka.

Başlamadan önce

  1. Kafka sunucusu tarafından kullanılan kapıların bir güvenlik duvarı tarafından engellenmediğinden emin olun.
  2. Kafka tüketicileri (QRadar®) ve bir Kafka aracıları arasında istemci kimlik doğrulamasını etkinleştirmek için, kümedeki her aracı ve istemci için bir anahtar ve sertifika oluşturulmalıdır. Sertifikaların bir sertifika kuruluşu (CA) tarafından da imzalanabilmeleri gerekir.

Bu görev hakkında

Aşağıdaki adımlarda, bir CA oluşturur, istemciyi ve aracı sertifikalarını bu sertifika ile imzalar ve istemciye ve aracı güvenilirlik depolarına ekleyebilirsiniz. Ayrıca, Java anahtar aracını ve OpenSSL' yi kullanarak anahtarları ve sertifikaları da oluşturursun. Diğer bir seçenek olarak, bir dış sertifika kuruluşu (CA) birden çok CA ' yla birlikte, biri aracı sertifikalarını imzalamak için, diğeri de istemci sertifikaları için kullanılabilir.

İşlem

  1. Güvenilirlik deposu, anahtar deposu, özel anahtar ve CA sertifikası oluşturun.
    Not: Aşağıdaki komutlarda PASSWORD, VALIER, SERVER_ALIAS ve CLIENT_ALIAS değerini uygun değerlerle değiştirin.
    1. Sunucu anahtar deposu oluştur.
      Not:

      Aracı sertifikalarının ortak adı (CN), sunucunun/anasistemin tam etki alanı adı (FQDN) ile eşleşmelidir. QRadar tarafından kullanılan Kafka Tüketici istemcisi, kötü amaçlı bir aracı yerine doğru aracıya bağlanmasını sağlamak için, DNS etki alanı adıyla CN ' yi karşılaştırır. Sunucu anahtar deposunu oluşturduğunuzda, CN/İlk ve Soyadı değerine ilişkin FQDN değerini girdiğinizden emin olun.

      keytool -keystore kafka.server.keystore.jks -alias SERVER_ALIAS
       -validity VALIDITY -genkey
      Örnek
      keytool -keystore kafka.server.keystore.jks -alias server.hostname
       -validity 365 -genkey
    2. CA Sertifikası Oluştur.
      Not:

      Bu CA sertifikası tüm aracıyı ve istemci sertifikalarını imzalamak için kullanılabilir.

      openssl req -new -x509 -keyout ca-key -out ca-cert -days VALIDITY
      Örnek
      openssl req -new -x509 -keyout ca-key -out ca-cert -days 365
    3. Sunucu güvenilirlik deposu oluşturun ve CA Sertifikasını içe aktarın.
      keytool -keystore kafka.server.truststore.jks -alias CARoot
       -import -file ca-cert
    4. İstemci güvenli deposu yaratın ve CA sertifikasını içe aktarın.
      keytool -keystore kafka.client.truststore.jks -alias CARoot
       -import -file ca-cert
    5. Bir Sunucu Sertifikası oluşturun ve CA ' yı kullanarak bunu imzalayın.
      keytool -keystore kafka.server.keystore.jks -alias SERVER_ALIAS
       -certreq -file cert-file
      openssl x509 -req -CA ca-cert -CAkey ca-key -in cert-file -out
       cert-signed -days VALIDITY -CAcreateserial
      Örnek
      keytool -keystore kafka.server.keystore.jks -alias server.hostname 
      -certreq -file cert-file 
      openssl x509 -req -CA ca-cert -CAkey ca-key -in cert-file -out
       cert-signed -days 365 -CAcreateserial 
    6. CA Sertifikasını Sunucu anahtar deposuna aktarın.
      keytool -keystore kafka.server.keystore.jks -alias CARoot
       -import -file ca-cert
    7. İmzalanmış Sunucu Sertifikasını Sunucu anahtar deposuna aktarın.
      keytool -keystore kafka.server.keystore.jks -alias SERVER_ALIAS -import
       -file cert-signed
      Örnek
      keytool -keystore kafka.server.keystore.jks -alias server.hostname
       -import -file cert-signed
    8. Sunucu sertifikasını ikili DER dosyasında dışa aktarın.
      Not: keytool -exportcert komutu varsayılan olarak DER biçimini kullanır. Sertifikayı, Kafkaile iletişim kuran herhangi bir EP ' nin trusted_certificates/ dizinine yerleştirin. Yapılandırmada kullandığınız her önyükleme sunucusu için sunucu sertifikasına gereksinim duyarsınız. Tersi durumda, QRadar , sunucuyla TLS tokalaşmasını reddeder.
      keytool -exportcert -keystore kafka.server.keystore.jks -alias
       SERVER_ALIAS -file SEVER_ALIAS.der
      Örnek
      keytool -exportcert -keystore kafka.server.keystore.jks -alias
       server.hostname -file server.hostname.der
    9. İstemci anahtar deposu oluşturulur.
      keytool -keystore kafka.client.keystore.jks -alias CLIENT_ALIAS
       -validity VALIDITY -genkey
      Örnek
      keytool -keystore kafka.client.keystore.jks -alias client.hostname
       -validity 365 -genkey
    10. Bir İstemci Sertifikası oluşturun ve CA ' yı kullanarak bunu imzalayın.
      keytool -keystore kafka.client.keystore.jks -alias CLIENT_ALIAS
       -certreq -file client-cert-file
      openssl x509 -req -CA ca-cert -CAkey ca-key -in client-cert-file -out
       client-cert-signed -days VALIDITY -CAcreateserial 
      Örnek
      keytool -keystore kafka.client.keystore.jks -alias client.hostname
       -certreq -file client-cert-file 
      openssl x509 -req -CA ca-cert -CAkey ca-key -in client-cert-file
       -out client-cert-signed -days 365 -CAcreateserial
    11. CA Sertifikasını İstemci anahtar deposuna aktarın.
      keytool -keystore kafka.client.keystore.jks -alias CARoot
       -import -file ca-cert
    12. İmzalı İstemci Sertifikasını İstemci anahtar deposuna aktar.
      keytool -keystore kafka.client.keystore.jks -alias CLIENT_ALIAS
       -import -file client-cert-signed
      Örnek
      keytool -keystore kafka.client.keystore.jks -alias client.hostname
       -import -file client-cert-signed
    13. İstemci anahtar deposunu ve güvenilirlik deposunu ve QRadar' yi kopyalayın.
      1. Günlük kaynağının yapılandırıldığı olay işlemcilerinin her birinde kafka.client.keystore.jks ve kafka.client.truststore.jks dosyasını /opt/qradar/conf/trusted_certificates/kafka/ ' e kopyalayın.
      2. Her bir aracı için oluşturulan <filename>.der sunucu sertifikalarını /opt/qradar/conf/trusted_certificates/' e kopyalayın.
  2. İstemci Kimlik Doğrulaması için Kafka aracılarını yapılandırın.
    1. Socket Server Settings (Yuva Sunucusu Ayarları) bölümünü bulun.
    2. Aşağıdaki seçeneklerden birini tamamlayın:
      • SASL Kimlik Doğrulaması kullanmıyorsa, listeners=PLAINTEXT://:<port> seçeneğini listeners=SSL://:<PORT> olarak değiştirin ve security.inter.broker.protocol=SSLekleyin.
      • SASL Kimlik Doğrulaması kullanıyorsanız, listeners=PLAINTEXT://:<port> seçeneğini listeners=SASL_SSL://:<PORT> olarak değiştirin ve security.inter.broker.protocol=SASL_SSL' yi ekleyin.
    3. Aracılar ve aracılar ve istemciler arasında şifrelenmiş iletişimi zorlamak için aşağıdaki özellikleri ekleyin. Yollar, dosya adları ve parolalar için gereken şekilde ayarlayın. Bu özellikler, sunucu' ın güvenilirlik deposu ve anahtar depolarıdır:

      security.inter.broker.protocol=SSL

      ssl.client.auth=required

      ssl.keystore.location=/somefolder/kafka.server.keystore.jks

      ssl.keystore.password=test1234

      ssl.key.password=test1234

      ssl.truststore.location=/somefolder/kafka.server.truststore.jks

      ssl.truststore.password=test1234
      Önemli: Parolalar server.properties' ta düz metin olarak saklanmadığından, dosya sistemi izinleriyle dosyaya erişimin kısıtlaması önerilir.
    4. server.properties ' un değiştirilmiş olduğu Kafka aracılarını yeniden başlatın.