50
BASEL BERN BRUGG DÜSSELDORF FRANKFURT A.M. FREIBURG I.BR. GENF HAMBURG KOPENHAGEN LAUSANNE MÜNCHEN STUTTGART WIEN ZÜRICH Rsyslog – deutsche Qualitätsarbeit für Linux DOAG Jahrestagung 18. November 2015 Roman Gächter

Rsyslog - Deutsche Qualitätsarbeit für Linux

Embed Size (px)

Citation preview

Page 1: Rsyslog - Deutsche Qualitätsarbeit für Linux

BASEL BERN BRUGG DÜSSELDORF FRANKFURT A.M. FREIBURG I.BR. GENF HAMBURG KOPENHAGEN LAUSANNE MÜNCHEN STUTTGART WIEN ZÜRICH

Rsyslog – deutsche Qualitätsarbeit für Linux

DOAG Jahrestagung 18. November 2015

Roman Gächter

Page 2: Rsyslog - Deutsche Qualitätsarbeit für Linux

Unser Unternehmen.

© Trivadis – Das Unternehmen 2 14/11/15

Trivadis ist führend bei der IT-Beratung, der Systemintegration, dem Solution Engineering und der Erbringung von IT-Services mit Fokussierung auf - und -Technologien in der Schweiz, Deutschland, Österreich und Dänemark. Trivadis erbringt ihre Leistungen aus den strategischen Geschäftsfeldern: Trivadis Services übernimmt den korrespondierenden Betrieb Ihrer IT Systeme.

B E T R I E B

Page 3: Rsyslog - Deutsche Qualitätsarbeit für Linux

KOPENHAGEN

MÜNCHEN

LAUSANNE BERN

ZÜRICH BRUGG

GENF

HAMBURG

DÜSSELDORF

FRANKFURT

STUTTGART

FREIBURG

BASEL

WIEN

Mit über 600 IT- und Fachexperten bei Ihnen vor Ort.

© Trivadis – Das Unternehmen 3 14/11/15

14 Trivadis Niederlassungen mit über 600 Mitarbeitenden.

Über 200 Service Level Agreements.

Mehr als 4'000 Trainingsteilnehmer.

Forschungs- und Entwicklungsbudget: CHF 5.0 Mio.

Finanziell unabhängig und nachhaltig profitabel.

Erfahrung aus mehr als 1'900 Projekten pro Jahr bei über 800 Kunden.

Page 4: Rsyslog - Deutsche Qualitätsarbeit für Linux

Agenda

Rsyslog – deutsche Qulitästarbeit für Linux 4

14/11/15

1.  Konzept der Syslog Implementierung 2.  Rsyslog

Übersicht Features

3.  Konfiguration Server Client

4.  Auditd 5.  Betrieb

Upgrades Administration Fehlersuche

6.  Fazit

Page 5: Rsyslog - Deutsche Qualitätsarbeit für Linux

Rsyslog – deutsche Qulitästarbeit für Linux 14/11/15

Syslog Konzept

Page 6: Rsyslog - Deutsche Qualitätsarbeit für Linux

Syslog Konzept

Rsyslog – deutsche Qulitästarbeit für Linux 6 14/11/15

Zentrale Ablage von Syslogs

Syslog Server

–  Zwei redundante Server

  Verwenden von Rsyslog

–  Neuer Standard für RHEL basierte Distributionen

–  Enterprise Erweiterungen in Rsyslog

•  high-performance“

•  „great security features“

•  Verschlüsselte Übertragung mit TLS

•  „modular design“

Page 7: Rsyslog - Deutsche Qualitätsarbeit für Linux

Syslog Konzept

Rsyslog – deutsche Qulitästarbeit für Linux 7 14/11/15

Zentrale Ablage von Syslogs

  Sammeln Security relevanter Logs

  Korrelieren und trennen nach

–  „priorities“

–  „facilities“

  Audit Watches

–  Alarmierung durch Rsyslog

  Filter Rules

–  Proaktive Reaktion auf Fehler

Page 8: Rsyslog - Deutsche Qualitätsarbeit für Linux

Übersicht Konzept

Rsyslog – deutsche Qulitästarbeit für Linux 8 14/11/15

