Unterschiede
Hier werden die Unterschiede zwischen zwei Versionen angezeigt.
| Beide Seiten der vorigen Revision Vorhergehende Überarbeitung Nächste Überarbeitung | Vorhergehende Überarbeitung | ||
| centos:web_c7:graylog2 [17.02.2017 18:31. ] – [Zertifikat ausgeben] django | centos:web_c7:graylog2 [22.07.2019 14:42. ] (aktuell) – django | ||
|---|---|---|---|
| Zeile 64: | Zeile 64: | ||
| sub 2048R/ | sub 2048R/ | ||
| - | Diesen **Key fingerprint = 4609 5ACC 8548 582C 1A26 99A9 D27D 666C D88E 42B4** vergleichen wir nun mit den Angaben auf der [[https:// | + | Diesen **Key fingerprint = 4609 5ACC 8548 582C 1A26 99A9 D27D 666C D88E 42B4** vergleichen wir nun mit den Angaben auf der [[https:// |
| # rpm --import / | # rpm --import / | ||
| Zeile 70: | Zeile 70: | ||
| Graylog selbst werden wir später aus dem Repository von **graylog** installieren. So bleibt zum einen der Konfigurationsaufwand überschaubar und wir werden mit Updates versorgt, wenn Änderungen und/oder Erweiterungen am Programmcode von graylog notwendig werden. | Graylog selbst werden wir später aus dem Repository von **graylog** installieren. So bleibt zum einen der Konfigurationsaufwand überschaubar und wir werden mit Updates versorgt, wenn Änderungen und/oder Erweiterungen am Programmcode von graylog notwendig werden. | ||
| Die Integration des benötigten Repositories erfolgt direkt mit nachfolgendem Befehl: | Die Integration des benötigten Repositories erfolgt direkt mit nachfolgendem Befehl: | ||
| - | # yum localinstall https:// | + | # yum localinstall https:// |
| - | Anschließend | + | Anschliessend |
| # vim / | # vim / | ||
| <file bash / | <file bash / | ||
| name=graylog | name=graylog | ||
| - | baseurl=https:// | + | baseurl=https:// |
| gpgcheck=1 | gpgcheck=1 | ||
| gpgkey=file:/// | gpgkey=file:/// | ||
| Zeile 249: | Zeile 249: | ||
| Im nächsten Schritt installieren wir nun noch elasticsearch als Suchmaschine/ | Im nächsten Schritt installieren wir nun noch elasticsearch als Suchmaschine/ | ||
| # yum install elasticsearch -y | # yum install elasticsearch -y | ||
| - | |||
| - | Bei der Installation des RPMs werden unter anderem folgende Informationen angegeben: | ||
| - | < | ||
| - | |||
| - | Running transaction check | ||
| - | Running transaction test | ||
| - | Transaction test succeeded | ||
| - | Running transaction | ||
| - | Creating elasticsearch group... OK | ||
| - | Creating elasticsearch user... OK | ||
| - | Installing : elasticsearch-2.4.4-1.noarch | ||
| - | ### NOT starting on installation, | ||
| - | sudo systemctl daemon-reload | ||
| - | sudo systemctl enable elasticsearch.service | ||
| - | ### You can start elasticsearch service by executing | ||
| - | sudo systemctl start elasticsearch.service | ||
| - | Verifying | ||
| - | |||
| - | Installed: | ||
| - | elasticsearch.noarch 0: | ||
| - | </ | ||
| - | |||
| - | Bei dr späteren Konfiguration werden wir diese Schritte dann nachholen. | ||
| Wollen wir wissen, welche Dateien und Verzeichnisse das Paket auf unseren Server packte, benutzen wir folgenden Befehl. | Wollen wir wissen, welche Dateien und Verzeichnisse das Paket auf unseren Server packte, benutzen wir folgenden Befehl. | ||
| Zeile 370: | Zeile 347: | ||
| / | / | ||
| / | / | ||
| + | |||
| ==== graylog ==== | ==== graylog ==== | ||
| Zu guter letzt installieren wir nun noch Pakete **graylog** sowie das Zusatzprogramm **pwgen** zum Generieren von Passwörtern, | Zu guter letzt installieren wir nun noch Pakete **graylog** sowie das Zusatzprogramm **pwgen** zum Generieren von Passwörtern, | ||
| Zeile 378: | Zeile 356: | ||
| # rpm -qil graylog-server | # rpm -qil graylog-server | ||
| < | < | ||
| - | Version | + | Version |
| - | Release | + | Release |
| Architecture: | Architecture: | ||
| - | Install Date: Wed 15 Feb 2017 04:21:21 PM CET | + | Install Date: Wed 27 Sep 2017 11:26:28 AM CEST |
| Group : optional | Group : optional | ||
| - | Size : 106769271 | + | Size : 110416070 |
| License | License | ||
| - | Signature | + | Signature |
| - | Source RPM : graylog-server-2.2.0-11.src.rpm | + | Source RPM : graylog-server-2.3.1-1.src.rpm |
| - | Build Date : Thu 09 Feb 2017 12:42:54 PM CET | + | Build Date : Fri 25 Aug 2017 03:57:17 PM CEST |
| - | Build Host : f89729f86e48 | + | Build Host : 5ee9456006b4 |
| Relocations : / | Relocations : / | ||
| Packager | Packager | ||
| Zeile 407: | Zeile 385: | ||
| / | / | ||
| / | / | ||
| - | / | + | / |
| - | / | + | / |
| - | / | + | / |
| - | / | + | / |
| - | / | + | / |
| - | / | + | / |
| Zeile 473: | Zeile 451: | ||
| </ | </ | ||
| - | Der erfolgreiche Start des Servers wird auch in dessen Logdatei protokolliert. | + | Der erfolgreiche Start des Servers wird auch in dessen Logdatei protokolliert. |
| # less / | # less / | ||
| Zeile 603: | Zeile 581: | ||
| Created symlink from / | Created symlink from / | ||
| - | |||
| - | |||
| === automatischer Start des Daemon === | === automatischer Start des Daemon === | ||
| Zeile 738: | Zeile 714: | ||
| Geben wir ein falsches Passwort ein, wird natürlich der Zugang verwehrt. | Geben wir ein falsches Passwort ein, wird natürlich der Zugang verwehrt. | ||
| - | # mongo -u " | + | # mongo -u " |
| MongoDB shell version: 2.6.12 | MongoDB shell version: 2.6.12 | ||
| Zeile 1369: | Zeile 1345: | ||
| Anschließend informieren wir den **systemd** über unser " | Anschließend informieren wir den **systemd** über unser " | ||
| | | ||
| - | |||
| - | |||
| - | |||
| - | |||
| - | |||
| - | |||
| === Start des Daemon === | === Start des Daemon === | ||
| Zeile 2477: | Zeile 2447: | ||
| # Django : 2017-02-14 | # Django : 2017-02-14 | ||
| $template GRAYLOGRFC5424,"< | $template GRAYLOGRFC5424,"< | ||
| - | *.* @10.0.0.117: | + | *.* @@10.0.0.117: |
| # | # | ||
| # ### end of the forwarding rule ###</ | # ### end of the forwarding rule ###</ | ||
| Zeile 3485: | Zeile 3455: | ||
| </ | </ | ||
| - | === erstellte Zertifikat dem gralog-server zur Verfügung stellen === | + | === erstellte Zertifikat dem graylog-server zur Verfügung stellen === |
| Als letzten Schritt stellen wir nun das gerade erzeugte Server-Zertifikat dem graylog-server zur Verfügung. Hierzu kopieren wir einfach das gerade generierte Zertifikat an Ort und Stelle. | Als letzten Schritt stellen wir nun das gerade erzeugte Server-Zertifikat dem graylog-server zur Verfügung. Hierzu kopieren wir einfach das gerade generierte Zertifikat an Ort und Stelle. | ||
| # cp / | # cp / | ||
| Zeile 3981: | Zeile 3951: | ||
| -----END CERTIFICATE-----</ | -----END CERTIFICATE-----</ | ||
| - | === Zertifikatserstellung optimieren === | + | |
| + | |||
| + | === erstellte Zertifikat dem rsyslog-Daemon auf dem Clientrechner zur Verfügung stellen === | ||
| + | Als letzten Schritt stellen wir nun das gerade erzeugte Server-Zertifikat dem rsyslog-Daemon auf dem Client-Rechner zur Verfügung. Entweder kopieren wir das Zertifikat via **scp** auf den Clientrechner oder wir legen das BASE64 kodierte Zertifikat direkt mit dem Editor unserer Wahl auf dem Client Host ab. | ||
| + | # vim / | ||
| + | |||
| + | < | ||
| + | MIIGNjCCBB6gAwIBAgIBATANBgkqhkiG9w0BAQ0FADCBnzELMAkGA1UEBhMCREUx | ||
| + | DzANBgNVBAgMBkJheWVybjERMA8GA1UEBwwIUGxpZW5pbmcxEzARBgNVBAoMCm5h | ||
| + | dXNjaC5vcmcxHjAcBgNVBAsMFVplcnRpZml6aWVydW5nc3N0ZWxsZTETMBEGA1UE | ||
| + | AwwKZ3JheWxvZyBDQTEiMCAGCSqGSIb3DQEJARYTY2EtYWRtaW5AbmF1c2NoLm9y | ||
| + | ZzAeFw0xNjAxMDQxMDA4NTNaFw00NTEyMjcxMDA4NTNaMIGfMQswCQYDVQQGEwJE | ||
| + | RTEPMA0GA1UECAwGQmF5ZXJuMRMwEQYDVQQKDApuYXVzY2gub3JnMRYwFAYDVQQL | ||
| + | DA1JVC1Nb25pdG9yaW5nMSkwJwYDVQQDDCByc3lzbG9nLnZtbDAwMDAzNy5kbXou | ||
| + | bmF1c2NoLm9yZzEnMCUGCSqGSIb3DQEJARYYZ3JheWxvZy1hZG1pbkBuYXVzY2gu | ||
| + | b3JnMIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIICCgKCAgEA6mVcmjs+qS1/ | ||
| + | s+PNpFP7cDD9yL4A/ | ||
| + | IV6WKzaH6YXxG/ | ||
| + | 9k7UWFoYBvFhIJgP3EwwTu/ | ||
| + | DJ+devIuq/ | ||
| + | tAri0c1WdkGLQ/ | ||
| + | mnPM8sVBTBe3dcqtdjd+pvKFEMXj7pWUstJRzFmWyuQPlsF7iUJQYQFsMzIznXJX | ||
| + | okWS8L33R2/ | ||
| + | 6aWXlu7pOLmSdImTMaZeyt342fjq/ | ||
| + | 9uH5V7eDs7FOSDYeV5RlHqk/ | ||
| + | ZrD7SEdZeGlbaWypyqEjVnpH90nPJbUdN4OE/ | ||
| + | peNAz/ | ||
| + | hvhCAQ0EHxYdT3BlblNTTCBHZW5lcmF0ZWQgQ2VydGlmaWNhdGUwHQYDVR0OBBYE | ||
| + | FJMunPuznVtVigmBtPvCyoYonuqIMB8GA1UdIwQYMBaAFPfDBHAlOC8Cgl1fL38b | ||
| + | ZpdDn9gOMA0GCSqGSIb3DQEBDQUAA4ICAQBaVF0IUx0574XAr46Fv8m0A0m33EpC | ||
| + | q0YfVNeObMxwALDawYzYktHx2U3Zj4qtjttWG4zCYx3EBkHyB83jCUpoBp1Cy+cF | ||
| + | hpMmiqoR/ | ||
| + | ZcMuOTSL/ | ||
| + | fDF1COlJqSNgIkm4JhF0AKkeDCVbDeIeMGEHymx+EJLRGXPZEVOMzFAtIiOd3q8C | ||
| + | yMAH0y5CFRp4dgOTjNE6UBkF4sBrWK5YlhCTbgh/ | ||
| + | pqtpsMi5Uii+H98vtuTi4rWxweiyza4BfO6hrg3iWPXP02HZSOKwLppszii/ | ||
| + | SO4lKAFL5UiXiIBmginPVdpnG7FumYglkvb8vG+J4KHOs1WOOVpSEsoGt5rDiomh | ||
| + | Q1PPcIqUhy9CJDwS6Yf6057eMyhVjJvxqrRNun3etzO8a+KKgtTYroR4kCc94hXa | ||
| + | / | ||
| + | oIbrwlGiDKORtdjLcBvwQshxGWAfXmpPZi1CddLCP4KxPMFeZ3uZ+bE1FgD/ | ||
| + | kY+Z9s9+By5IVw== | ||
| + | -----END CERTIFICATE-----</ | ||
| + | |||
| + | === Ein Zertifikat revoken === | ||
| + | Will man ein ausgestelltes Zertifikat zurückziehen (revoken) nutzen wir ebenfalls das Programm **openssl**. | ||
| + | # openssl ca -revoke / | ||
| + | |||
| + | Using configuration from / | ||
| + | Enter pass phrase for / | ||
| + | Revoking Certificate 02. | ||
| + | Data Base Updated | ||
| + | |||
| + | |||
| + | ===== Konfiguration graylog-server ===== | ||
| + | Nachdem wir die benötigten Schlüssel und Zertifikate erfolgreich erstellt haben, machen wir uns nun an die Konfiguration des **graylog-server**. | ||
| + | |||
| + | ==== Speicherort für Client-Zertifikate ==== | ||
| + | Damit der **graylog-server** die zur Einlieferung von syslog-Daten berechtigten Clients prüfen kann, benötigt dieser ein Verzeichnis, | ||
| + | |||
| + | Zunächst erstellen wir uns ein Verzeichnis. | ||
| + | # mkdir / | ||
| + | |||
| + | Anschließend kopieren wir das Clientzertifikat unseres Clientrechners **vml000037** in das Clientverzeichnis. | ||
| + | # cp / | ||
| + | |||
| + | ==== X.509 Dateien ==== | ||
| + | Bevor wir die Konfiguration über die WEB-GUI unseres **graylog**-Webservers vornehmen, rufen wir uns die benötigten Zertifikate und Schlüssel noch einmal kurz in Erinnerung. So können wir später die Pfadangaben einfach via **cut ' | ||
| + | |||
| + | === CA Root-Zertifikat === | ||
| + | # ll / | ||
| + | |||
| + | < | ||
| + | |||
| + | === private Schlüssel zum Zertifikat === | ||
| + | # ll / | ||
| + | |||
| + | < | ||
| + | |||
| + | === Server-Zertifikat === | ||
| + | # ll / | ||
| + | |||
| + | < | ||
| + | |||
| + | ==== graylog Input ==== | ||
| + | Nun öffnen wir den zu konfigurierenden **Input** in der WEB-GUI mit dem Browser unserer Wahl. | ||
| + | $ firefox https:// | ||
| + | |||
| + | Folgende Optionen sind für die TLS-Aktivierung wichtig: | ||
| + | |||
| + | * **Port** = 6514 | ||
| + | * **TLS cert file (optional)** = / | ||
| + | * **TLS private key file (optional)** = / | ||
| + | * **TLS client authentication (optional)** = required | ||
| + | * **TLS Client Auth Trusted Certs (optional)** = / | ||
| + | * **Enable TLS (optional) | ||
| + | * **TCP keepalive (optional) | ||
| + | |||
| + | {{ : | ||
| + | |||
| + | Über die Schaltfläche **[ Update input ]** verlassen und speichern wir unsere Änderungen. | ||
| + | |||
| + | Mit dem Update des Inputs wird auch der Port **6514** geöffnet; dies können wir mit Hilfe von **netstat** auch abfragen. | ||
| + | # netstat -tulpen | grep 6514 | ||
| + | |||
| + | tcp6 | ||
| + | |||
| + | ==== iptables Paketfilter ==== | ||
| + | Damit sich unsere Clients auch mit dem Port **6514** verbinden können, benötigen wir eine passende Firewall-Regel, | ||
| + | # firewall-cmd --permanent --zone=public --add-rich-rule=" | ||
| + | |||
| + | success | ||
| + | |||
| + | Zum Aktivieren führen wir einen reload des **firewalld** Daemon durch. | ||
| + | # firewall-cmd --reload | ||
| + | |||
| + | Zu guter letzt prüfen wir nun mit Hilfe von **telnet**, ob wir uns vom client **vml000037** mit dem Port **6514** unseres graylog-servers **vml000117** verbinden können | ||
| + | # telnet vml000117 6514 | ||
| + | |||
| + | Trying 10.0.0.117... | ||
| + | Connected to 10.0.0.117. | ||
| + | Escape character is ' | ||
| + | |||
| + | Connection closed by foreign host. | ||
| + | |||
| + | ===== Konfiguration des rsyslog client ===== | ||
| + | Damit der rsyslog-Daemon TLS-gesicherte Verbindungen aufbauen kann, muss dieser über das Modul **lmnsd_gtls** verfügen. Dieses Modul ist Bestandteil des RPM-Paketes **rsyslog-gnutls**. | ||
| + | |||
| + | ==== rsyslog-gnutls Modul installieren ==== | ||
| + | In aller Regel wird das RPM **rsyslog-gnutls**noch nicht installiert sein, so dass wir dieses nun mit Hilfe von **yum** noch nachholen müssen. | ||
| + | # yum install rsyslog-gnutls -y | ||
| + | |||
| + | Den Inhalt dieses Paketes können wir wir folgt bei Bedarf ermitteln. | ||
| + | # rpm -qil rsyslog-gnutls | ||
| + | < | ||
| + | Version | ||
| + | Release | ||
| + | Architecture: | ||
| + | Install Date: Sun 03 Jan 2016 02:12:09 PM CET | ||
| + | Group : System Environment/ | ||
| + | Size : 33480 | ||
| + | License | ||
| + | Signature | ||
| + | Source RPM : rsyslog-7.4.7-12.el7.src.rpm | ||
| + | Build Date : Fri 20 Nov 2015 12:34:35 PM CET | ||
| + | Build Host : worker1.bsys.centos.org | ||
| + | Relocations : (not relocatable) | ||
| + | Packager | ||
| + | Vendor | ||
| + | URL : http:// | ||
| + | Summary | ||
| + | Description : | ||
| + | The rsyslog-gnutls package contains the rsyslog plugins that provide the | ||
| + | ability to receive syslog messages via upcoming syslog-transport-tls | ||
| + | IETF standard protocol. | ||
| + | / | ||
| + | |||
| + | ==== X.509 Dateien ==== | ||
| + | Wie schon bei der Konfiguration des **graylog-server**' | ||
| + | |||
| + | === Root CA Zertifikat === | ||
| + | # ll / | ||
| + | < | ||
| + | |||
| + | === Client-Zertifikat === | ||
| + | # ll / | ||
| + | < | ||
| + | |||
| + | === Schlüssel zum Client-Zertifikat === | ||
| + | # ll / | ||
| + | < | ||
| + | |||
| + | ==== rsyslog konfigurieren ==== | ||
| + | Nun bearbeiten wir die Konfigurationsdatei unseres **rsyslog**-Daemon und hinterlegen dort die entsprechenden Pfadangaben zu dem lmnsd_gtls-Modul, | ||
| + | Die wichtigsten Änderungen sind hier noch einmal zusammengefasst: | ||
| + | * **$DefaultNetstreamDriver // | ||
| + | * **$DefaultNetstreamDriverCAFile // / | ||
| + | * **$DefaultNetstreamDriverCertFile // / | ||
| + | * **$DefaultNetstreamDriverKeyFile // / | ||
| + | * **$ActionSendStreamDriverAuthMode // | ||
| + | * **$ActionSendStreamDriverPermittedPeer // | ||
| + | * **$ActionSendStreamDriverMode //1//** | ||
| + | |||
| + | Alle Änderungen in der Konfigurationsdatei sind mit dem Namen **Django : < | ||
| + | # vim / | ||
| + | |||
| + | <file bash / | ||
| + | |||
| + | # For more information see / | ||
| + | # If you experience problems, see http:// | ||
| + | |||
| + | #### MODULES #### | ||
| + | |||
| + | # Django : 2016-01-03 | ||
| + | # default: unset | ||
| + | $DefaultNetstreamDriver gtls #make gtls driver the default | ||
| + | |||
| + | # The imjournal module bellow is now used as a message source instead of imuxsock. | ||
| + | $ModLoad imuxsock # provides support for local system logging (e.g. via logger command) | ||
| + | # Django : 2017-09-26 | ||
| + | # default: $ModLoad imjournal # provides access to the systemd journal | ||
| + | #$ModLoad imklog # reads kernel messages (the same are read from journald) | ||
| + | #$ModLoad immark | ||
| + | |||
| + | # Provides UDP syslog reception | ||
| + | #$ModLoad imudp | ||
| + | # | ||
| + | |||
| + | # Provides TCP syslog reception | ||
| + | #$ModLoad imtcp | ||
| + | # | ||
| + | |||
| + | |||
| + | #### GLOBAL DIRECTIVES #### | ||
| + | |||
| + | # Where to place auxiliary files | ||
| + | $WorkDirectory / | ||
| + | |||
| + | # Use default timestamp format | ||
| + | $ActionFileDefaultTemplate RSYSLOG_TraditionalFileFormat | ||
| + | |||
| + | # File syncing capability is disabled by default. This feature is usually not required, | ||
| + | # not useful and an extreme performance hit | ||
| + | # | ||
| + | |||
| + | # Include all config files in / | ||
| + | $IncludeConfig / | ||
| + | |||
| + | # Turn off message reception via local log socket; | ||
| + | # local messages are retrieved through imjournal now. | ||
| + | # Django : 2017-09-26 | ||
| + | # default: $OmitLocalLogging on | ||
| + | |||
| + | # File to store the position in the journal | ||
| + | # Django : 2017-09-26 | ||
| + | # default: $IMJournalStateFile imjournal.state | ||
| + | |||
| + | # Django : 2016-01-03 - certificate files for TLS | ||
| + | # default: unset | ||
| + | $DefaultNetstreamDriverCAFile | ||
| + | $DefaultNetstreamDriverCertFile / | ||
| + | $DefaultNetstreamDriverKeyFile | ||
| + | |||
| + | $ActionSendStreamDriverAuthMode x509/name | ||
| + | $ActionSendStreamDriverPermittedPeer graylog-server.dmz.nausch.org | ||
| + | # run driver in TLS-only mode | ||
| + | $ActionSendStreamDriverMode 1 | ||
| + | |||
| + | #### RULES #### | ||
| + | |||
| + | # Log all kernel messages to the console. | ||
| + | # Logging much else clutters up the screen. | ||
| + | # | ||
| + | |||
| + | # Log anything (except mail) of level info or higher. | ||
| + | # Don't log private authentication messages! | ||
| + | *.info; | ||
| + | |||
| + | # The authpriv file has restricted access. | ||
| + | authpriv.* | ||
| + | |||
| + | # Log all the mail messages in one place. | ||
| + | mail.* | ||
| + | |||
| + | |||
| + | # Log cron stuff | ||
| + | cron.* | ||
| + | |||
| + | # Everybody gets emergency messages | ||
| + | *.emerg | ||
| + | |||
| + | # Save news errors of level crit and higher in a special file. | ||
| + | uucp, | ||
| + | |||
| + | # Save boot messages also to boot.log | ||
| + | local7.* | ||
| + | |||
| + | # Django : 2015-07-14 Logging für OpenLDAP-Server aktiviert | ||
| + | local4.* | ||
| + | # | ||
| + | |||
| + | # ### begin forwarding rule ### | ||
| + | # The statement between the begin ... end define a SINGLE forwarding | ||
| + | # rule. They belong together, do NOT split them. If you create multiple | ||
| + | # forwarding rules, duplicate the whole block! | ||
| + | # Remote Logging (we use TCP for reliable delivery) | ||
| + | # | ||
| + | # An on-disk queue is created for this action. If the remote host is | ||
| + | # down, messages are spooled to disk and sent when it is up again. | ||
| + | # | ||
| + | # | ||
| + | # | ||
| + | # | ||
| + | # | ||
| + | # remote host is: name/ | ||
| + | #*.* @@remote-host: | ||
| + | # | ||
| + | # Django : 2015-06-12 | ||
| + | #$template GRAYLOGRFC5424,"< | ||
| + | #*.* @@10.0.0.117: | ||
| + | # Django : 2016-01-03 | ||
| + | $template GRAYLOGRFC5424,"< | ||
| + | *.* @@10.0.0.117: | ||
| + | # | ||
| + | # ### end of the forwarding rule ###</ | ||
| + | |||
| + | Zum Aktivieren der Änderungen führen wir nun einmal einen Reboot des rsyslog-Daemon durch. | ||
| + | # systemctl restart rsyslog.service | ||
| + | |||
| + | Im Syslog unseres Servers wir der erfolgreiche Neustart des rsyslog-Daemon entsprechend positiv vermerkt. | ||
| + | # tailf / | ||
| + | |||
| + | Jan 4 12:34:45 vml000037 rsyslogd: [origin software=" | ||
| + | Jan 4 12:34:45 vml000037 rsyslogd: [origin software=" | ||
| + | |||
| + | Rufen wir nun wieder die Web-GUI unseres **graylog**-Webservers auf, wird sowohl die aktive Verbindung wie auch die bereits übertragenen Daten angezeigt. | ||
| + | |||
| + | $ firefox https:// | ||
| + | |||
| + | {{ : | ||
| + | |||
| + | Alles in allem können wir feststellen, | ||
| + | |||
| + | ==== Zertifikatsgenerierung und Clientkonfiguration ==== | ||
| + | ==== Zertifikatserstellung optimieren | ||
| Um nun bei der Generierung der Zertifikats-Requests und der Erstellung der zugehörigen Zertifikate nicht jedesmal die benötigten Angaben erneut eintippen zu müssen werden wir nun die wiederkehrenden Informationen in der Konfigurationsdatei // | Um nun bei der Generierung der Zertifikats-Requests und der Erstellung der zugehörigen Zertifikate nicht jedesmal die benötigten Angaben erneut eintippen zu müssen werden wir nun die wiederkehrenden Informationen in der Konfigurationsdatei // | ||
| # vim / | # vim / | ||
| Zeile 4359: | Zeile 4652: | ||
| # (optional, default: no)</ | # (optional, default: no)</ | ||
| - | === Bearbeitungsschritte bei neunen rsyslog Clients === | + | ==== Bearbeitungsschritte bei neunen rsyslog Clients |
| Bei einem neune Client, den wir an unseren graylog Server anbinden wollen, sind nun zusammengefasst folgende Schritte nötig (im nachfolgenden Beispiel für Host vml000137): | Bei einem neune Client, den wir an unseren graylog Server anbinden wollen, sind nun zusammengefasst folgende Schritte nötig (im nachfolgenden Beispiel für Host vml000137): | ||
| Zeile 4392: | Zeile 4685: | ||
| # The imjournal module bellow is now used as a message source instead of imuxsock. | # The imjournal module bellow is now used as a message source instead of imuxsock. | ||
| $ModLoad imuxsock # provides support for local system logging (e.g. via logger command) | $ModLoad imuxsock # provides support for local system logging (e.g. via logger command) | ||
| - | $ModLoad imjournal # provides access to the systemd journal | + | # Django : 2017-09-26 |
| + | # default: | ||
| #$ModLoad imklog # reads kernel messages (the same are read from journald) | #$ModLoad imklog # reads kernel messages (the same are read from journald) | ||
| #$ModLoad immark | #$ModLoad immark | ||
| Zeile 4422: | Zeile 4716: | ||
| # Turn off message reception via local log socket; | # Turn off message reception via local log socket; | ||
| # local messages are retrieved through imjournal now. | # local messages are retrieved through imjournal now. | ||
| - | $OmitLocalLogging on | + | # Django : 2017-09-26 |
| + | # default: | ||
| # File to store the position in the journal | # File to store the position in the journal | ||
| - | $IMJournalStateFile imjournal.state | + | # Django : 2017-09-26 |
| + | # default: | ||
| # Django : 2017-02-14 - certificate files for TLS | # Django : 2017-02-14 - certificate files for TLS | ||
| Zeile 4486: | Zeile 4782: | ||
| # Django : 2017-02-14 | # Django : 2017-02-14 | ||
| $template GRAYLOGRFC5424,"< | $template GRAYLOGRFC5424,"< | ||
| - | *.* @10.0.0.117: | + | *.* @10.0.0.117: |
| # | # | ||
| # ### end of the forwarding rule ###</ | # ### end of the forwarding rule ###</ | ||
| - rsyslog-Daemon neu starten zum Aktivieren der Konfigurationsänderung.< | - rsyslog-Daemon neu starten zum Aktivieren der Konfigurationsänderung.< | ||
| + | <WRAP center round important 90%> | ||
| + | **FAZIT**: | ||
| - | === erstellte Zertifikat dem rsyslog-Daemon auf dem Clientrechner zur Verfügung stellen === | + | Mit Hilfe dieser 14 Bearbeitungsschritte kann nicht nur der Übertragungsweg zwischen |
| - | Als letzten Schritt stellen wir nun das gerade erzeugte Server-Zertifikat dem rsyslog-Daemon | + | |
| - | # vim / | + | |
| - | < | + | Mit einfachen Boardmitteln unseres CentOS 7 Servers kann somit ein wesentlicher Beitrag zur Vertraulichkeit |
| - | MIIGNjCCBB6gAwIBAgIBATANBgkqhkiG9w0BAQ0FADCBnzELMAkGA1UEBhMCREUx | + | </WRAP> |
| - | DzANBgNVBAgMBkJheWVybjERMA8GA1UEBwwIUGxpZW5pbmcxEzARBgNVBAoMCm5h | + | |
| - | dXNjaC5vcmcxHjAcBgNVBAsMFVplcnRpZml6aWVydW5nc3N0ZWxsZTETMBEGA1UE | + | |
| - | AwwKZ3JheWxvZyBDQTEiMCAGCSqGSIb3DQEJARYTY2EtYWRtaW5AbmF1c2NoLm9y | + | |
| - | ZzAeFw0xNjAxMDQxMDA4NTNaFw00NTEyMjcxMDA4NTNaMIGfMQswCQYDVQQGEwJE | + | |
| - | RTEPMA0GA1UECAwGQmF5ZXJuMRMwEQYDVQQKDApuYXVzY2gub3JnMRYwFAYDVQQL | + | |
| - | DA1JVC1Nb25pdG9yaW5nMSkwJwYDVQQDDCByc3lzbG9nLnZtbDAwMDAzNy5kbXou | + | |
| - | bmF1c2NoLm9yZzEnMCUGCSqGSIb3DQEJARYYZ3JheWxvZy1hZG1pbkBuYXVzY2gu | + | |
| - | b3JnMIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIICCgKCAgEA6mVcmjs+qS1/ | + | |
| - | s+PNpFP7cDD9yL4A/ | + | |
| - | IV6WKzaH6YXxG/ | + | |
| - | 9k7UWFoYBvFhIJgP3EwwTu/ | + | |
| - | DJ+devIuq/ | + | |
| - | tAri0c1WdkGLQ/ | + | |
| - | mnPM8sVBTBe3dcqtdjd+pvKFEMXj7pWUstJRzFmWyuQPlsF7iUJQYQFsMzIznXJX | + | |
| - | okWS8L33R2/ | + | |
| - | 6aWXlu7pOLmSdImTMaZeyt342fjq/ | + | |
| - | 9uH5V7eDs7FOSDYeV5RlHqk/ | + | |
| - | ZrD7SEdZeGlbaWypyqEjVnpH90nPJbUdN4OE/ | + | |
| - | peNAz/ | + | |
| - | hvhCAQ0EHxYdT3BlblNTTCBHZW5lcmF0ZWQgQ2VydGlmaWNhdGUwHQYDVR0OBBYE | + | |
| - | FJMunPuznVtVigmBtPvCyoYonuqIMB8GA1UdIwQYMBaAFPfDBHAlOC8Cgl1fL38b | + | |
| - | ZpdDn9gOMA0GCSqGSIb3DQEBDQUAA4ICAQBaVF0IUx0574XAr46Fv8m0A0m33EpC | + | |
| - | q0YfVNeObMxwALDawYzYktHx2U3Zj4qtjttWG4zCYx3EBkHyB83jCUpoBp1Cy+cF | + | |
| - | hpMmiqoR/ | + | |
| - | ZcMuOTSL/ | + | |
| - | fDF1COlJqSNgIkm4JhF0AKkeDCVbDeIeMGEHymx+EJLRGXPZEVOMzFAtIiOd3q8C | + | |
| - | yMAH0y5CFRp4dgOTjNE6UBkF4sBrWK5YlhCTbgh/ | + | |
| - | pqtpsMi5Uii+H98vtuTi4rWxweiyza4BfO6hrg3iWPXP02HZSOKwLppszii/ | + | |
| - | SO4lKAFL5UiXiIBmginPVdpnG7FumYglkvb8vG+J4KHOs1WOOVpSEsoGt5rDiomh | + | |
| - | Q1PPcIqUhy9CJDwS6Yf6057eMyhVjJvxqrRNun3etzO8a+KKgtTYroR4kCc94hXa | + | |
| - | / | + | |
| - | oIbrwlGiDKORtdjLcBvwQshxGWAfXmpPZi1CddLCP4KxPMFeZ3uZ+bE1FgD/ | + | |
| - | kY+Z9s9+By5IVw== | + | |
| - | -----END CERTIFICATE-----</ | + | |
| - | + | ||
| - | ===== Konfiguration graylog-server ===== | + | |
| - | Nachdem wir die benötigten Schlüssel | + | |
| - | + | ||
| - | ==== Speicherort für Client-Zertifikate ==== | + | |
| - | Damit der **graylog-server** die zur Einlieferung | + | |
| - | + | ||
| - | Zunächst erstellen wir uns ein Verzeichnis. | + | |
| - | # mkdir / | + | |
| - | + | ||
| - | Anschließend kopieren wir das Clientzertifikat unseres Clientrechners **vml000037** in das Clientverzeichnis. | + | |
| - | # cp / | + | |
| - | + | ||
| - | ==== X.509 Dateien ==== | + | |
| - | Bevor wir die Konfiguration über die WEB-GUI unseres **graylog**-Webservers vornehmen, rufen wir uns die benötigten Zertifikate | + | |
| - | + | ||
| - | === CA Root-Zertifikat === | + | |
| - | # ll / | + | |
| - | + | ||
| - | < | + | |
| - | + | ||
| - | === private Schlüssel zum Zertifikat === | + | |
| - | # ll / | + | |
| - | + | ||
| - | < | + | |
| - | + | ||
| - | === Server-Zertifikat === | + | |
| - | # ll / | + | |
| - | + | ||
| - | < | + | |
| - | + | ||
| - | ==== graylog Input ==== | + | |
| - | Nun öffnen wir den zu konfigurierenden **Input** in der WEB-GUI mit dem Browser unserer Wahl. | + | |
| - | $ firefox https:// | + | |
| - | + | ||
| - | Folgende Optionen sind für die TLS-Aktivierung wichtig: | + | |
| - | + | ||
| - | * **Port** = 6514 | + | |
| - | * **TLS cert file (optional)** = / | + | |
| - | * **TLS private key file (optional)** = / | + | |
| - | * **TLS client authentication (optional)** = required | + | |
| - | * **TLS Client Auth Trusted Certs (optional)** = / | + | |
| - | * **Enable TLS (optional) | + | |
| - | * **TCP keepalive (optional) | + | |
| - | + | ||
| - | {{ : | + | |
| - | + | ||
| - | Über die Schaltfläche **[ Update input ]** verlassen und speichern wir unsere Änderungen. | + | |
| - | + | ||
| - | Mit dem Update des Inputs wird auch der Port **6514** geöffnet; dies können wir mit Hilfe von **netstat** auch abfragen. | + | |
| - | # netstat -tulpen | grep 6514 | + | |
| - | + | ||
| - | tcp6 | + | |
| - | + | ||
| - | ==== iptables Paketfilter ==== | + | |
| - | Damit sich unsere Clients auch mit dem Port **6514** verbinden können, benötigen wir eine passende Firewall-Regel, | + | |
| - | # firewall-cmd --permanent --zone=public --add-rich-rule=" | + | |
| - | + | ||
| - | success | + | |
| - | + | ||
| - | Zum Aktivieren führen wir einen reload des **firewalld** Daemon durch. | + | |
| - | # firewall-cmd --reload | + | |
| - | + | ||
| - | Zu guter letzt prüfen wir nun mit Hilfe von **telnet**, ob wir uns vom client **vml000037** mit dem Port **6514** unseres graylog-servers **vml000117** verbinden können | + | |
| - | # telnet vml000117 6514 | + | |
| - | + | ||
| - | Trying 10.0.0.117... | + | |
| - | Connected to 10.0.0.117. | + | |
| - | Escape character is ' | + | |
| - | + | ||
| - | Connection closed by foreign host. | + | |
| - | + | ||
| - | ===== Konfiguration des rsyslog client ===== | + | |
| - | Damit der rsyslog-Daemon TLS-gesicherte Verbindungen aufbauen kann, muss dieser über das Modul **lmnsd_gtls** verfügen. Dieses Modul ist Bestandteil des RPM-Paketes **rsyslog-gnutls**. | + | |
| - | + | ||
| - | ==== rsyslog-gnutls Modul installieren ==== | + | |
| - | In aller Regel wird das RPM **rsyslog-gnutls**noch nicht installiert sein, so dass wir dieses nun mit Hilfe von **yum** noch nachholen müssen. | + | |
| - | # yum install rsyslog-gnutls -y | + | |
| - | + | ||
| - | Den Inhalt dieses Paketes können wir wir folgt bei Bedarf ermitteln. | + | |
| - | # rpm -qil rsyslog-gnutls | + | |
| - | < | + | |
| - | Version | + | |
| - | Release | + | |
| - | Architecture: | + | |
| - | Install Date: Sun 03 Jan 2016 02:12:09 PM CET | + | |
| - | Group : System Environment/ | + | |
| - | Size : 33480 | + | |
| - | License | + | |
| - | Signature | + | |
| - | Source RPM : rsyslog-7.4.7-12.el7.src.rpm | + | |
| - | Build Date : Fri 20 Nov 2015 12:34:35 PM CET | + | |
| - | Build Host : worker1.bsys.centos.org | + | |
| - | Relocations : (not relocatable) | + | |
| - | Packager | + | |
| - | Vendor | + | |
| - | URL : http:// | + | |
| - | Summary | + | |
| - | Description : | + | |
| - | The rsyslog-gnutls package contains the rsyslog plugins that provide the | + | |
| - | ability to receive syslog messages via upcoming | + | |
| - | IETF standard protocol. | + | |
| - | / | + | |
| - | + | ||
| - | ==== X.509 Dateien ==== | + | |
| - | Wie schon bei der Konfiguration des **graylog-server**' | + | |
| - | + | ||
| - | === Root CA Zertifikat === | + | |
| - | # ll / | + | |
| - | < | + | |
| - | + | ||
| - | === Client-Zertifikat === | + | |
| - | # ll / | + | |
| - | < | + | |
| - | + | ||
| - | === Schlüssel zum Client-Zertifikat === | + | |
| - | # ll / | + | |
| - | < | + | |
| - | + | ||
| - | ==== rsyslog konfigurieren ==== | + | |
| - | Nun bearbeiten wir die Konfigurationsdatei unseres **rsyslog**-Daemon und hinterlegen dort die entsprechenden Pfadangaben zu dem lmnsd_gtls-Modul, | + | |
| - | Die wichtigsten Änderungen sind hier noch einmal zusammengefasst: | + | |
| - | * **$DefaultNetstreamDriver // | + | |
| - | * **$DefaultNetstreamDriverCAFile // / | + | |
| - | * **$DefaultNetstreamDriverCertFile // / | + | |
| - | * **$DefaultNetstreamDriverKeyFile // / | + | |
| - | * **$ActionSendStreamDriverAuthMode // | + | |
| - | * **$ActionSendStreamDriverPermittedPeer // | + | |
| - | * **$ActionSendStreamDriverMode //1//** | + | |
| - | + | ||
| - | Alle Änderungen in der Konfigurationsdatei sind mit dem Namen **Django : < | + | |
| - | # vim / | + | |
| - | + | ||
| - | <file bash / | + | |
| - | + | ||
| - | # For more information see / | + | |
| - | # If you experience problems, see http:// | + | |
| - | + | ||
| - | #### MODULES #### | + | |
| - | + | ||
| - | # Django : 2016-01-03 | + | |
| - | # default: unset | + | |
| - | $DefaultNetstreamDriver gtls #make gtls driver the default | + | |
| - | + | ||
| - | # The imjournal module bellow is now used as a message source instead of imuxsock. | + | |
| - | $ModLoad imuxsock # provides support for local system logging (e.g. via logger command) | + | |
| - | $ModLoad imjournal # provides access to the systemd journal | + | |
| - | #$ModLoad imklog # reads kernel messages (the same are read from journald) | + | |
| - | #$ModLoad immark | + | |
| - | + | ||
| - | # Provides UDP syslog reception | + | |
| - | #$ModLoad imudp | + | |
| - | # | + | |
| - | + | ||
| - | # Provides TCP syslog reception | + | |
| - | #$ModLoad imtcp | + | |
| - | # | + | |
| - | + | ||
| - | + | ||
| - | #### GLOBAL DIRECTIVES #### | + | |
| - | + | ||
| - | # Where to place auxiliary files | + | |
| - | $WorkDirectory / | + | |
| - | + | ||
| - | # Use default timestamp format | + | |
| - | $ActionFileDefaultTemplate RSYSLOG_TraditionalFileFormat | + | |
| - | + | ||
| - | # File syncing capability is disabled by default. This feature is usually not required, | + | |
| - | # not useful and an extreme performance hit | + | |
| - | # | + | |
| - | + | ||
| - | # Include all config files in / | + | |
| - | $IncludeConfig / | + | |
| - | + | ||
| - | # Turn off message reception via local log socket; | + | |
| - | # local messages are retrieved through imjournal now. | + | |
| - | $OmitLocalLogging on | + | |
| - | + | ||
| - | # File to store the position in the journal | + | |
| - | $IMJournalStateFile imjournal.state | + | |
| - | + | ||
| - | # Django : 2016-01-03 - certificate files for TLS | + | |
| - | # default: unset | + | |
| - | $DefaultNetstreamDriverCAFile | + | |
| - | $DefaultNetstreamDriverCertFile / | + | |
| - | $DefaultNetstreamDriverKeyFile | + | |
| - | + | ||
| - | $ActionSendStreamDriverAuthMode x509/name | + | |
| - | $ActionSendStreamDriverPermittedPeer graylog-server.dmz.nausch.org | + | |
| - | # run driver in TLS-only mode | + | |
| - | $ActionSendStreamDriverMode 1 | + | |
| - | + | ||
| - | #### RULES #### | + | |
| - | + | ||
| - | # Log all kernel messages to the console. | + | |
| - | # Logging much else clutters up the screen. | + | |
| - | # | + | |
| - | + | ||
| - | # Log anything (except mail) of level info or higher. | + | |
| - | # Don't log private authentication messages! | + | |
| - | *.info; | + | |
| - | + | ||
| - | # The authpriv file has restricted access. | + | |
| - | authpriv.* | + | |
| - | + | ||
| - | # Log all the mail messages in one place. | + | |
| - | mail.* | + | |
| - | + | ||
| - | + | ||
| - | # Log cron stuff | + | |
| - | cron.* | + | |
| - | + | ||
| - | # Everybody gets emergency messages | + | |
| - | *.emerg | + | |
| - | + | ||
| - | # Save news errors of level crit and higher in a special file. | + | |
| - | uucp, | + | |
| - | + | ||
| - | # Save boot messages also to boot.log | + | |
| - | local7.* | + | |
| - | + | ||
| - | # Django : 2015-07-14 Logging für OpenLDAP-Server aktiviert | + | |
| - | local4.* | + | |
| - | # | + | |
| - | + | ||
| - | # ### begin forwarding rule ### | + | |
| - | # The statement between the begin ... end define a SINGLE forwarding | + | |
| - | # rule. They belong together, do NOT split them. If you create multiple | + | |
| - | # forwarding rules, duplicate the whole block! | + | |
| - | # Remote Logging (we use TCP for reliable delivery) | + | |
| - | # | + | |
| - | # An on-disk queue is created for this action. If the remote host is | + | |
| - | # down, messages are spooled to disk and sent when it is up again. | + | |
| - | # | + | |
| - | # | + | |
| - | # | + | |
| - | # | + | |
| - | # | + | |
| - | # remote host is: name/ | + | |
| - | #*.* @@remote-host: | + | |
| - | # | + | |
| - | # Django : 2015-06-12 | + | |
| - | #$template GRAYLOGRFC5424,"< | + | |
| - | #*.* @@10.0.0.117: | + | |
| - | # Django : 2016-01-03 | + | |
| - | $template GRAYLOGRFC5424,"< | + | |
| - | *.* @@10.0.0.117: | + | |
| - | # | + | |
| - | # ### end of the forwarding rule ###</file> | + | |
| - | + | ||
| - | Zum Aktivieren der Änderungen führen wir nun einmal einen Reboot des rsyslog-Daemon durch. | + | |
| - | # systemctl restart rsyslog.service | + | |
| - | + | ||
| - | Im Syslog unseres Servers wir der erfolgreiche Neustart des rsyslog-Daemon entsprechend positiv vermerkt. | + | |
| - | # tailf / | + | |
| - | + | ||
| - | Jan 4 12:34:45 vml000037 rsyslogd: [origin software=" | + | |
| - | Jan 4 12:34:45 vml000037 rsyslogd: [origin software=" | + | |
| - | + | ||
| - | Rufen wir nun wieder die Web-GUI unseres **graylog**-Webservers auf, wird sowohl die aktive Verbindung wie auch die bereits übertragenen Daten angezeigt. | + | |
| - | + | ||
| - | $ firefox https:// | + | |
| - | + | ||
| - | {{ : | + | |
| - | + | ||
| - | Alles in allem können wir feststellen, | + | |
| ====== Links ====== | ====== Links ====== | ||
| Zeile 4804: | Zeile 4800: | ||
| * **[[http:// | * **[[http:// | ||
| - | ~~DISCUSSION~~ | + | |