Bu kısımda, SSL İstemci Kimlik Doğrulaması olmadan Apache Kafka ile SASL Kimlik Doğrulamasının nasıl etkinleştirileceği ele alınmıştır.
Başlamadan önce
İstemci Kimlik Doğrulaması etkinleştirilmiş SASL Kimlik Doğrulaması kullanıyorsanız, bkz. İstemci kimlik denetimini etkinleştirmek için Apache Kafka yapılandırılıyor.
- Kafka sunucusu tarafından kullanılan kapıların bir güvenlik duvarı tarafından engellenmediğinden emin olun.
- 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 sertifika kuruluşu (CA) oluşturur, istemciyi ve aracı sertifikalarını bu kuruluşla imzalar ve aracı güvenilir 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
- 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.
- 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
- 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
- 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
- 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
- CA Sertifikasını Sunucu anahtar deposuna aktarın.
keytool -keystore kafka.server.keystore.jks -alias CARoot
-import -file ca-cert
- İ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
- 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
- İstemci Kimlik Doğrulaması için Kafka aracılarını yapılandırın.
- Yuva Sunucusu Ayarları bölümünü bulun ve
listeners=PLAINTEXT://:<port> ' yi listeners=SSL://:<PORT>olarak değiştirin.
- 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=SASL_SSL
ssl.client.auth=none
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
Not:Parolalar server.propertiesiçinde düz metin olarak saklanmadığından, dosya sistemi izinleriyle dosyaya erişimin kısıtlaması önerilir.
- server.properties ' un değiştirilmiş olduğu Kafka aracılarını yeniden başlatın.