Page 9: Rsyslog - Deutsche Qualitätsarbeit für Linux

Syslog Konzept

Rsyslog – deutsche Qulitästarbeit für Linux 9 14/11/15

Ablage-Struktur

Page 10: Rsyslog - Deutsche Qualitätsarbeit für Linux

Rsyslog – deutsche Qulitästarbeit für Linux 14/11/15

Rsyslog

Page 11: Rsyslog - Deutsche Qualitätsarbeit für Linux

Rsyslog Übersicht

Rsyslog – deutsche Qulitästarbeit für Linux 11 14/11/15

Dank an Rainer Gerhards

  Deutsche Qualitätsarbeit setzt sich durch

  Heute Standard bei Linux Distributionen

–  Redhat basierte

–  Debian basierte

–  SuSE basierte

Page 12: Rsyslog - Deutsche Qualitätsarbeit für Linux

Rsyslog Übersicht

Rsyslog – deutsche Qulitästarbeit für Linux 12 14/11/15

RFC‘s zu Syslog

  RFC 3164

–  The BSD syslog Protocol (obsoleted by RFC 5424)

  RFC 5424

–  The Syslog Protocol (obsoletes RFC 3164)

–  https://tools.ietf.org/html/rfc5424

  RFC 5425

–  Transport Layer Security Mapping for Syslog

  RFC 5426

–  Transmission of Syslog Messages over UDP

Page 13: Rsyslog - Deutsche Qualitätsarbeit für Linux

Rsyslog Übersicht

Rsyslog – deutsche Qulitästarbeit für Linux 13 14/11/15

„Facility Keywords“ für facility-basierte Filter

  Ebene 1

Page 14: Rsyslog - Deutsche Qualitätsarbeit für Linux

Rsyslog Übersicht

Rsyslog – deutsche Qulitästarbeit für Linux 14 14/11/15

Beispiel Zuordnung der „kernel“ Facility

# Log all local kernel messages to the console # and /var/log/kern if $hostname == ‘syslogsrv1' \ and $syslogfacility == '0' \ then /var/log/kern

Page 15: Rsyslog - Deutsche Qualitätsarbeit für Linux

Rsyslog Übersicht

Rsyslog – deutsche Qulitästarbeit für Linux 15 14/11/15

Facility values MUST be in the range of 0 to 23 inclusive

Page 16: Rsyslog - Deutsche Qualitätsarbeit für Linux

Rsyslog Übersicht

Rsyslog – deutsche Qulitästarbeit für Linux 16 14/11/15

„Priority Keywords“ für priority-basierte Filter

Page 17: Rsyslog - Deutsche Qualitätsarbeit für Linux

Rsyslog Übersicht

Rsyslog – deutsche Qulitästarbeit für Linux 17 14/11/15

Beispiel Zuordnung der „error“ priority

if $syslogseverity == '3' \ then /u00/rsyslog/priority/error

Page 18: Rsyslog - Deutsche Qualitätsarbeit für Linux

Rsyslog Übersicht

Rsyslog – deutsche Qulitästarbeit für Linux 18 14/11/15

Priorities aus RFC 5424

Page 19: Rsyslog - Deutsche Qualitätsarbeit für Linux

Rsyslog Übersicht

Rsyslog – deutsche Qulitästarbeit für Linux 19 14/11/15

Features

  Homepage

–  „RSYSLOG is the rocket-fast system for log processing“

–  „It offers high-performance, great security features and a modular design“

  „Multi-threading“

  TCP, SSL, TLS, RELP

  MySQL, PostgreSQL, Oracle und mehr

  Filterung der Syslog Message

  „Fully configurable output format“

  „Suitable for enterprise-class relay chains“

Page 20: Rsyslog - Deutsche Qualitätsarbeit für Linux

Rsyslog Features

Rsyslog – deutsche Qulitästarbeit für Linux 20 14/11/15

Struktur

  Input Modules

–  $ModLoad imuxsock

•  provides support for local system logging

–  $ModLoad imklog

•  provides kernel logging support (previously done by rklogd)

Rulesets

–  Filtering

Page 21: Rsyslog - Deutsche Qualitätsarbeit für Linux

