Zaawansowane zarządzanie modułem zbierającym dzienniki
W tym artykule opisano sposób konfigurowania zaawansowanych opcji dla Defender for Cloud Apps modułów zbierających dzienniki odnajdywania w chmurze.
Defender for Cloud Apps odnajdywanie w chmurze nadal koncentruje się na podstawowych formatach zapory. Zmiany dzienników przesyłanych dalej na poziomie zapory mogą nie działać nadal lub mogą powodować problemy z analizą. Jeśli znajdziesz błędy tego rodzaju, zalecamy dalsze używanie podstawowego formatu zapory lub używanie opcji z niestandardowym modułem zbierającym dzienniki. Aby uzyskać więcej informacji, zobacz Use a custom log parser (Używanie niestandardowego analizatora dzienników).
W tym artykule opisano sposób modyfikowania konfiguracji platformy Docker Defender for Cloud Apps cloud discovery.
Modyfikowanie konfiguracji protokołu FTP modułu zbierającego dzienniki
Wykonaj następujące kroki w poniższych sekcjach, aby zmodyfikować konfigurację Defender for Cloud Apps platformy Docker do odnajdywania w chmurze.
Weryfikowanie wersji modułu zbierającego dzienniki
Aby sprawdzić wersję modułu zbierającego dzienniki aktualnie zainstalowaną w systemie, połącz się z hostem modułu zbierającego dzienniki i uruchom polecenie:
cat /var/adallom/versions | grep columbus-
Zmienianie hasła FTP
W tej procedurze opisano sposób zmiany hasła używanego do uzyskiwania dostępu do plików modułu zbierającego dzienniki:
Połącz się z hostem modułu zbierającego dzienniki i uruchom polecenie:
docker exec -it <collector name> pure-pw passwd <ftp user>
Wprowadź nowe hasło, a następnie wprowadź je ponownie, aby potwierdzić.
Uruchom następujące polecenie, aby zastosować zmianę:
docker exec -it <collector name> pure-pw mkdb
Powinna być widoczna następująca zawartość:
run_logs
ssl_update
config.json
Dostosowywanie plików certyfikatów
W tej procedurze opisano sposób dostosowywania plików certyfikatów używanych do bezpiecznych połączeń z wystąpieniem platformy Docker odnajdywania w chmurze.
Otwórz klienta FTP i połącz się z hostem modułu zbierającego dzienniki.
Przejdź do
ssl_update
katalogu i przekaż nowe pliki certyfikatów, w tym następujące pliki:Typ odbiornika Wymagane pliki FTP - pure-ftpd.pem: zawiera klucz i dane certyfikatu Dziennik systemowy - ca.pem: certyfikat urzędu certyfikacji, który był używany do podpisywania certyfikatu klienta.
- server-key.pem i server-cert.pem: certyfikat i klucz modułu zbierającego dzienniki
Komunikaty dziennika systemu są wysyłane za pośrednictwem protokołu TLS do modułu zbierającego dzienniki, co wymaga wzajemnego uwierzytelniania TLS, w tym uwierzytelniania certyfikatów klienta i serwera.Nazwy plików są obowiązkowe. Jeśli brakuje dowolnego z plików, aktualizacja zakończy się niepowodzeniem.
W oknie terminalu uruchom polecenie:
docker exec -t <collector name> update_certs
Dane wyjściowe powinny wyglądać podobnie do następującego kodu:
root@DockerPlayground:~# docker exec -t columbus update_certs rsyslog: stopped rsyslog: started ftpd: stopped ftpd: started root@DockerPlayground:~#
W oknie terminalu uruchom polecenie:
docker exec <collector name> chmod -R 700 /etc/ssl/private/
Włączanie modułu zbierającego dzienniki za serwerem proxy
Jeśli korzystasz z serwera proxy, moduł zbierający dzienniki może mieć problemy z wysyłaniem danych do Defender for Cloud Apps. Na przykład może się to zdarzyć, ponieważ moduł zbierający dzienniki nie ufa głównemu urzędowi certyfikatu serwera proxy i nie może nawiązać połączenia z Microsoft Defender for Cloud Apps w celu pobrania konfiguracji lub przekazania odebranych dzienników.
Poniższe procedury opisują sposób włączania modułu zbierającego dzienniki za serwerem proxy.
Porada
Możesz również zmienić certyfikaty używane przez moduł zbierający dzienniki dla dziennika Syslog lub FTP lub rozwiązać problemy z łącznością z zapór i serwerów proxy do modułu zbierającego dzienniki. Aby uzyskać więcej informacji, zobacz Modyfikowanie konfiguracji protokołu FTP modułu zbierającego dzienniki.
Konfigurowanie modułu zbierającego dzienniki za serwerem proxy
Upewnij się, że wykonano kroki niezbędne do uruchomienia platformy Docker na maszynie z systemem Windows lub Linux i pomyślnie pobrano obraz platformy Docker Defender for Cloud Apps na maszynę hosta.
Aby uzyskać więcej informacji, zobacz Konfigurowanie automatycznego przekazywania dzienników dla raportów ciągłych.
Weryfikowanie tworzenia kontenera modułu zbierającego dzienniki platformy Docker
Sprawdź, czy kontener został utworzony i jest uruchomiony. W powłoce uruchom polecenie:
docker ps
Powinno zostać wyświetlone coś podobnego do następujących danych wyjściowych:
Kopiowanie certyfikatu głównego urzędu certyfikacji serwera proxy do kontenera
Z maszyny wirtualnej skopiuj certyfikat urzędu certyfikacji do kontenera Defender for Cloud Apps. W poniższym przykładzie kontener ma nazwę Ubuntu-LogCollector , a certyfikat urzędu certyfikacji nosi nazwę Proxy-CA.crt.
Następujące polecenie kopiuje certyfikat do folderu w uruchomionym kontenerze. Uruchom polecenie na hoście systemu Ubuntu:
docker cp Proxy-CA.crt Ubuntu-LogCollector:/var/adallom/ftp/discovery
Ustawianie konfiguracji do pracy z certyfikatem urzędu certyfikacji
Przejdź do kontenera. Uruchom następujące polecenie, aby otworzyć powłokę bash w kontenerze modułu zbierającego dzienniki:
docker exec -it Ubuntu-LogCollector /bin/bash
W oknie powłoki bash wewnątrz kontenera przejdź do folderu Java
jre
. Aby uniknąć błędu ścieżki związanej z wersją, użyj następującego polecenia:cd "$(find /opt/jdk/*/jre -name "bin" -printf '%h' -quit)" cd bin
Zaimportuj skopiowany wcześniej certyfikat główny z folderu odnajdywania do magazynu Java KeyStore i zdefiniuj hasło.
Domyślne hasło to
changeit
. Aby uzyskać więcej informacji, zobacz Zmienianie hasła magazynu kluczy java../keytool --import --noprompt --trustcacerts --alias SelfSignedCert --file /var/adallom/ftp/discovery/Proxy-CA.crt --keystore ../lib/security/cacerts --storepass <password>
Sprawdź, czy certyfikat został poprawnie zaimportowany do magazynu kluczy urzędu certyfikacji. Uruchom następujące polecenie, aby wyszukać alias podany podczas importowania (SelfSignedCert):
./keytool --list --keystore ../lib/security/cacerts | grep self
Zostanie wyświetlony zaimportowany certyfikat urzędu certyfikacji serwera proxy.
Ograniczanie adresów IP wysyłających komunikaty dziennika systemu do modułu zbierającego dzienniki w systemie Linux
Aby zabezpieczyć obraz platformy Docker i upewnić się, że tylko jeden adres IP może wysyłać komunikaty dziennika systemu do modułu zbierającego dzienniki, utwórz regułę tabeli adresów IP na maszynie hosta, aby zezwolić na ruch wejściowy i usunąć ruch przychodzący przez określone porty, takie jak TCP/601 lub UDP/514, w zależności od wdrożenia.
Poniższe polecenie pokazuje przykład tworzenia reguły tabeli adresów IP, która może zostać dodana do maszyny hosta. Ta reguła tabeli zezwala adresowi IP "1.2.3.4" na nawiązywanie połączenia z kontenerem modułu zbierającego dzienniki za pośrednictwem portu TCP 601 i porzucanie wszystkich innych połączeń pochodzących z innych adresów IP za pośrednictwem tego samego portu.
iptables -I DOCKER-USER \! --src 1.2.3.4 -m tcp -p tcp --dport 601 -j DROP
Ustawianie modułu zbierającego dzienniki do uruchomienia z nową konfiguracją
Kontener jest teraz gotowy.
Uruchom polecenie collector_config przy użyciu tokenu interfejsu API używanego podczas tworzenia modułu zbierającego dzienniki. Przykład:
Po uruchomieniu polecenia określ własny token interfejsu API, na przykład collector_config abcd1234abcd1234abcd1234abcd1234 ${CONSOLE} ${COLLECTOR}
Przykład:
Moduł zbierający dzienniki może teraz komunikować się z Defender for Cloud Apps. Po wysłaniu danych do Defender for Cloud Apps stan modułu zbierającego dzienniki zmieni się z W dobrej kondycji na Połączono. Przykład:
Uwaga
Jeśli musisz zaktualizować konfigurację modułu zbierającego dzienniki, aby na przykład dodać lub usunąć źródło danych, zwykle musisz usunąć kontener i wykonać poprzednie kroki ponownie.
Aby tego uniknąć, możesz ponownie uruchomić narzędzie collector_config przy użyciu nowego tokenu interfejsu API wygenerowanego w portalu Defender for Cloud Apps.
Zmienianie hasła magazynu kluczy języka Java
Zatrzymaj serwer Java KeyStore.
Otwórz powłokę bash wewnątrz kontenera i przejdź do folderu appdata/conf .
Aby zmienić hasło magazynu kluczy serwera, uruchom polecenie:
keytool -storepasswd -new newStorePassword -keystore server.keystore -storepass changeit
Domyślne hasło serwera to
changeit
.Aby zmienić hasło certyfikatu, uruchom polecenie:
keytool -keypasswd -alias server -keypass changeit -new newKeyPassword -keystore server.keystore -storepass newStorePassword
Domyślnym aliasem serwera jest serwer.
W edytorze tekstów otwórz plik server-install\conf\server\secured-installed.properties . Dodaj następujące wiersze kodu, a następnie zapisz zmiany:
- Określ nowe hasło magazynu kluczy Java dla serwera:
server.keystore.password=newStorePassword
- Określ nowe hasło certyfikatu dla serwera:
server.key.password=newKeyPassword
- Określ nowe hasło magazynu kluczy Java dla serwera:
Uruchom serwer.
Przenoszenie modułu zbierającego dzienniki do innej partycji danych w systemie Linux
Wiele firm musi przenieść dane do oddzielnej partycji. W tej procedurze opisano sposób przenoszenia obrazów modułu zbierającego dzienniki platformy Docker Defender for Cloud Apps na partycję danych na hoście systemu Linux.
W tej procedurze opisano przenoszenie danych do partycji o nazwie datastore i przyjęto założenie, że partycja została już zainstalowana. Przykład:
Dodawanie i konfigurowanie nowej partycji na hoście systemu Linux nie znajduje się w zakresie tego przewodnika.
Aby przenieść moduł zbierający dzienniki do innej partycji:
Zatrzymaj usługę Docker. Biegać:
service docker stop
Przenieś dane modułu zbierającego dzienniki do nowej partycji. Biegać:
mv /var/lib/docker /datastore/docker
Usuń stary katalog magazynu platformy Docker (/var/lib/docker) i utwórz link symboliczny do nowego katalogu (/datastore/docker). Biegać:
rm -rf /var/lib/docker && ln -s /datastore/docker /var/lib/
Uruchom usługę Docker. Biegać:
service docker start
Opcjonalnie sprawdź stan modułu zbierającego dzienniki. Biegać:
docker ps
Sprawdzanie użycia dysku modułu zbierającego dzienniki w systemie Linux
W tej procedurze opisano sposób przeglądania użycia i lokalizacji dysku modułu zbierającego dzienniki.
Zidentyfikuj ścieżkę do katalogu, w którym są przechowywane dane modułu zbierającego dzienniki. Biegać:
docker inspect <collector_name> | grep WorkDir
Przykład:
Pobierz rozmiar na dysku modułu zbierającego dzienniki przy użyciu zidentyfikowanej ścieżki bez sufiksu "/work". Biegać:
du -sh /var/lib/docker/overlay2/<log_collector_id>/
Uwaga
Jeśli musisz znać tylko rozmiar dysku, możesz użyć następującego polecenia:
docker ps -s
Przenoszenie modułu zbierającego dzienniki do dostępnego hosta
W środowiskach regulowanych dostęp do usługi Docker Hubs, w której jest hostowany obraz modułu zbierającego dzienniki, może zostać zablokowany. Uniemożliwia to Defender for Cloud Apps importowanie danych z modułu zbierającego dzienniki i można rozwiązać problem z przenoszeniem obrazu modułu zbierającego dzienniki na dostępny host.
W tej procedurze opisano sposób pobierania obrazu modułu zbierającego dzienniki przy użyciu komputera, który ma dostęp do Docker Hub i importowania go do hosta docelowego.
Pobrany obraz można zaimportować do repozytorium prywatnego lub bezpośrednio na hoście. W tej procedurze opisano sposób pobierania obrazu modułu zbierającego dzienniki na komputer z systemem Windows, a następnie przenoszenia modułu zbierającego dzienniki do hosta docelowego za pomocą protokołu WinSCP.
Wymagania wstępne
Upewnij się, że na hoście zainstalowano platformę Docker. Na przykład użyj jednego z następujących plików do pobrania:
Po pobraniu użyj przewodnika instalacji w trybie offline platformy Docker, aby zainstalować system operacyjny.
Rozpocznij proces od wyeksportowania obrazu modułu zbierającego dzienniki , a następnie zaimportuj obraz do hosta docelowego.
Eksportowanie obrazu modułu zbierającego dzienniki z Docker Hub
Poniższe procedury opisują sposób eksportowania obrazu modułu zbierającego dzienniki przy użyciu systemu Linux lub Windows.
Eksportowanie obrazu w systemie Linux
Na komputerze z systemem Linux, który ma dostęp do Docker Hub, uruchom następujące polecenie, aby zainstalować platformę Docker i pobrać obraz modułu zbierającego dzienniki.
curl -o /tmp/MCASInstallDocker.sh https://adaprodconsole.blob.core.windows.net/public-files/MCASInstallDocker.sh && chmod +x /tmp/MCASInstallDocker.sh; /tmp/MCASInstallDocker.sh
Wyeksportuj obraz modułu zbierającego dzienniki. Biegać:
docker save --output /tmp/mcasLC.targ mcr.microsoft.com/mcas/logcollector chmod +r /tmp/mcasLC.tar
Ważna
Pamiętaj, aby użyć parametru wyjściowego do zapisu w pliku zamiast w usłudze STDOUT.
Pobierz obraz modułu zbierającego dzienniki na komputer z systemem Windows w obszarze
C:\mcasLogCollector\
przy użyciu protokołu WinSCP. Przykład:
Eksportowanie obrazu w systemie Windows
Na komputerze Windows 10, który ma dostęp do Docker Hub, zainstaluj program Docker Desktop.
Pobierz obraz modułu zbierającego dzienniki. Biegać:
docker login -u caslogcollector -p C0llector3nthusiast docker pull mcr.microsoft.com/mcas/logcollector
Wyeksportuj obraz modułu zbierającego dzienniki. Biegać:
docker save --output C:\mcasLogCollector\mcasLC.targ mcr.microsoft.com/mcas/logcollector
Ważna
Pamiętaj, aby użyć parametru wyjściowego do zapisu w pliku zamiast w usłudze STDOUT.
Importowanie i ładowanie obrazu modułu zbierającego dzienniki do hosta docelowego
W tej procedurze opisano sposób przenoszenia wyeksportowanego obrazu na hosta docelowego.
Przekaż obraz modułu zbierającego dzienniki do hosta docelowego w obszarze
/tmp/
. Przykład:Na hoście docelowym zaimportuj obraz modułu zbierającego dzienniki do repozytorium obrazów platformy Docker. Biegać:
docker load --input /tmp/mcasLC.tar
Przykład:
Opcjonalnie sprawdź, czy import zakończył się pomyślnie. Biegać:
docker image ls
Przykład:
Teraz możesz przystąpić do tworzenia modułu zbierającego dzienniki przy użyciu obrazu z hosta docelowego.
Definiowanie portów niestandardowych dla odbiorników Syslog i FTP dla modułów zbierających dzienniki w systemie Linux
Niektóre organizacje muszą definiować porty niestandardowe dla usług Syslog i FTP.
Po dodaniu źródła danych moduły zbierające dzienniki Defender for Cloud Apps używają określonych numerów portów do nasłuchiwania dzienników ruchu z co najmniej jednego źródła danych.
Poniższa tabela zawiera listę domyślnych portów nasłuchiwania dla odbiorników:
Typ odbiornika | Porty |
---|---|
Dziennik systemowy | * UDP/514 — UDP/51x * TCP/601 — TCP/60x |
FTP | * TCP/21 |
Aby zdefiniować porty niestandardowe, wykonaj następujące kroki:
W portalu Microsoft Defender wybierz pozycję Ustawienia. Następnie wybierz pozycję Cloud Apps.
W obszarze Cloud Discovery wybierz pozycję Automatyczne przekazywanie dziennika. Następnie wybierz kartę Moduły zbierające dzienniki .
Na karcie Moduły zbierające dzienniki dodaj lub edytuj moduł zbierający dzienniki, a następnie po zaktualizowaniu źródeł danych skopiuj polecenie uruchom z okna dialogowego. Przykład:
Jeśli jest ono używane zgodnie z instrukcjami, podane przez kreatora polecenie konfiguruje moduł zbierający dzienniki do korzystania z portów 514/udp i 515/udp. Przykład:
(echo <credentials>) | docker run --name LogCollector1 -p 514:514/udp -p 515:515/udp -p 21:21 -p 20000-20099:20000-20099 -e "PUBLICIP='10.0.0.100'" -e "PROXY=" -e "SYSLOG=true" -e "CONSOLE=machine.us2.portal.cloudappsecurity.com" -e "COLLECTOR=LogCollector1" --security-opt apparmor:unconfined --cap-add=SYS_ADMIN --restart unless-stopped -a stdin -i mcr.microsoft.com/mcas/logcollector starter
Przykład:
Przed użyciem polecenia na maszynie hosta zmodyfikuj polecenie tak, aby używało portów niestandardowych. Aby na przykład skonfigurować moduł zbierający dzienniki do korzystania z portów UDP 414 i 415, zmień polecenie w następujący sposób:
(echo <credentials>) | docker run --name LogCollector1 -p 414:514/udp -p 415:515/udp -p 21:21 -p 20000-20099:20000-20099 -e "PUBLICIP='10.0.0.100'" -e "PROXY=" -e "SYSLOG=true" -e "CONSOLE=machine.us2.portal.cloudappsecurity.com" -e "COLLECTOR=LogCollector1" --security-opt apparmor:unconfined --cap-add=SYS_ADMIN --restart unless-stopped -a stdin -i mcr.microsoft.com/mcas/logcollector starter
Przykład:
Uwaga
Zmodyfikowano tylko mapowanie platformy Docker. Porty przypisane wewnętrznie nie są zmieniane, dzięki czemu można wybrać dowolny port nasłuchiwania na hoście.
Weryfikowanie formatu ruchu i dziennika odebranego przez moduł zbierający dzienniki w systemie Linux
Czasami może być konieczne zbadanie następujących problemów:
- Moduły zbierające dzienniki odbierają dane: sprawdź, czy moduły zbierające dzienniki odbierają komunikaty dziennika systemu z urządzeń i nie są blokowane przez zapory.
- Odebrane dane mają prawidłowy format dziennika: zweryfikuj format dziennika, aby ułatwić rozwiązywanie problemów z błędami analizowania, porównując format dziennika oczekiwany przez Defender for Cloud Apps i format wysłany przez urządzenie.
Wykonaj następujące kroki, aby sprawdzić, czy ruch jest odbierany przez moduły zbierające dzienniki:
Zaloguj się na serwerze hostującym kontener platformy Docker.
Sprawdź, czy moduł zbierający dzienniki odbiera komunikaty dziennika systemu przy użyciu dowolnej z następujących metod:
Użyj tcpdump lub podobnego polecenia, aby przeanalizować ruch sieciowy na porcie 514:
tcpdump -Als0 port 514
Jeśli wszystko jest poprawnie skonfigurowane, powinien zostać wyświetlony ruch sieciowy z urządzeń. Przykład:
Użyj narzędzia netcat lub podobnego polecenia do analizowania ruchu sieciowego na maszynie hosta:
Zainstaluj narzędzia netcat i wget.
Pobierz przykładowy plik dziennika z Microsoft Defender XDR. W razie potrzeby rozpakuj plik dziennika.
W Microsoft Defender XDR w obszarze Cloud Apps wybierz pozycjęAkcje odnajdywania>>w chmurzeUtwórz raport migawki usługi Cloud Discovery.
Wybierz źródło danych , z którego chcesz przekazać pliki dziennika.
Wybierz pozycję Wyświetl i sprawdź , a następnie kliknij prawym przyciskiem myszy pozycję Pobierz przykładowy dziennik i skopiuj link adresu URL.
Wybierz pozycję Zamknij>anuluj.
Biegać:
wget <URL_address_to_sample_log>
Uruchom
netcat
polecenie , aby przesłać strumieniowo dane do modułu zbierającego dzienniki.cat <path_to_downloaded_sample_log>.log | nc -w 0 localhost <datasource_port>
Jeśli moduł zbierający jest poprawnie skonfigurowany, dane dziennika są obecne w pliku komunikatów, a wkrótce potem są przekazywane do portalu Defender for Cloud Apps.
Sprawdź odpowiednie pliki w kontenerze platformy Docker Defender for Cloud Apps:
Zaloguj się do kontenera. Biegać:
docker exec -it <Container Name> bash
Ustal, czy komunikaty dziennika systemowego są zapisywane w pliku komunikatów. Biegać:
cat /var/adallom/syslog/<your_log_collector_port>/messages
Jeśli wszystko jest poprawnie skonfigurowane, powinien zostać wyświetlony ruch sieciowy z urządzeń. Przykład:
Uwaga
Ten plik będzie nadal zapisywany do momentu osiągnięcia rozmiaru 40 KB. Przykład:
Przejrzyj dzienniki przekazane do Defender for Cloud Apps w
/var/adallom/discoverylogsbackup
katalogu. Przykład:Zweryfikuj format dziennika odebrany przez moduł zbierający dzienniki, porównując komunikaty przechowywane w
/var/adallom/discoverylogsbackup
pliku z formatem dziennika przykładowego podanym w kreatorze Defender for Cloud Apps Tworzenie modułu zbierającego dzienniki.
Zapisywanie danych wyjściowych pliku komunikatów w pliku lokalnym
Jeśli chcesz użyć własnego przykładowego dziennika, ale nie masz dostępu do urządzenia, użyj następujących poleceń, aby zapisać dane wyjściowe pliku komunikatów znajdującego się w katalogu dziennika modułu zbierającego dzienniki do pliku lokalnego na hoście:
docker exec CustomerLogCollectorName tail -f -q /var/adallom/syslog/<datasource_port>/messages > /tmp/log.log
Porównaj plik wyjściowy (/tmp/log.log
) z komunikatami przechowywanymi /var/adallom/discoverylogsbackup
w katalogu.
Aktualizowanie wersji modułu zbierającego dzienniki
Podczas aktualizowania modułu zbierającego dzienniki:
- Przed zainstalowaniem nowej wersji pamiętaj, aby zatrzymać moduł zbierający dzienniki i usunąć bieżący obraz.
- Po zainstalowaniu nowej wersjizaktualizuj pliki certyfikatów.
Następne kroki
Jeśli napotkasz jakiekolwiek problemy, jesteśmy tutaj, aby pomóc. Aby uzyskać pomoc lub pomoc techniczną dotyczącą problemu z produktem, otwórz bilet pomocy technicznej.