Upgrade to Pro — share decks privately, control downloads, hide ads and more …

take care of your logs (de)

take care of your logs (de)

Der Vortrag auf der OSMC 2016 zum Thema warum man ein zentrales Logging haben will, was man gewinnt und wie man auch das Management überzeugen kann das es eine sinnvolle Investition ist Hardware dafür bereit zu stellen.

Video: https://youtu.be/JDLfHnpErvo

Jan Doberstein

December 01, 2016
Tweet

More Decks by Jan Doberstein

Other Decks in Technology

Transcript

  1. take care of your logs

    View full-size slide

  2. Jan Doberstein
    ( @jalogisch )
    17+ Jahre IT Administrator
    Support Engineer bei Graylog
    ( @graylog2 )

    View full-size slide

  3. Was
    sind
    Logs?

    View full-size slide

  4. – Wikipedia
    „Eine Logdatei enthält das automatisch
    geführte Protokoll aller oder bestimmter
    Aktionen von Prozessen auf einem
    Computersystem.“

    View full-size slide

  5. – Wikipedia
    „ Außer dem Betriebssystem selbst schreiben
    meist Hintergrundprogramme (z. B. ein E-Mail-
    Server, ein Proxyserver und anderes) in
    Logdateien, um Aktionsmeldungen,
    Fehlermeldungen und Hinweise persistent
    (dauernd) oder temporär verfügbar zu halten.
    Ähnliches gilt für Installationsprogramme,
    Firewalls, Virenscanner und dergleichen. “

    View full-size slide

  6. Logs geben die Möglichkeit
    Dinge zu einem späteren
    Zeitpunkt nachzuvollziehen

    View full-size slide

  7. Warum sollte ich vergänglichen
    und unnützen Daten
    Aufmerksamkeit schenken?

    View full-size slide

  8. https://twitter.com/janl/status/785456374566223872

    View full-size slide

  9. Was sind Logs?

    View full-size slide

  10. Aug 16 18:18:19 d8.jalogis.ch sshd[26944]: fatal: Unable
    to negotiate a key exchange method [preauth]
    Aug 16 18:18:39 d8.jalogis.ch sshd[26946]: reverse
    mapping checking getaddrinfo for hn.kd.ny.adsl
    [222.138.139.252] failed - POSSIBLE BREAK-IN ATTEMPT!
    Aug 16 18:18:39 d8.jalogis.ch sshd[26946]: Invalid user
    admin from 222.138.139.252
    Aug 16 18:18:39 d8.jalogis.ch sshd[26946]:
    input_userauth_request: invalid user admin [preauth]
    Aug 16 18:18:39 d8.jalogis.ch sshd[26946]: Connection
    closed by 222.138.139.252 [preauth]
    Aug 16 18:19:16 d8.jalogis.ch sshd[26948]: fatal: Unable
    to negotiate a key exchange method [preauth]

    View full-size slide

  11. ohne Logs ist schlecht.

    View full-size slide

  12. lokales
    Sammeln
    Linux ( syslog / journald )
    Windows ( Eventlog )

    View full-size slide

  13. lokales Sammeln
    root@d8:/var/log# grep -v "fatal: Unable to negotiate a key exchange
    method" auth.log | grep -v „pam_unix(cron:session)“
    Aug 16 18:12:18 d8.jalogis.ch sshd[26930]: Connection closed by
    45.114.50.54 [preauth]
    Aug 16 18:18:39 d8.jalogis.ch sshd[26946]: reverse mapping checking
    getaddrinfo for hn.kd.ny.adsl [222.138.139.252] failed - POSSIBLE BREAK-
    IN ATTEMPT!
    Aug 16 18:18:39 d8.jalogis.ch sshd[26946]: Invalid user admin from
    222.138.139.252
    Aug 16 18:18:39 d8.jalogis.ch sshd[26946]: input_userauth_request:
    invalid user admin [preauth]
    Aug 16 18:18:39 d8.jalogis.ch sshd[26946]: Connection closed by
    222.138.139.252 [preauth]

    View full-size slide

  14. lokales Sammeln
    root@d8:~# grep -v 'pam_uni(cron:session)' /var/
    log/auth.log | grep 'fatal: Unable to negotiate a key
    exchange method' | wc -l
    3082

    View full-size slide

  15. http://xkcd.com/208/

    View full-size slide

  16. lokales Sammeln
    • Ist der Host nicht erreichbar, gibt es kein Log
    • Lokale Logs erlauben es nicht, globale
    Ereignisse zu verfolg en
    • Kompromittierte Systeme sind manipuliert

    View full-size slide

  17. (simples) zentrales Sammeln
    OS Grundausstattung
    geringer Aufwand
    Syslog

    View full-size slide

  18. (simples) zentrales Sammeln

    View full-size slide

  19. http://xkcd.com/208/

    View full-size slide

  20. Datenbank & Interface

    View full-size slide

  21. Elasticsearch ist eine dokumentbasierte Datenbank
    die auf Apache Lucene aufsetzt und eine
    vollständige REST API bietet.

    View full-size slide

  22. > host:d8.jalogis.ch AND programname:sshd AND message:"*invalid user*"

    View full-size slide

  23. • Anreicherung
    • Filterung
    • Normalisierung

    View full-size slide

  24. zentrales Sammeln & Anreichern

    View full-size slide

  25. Aug 16 18:18:19 d8.jalogis.ch sshd[26944]: fatal: Unable
    to negotiate a key exchange method [preauth]
    Aug 16 18:18:39 d8.jalogis.ch sshd[26946]: reverse
    mapping checking getaddrinfo for hn.kd.ny.adsl
    [222.138.139.252] failed - POSSIBLE BREAK-IN ATTEMPT!
    Aug 16 18:18:39 d8.jalogis.ch sshd[26946]: Invalid user
    admin from 222.138.139.252
    Aug 16 18:18:39 d8.jalogis.ch sshd[26946]:
    input_userauth_request: invalid user admin [preauth]
    Aug 16 18:18:39 d8.jalogis.ch sshd[26946]: Connection
    closed by 222.138.139.252 [preauth]
    Aug 16 18:19:16 d8.jalogis.ch sshd[26948]: fatal: Unable
    to negotiate a key exchange method [preauth]

    View full-size slide

  26. (?\b(?:[Jj]an(?:uary|uar)?|[Ff]eb(?:ruary|ruar)?|[Mm](?:a|ä)?r(?:ch|z)?|
    [Aa]pr(?:il)?|[Mm]a(?:y|i)?|[Jj]un(?:e|i)?|[Jj]ul(?:y)?|[Aa]ug(?:ust)?|[Ss]ep(?:tember)?|[Oo](?:c|
    k)?t(?:ober)?|[Nn]ov(?:ember)?|[Dd]e(?:c|z)(?:ember)?)\b +(?:(?:0[1-9])|(?:[12][0-9])|(?:3[01])|
    [1-9]) (?!<[0-9])(?:2[0123]|[01]?[0-9]):(?:[0-5][0-9])(?::(?:(?:[0-5]?[0-9]|60)(?:[:.,][0-9]+)?))(?![0-9]))
    (?:<(?\b(?:[0-9]+)\b).(?\b(?:[0-9]+)\b)> )?(?(?:(?:((([0-9A-Fa-f]
    {1,4}:){7}([0-9A-Fa-f]{1,4}|:))|(([0-9A-Fa-f]{1,4}:){6}(:[0-9A-Fa-f]{1,4}|((25[0-5]|2[0-4]\d|1\d\d|
    [1-9]?\d)(\.(25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3})|:))|(([0-9A-Fa-f]{1,4}:){5}(((:[0-9A-Fa-f]{1,4})
    {1,2})|:((25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(\.(25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3})|:))|(([0-9A-Fa-
    f]{1,4}:){4}(((:[0-9A-Fa-f]{1,4}){1,3})|((:[0-9A-Fa-f]{1,4})?:((25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(\.
    (25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3}))|:))|(([0-9A-Fa-f]{1,4}:){3}(((:[0-9A-Fa-f]{1,4}){1,4})|((:
    [0-9A-Fa-f]{1,4}){0,2}:((25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(\.(25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d))
    {3}))|:))|(([0-9A-Fa-f]{1,4}:){2}(((:[0-9A-Fa-f]{1,4}){1,5})|((:[0-9A-Fa-f]{1,4}){0,3}:((25[0-5]|
    2[0-4]\d|1\d\d|[1-9]?\d)(\.(25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3}))|:))|(([0-9A-Fa-f]{1,4}:){1}(((:
    [0-9A-Fa-f]{1,4}){1,6})|((:[0-9A-Fa-f]{1,4}){0,4}:((25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(\.(25[0-5]|
    2[0-4]\d|1\d\d|[1-9]?\d)){3}))|:))|(:(((:[0-9A-Fa-f]{1,4}){1,7})|((:[0-9A-Fa-f]{1,4}){0,5}:((25[0-5]|
    2[0-4]\d|1\d\d|[1-9]?\d)(\.(25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3}))|:)))(%.+)?|(?[0-9]{1,2}|2[0-4][0-9]|25[0-5])[.](?:[0-1]?[0-9]{1,2}|2[0-4][0-9]|25[0-5])[.](?:[0-1]?[0-9]{1,2}|2[0-4]
    [0-9]|25[0-5])[.](?:[0-1]?[0-9]{1,2}|2[0-4][0-9]|25[0-5]))(?![0-9]))|\b(?:[0-9A-Za-z][0-9A-Za-z-]
    {0,62})(?:\.(?:[0-9A-Za-z][0-9A-Za-z-]{0,62}))*(\.?|\b))) (?[\x21-\x5a\x5c\x5e-\x7e]
    +)(?:\[(?\b(?:[1-9][0-9]*)\b)\])?: (?.*)

    View full-size slide

  27. %{SYSLOGTIMESTAMP:timestamp} (?:%{SYSLOGFACILITY} )?
    %{SYSLOGHOST:logsource} %{SYSLOGPROG}: %
    {GREEDYDATA:message}

    View full-size slide

  28. Aug 16 18:18:19 d8.jalogis.ch sshd[26944]: fatal: Unable
    to negotiate a key exchange method [preauth]
    Aug 16 18:18:39 d8.jalogis.ch sshd[26946]: reverse
    mapping checking getaddrinfo for hn.kd.ny.adsl
    [222.138.139.252] failed - POSSIBLE BREAK-IN ATTEMPT!
    Aug 16 18:18:39 d8.jalogis.ch sshd[26946]: Invalid user
    admin from 222.138.139.252
    Aug 16 18:18:39 d8.jalogis.ch sshd[26946]:
    input_userauth_request: invalid user admin [preauth]
    Aug 16 18:18:39 d8.jalogis.ch sshd[26946]: Connection
    closed by 222.138.139.252 [preauth]
    Aug 16 18:19:16 d8.jalogis.ch sshd[26948]: fatal: Unable
    to negotiate a key exchange method [preauth]

    View full-size slide

  29. Datenbank & Interface

    View full-size slide

  30. Syslog
    App
    Hardware

    View full-size slide

  31. App GELF / JSON
    Logfile Shipper

    View full-size slide

  32. App RAW
    Hardware
    Syslog

    View full-size slide

  33. Komplexes Sammeln
    • andere Transportwege und Protokolle
    • Warteschlangen (queue)
    • Paralleles bearbeiten

    View full-size slide

  34. Komplexes Sammeln
    • andere Transportwege und Protokolle
    • Warteschlangen (queue)
    • Paralleles bearbeiten

    View full-size slide

  35. Komplexes Sammeln
    • andere Transportwege und Protokolle
    • Warteschlangen (queue)
    • Paralleles bearbeiten

    View full-size slide

  36. Einheitliche Betrachtung
    • verminderte
    Zugriffsrechte auf
    Server
    • schneller und
    einfacher Zugriff
    auf Informationen
    • einfache
    Administration

    View full-size slide

  37. Fragen?
    @jalogisch
    @graylog2
    http://graylog.org

    View full-size slide

  38. Font: Roboto | Image Credits:
    1-2: Leo Gonzales https://www.flickr.com/photos/leoglenn_g/
    3: Micolo J https://www.flickr.com/photos/robin1966/
    4,5: Christoper https://www.flickr.com/photos/exalthim/
    6-11: MrTinDC https://www.flickr.com/photos/mr_t_in_dc/
    13: Mike Baker https://www.flickr.com/photos/36593372@N04/
    12-17: Jon Anderson https://www.flickr.com/photos/adstream/
    18-24: J Drew https://www.flickr.com/photos/brewbooks/
    25-35, 45: Steven Isaacson https://www.flickr.com/photos/spi/
    36-40: Dennis Jarvis https://www.flickr.com/photos/archer10/
    41: Wiscon Department https://www.flickr.com/photos/widnr/
    42: Budi Nusyirwan https://www.flickr.com/photos/bukrie/
    43,44: Dana https://www.flickr.com/photos/roseannadana/
    46,47: Jan Doberstein

    View full-size slide