Rsyslog Features

Rsyslog – deutsche Qulitästarbeit für Linux 21 14/11/15

Struktur

  Actions

–  Schreiben in Files

–  DB Backends

–  Weiterleiten

Page 22: Rsyslog - Deutsche Qualitätsarbeit für Linux

Rsyslog Features

Rsyslog – deutsche Qulitästarbeit für Linux 22 14/11/15

Modules, functionality to be dynamically loaded from modules

  $ModLoad MODULE_name

  Filter modules

  Library modules

  Input modules

  Output modules

  Message modification modules

  Parser modules

  String generator modules

  Template features

Page 23: Rsyslog - Deutsche Qualitätsarbeit für Linux

Rsyslog Features

Rsyslog – deutsche Qulitästarbeit für Linux 23 14/11/15

RELP

  „Relaible Event Logging Protocol“

  TLS Session Abbruch

  RELP und TLS

–  Mit 7.4.7 (2013-12-10) noch nicht unterstützt, erst ab 7.5.1

Jan 13 11:08:38 srv105 rsyslogd-2078: netstream session 0x4988510 will be closed due to error

Page 24: Rsyslog - Deutsche Qualitätsarbeit für Linux

Konfiguration

Rsyslog – deutsche Qulitästarbeit für Linux 24 14/11/15

Struktur und Konfigurations Management Tools

  Aufteilen der Konfiguration

–  Basis Konfig im/etc/rsyslog.conf

•  Includes im /etc/rsyslog.d

>  /etc/rsyslog.conf/server.conf

>  /etc/rsyslog/client.conf

Konfigurations Management Tools

–  Puppet

•  saz-rsyslog Module

Page 25: Rsyslog - Deutsche Qualitätsarbeit für Linux

Konfiguration

Rsyslog – deutsche Qulitästarbeit für Linux 25 14/11/15

Standard Syslog Syntax

  Kann man verwenden

# Everybody gets emergency messages *.emerg * *.info /u00/rsyslog/hosts/all/messages

Page 26: Rsyslog - Deutsche Qualitätsarbeit für Linux

Konfiguration

Rsyslog – deutsche Qulitästarbeit für Linux 26 14/11/15

/etc/rsyslog.conf

  Modules

$ModLoad imuxsock $ModLoad imklog $ModLoad imudp # Provides UDP syslog reception $UDPServerRun 514 $ModLoad imtcp # Provides TCP syslog reception $ModLoad imfile

Page 27: Rsyslog - Deutsche Qualitätsarbeit für Linux

Konfiguration

Rsyslog – deutsche Qulitästarbeit für Linux 27 14/11/15

TLS Verschlüsselung

Certificate Files

  Authentifizierung

$DefaultNetstreamDriverCAFile /rsyslog/protected/CA_bundle.pem $DefaultNetstreamDriverCertFile /rsyslog/protected/server_cert.myhostname.pem $DefaultNetstreamDriverKeyFile /rsyslog/protected/server_private_myhostname.key

$ActionSendStreamDriverAuthMode x509/name $ActionSendStreamDriverPermittedPeer syslog-server1.mydomain $ActionSendStreamDriverPermittedPeer syslog-server2.mydomain $ActionSendStreamDriverMode 1 # run driver in TLS-only mode

Page 28: Rsyslog - Deutsche Qualitätsarbeit für Linux

Konfiguration

Rsyslog – deutsche Qulitästarbeit für Linux 28 14/11/15

TLS Verschlüsselung

  X509 Zertifikate

–  Ab Oracle Linux 6

•  min. 2048 Bit Zertifikate

–  Rsyslog Problem mit SHA2

Page 29: Rsyslog - Deutsche Qualitätsarbeit für Linux

Konfiguration

Rsyslog – deutsche Qulitästarbeit für Linux 29 14/11/15

Filter

  Neues „style format“

