Bezpieczne przekazywanie dziennika systemowego SLES za pomocą rsyslog i wzajemnego protokołu TLS

Aby bezpiecznie przekazywać logi systemowe SUSE Linux Enterprise Server (SLES), należy skonfigurować rsyslog do wysyłania wiadomości przez port TCP 6514 chroniony protokołem TLS, zweryfikować nazwę certyfikatu kolektora i potwierdzić dostarczenie zdarzeniem testowym. 27 marca 2026 r. w systemie SLES 15 SP7 pojawiła się opcjonalna aktualizacja rsyslog, która dodała moduł OpenSSL TLS. Poniższa konfiguracja celowo wykorzystuje gtlszamiast tego istniejący moduł GnuTLS ( ).

Ta procedura obejmuje nadawcę SLES 15 o nazwie sles01.example.neti kolektor rsyslog o nazwie logs.example.net. Zastąp obie nazwy i wszystkie ścieżki certyfikatów własnymi wartościami. Korzysta ona z wzajemnego protokołu TLS, więc kolektor uwierzytelnia nadawcę, jak również nadawcę uwierzytelniającego kolektor.

1. Sprawdź rsyslog i ścieżkę logowania SLES

Na obu hostach zainstaluj demona rsyslog i jego moduł GnuTLS z zarejestrowanych repozytoriów SUSE. Istniejące instalacje mogą już zawierać pierwszy pakiet.

sudo zypper install rsyslog rsyslog-module-gtls
rpm -q rsyslog rsyslog-module-gtls
sudo systemctl enable --now rsyslog
rsyslogd -v

Przed dodaniem reguł przejrzyj /etc/rsyslog.confistniejące fragmenty kodu /etc/rsyslog.d/. W szczególności wyłącz wszelkie starsze, niezaszyfrowane *.* @@hostreguły przekierowywania dla tego samego miejsca docelowego; w przeciwnym razie wiadomości mogą być przesyłane dwiema trasami, w tym jedną bez TLS.

SLES używa systemd-journaldzdarzeń dziennika, podczas gdy rsyslog przetwarza dane wejściowe syslog. Upewnij się, że potrzebne zdarzenia docierają do rsyslog poprzez istniejącą konfigurację danych wejściowych. Dokumenty SUSE ForwardToSyslog=yessą przeznaczone /etc/systemd/journald.confdo przekazywania z dziennika do sysloga; sprawdź wdrożenie przed jego zmianą, ponieważ oddzielne włączenie czytników dziennika może powodować duplikowanie zdarzeń. Ta procedura przekazuje komunikaty już przetworzone przez rsyslog, a nie /var/logautomatycznie każdy plik.

Okno terminala pokazujące sprawdzanie pakietów rsyslog oraz pliki urzędu certyfikacji, certyfikatu klienta i klucza prywatnego dla nadawcy SLES.
Przed włączeniem protokołu TLS sprawdź instalację rsyslog i upewnij się, że nadawca ma oddzielny urząd certyfikacji, certyfikat i pliki kluczy.

2. Przygotuj zaufane certyfikaty serwera i klienta

Użyj urzędu certyfikacji (CA) kontrolowanego przez organizację do wystawienia certyfikatu z alternatywną nazwą podmiotu DNS logs.example.netdla kolektora oraz oddzielnego certyfikatu identyfikującego sles01.example.netnadawcę. Upewnij się, że certyfikaty są ważne dla ich ról serwera TLS lub klienta i że oba komputery ufają wystawiającemu urzędowi certyfikacji. Postępuj zgodnie z procedurą PKI dotyczącą generowania i odnawiania; nie używaj ponownie klucza prywatnego na różnych hostach.

Skopiuj odpowiednie pliki przez bezpieczny kanał zatwierdzony przez administratora. W tym przykładzie oba komputery używają /etc/rsyslog.d/tls/ca.pem. Kolektor dodatkowo ma server-cert.pem□ server-key.pem; nadawca ma client-cert.pem□ client-key.pem.

