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:51. ] – [rsyslog konfigurieren] 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-----</ | ||
- | |||
- | === 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): | ||
- | |||
- | * auf dem **graylog** Server: | ||
- | - Schlüssel für den rsyslog-Client erzeugen < | ||
- | - Passphrase des gerade erzeiugten Client-Schlüssels entfernen < | ||
- | - Schlüssel mit passphrase vernichten < | ||
- | - Schlüssel auf den Clientrechner transferieren < | ||
- | - Zertificatsrequest erzeugen < | ||
- | -out / | ||
- | - Zertifikatsrequest der eigenen CA vorlegen. < | ||
- | / | ||
- | - Zertifikatsrequest durch die CA bearbeiten und Zertifikat erzeugen. < | ||
- | -out / | ||
- | - Zertifikat ausgeben und auf den Client-/ | ||
- | - Clientzertifikat dem graylog Server bekannt machden. < | ||
- | / | ||
- | - Root CA Zertifikat dem Client zur Verfügung stellen. < | ||
- | - **rsyslog-gnutls** auf dem Client installieren. < | ||
- | - originale rsyslog-Konfigurationsdatei sichern. < | ||
- | - rsyslog konfigurieren. < | ||
- | |||
- | # For more information see / | ||
- | # If you experience problems, see http:// | ||
- | |||
- | #### MODULES #### | ||
- | |||
- | # Django : 2017-2-14 | ||
- | # 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 : 2017-02-14 - 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.* | ||
- | |||
- | |||
- | # ### 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 : 2017-02-14 | ||
- | $template GRAYLOGRFC5424,"< | ||
- | *.* @10.0.0.117: | ||
- | # | ||
- | # ### end of the forwarding rule ###</ | ||
- | - rsyslog-Daemon neu starten zum Aktivieren der Konfigurationsänderung.< | ||
Zeile 4155: | Zeile 3993: | ||
kY+Z9s9+By5IVw== | kY+Z9s9+By5IVw== | ||
-----END CERTIFICATE-----</ | -----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 ===== | ===== Konfiguration graylog-server ===== | ||
Zeile 4301: | Zeile 4149: | ||
# 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 4331: | Zeile 4180: | ||
# 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 : 2016-01-03 - certificate files for TLS | # Django : 2016-01-03 - certificate files for TLS | ||
Zeile 4401: | Zeile 4252: | ||
# Django : 2016-01-03 | # Django : 2016-01-03 | ||
$template GRAYLOGRFC5424,"< | $template GRAYLOGRFC5424,"< | ||
- | *.* @@10.0.0.117: | + | *.* @@10.0.0.117: |
# | # | ||
# ### end of the forwarding rule ###</ | # ### end of the forwarding rule ###</ | ||
Zeile 4423: | Zeile 4274: | ||
==== Zertifikatsgenerierung und Clientkonfiguration ==== | ==== Zertifikatsgenerierung und Clientkonfiguration ==== | ||
- | === Zertifikatserstellung optimieren === | + | ==== 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 4800: | Zeile 4651: | ||
ess_cert_id_chain = no # Must the ESS cert id chain be included? | ess_cert_id_chain = no # Must the ESS cert id chain be included? | ||
# (optional, default: no)</ | # (optional, default: no)</ | ||
+ | |||
+ | ==== 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): | ||
+ | |||
+ | * auf dem **graylog** Server: | ||
+ | - Schlüssel für den rsyslog-Client erzeugen < | ||
+ | - Passphrase des gerade erzeiugten Client-Schlüssels entfernen < | ||
+ | - Schlüssel mit passphrase vernichten < | ||
+ | - Schlüssel auf den Clientrechner transferieren < | ||
+ | - Zertificatsrequest erzeugen < | ||
+ | -out / | ||
+ | - Zertifikatsrequest der eigenen CA vorlegen. < | ||
+ | / | ||
+ | - Zertifikatsrequest durch die CA bearbeiten und Zertifikat erzeugen. < | ||
+ | -out / | ||
+ | - Zertifikat ausgeben und auf den Client-/ | ||
+ | - Clientzertifikat dem graylog Server bekannt machden. < | ||
+ | / | ||
+ | - Root CA Zertifikat dem Client zur Verfügung stellen. < | ||
+ | - **rsyslog-gnutls** auf dem Client installieren. < | ||
+ | - originale rsyslog-Konfigurationsdatei sichern. < | ||
+ | - rsyslog konfigurieren. < | ||
+ | |||
+ | # For more information see / | ||
+ | # If you experience problems, see http:// | ||
+ | |||
+ | #### MODULES #### | ||
+ | |||
+ | # Django : 2017-2-14 | ||
+ | # 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 : 2017-02-14 - 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.* | ||
+ | |||
+ | |||
+ | # ### 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 : 2017-02-14 | ||
+ | $template GRAYLOGRFC5424,"< | ||
+ | *.* @10.0.0.117: | ||
+ | # | ||
+ | # ### end of the forwarding rule ###</ | ||
+ | - rsyslog-Daemon neu starten zum Aktivieren der Konfigurationsänderung.< | ||
+ | |||
+ | <WRAP center round important 90%> | ||
+ | **FAZIT**: | ||
+ | |||
+ | Mit Hilfe dieser 14 Bearbeitungsschritte kann nicht nur der Übertragungsweg zwischen rsyslog-client und graylog-server abgesichert und sondern auch der Zugriff des Clients auf den zentralen syslog-server geregelt werden. | ||
+ | |||
+ | Mit einfachen Boardmitteln unseres CentOS 7 Servers kann somit ein wesentlicher Beitrag zur Vertraulichkeit und Integrität von syslog-informationen geleistet werden und ein ungesicherte und ungeschützte Übertragung von sensitiven syslog-Informationen sollten der Vergangenheit angehören. Auch wenn der ungeübten Admin diesen Umstand bis jetzt erfolgreich verdrängte! | ||
+ | </ | ||
====== Links ====== | ====== Links ====== | ||
Zeile 4806: | Zeile 4800: | ||
* **[[http:// | * **[[http:// | ||
- | ~~DISCUSSION~~ | + | |