Unterschiede

Hier werden die Unterschiede zwischen zwei Versionen angezeigt.

Link zu dieser Vergleichsansicht

Beide Seiten der vorigen Revision Vorhergehende Überarbeitung
Nächste Überarbeitung
Vorhergehende Überarbeitung
centos:web_c7:graylog [04.01.2016 22:27. ] – [Konfiguration graylog-server] djangocentos:web_c7:graylog [22.07.2019 14:59. ] (aktuell) – Externe Bearbeitung 127.0.0.1
Zeile 474: Zeile 474:
  
 ==== MongoDB ==== ==== MongoDB ====
-Obwohl in der **MongoDB** nur Metainformationen gespeichert und vorgehalten werden, wollen wir diese NoSQL-Datenbank absichern, indem wir einen Datenbakbenutzer mit Passwort anlegen. Somit ist sichergestellt, dass kein unbefugter Daten der MongoDB abrufen, ändern odfer gar löschen kann.+Obwohl in der **MongoDB** nur Metainformationen gespeichert und vorgehalten werden, wollen wir diese NoSQL-Datenbank absichern, indem wir einen Datenbankbenutzer mit Passwort anlegen. Somit ist sichergestellt, dass kein unbefugter Daten der MongoDB abrufen, ändern oder gar löschen kann.
  
 === Start des Daemon === === Start des Daemon ===
Zeile 1482: Zeile 1482:
  
 Den Serverstatus können wir wie folgt abfragen. Den Serverstatus können wir wie folgt abfragen.
-   # systemctl status mongod.service+   # systemctl status elasticsearch.service
  
 <html><pre class="code"> <html><pre class="code">
Zeile 2316: Zeile 2316:
 Die installationsspezifische kundenindividuelle Konfiguration der **graylog-web GUI** wird über dessen Konfigurationsdatei //**/etc/graylog/web/web.conf**// vorgenommen.  Die installationsspezifische kundenindividuelle Konfiguration der **graylog-web GUI** wird über dessen Konfigurationsdatei //**/etc/graylog/web/web.conf**// vorgenommen. 
  