sudo install -d -m 0750 /etc/rsyslog.d/tls
sudo chmod 0600 /etc/rsyslog.d/tls/*-key.pem
sudo chmod 0644 /etc/rsyslog.d/tls/ca.pem

W razie potrzeby ogranicz dostęp do certyfikatów i kluczy dla tożsamości usługi rsyslog. Nie ujawniaj kluczy prywatnych w diagnostyce, historii powłoki, repozytoriach Git ani w wyeksportowanym strumieniu dziennika. Przed ponownym uruchomieniem demona upewnij się, że proces rsyslog może odczytać swój klucz.

3. Włącz uwierzytelnionego odbiorcę TLS na kolektorze

W przypadku logs.example.net, dodaj poniższy kod jako /etc/rsyslog.d/30-tls-listener.conf. Jeśli imtcpjest już załadowany gdzie indziej, zachowaj tylko jedno polecenie ładowania modułu. Dedykowany zestaw reguł umieszcza wiadomości odebrane zdalnie w osobnym pliku, zamiast mieszać je z lokalnymi wiadomościami systemowymi.

global(
  DefaultNetstreamDriverCAFile="/etc/rsyslog.d/tls/ca.pem"
  DefaultNetstreamDriverCertFile="/etc/rsyslog.d/tls/server-cert.pem"
  DefaultNetstreamDriverKeyFile="/etc/rsyslog.d/tls/server-key.pem"
)
module(load="imtcp")
ruleset(name="remote_tls") {
  action(type="omfile" file="/var/log/remote-tls.log")
}
input(
  type="imtcp"
  port="6514"
  StreamDriver.Name="gtls"
  StreamDriver.Mode="1"
  StreamDriver.AuthMode="x509/name"
  PermittedPeer="sles01.example.net"
  ruleset="remote_tls"
)

StreamDriver.Mode="1"Włącza TLS, jednocześnie x509/nameodrzucając PermittedPeerklientów bez zaakceptowanej tożsamości certyfikatu. Pojedyncza dozwolona nazwa jest celowa; rozszerza listę zatwierdzonych nadawców podczas dodawania kolejnych nadawców zamiast osłabiać uwierzytelnianie.

sudo rsyslogd -N1
sudo systemctl restart rsyslog
sudo firewall-cmd --permanent --add-port=6514/tcp
sudo firewall-cmd --reload
sudo ss -ltn | grep ':6514'

Uruchom polecenia zapory tylko wtedy, gdy kolektor korzysta z firewalld. Ogranicz ruch przychodzący TCP/6514 do znanych sieci nadawców, używając swojego hosta lub zapory sieciowej nadrzędnej; otwarcie portu nie zastępuje uwierzytelniania certyfikatem. Sprawdź również, czy żaden istniejący wcześniej nasłuchiwacz tekstu jawnego nie został przypadkowo ujawniony.

Edytor konfiguracji wyświetlający nasłuchiwacz rsyslog imtcp na porcie TCP 6514 z uwierzytelnianiem gtls i x509/name.
Program nasłuchujący TLS kolektora używa portu 6514, trybu GnuTLS 1 i uwierzytelniania za pomocą nazwy certyfikatu. W artykule przedstawiono pełną konfigurację odbiornika.

4. Dodaj przekazywanie TLS i ograniczoną kolejkę do SLES

Włącz sles01.example.net, upewnij się, że katalog roboczy rsyslog istnieje i jest dostępny do zapisu przez usługę. Pokazany tutaj katalog jest przykładowy; zachowaj już skonfigurowany, workDirectoryjeśli pakiet instalacyjny go zawiera. Dodaj ten fragment kodu jako /etc/rsyslog.d/60-tls-forward.conf:

global(
  DefaultNetstreamDriverCAFile="/etc/rsyslog.d/tls/ca.pem"
  DefaultNetstreamDriverCertFile="/etc/rsyslog.d/tls/client-cert.pem"
  DefaultNetstreamDriverKeyFile="/etc/rsyslog.d/tls/client-key.pem"
)
*.* action(
  type="omfwd"
  target="logs.example.net"
  port="6514"
  protocol="tcp"
  StreamDriver="gtls"
  StreamDriverMode="1"
  StreamDriverAuthMode="x509/name"
  StreamDriverPermittedPeers="logs.example.net"
  queue.type="LinkedList"
  queue.filename="tls_forward"
  queue.size="10000"
  queue.maxDiskSpace="1g"
  queue.saveOnShutdown="on"
  action.resumeRetryCount="-1"
)

Ustawienia TLS uwierzytelniają kolektor przed wysłaniem. Kolejka akcji wspomagana dyskiem buforuje wiadomości podczas krótkich przerw w działaniu i ponawia próby przekazania w przypadku nieudanej operacji, ale nie jest nieskończona ani nie gwarantuje całkowitej utraty wiadomości: nadal istotne są: dostępne miejsce na dysku, limity kolejki, zachowanie procesu podczas zamykania i stan odbiornika. Przed skorzystaniem z buforowania dyskowego sprawdź efektywny katalog roboczy rsyslog i utwórz go z odpowiednim właścicielem.

Sprawdź poprawność i uruchom ponownie nadawcę:

sudo rsyslogd -N1
sudo systemctl restart rsyslog

Jeśli walidacja konfiguracji się nie powiedzie, nie uruchamiaj ponownie; popraw pierwszy zgłoszony błąd. W istniejącym wdrożeniu rsyslog globalne dyrektywy certyfikatów mogą wpływać na inne akcje TLS. Sprawdź inne akcje wychodzące i użyj obsługiwanych parametrów certyfikatu dla każdej akcji, jeśli wymagają innych poświadczeń.

Edytor konfiguracji pokazujący akcję rsyslog omfwd ukierunkowaną na logs.example.net na porcie 6514 z weryfikacją nazwy certyfikatu TLS.
Przekazuj komunikaty systemowe do logs.example.net, korzystając z akcji omfwd z włączonym protokołem TLS; dodaj ustawienia certyfikatu i kolejkę odporną z towarzyszącego kodu.

5. Sprawdź odbiór i zbadaj nieudane uzgadnianie

Najpierw sprawdź, czy kolektor nasłuchuje na protokole TCP/6514 i czy nadawca może połączyć się z hostem przez zaporę. Następnie uruchom następujące polecenie na nadawcy SLES:

logger -t sles-tls-check "TLS forwarding probe"

Na kolektorze wyszukaj skonfigurowany zdalny plik dziennika:

sudo grep 'TLS forwarding probe' /var/log/remote-tls.log
sudo journalctl -u rsyslog -n 50 --no-pager

Znalezienie znacznika w /var/log/remote-tls.logpotwierdza, że ​​ścieżka przekierowania na poziomie aplikacji zadziałała w tym teście. Nie dowodzi to jednak, że każdy plik dziennika specyficzny dla aplikacji jest gromadzony. Aby niezależnie przetestować uwierzytelnianie, tymczasowo użyj innego, niezaufanego certyfikatu lub niezgodnej nazwy partnera w kontrolowanym oknie konserwacji i potwierdź, że połączenie TLS nie powiedzie się; natychmiast przywróć pierwotną konfigurację.

Terminal wyświetlający weryfikację konfiguracji rsyslog, oznaczoną sondę rejestratora i polecenie sprawdzenia pliku dziennika kolektora.
Sprawdź poprawność rsyslog i wyślij unikalnie oznaczoną wiadomość testową, a następnie sprawdź dziennik kolektora pod kątem sondy zamiast zakładać jej dostarczenie.

Jeżeli znacznik się nie pojawi, postępuj zgodnie z kolejnością wystąpienia błędu:

  • Brak nasłuchiwania lub odrzucone połączenie: sprawdź systemctl status rsyslogreguły zapory TCP/6514 i kolektora.
  • Błąd TLS lub certyfikatu: porównaj numery SAN certyfikatu z numerem PermittedPeeri StreamDriverPermittedPeers; sprawdź łańcuch urzędu certyfikacji, daty wygaśnięcia, zegary systemowe i uprawnienia klucza prywatnego.
  • Połączono, ale brak zdarzeń: sprawdź zduplikowane lub brakujące dane wejściowe dziennika/sysloga, wstrzymane akcje przekierowywania i pojemność kolejki dyskowej. Sprawdź journalctl -u rsyslogna obu hostach.

Metoda ta jest zgodna z oficjalnym przewodnikiem logowania systemowego SLES 15 SP7 , przewodnikiem klienta uwierzytelnianego certyfikatem rsyslog , dokumentacją programu nasłuchującego imtcp oraz dokumentacją przekazywania omfwd . Informacja o aktualizacji SUSE z marca 2026 roku dokumentuje dodanie opcjonalnego modułu OpenSSL. Konfiguracje różnią się w zależności od pakietu Service Pack SLES, dlatego przed wprowadzeniem zmian w środowisku produkcyjnym należy sprawdzić poprawność zainstalowanej kompilacji rsyslog.

Zostaw komentarz

Kiedy SLES Btrfs przechodzi w tryb tylko do odczytu: diagnoza przed ponownym zamontowaniem

Kiedy SLES Btrfs przechodzi w tryb tylko do odczytu: diagnoza przed ponownym zamontowaniem

Określ, czy system Btrfs jest celowo przeznaczony tylko do odczytu, ma mało miejsca lub chroni dane po błędach, a następnie wybierz ścieżkę odzyskiwania odpowiadającą danej przyczynie.

Rejestracja systemu SLES 15 za pomocą programu SUSE Manager w sieci offline

Rejestracja systemu SLES 15 za pomocą programu SUSE Manager w sieci offline

Przygotuj kanały lustrzane, utwórz klucz aktywacyjny i uruchom klienta SLES 15 bez bezpośredniego dostępu do Internetu, zachowując połączenie niezbędne do meldowania się menedżera.

Uruchomienie przekierowania X11 w YaST przez SSH

Uruchomienie przekierowania X11 w YaST przez SSH

Naprawiono błąd uruchamiania XIO w YaST przez SSH, zweryfikowano przekazywanie X11 i xauth oraz przełączono na interfejs ncurses, gdy zdalne okno nie jest potrzebne.

Bezpieczne przywracanie nieudanej aktualizacji SLES za pomocą Snappera

Bezpieczne przywracanie nieudanej aktualizacji SLES za pomocą Snappera

Znajdź migawkę Btrfs sprzed aktualizacji, przetestuj ją w trybie tylko do odczytu i wykonaj trwałe odzyskiwanie za pomocą Snapper, pamiętając o tym, które dane pozostają poza wycofaniem do katalogu głównego.

Bezpieczne przekazywanie dziennika systemowego SLES za pomocą rsyslog i wzajemnego protokołu TLS

Bezpieczne przekazywanie dziennika systemowego SLES za pomocą rsyslog i wzajemnego protokołu TLS

Wysyłaj logi systemu SLES do zdalnego kolektora rsyslog za pośrednictwem uwierzytelnionego protokołu TLS, z kontrolą certyfikatów, buforowaniem przerw i testami dostarczania.

Śledź błędy pamięci aktualizacji SLES przed ponowną próbą

Śledź błędy pamięci aktualizacji SLES przed ponowną próbą

Użyj pamięci RAM, wymiany, jądra i dzienników Zypper, aby zidentyfikować rzeczywiste obciążenie pamięci, chronić stan pakietu i wybrać bezpieczniejszą ponowną próbę aktualizacji SLES.

Utrzymywanie aktualizacji zabezpieczeń Debiana 12 na serwerze bez interfejsu graficznego

Utrzymywanie aktualizacji zabezpieczeń Debiana 12 na serwerze bez interfejsu graficznego

Włącz automatyczne aktualizacje zabezpieczeń Debiana przez SSH, zachowaj domyślne źródła pakietów i zweryfikuj zaplanowane uruchomienia za pomocą dzienników systemd i APT.

Otrzymuj ostrzeżenia dotyczące dysku SMART Ubuntu e-mailem za pomocą smartd

Otrzymuj ostrzeżenia dotyczące dysku SMART Ubuntu e-mailem za pomocą smartd

Porównaj opcje dostarczania poczty, skonfiguruj smartd w systemie Ubuntu i sprawdź, czy ostrzeżenia dotyczące stanu dysku docierają do Twojej skrzynki odbiorczej.

Niepowodzenia wyszukiwania DNS w systemie Debian 12: naprawa błędu systemd-resolved

Niepowodzenia wyszukiwania DNS w systemie Debian 12: naprawa błędu systemd-resolved

Przywróć wyszukiwania DNS w systemie Debian 12, sprawdzając systemd-resolved, naprawiając w razie potrzeby resolv.conf oraz weryfikując rozdzielczość DNS i aplikacji.

Ubuntu 24.04 nie wyświetla dźwięku HDMI? Przywróć wyjście

Ubuntu 24.04 nie wyświetla dźwięku HDMI? Przywróć wyjście

Spraw, aby Ubuntu wykrył monitor lub telewizor jako wyjście audio, wybierz je w ustawieniach dźwięku i sprawdź połączenie lub listę urządzeń PipeWire, jeśli brakuje złącza HDMI.