W tej sekcji opisano sposób włączania uwierzytelniania SASL przy użyciu produktu Apache Kafka bez uwierzytelniania klienta SSL.
Zanim rozpoczniesz
Jeśli uwierzytelnianie SASL jest używane z włączonym uwierzytelnianiem klienta, należy zapoznać się z informacjami znajdującymi się w sekcji Konfigurowanie produktu Apache Kafka w celu włączenia uwierzytelniania klienta.
- Upewnij się, że porty, które są używane przez serwer Kafka , nie są blokowane przez firewall.
- Aby włączyć uwierzytelnianie klientów między konsumentami Kafka (QRadar®) i brokerami Kafka , należy wygenerować klucz i certyfikat dla każdego brokera i klienta w klastrze. Certyfikaty muszą być również podpisywane przez ośrodek certyfikacji (CA).
Informacje o tym zadaniu
W poniższych krokach użytkownik generuje ośrodek CA, podpisuje z nim certyfikaty klienta i brokera, a następnie dodaje je do magazynów zaufanych certyfikatów brokera. Klucze i certyfikaty są również generowane przy użyciu narzędzia Java keytool i OpenSSL. Alternatywnie można użyć zewnętrznego ośrodka CA razem z wieloma CA, po jednym dla podpisywania certyfikatów brokera i innym dla certyfikatów klienta.
Procedura
- Wygeneruj magazyn zaufanych certyfikatów, magazyn kluczy, klucz prywatny i certyfikat ośrodka CA.
Uwaga: W następujących komendach z odpowiednimi wartościami należy zastąpić następujące komendy: PASSWORD, VALIDITY, SERVER_ALIAS i CLIENT_ALIAS.
- Wygeneruj magazyn kluczy serwera.
Uwaga:Nazwa zwykła (CN) certyfikatów brokera musi być zgodna z pełną nazwą domenową (FQDN) serwera/hosta. Klient konsumenta Kafka używany przez produkt QRadar porównuje CN z nazwą domeny DNS, aby upewnić się, że łączy się z poprawnym brokerem, a nie ze szkodliwym. Upewnij się, że podczas generowania magazynu kluczy serwera wprowadź wartość FQDN dla wartości CN/Imię i nazwisko .
keytool -keystore kafka.server.keystore.jks -alias SERVER_ALIAS
-validity VALIDITY -genkey
- Przykład
keytool -keystore kafka.server.keystore.jks -alias server.hostname
-validity 365 -genkey
- Wygeneruj certyfikat ośrodka CA.
Uwaga:Ten certyfikat ośrodka CA może być używany do podpisywania wszystkich certyfikatów brokera i klienta.
openssl req -new -x509 -keyout ca-key -out ca-cert -days VALIDITY
- Przykład
openssl req -new -x509 -keyout ca-key -out ca-cert -days 365
- Utwórz magazyn zaufanych certyfikatów serwera i zaimportuj certyfikat CA.
keytool -keystore kafka.server.truststore.jks -alias CARoot
-import -file ca-cert
- Wygeneruj certyfikat serwera i podpisz go za pomocą ośrodka CA.
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
- Przykład
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
- Zaimportuj certyfikat CA do magazynu kluczy serwera.
keytool -keystore kafka.server.keystore.jks -alias CARoot
-import -file ca-cert
- Importowanie certyfikatu podpisanego serwera do magazynu kluczy serwera.
keytool -keystore kafka.server.keystore.jks -alias SERVER_ALIAS -import
-file cert-signed
- Przykład
keytool -keystore kafka.server.keystore.jks -alias server.hostname
-import -file cert-signed
- Wyeksportuj certyfikat serwera do pliku binarnego DER.
Uwaga: W komendzie keytool -exportcert domyślnie używany jest format DER. Umieść certyfikat w katalogu trusted_certificates/ dowolnej EP, która komunikuje się z systemem Kafka. Potrzebny jest certyfikat serwera dla każdego serwera startowego, który jest używany w konfiguracji. W przeciwnym razie program QRadar odrzuci uzgadnianie TLS z serwerem.
keytool -exportcert -keystore kafka.server.keystore.jks -alias
SERVER_ALIAS -file SEVER_ALIAS.der
- Przykład
keytool -exportcert -keystore kafka.server.keystore.jks -alias
server.hostname -file server.hostname.der
- Skonfiguruj brokery Kafka na potrzeby uwierzytelniania klienta.
- Znajdź sekcję Ustawienia serwera gniazd , a następnie zmień
listeners=PLAINTEXT://:<port> na listeners=SSL://:<PORT>.
- Dodaj następujące właściwości, aby wymusić zaszyfrowaną komunikację między brokerami i między brokerami i klientami. Dostosuj ścieżki, nazwy plików i hasła, tak jak ich potrzebujesz. Te właściwości to magazyn zaufanych certyfikatów i magazyn kluczy serwera server:
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
Uwaga:Ponieważ hasła są przechowywane w postaci zwykłego tekstu w server.properties, zaleca się, aby dostęp do tego pliku był ograniczony przez uprawnienia systemu plików.
- Zrestartuj brokery Kafka , które miały zmodyfikowaną server.properties .