–  Rainer Script if $msg contains 'Abort command issued' \ or $msg contains 'blocked for more than 120 seconds' \ or $msg contains 'checker reports path is down' \ or $msg contains 'kernel: device-mapper: multipath: Failing path' \ or $msg contains 'multipathd: checker failed path' \ or $msg contains ': mark as failed' \ or $msg contains 'checker reports path is up' \ or $msg contains 'require eh work' \ or $msg contains 'Error handler scsi_eh' \ or $msg contains 'FCP command status' \ or $msg contains 'aborting sp' \ or $msg contains 'firmware reported underrun' \ or $msg contains 'Dropped frame(s) detected' \ or $msg contains 'kernel: end_request: I/O error' \ or $msg contains 'error calling out /sbin/mpath_prio_alua' \ then /u00/rsyslog/applications/scripts/scsiaborts

Page 30: Rsyslog - Deutsche Qualitätsarbeit für Linux

Konfiguration

Rsyslog – deutsche Qulitästarbeit für Linux 30 14/11/15

Templates

  Beispiel

$template HostAudit, "/u00/rsyslog/applications/auditd/%HOSTNAME%/audit_log" $template auditFormat, "%msg%\n" local5.* ?HostAudit;auditFormat

Page 31: Rsyslog - Deutsche Qualitätsarbeit für Linux

Konfiguration

Rsyslog – deutsche Qulitästarbeit für Linux 31 14/11/15

Rules

  „forwarding rules“

# forward everything to remote servers *.* @@fqdn-syslogserver1:10514 *.* @@fqdn-syslogserver2:10514

Page 32: Rsyslog - Deutsche Qualitätsarbeit für Linux

Konfiguration

Rsyslog – deutsche Qulitästarbeit für Linux 32 14/11/15

Syntaxcheck

  Zuerst testen vor Restart

rsyslogd -N 1

Page 33: Rsyslog - Deutsche Qualitätsarbeit für Linux

Konfiguration

Rsyslog – deutsche Qulitästarbeit für Linux 33 14/11/15

Regex

  POSIX ERE oder BRE

  Online Regex Checker

–  http://www.rsyslog.com/regex/

:msg, regex, "sshd.* session opened for user q[a-z0-9]*[0-9]” /lfs/oracle_audit/os.log

Page 34: Rsyslog - Deutsche Qualitätsarbeit für Linux

Rsyslog – deutsche Qulitästarbeit für Linux 14/11/15

Auditd

Page 35: Rsyslog - Deutsche Qualitätsarbeit für Linux

Auditd

Rsyslog – deutsche Qulitästarbeit für Linux 35 14/11/15

Auditd

  Zentrale Ablage der Audit Logs

–  Korrelation von Sicherheitsvorfällen

–  Zentrale Auswertung mit Audit Tools

  Audit Watches

–  Reaktion auf „audit watch“ Triggers mit Rsyslog

Page 36: Rsyslog - Deutsche Qualitätsarbeit für Linux

Auditd

Rsyslog – deutsche Qulitästarbeit für Linux 36 14/11/15

Konfiguration

Imfile Module

  Beispiel local5

$ModLoad imfile

$InputFileName /var/log/audit/audit.log $InputFileTag tag_audit_log: $InputFileStateFile audit_log $InputFileSeverity info $InputFileFacility local5 $InputRunFileMonitor

Page 37: Rsyslog - Deutsche Qualitätsarbeit für Linux

Auditd

Rsyslog – deutsche Qulitästarbeit für Linux 37 14/11/15

Konfiguration

  Format beibehalten

  Auswerten

–  ausearch

–  aureport

$template HostAudit, “/u00/rsyslog/auditd/%HOSTNAME%/audit_log" $template auditFormat, "%msg%\n" local5.* ?HostAudit;auditFormat

Page 38: Rsyslog - Deutsche Qualitätsarbeit für Linux

Auditd

Rsyslog – deutsche Qulitästarbeit für Linux 38 14/11/15

Konfiguration

  Keine Audit Logs im „messages“ des Syslogservers

if $hostname == ‘syslogsrv1' \ and not ( $syslogfacility == '2' ) \ and not ( $syslogfacility == ‘21' ) \ and not ( $syslogfacility-text == 'cron' ) \ and not ( $syslogtag == 'tag_audit_log:' ) \ then /var/log/messages

Page 39: Rsyslog - Deutsche Qualitätsarbeit für Linux

Auditd

Rsyslog – deutsche Qulitästarbeit für Linux 39 14/11/15