-Wie schon bei der KOnfiguration des **[[centos:web_c7:graylog#etc_graylog_server_serverconf|graylog-server]]**'erstellen wir uns, vor der Bearbeitung der Konfigurationsdatei, noch einen **Passwort-Hash**, mit dem die Nutzerpassworte verschlüsselt werden. Diesen hash-Wert erstellen wir wie folgt:  +Wie schon bei der Konfiguration des **[[centos:web_c7:graylog#etc_graylog_server_serverconf|graylog-servers]]** erstellen wir uns, vor der Bearbeitung der Konfigurationsdatei, noch einen **Passwort-Hash**, mit dem die Nutzerpassworte verschlüsselt werden. Diesen hash-Wert erstellen wir wie folgt:  
-   # pwgen -N 1 -s 128</code>+   # pwgen -N 1 -s 128
  
   KM2OhCgRuTJe9f7bOr0uOtGcX45TB5kmF4L4Ty44bRUlu1y2qh0eDbs613Bv4QFk0ftGzuASpSW5DDBqpSKIlcdI39WdVHBSo33AoPZgKiABd7G7FduhKIMZVjiE7lod   KM2OhCgRuTJe9f7bOr0uOtGcX45TB5kmF4L4Ty44bRUlu1y2qh0eDbs613Bv4QFk0ftGzuASpSW5DDBqpSKIlcdI39WdVHBSo33AoPZgKiABd7G7FduhKIMZVjiE7lod
Zeile 2943: Zeile 2943:
 <font style="color: rgb(0, 0, 0)"># </font><font style="color: rgb(0, 0, 255)"><b><i>shred -u /etc/pki/tls/serverkey.pem</i></b></font> <font style="color: rgb(0, 0, 0)"># </font><font style="color: rgb(0, 0, 255)"><b><i>shred -u /etc/pki/tls/serverkey.pem</i></b></font>
 </pre></html> </pre></html>
 +
 +<WRAP center round important 90%>
 +**Wichtig**: \\
 +Damit **graylog** den soeben erzeugten Schlüssel später auch laden kann, müssen wir diesen erst noch in das passende **[[https://tools.ietf.org/html/rfc5208|PKCS #8 Format]]** konvertiert werden. Ein Versuch den originären **PKCS #1** Schlüssel zu laden würde andernfalls **graylog** mit folgendem Fehler quittieren. <code>2015-12-23T23:42:21.666+01:00 WARN  [AbstractNioSelector] Failed to initialize an accepted socket.
 +java.lang.IllegalArgumentException: Unsupported key type PKCS#1, please convert to PKCS#8</code> 
 +</WRAP>
 +
 +Wir konvertieren also noch den Schlüssel in das passende Format mit folgendem **openssl** Kommando.
 +<html><pre class="code">
 +<font style="color: rgb(0, 0, 0)"># </font><font style="color: rgb(0, 0, 255)"><b><i>openssl pkcs8 -topk8 -in /etc/pki/tls/private/graylog-server.dmz.nausch.org.key.pem \
 +          -inform pem -out /etc/pki/tls/private/graylog-server.dmz.nausch.org.key_pk8.pem -outform pem -nocrypt</i></b></font>
 +</pre></html>
 +
 +Graylog selbst läuft mit den Nutzerrechten des Users **graylog**; wir müssen also auch noch dafür sorgen, dass der User graylog den Schlüssel auch lesen darf. Wir ändern daher die Berechtigungen wie folgt:
 +<html><pre class="code">
 +<font style="color: rgb(0, 0, 0)"># </font><font style="color: rgb(0, 0, 255)"><b><i>chown graylog.root /etc/pki/tls/private/graylog-server.dmz.nausch.org.key_pk8.pem</i></b></font>
 +</pre></html>
 +
  
 === CSR erstellen === === CSR erstellen ===
Zeile 3716: Zeile 3734:
   * **TLS client authentication (optional)** = required   * **TLS client authentication (optional)** = required
   * **TLS Client Auth Trusted Certs (optional)** = /etc/pki/tls/graylog-client-certs   * **TLS Client Auth Trusted Certs (optional)** = /etc/pki/tls/graylog-client-certs
 +  * **Enable TLS (optional) 
 +  * **TCP keepalive (optional)
  
-{{ :centos:web_c7:graylog_tls_001.png?direct&500 |Bild: graylog Konfiguration Input (TCP/TLS)}}+{{ :centos:web_c7:graylog_tls_001.png?direct&505 |Bild: graylog Konfiguration Input (TCP/TLS)}}
  
 Über die Schaltfläche **[ Update input ]** verlassen und speichern wir unsere Änderungen. Über die Schaltfläche **[ Update input ]** verlassen und speichern wir unsere Änderungen.
Zeile 3745: Zeile 3765:
  
 ===== Konfiguration des rsyslog client ===== ===== 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
  
-FIXME FIXME FIXME FIXME FIXME FIXME FIXME FIXME FIXME FIXME FIXME FIXME FIXME +Den Inhalt dieses Paketes können wir wir folgt bei Bedarf ermitteln. 
 +   # rpm -qil rsyslog-gnutls 
 +<code>Name        : rsyslog-gnutls 
 +Version     : 7.4.7 
 +Release     : 12.el7 
 +Architecture: x86_64 
 +Install Date: Sun 03 Jan 2016 02:12:09 PM CET 
 +Group       : System Environment/Daemons 
 +Size        : 33480 
 +License     : (GPLv3+ and ASL 2.0) 
 +Signature   : RSA/SHA256, Wed 25 Nov 2015 04:37:32 PM CET, Key ID 24c6a8a7f4a80eb5 
 +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    : CentOS BuildSystem <http://bugs.centos.org> 
 +Vendor      : CentOS 
 +URL         : http://www.rsyslog.com/ 
 +Summary     : TLS protocol support for rsyslog 
 +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. 
 +/usr/lib64/rsyslog/lmnsd_gtls.so</code>
  
-**// ... do gehds weida! //**+==== X.509 Dateien ==== 
 +Wie schon bei der Konfiguration des **graylog-server**'s, rufen wir uns auch hier nochmal die benötigten ins Gedächtnis. Lassen sich so so einfache Typo-Fehler bveim  Bearbeiten vermeiden. 
 + 
 +=== Root CA Zertifikat === 
 +   # ll /etc/pki/CA/certs/root-ca.certifikate.pem 
 +<code>-rw-r--r--1 root root 2167 Jan  4 12:18 /etc/pki/CA/certs/root-ca.certifikate.pem</code> 
 + 
 +=== Client-Zertifikat === 
 +   # ll /etc/pki/tls/certs/rsyslog.vml000037.dmz.nausch.org.certificate.pem  
 +<code>-rw-r--r--. 1 root root 2216 Jan  4 11:13 /etc/pki/tls/certs/rsyslog.vml000037.dmz.nausch.org.certificate.pem</code> 
 + 
 +=== Schlüssel zum Client-Zertifikat === 
 +   # ll /etc/pki/tls/private/rsyslog.vml000037.dmz.nausch.org.key.pem  
 +<code>-r--------. 1 root root 3243 Jan  4 10:57 /etc/pki/tls/private/rsyslog.vml000037.dmz.nausch.org.key.pem</code> 
 + 
 +==== rsyslog konfigurieren ==== 
 +Nun bearbeiten wir die Konfigurationsdatei unseres **rsyslog**-Daemon und hinterlegen dort die entsprechenden Pfadangaben zu dem lmnsd_gtls-Modul, der Schlüsseldatei und den Zertifikaten. 
 +Die wichtigsten Änderungen sind hier noch einmal zusammengefasst: 
 +  * **$DefaultNetstreamDriver //gtls//** 
 +  * **$DefaultNetstreamDriverCAFile // /etc/pki/ca-trust/source/anchors/root-ca.nausch.org.pem//** 
 +  * **$DefaultNetstreamDriverCertFile // /etc/pki/tls/certs/rsyslog.vml000037.dmz.nausch.org.certificate.pem//** 
 +  * **$DefaultNetstreamDriverKeyFile // /etc/pki/tls/private/rsyslog.vml000037.dmz.nausch.org.key.pem//** 
 +  * **$ActionSendStreamDriverAuthMode //x509/name//** 
 +  * **$ActionSendStreamDriverPermittedPeer //graylog-server.dmz.nausch.org//** 
 +  * **$ActionSendStreamDriverMode //1//** 
 + 
 +Alle Änderungen in der Konfigurationsdatei sind mit dem Namen **Django : <Datumsstempel>** versehen. 
 +   # vim /etc/rsyslog.conf 
 + 
 +<file bash /etc/rsyslog.conf># rsyslog configuration file 
 + 
 +# For more information see /usr/share/doc/rsyslog-*/rsyslog_conf.html 
 +# If you experience problems, see http://www.rsyslog.com/doc/troubleshoot.html 
 + 
 +#### 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 --MARK-- message capability 
 + 
 +# Provides UDP syslog reception 
 +#$ModLoad imudp 
 +#$UDPServerRun 514 
 + 
 +# Provides TCP syslog reception 
 +#$ModLoad imtcp 
 +#$InputTCPServerRun 514 
 + 
 + 
 +#### GLOBAL DIRECTIVES #### 
 + 
 +# Where to place auxiliary files 
 +$WorkDirectory /var/lib/rsyslog 
 + 
 +# 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 
 +#$ActionFileEnableSync on 
 + 
 +# Include all config files in /etc/rsyslog.d/ 
 +$IncludeConfig /etc/rsyslog.d/*.conf 
 + 
 +# 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   /etc/pki/ca-trust/source/anchors/root-ca.nausch.org.pem 
 +$DefaultNetstreamDriverCertFile /etc/pki/tls/certs/rsyslog.vml000037.dmz.nausch.org.certificate.pem 
 +$DefaultNetstreamDriverKeyFile  /etc/pki/tls/private/rsyslog.vml000037.dmz.nausch.org.key.pem 
 + 
 +$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. 
 +#kern.*                                                 /dev/console 
 + 
 +# Log anything (except mail) of level info or higher. 
 +# Don't log private authentication messages! 
 +*.info;mail.none;authpriv.none;cron.none                /var/log/messages 
 + 
 +# The authpriv file has restricted access. 
 +authpriv.*                                              /var/log/secure 
 + 
 +# Log all the mail messages in one place. 
 +mail.*                                                  -/var/log/maillog 
 + 
 + 
 +# Log cron stuff 
 +cron.*                                                  /var/log/cron 
 + 
 +# Everybody gets emergency messages 
 +*.emerg                                                 :omusrmsg:
 + 
 +# Save news errors of level crit and higher in a special file. 
 +uucp,news.crit                                          /var/log/spooler 
 + 
 +# Save boot messages also to boot.log 
 +local7.*                                                /var/log/boot.log 
 + 
 +# Django : 2015-07-14 Logging für OpenLDAP-Server aktiviert 
 +local4.*                                                -/var/log/ldap.log 
 +
 + 
 +# ### 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. 
 +#$ActionQueueFileName fwdRule1 # unique name prefix for spool files 
 +#$ActionQueueMaxDiskSpace 1g   # 1gb space limit (use as much as possible) 
 +#$ActionQueueSaveOnShutdown on # save messages to disk on shutdown 
 +#$ActionQueueType LinkedList   # run asynchronously 
 +#$ActionResumeRetryCount -1    # infinite retries if host is down 
 +# remote host is: name/ip:port, e.g. 192.168.0.1:514, port optional 
 +#*.* @@remote-host:514 
 +
 +# Django : 2015-06-12 
 +#$template GRAYLOGRFC5424,"<%PRI%>%PROTOCOL-VERSION% %TIMESTAMP:::date-rfc3339% %HOSTNAME% %APP-NAME% %PROCID% %MSGID% %STRUCTURED-DATA% %msg%\n" 
 +#*.* @@10.0.0.117:514;GRAYLOGRFC5424 
 +# Django : 2016-01-03 
 +$template GRAYLOGRFC5424,"<%PRI%>%PROTOCOL-VERSION% %TIMESTAMP:::date-rfc3339% %HOSTNAME% %APP-NAME% %PROCID% %MSGID% %STRUCTURED-DATA% %msg%\n" 
 +*.* @@10.0.0.117:6514;GRAYLOGRFC5424 
 +
 +# ### 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 /var/log/messages 
 + 
 +  Jan  4 12:34:45 vml000037 rsyslogd: [origin software="rsyslogd" swVersion="7.4.7" x-pid="28477" x-info="http://www.rsyslog.com"] exiting on signal 15. 
 +  Jan  4 12:34:45 vml000037 rsyslogd: [origin software="rsyslogd" swVersion="7.4.7" x-pid="28869" x-info="http://www.rsyslog.com"] start 
 + 
 +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://graylog.nausch.org/system/inputs 
 +  
 +{{ :centos:web_c7:graylog_tls_input.png?direct&810 |Bild: konfigurierter graylog Input Kanal mit TLS}} 
 + 
 +Alles in allem können wir feststellen, dass mit einem überschaubaren Aufwand, die Kommunikation zwischen den rsyslog-Clients und unserem graylog-server sicher und nur noch von authorisierten Quellen gestattet werden kann.
  
-FIXME FIXME FIXME FIXME FIXME FIXME FIXME FIXME FIXME FIXME FIXME FIXME FIXME  
 ====== Links ====== ====== Links ======
   * **[[centos:web_c7:start| ⇐ Zurück zu Kapitel "Webserverinstallation unter CentOS 7.x"]]**   * **[[centos:web_c7:start| ⇐ Zurück zu Kapitel "Webserverinstallation unter CentOS 7.x"]]**
Zeile 3757: Zeile 3964:
   * **[[http://dokuwiki.nausch.org/doku.php/|Zurück zur Startseite]]**   * **[[http://dokuwiki.nausch.org/doku.php/|Zurück zur Startseite]]**
  
- 
-~~DISCUSSION~~ 
  
  • centos/web_c7/graylog.1451946449.txt.gz
  • Zuletzt geändert: 04.01.2016 22:27.
  • von django