Änderungen von Files in Realtime erkennen

  Beispiel Audit Rule

–  /etc/audit/audit.rules

–  Dynamisch aktivieren

-w /etc/sd_pam.conf -p w -k sd_pam.conf_changed

auditctl -R /etc/audit/audit.rules

Page 40: Rsyslog - Deutsche Qualitätsarbeit für Linux

Auditd

Rsyslog – deutsche Qulitästarbeit für Linux 40 14/11/15

Änderungen von Files in Realtime erkennen

  In Rsyslog Konfig

$template FileWatcher, "%HOSTNAME% %msg%\n" if $msg contains 'sd_pam.conf_changed' \ and $msg contains 'type=SYSCALL' \ then ^/usr/local/bin/generic_audit_filewatcher_alerter.ksh;FileWatcher

Page 41: Rsyslog - Deutsche Qualitätsarbeit für Linux

Rsyslog – deutsche Qulitästarbeit für Linux 14/11/15

Betrieb

Page 42: Rsyslog - Deutsche Qualitätsarbeit für Linux

Betrieb

Rsyslog – deutsche Qulitästarbeit für Linux 42 14/11/15

Upgrade auf Oracle Linux 7.1

  Gibt Warnung aus

  Mit omruleset definieren

  Kernel Logging

*.emerg :omusrmsg:*

*.emerg *

#$ModLoad imklog # provides kernel logging support $ModLoad imjournal # provides access to the systemd journal

Page 43: Rsyslog - Deutsche Qualitätsarbeit für Linux

Betrieb

Rsyslog – deutsche Qulitästarbeit für Linux 43 14/11/15

Upgrade auf Oracle Linux 7.1

  Probleme mit X509 Zertifikaten

–  SSL-Lib akzeptiert nur noch 2048 Bit Keys

–  2048 Bit mit MD5 signiert ??

–  2048 Bit mit SHA2 signiert ??

–  2048 Bit mit SHA1

Page 44: Rsyslog - Deutsche Qualitätsarbeit für Linux

Betrieb

Rsyslog – deutsche Qulitästarbeit für Linux 44 14/11/15

Upgrade auf Oracle Linux 7.1

  PID Filename geändert

Logrotate

/var/run/syslogd.pid

/var/run/rsyslogd.pid

/bin/kill -HUP `cat /var/run/syslogd.pid 2> /dev/null`

Page 45: Rsyslog - Deutsche Qualitätsarbeit für Linux

Betrieb

Rsyslog – deutsche Qulitästarbeit für Linux 45 14/11/15

Housekeeping

Logrotate

–  /etc/logrotate.d/syslog

–  Logrotate Debugging

  Fehlersuche

–  Syntaxchecker

–  Debugging

rsyslogd -N 1

Page 46: Rsyslog - Deutsche Qualitätsarbeit für Linux

Betrieb

Rsyslog – deutsche Qulitästarbeit für Linux 46 14/11/15

Fehlersuche

  Debugging

export RSYSLOG_DEBUGLOG="/path/to/debuglog" export RSYSLOG_DEBUG="Debug“ rsyslogd -dn

Page 47: Rsyslog - Deutsche Qualitätsarbeit für Linux

Rsyslog – deutsche Qulitästarbeit für Linux 14/11/15

Fazit

Page 48: Rsyslog - Deutsche Qualitätsarbeit für Linux

Fazit

Rsyslog – deutsche Qulitästarbeit für Linux 48 14/11/15

Linux Distros nutzen Rsyslog

  Gute Performance

  Modulares Design

  Rainer Script hilfreich

  POSIX ERG „extended regex“

  TLS Verschlüsselung

  Templates

Page 49: Rsyslog - Deutsche Qualitätsarbeit für Linux

Roman Gächter Principal Consultant

[email protected]

14/11/15 Bezeichnung Präsentation 49

Page 50: Rsyslog - Deutsche Qualitätsarbeit für Linux

© Trivadis – Das Unternehmen 50 14/11/15

Trivadis an der DOAG 2015

Ebene 3 - gleich neben der Rolltreppe

Wir freuen uns auf Ihren Besuch.

Denn mit Trivadis gewinnen Sie immer.