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:graylog2 [17.02.2017 18:31. ] – [Zertifikat ausgeben] djangocentos:web_c7:graylog2 [22.07.2019 14:42. ] (aktuell) django
Zeile 64: Zeile 64:
   sub  2048R/60D31954 2013-09-16   sub  2048R/60D31954 2013-09-16
  
-Diesen **Key fingerprint = 4609 5ACC 8548 582C 1A26  99A9 D27D 666C D88E 42B4** vergleichen wir nun mit den Angaben auf der [[https://www.elastic.co/guide/en/elasticsearch/reference/current/setup-repositories.html|elasticsearch Dokumentationsseite]]. Stimmen beide Fingerprints überein, steht dem Import des Schlüssels nicht'mehr entgegen.+Diesen **Key fingerprint = 4609 5ACC 8548 582C 1A26  99A9 D27D 666C D88E 42B4** vergleichen wir nun mit den Angaben auf der [[https://www.elastic.co/guide/en/elasticsearch/reference/current/setup-repositories.html|elasticsearch Dokumentationsseite]]. Stimmen beide Fingerprints überein, steht dem Import des Schlüssels nichts mehr entgegen.
    # rpm --import /etc/pki/rpm-gpg/GPG-KEY-elasticsearch    # rpm --import /etc/pki/rpm-gpg/GPG-KEY-elasticsearch
  
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://packages.graylog2.org/repo/packages/graylog-2.2-repository_latest.rpm+   # yum localinstall https://packages.graylog2.org/repo/packages/graylog-2.3-repository_latest.rpm
  
-Anschließend kontrollieren wir nun die installierte Repo-Datei und tragen dort z.B. die gewünschte Priorität nach.+Anschliessend kontrollieren wir nun die installierte Repo-Datei und tragen dort z.B. die gewünschte Priorität nach.
    # vim /etc/yum.repos.d/graylog.repo    # vim /etc/yum.repos.d/graylog.repo
 <file bash /etc/yum.repos.d/graylog.repo>[graylog] <file bash /etc/yum.repos.d/graylog.repo>[graylog]
 name=graylog name=graylog
-baseurl=https://packages.graylog2.org/repo/el/stable/2.2/$basearch/+baseurl=https://packages.graylog2.org/repo/el/stable/2.3/$basearch/
 gpgcheck=1 gpgcheck=1
 gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-graylog gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-graylog
Zeile 249: Zeile 249:
 Im nächsten Schritt installieren wir nun noch elasticsearch als Suchmaschine/-server. Im nächsten Schritt installieren wir nun noch elasticsearch als Suchmaschine/-server.
    # yum install elasticsearch -y    # yum install elasticsearch -y
- 
-Bei der Installation des RPMs werden unter anderem folgende Informationen angegeben: 
-<code>... 
- 
-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                                                                                                                                 1/ 
-### NOT starting on installation, please execute the following statements to configure elasticsearch service to start automatically using systemd 
- sudo systemctl daemon-reload 
- sudo systemctl enable elasticsearch.service 
-### You can start elasticsearch service by executing 
- sudo systemctl start elasticsearch.service 
-  Verifying  : elasticsearch-2.4.4-1.noarch                                                                                                                                 1/ 
- 
-Installed: 
-  elasticsearch.noarch 0:2.4.4-1                                                             
-</code> 
- 
-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:
 /var/log/elasticsearch /var/log/elasticsearch
 /var/run/elasticsearch</code> /var/run/elasticsearch</code>
 +
 ==== graylog ==== ==== graylog ====
 Zu guter letzt installieren wir nun noch Pakete **graylog** sowie das Zusatzprogramm **pwgen** zum Generieren von Passwörtern, natürlich auch dieses mal mit Unterstützung von **YUM**. Zu guter letzt installieren wir nun noch Pakete **graylog** sowie das Zusatzprogramm **pwgen** zum Generieren von Passwörtern, natürlich auch dieses mal mit Unterstützung von **YUM**.
Zeile 378: Zeile 356:
    # rpm -qil graylog-server    # rpm -qil graylog-server
 <code>Name        : graylog-server <code>Name        : graylog-server
-Version     : 2.2.0 +Version     : 2.3.1 
-Release     : 11+Release     : 1
 Architecture: noarch Architecture: noarch
-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     : GPLv3 License     : GPLv3
-Signature   : RSA/SHA1, Thu 09 Feb 2017 12:43:00 PM CET, Key ID d44c1d8db1606f22 +Signature   : RSA/SHA1, Fri 25 Aug 2017 03:57:24 PM CEST, Key ID d44c1d8db1606f22 
-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    : Graylog, Inc. <hello@graylog.org> Packager    : Graylog, Inc. <hello@graylog.org>
Zeile 407: Zeile 385:
 /usr/share/graylog-server/lib/sigar/libsigar-amd64-linux.so /usr/share/graylog-server/lib/sigar/libsigar-amd64-linux.so
 /usr/share/graylog-server/lib/sigar/libsigar-x86-linux.so /usr/share/graylog-server/lib/sigar/libsigar-x86-linux.so
-/usr/share/graylog-server/plugin/graylog-plugin-anonymous-usage-statistics-2.2.0.jar +/usr/share/graylog-server/plugin/graylog-plugin-anonymous-usage-statistics-2.3.1.jar 
-/usr/share/graylog-server/plugin/graylog-plugin-beats-2.2.0.jar +/usr/share/graylog-server/plugin/graylog-plugin-beats-2.3.1.jar 
-/usr/share/graylog-server/plugin/graylog-plugin-collector-2.2.0.jar +/usr/share/graylog-server/plugin/graylog-plugin-collector-2.3.1.jar 
-/usr/share/graylog-server/plugin/graylog-plugin-enterprise-integration-2.2.0.jar +/usr/share/graylog-server/plugin/graylog-plugin-enterprise-integration-2.3.1.jar 
-/usr/share/graylog-server/plugin/graylog-plugin-map-widget-2.2.0.jar +/usr/share/graylog-server/plugin/graylog-plugin-map-widget-2.3.1.jar 
-/usr/share/graylog-server/plugin/graylog-plugin-pipeline-processor-2.2.0.jar</code>+/usr/share/graylog-server/plugin/graylog-plugin-pipeline-processor-2.3.1.jar</code>
  
  
Zeile 473: Zeile 451:
 </pre></html> </pre></html>
  
-Der erfolgreiche Start des Servers wird auch in dessen Logdatei protokolliert.+Der erfolgreiche Start des Servers wird auch in dessen Logdatei protokolliert. 
    # less /var/log/mongodb/mongod.log    # less /var/log/mongodb/mongod.log
  
Zeile 603: Zeile 581:
  
   Created symlink from /etc/systemd/system/multi-user.target.wants/setra256.service to /etc/systemd/system/setra256.service.   Created symlink from /etc/systemd/system/multi-user.target.wants/setra256.service to /etc/systemd/system/setra256.service.
- 
- 
  
 === 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 "graylog-user" -p "7h3FBI15n07ar0ckb4and" 127.0.0.1:27017/graylog+   # mongo -u "graylog-user" -p "7h3FBI15ar0ckb4and" 127.0.0.1:27017/graylog
  
   MongoDB shell version: 2.6.12   MongoDB shell version: 2.6.12
Zeile 1369: Zeile 1345:
 Anschließend informieren wir den **systemd** über unser "updatesicheres" Startscript. Anschließend informieren wir den **systemd** über unser "updatesicheres" Startscript.
    systemctl daemon-reload    systemctl daemon-reload
- 
- 
- 
- 
- 
- 
  
 === Start des Daemon === === Start des Daemon ===
Zeile 2477: Zeile 2447:
 # Django : 2017-02-14 # Django : 2017-02-14
 $template GRAYLOGRFC5424,"<%PRI%>%PROTOCOL-VERSION% %TIMESTAMP:::date-rfc3339% %HOSTNAME% %APP-NAME% %PROCID% %MSGID% %STRUCTURED-DATA% %msg%\n" $template GRAYLOGRFC5424,"<%PRI%>%PROTOCOL-VERSION% %TIMESTAMP:::date-rfc3339% %HOSTNAME% %APP-NAME% %PROCID% %MSGID% %STRUCTURED-DATA% %msg%\n"
-*.* @10.0.0.117:514;RSYSLOG_SyslogProtocol23Format+*.* @@10.0.0.117:514;RSYSLOG_SyslogProtocol23Format
 # #
 # ### end of the forwarding rule ###</code> # ### end of the forwarding rule ###</code>
Zeile 3485: Zeile 3455:
 </pre></html> </pre></html>
  
-=== 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 /etc/pki/CA/certs/graylog-server.dmz.nausch.org.certificate.pem /etc/pki/tls/certs/    # cp /etc/pki/CA/certs/graylog-server.dmz.nausch.org.certificate.pem /etc/pki/tls/certs/
Zeile 3981: Zeile 3951:
 -----END CERTIFICATE-----</code> -----END CERTIFICATE-----</code>
  
-=== 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 /etc/pki/tls/certs/rsyslog.vml000037.dmz.nausch.org.certificate.pem 
 + 
 +<code>-----BEGIN CERTIFICATE----- 
 +MIIGNjCCBB6gAwIBAgIBATANBgkqhkiG9w0BAQ0FADCBnzELMAkGA1UEBhMCREUx 
 +DzANBgNVBAgMBkJheWVybjERMA8GA1UEBwwIUGxpZW5pbmcxEzARBgNVBAoMCm5h 
 +dXNjaC5vcmcxHjAcBgNVBAsMFVplcnRpZml6aWVydW5nc3N0ZWxsZTETMBEGA1UE 
 +AwwKZ3JheWxvZyBDQTEiMCAGCSqGSIb3DQEJARYTY2EtYWRtaW5AbmF1c2NoLm9y 
 +ZzAeFw0xNjAxMDQxMDA4NTNaFw00NTEyMjcxMDA4NTNaMIGfMQswCQYDVQQGEwJE 
 +RTEPMA0GA1UECAwGQmF5ZXJuMRMwEQYDVQQKDApuYXVzY2gub3JnMRYwFAYDVQQL 
 +DA1JVC1Nb25pdG9yaW5nMSkwJwYDVQQDDCByc3lzbG9nLnZtbDAwMDAzNy5kbXou 
 +bmF1c2NoLm9yZzEnMCUGCSqGSIb3DQEJARYYZ3JheWxvZy1hZG1pbkBuYXVzY2gu 
 +b3JnMIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIICCgKCAgEA6mVcmjs+qS1/8aWf 
 +s+PNpFP7cDD9yL4A/QQqCPTq0mlmAi3F2bhTjdlafP16khJMq4POeorTDmAWh6Cm 
 +IV6WKzaH6YXxG/5Wh+NuMECe9/jyjwX6V9D7EJSkLhbtVcsiYeOsTBNscNrmi4tU 
 +9k7UWFoYBvFhIJgP3EwwTu/Eswxjk4JKiZgua651xzrJYCWsWPza1IM1xpYs2W9e 
 +DJ+devIuq/AGW/VKdGICg5p24wTbn+5A1QOtRQ1pvjn0AHXbTfDpVnvlPj5jaSPJ 
 +tAri0c1WdkGLQ/P8LgHKIRZ9qSTlZZ0hvGS83eH3iTMoOE4JfF187B9nWsCsPbIy 
 +mnPM8sVBTBe3dcqtdjd+pvKFEMXj7pWUstJRzFmWyuQPlsF7iUJQYQFsMzIznXJX 
 +okWS8L33R2/BUcC5Bf2pr6hs9psapeQrNAtiBLfDiaqDWlyCsNFyrAvg5JQ8RAuV 
 +6aWXlu7pOLmSdImTMaZeyt342fjq/7NiSkWqHDUF/Cw22rJZr4JpLNdNbN8u/MFK 
 +9uH5V7eDs7FOSDYeV5RlHqk/llYDIUYC3EpURvCZJZzIvyWK1h+6/atwzZbMKDY7 
 +ZrD7SEdZeGlbaWypyqEjVnpH90nPJbUdN4OE/vmKvv++5ZOcwAWZ0xSmziPcdc4M 
 +peNAz/kQpkCTHyVR9n9cpHS3szkCAwEAAaN7MHkwCQYDVR0TBAIwADAsBglghkgB 
 +hvhCAQ0EHxYdT3BlblNTTCBHZW5lcmF0ZWQgQ2VydGlmaWNhdGUwHQYDVR0OBBYE 
 +FJMunPuznVtVigmBtPvCyoYonuqIMB8GA1UdIwQYMBaAFPfDBHAlOC8Cgl1fL38b 
 +ZpdDn9gOMA0GCSqGSIb3DQEBDQUAA4ICAQBaVF0IUx0574XAr46Fv8m0A0m33EpC 
 +q0YfVNeObMxwALDawYzYktHx2U3Zj4qtjttWG4zCYx3EBkHyB83jCUpoBp1Cy+cF 
 +hpMmiqoR/nQ44ieaD6g44+rmY6RwCX0Bacxg98EyOtY9mj3hb45Up7z+3prh98t1 
 +ZcMuOTSL/ELyBep/ixGQ1/wX5j6hLG9RidzaYBJ3mS6zICqbY7Yrg2A8ISuNp7ah 
 +fDF1COlJqSNgIkm4JhF0AKkeDCVbDeIeMGEHymx+EJLRGXPZEVOMzFAtIiOd3q8C 
 +yMAH0y5CFRp4dgOTjNE6UBkF4sBrWK5YlhCTbgh/ssFTXA7SpyjjdDSt1uJcO22P 
 +pqtpsMi5Uii+H98vtuTi4rWxweiyza4BfO6hrg3iWPXP02HZSOKwLppszii/PQJn 
 +SO4lKAFL5UiXiIBmginPVdpnG7FumYglkvb8vG+J4KHOs1WOOVpSEsoGt5rDiomh 
 +Q1PPcIqUhy9CJDwS6Yf6057eMyhVjJvxqrRNun3etzO8a+KKgtTYroR4kCc94hXa 
 +/jq030Y4XKhbVYGR8jggKvkoXYidtrTRSwcmpO+r+ufpNGEBjXeNrku3GZPdZBaQ 
 +oIbrwlGiDKORtdjLcBvwQshxGWAfXmpPZi1CddLCP4KxPMFeZ3uZ+bE1FgD/+MDo 
 +kY+Z9s9+By5IVw== 
 +-----END CERTIFICATE-----</code> 
 + 
 +=== Ein Zertifikat revoken === 
 +Will man ein ausgestelltes Zertifikat zurückziehen (revoken) nutzen wir ebenfalls das Programm **openssl**. 
 +   # openssl ca -revoke /etc/pki/CA/certs/rsyslog.vml000137.dmz.nausch.org.certificate.pem 
 + 
 +  Using configuration from /etc/pki/tls/openssl.cnf 
 +  Enter pass phrase for /etc/pki/CA/private/root-ca.key.pem: 
 +  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, in dem wir die Clientzertifikate ablegen können. 
 + 
 +Zunächst erstellen wir uns ein Verzeichnis. 
 +   # mkdir /etc/pki/tls/graylog-client-certs 
 + 
 +Anschließend kopieren wir das Clientzertifikat unseres Clientrechners **vml000037** in das Clientverzeichnis. 
 +   # cp /etc/pki/CA/certs/rsyslog.vml000037.dmz.nausch.org.certificate.pem /etc/pki/tls/graylog-client-certs/ 
 + 
 +==== 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 'n' paste** kopieren. 
 + 
 +=== CA Root-Zertifikat === 
 +   # ll /etc/pki/CA/certs/root-ca.certifikate.pem  
 + 
 +<code>-rw-r--r--. 1 root root 2167 Jan  3 23:57 /etc/pki/CA/certs/root-ca.certifikate.pem</code> 
 + 
 +=== private Schlüssel zum Zertifikat === 
 +   # ll /etc/pki/tls/private/graylog-server.dmz.nausch.org.key.pem  
 + 
 +<code>-r--------. 1 root root 3243 Jan  4 00:12 /etc/pki/tls/private/graylog-server.dmz.nausch.org.key.pem</code> 
 + 
 +=== Server-Zertifikat === 
 +   # ll /etc/pki/tls/certs/graylog-server.dmz.nausch.org.certificate.pem  
 + 
 +<code>-rw-r--r--. 1 root root 2212 Jan  4 00:32 /etc/pki/tls/certs/graylog-server.dmz.nausch.org.certificate.pem</code> 
 + 
 +==== graylog Input ==== 
 +Nun öffnen wir den zu konfigurierenden **Input** in der WEB-GUI mit dem Browser unserer Wahl. 
 +   $ firefox https://graylog.nausch.org/system/inputs 
 + 
 +Folgende Optionen sind für die TLS-Aktivierung wichtig: 
 + 
 +  * **Port** = 6514 
 +  * **TLS cert file (optional)** = /etc/pki/tls/certs/graylog-server.dmz.nausch.org.certificate.pem 
 +  * **TLS private key file (optional)** = /etc/pki/tls/private/graylog-server.dmz.nausch.org.key.pem 
 +  * **TLS client authentication (optional)** = required 
 +  * **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&505 |Bild: graylog Konfiguration Input (TCP/TLS)}} 
 + 
 +Ü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            0 :::6514                 :::                   LISTEN      988        9660525    1391/java 
 + 
 +==== iptables Paketfilter ==== 
 +Damit sich unsere Clients auch mit dem Port **6514** verbinden können, benötigen wir eine passende Firewall-Regel, die wir nun noch anlegen müssen.  
 +   # firewall-cmd --permanent --zone=public --add-rich-rule="rule family="ipv4" source address="10.0.0.0/24" port protocol="tcp" port="6514" destination address="10.0.0.117/32" accept" 
 + 
 +  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 
 +<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> 
 + 
 +==== 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) 
 +# 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 --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. 
 +# 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   /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;RSYSLOG_SyslogProtocol23Format 
 +
 +# ### 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. 
 + 
 +==== 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 //**/etc/pki/tls/openssl.cnf**// hinterlegen. 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 //**/etc/pki/tls/openssl.cnf**// hinterlegen.
    # vim /etc/pki/tls/openssl.cnf    # vim /etc/pki/tls/openssl.cnf
Zeile 4359: Zeile 4652:
  # (optional, default: no)</file>  # (optional, default: no)</file>
  
-=== 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 imjournal # provides access to the systemd journal
 #$ModLoad imklog # reads kernel messages (the same are read from journald) #$ModLoad imklog # reads kernel messages (the same are read from journald)
 #$ModLoad immark  # provides --MARK-- message capability #$ModLoad immark  # provides --MARK-- message capability
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: $OmitLocalLogging on
  
 # File to store the position in the journal # File to store the position in the journal
-$IMJournalStateFile imjournal.state+# Django : 2017-09-26 
 +# default: $IMJournalStateFile imjournal.state
  
 # 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,"<%PRI%>%PROTOCOL-VERSION% %TIMESTAMP:::date-rfc3339% %HOSTNAME% %APP-NAME% %PROCID% %MSGID% %STRUCTURED-DATA% %msg%\n" $template GRAYLOGRFC5424,"<%PRI%>%PROTOCOL-VERSION% %TIMESTAMP:::date-rfc3339% %HOSTNAME% %APP-NAME% %PROCID% %MSGID% %STRUCTURED-DATA% %msg%\n"
-*.* @10.0.0.117:514;RSYSLOG_SyslogProtocol23Format+*.* @10.0.0.117:6514;RSYSLOG_SyslogProtocol23Format
 # #
 # ### end of the forwarding rule ###</file> # ### end of the forwarding rule ###</file>
     - rsyslog-Daemon neu starten zum Aktivieren der Konfigurationsänderung.<code> # systemctl restart rsyslog.service</code>     - rsyslog-Daemon neu starten zum Aktivieren der Konfigurationsänderung.<code> # systemctl restart rsyslog.service</code>
  
 +<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 rsyslog-client und graylog-server abgesichert und sondern auch der Zugriff des Clients auf den zentralen syslog-server geregelt werden
-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 /etc/pki/tls/certs/rsyslog.vml000037.dmz.nausch.org.certificate.pem+
  
-<code>-----BEGIN CERTIFICATE----- +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örenAuch wenn der ungeübten Admin diesen Umstand bis jetzt erfolgreich verdrängte
-MIIGNjCCBB6gAwIBAgIBATANBgkqhkiG9w0BAQ0FADCBnzELMAkGA1UEBhMCREUx +</WRAP>
-DzANBgNVBAgMBkJheWVybjERMA8GA1UEBwwIUGxpZW5pbmcxEzARBgNVBAoMCm5h +
-dXNjaC5vcmcxHjAcBgNVBAsMFVplcnRpZml6aWVydW5nc3N0ZWxsZTETMBEGA1UE +
-AwwKZ3JheWxvZyBDQTEiMCAGCSqGSIb3DQEJARYTY2EtYWRtaW5AbmF1c2NoLm9y +
-ZzAeFw0xNjAxMDQxMDA4NTNaFw00NTEyMjcxMDA4NTNaMIGfMQswCQYDVQQGEwJE +
-RTEPMA0GA1UECAwGQmF5ZXJuMRMwEQYDVQQKDApuYXVzY2gub3JnMRYwFAYDVQQL +
-DA1JVC1Nb25pdG9yaW5nMSkwJwYDVQQDDCByc3lzbG9nLnZtbDAwMDAzNy5kbXou +
-bmF1c2NoLm9yZzEnMCUGCSqGSIb3DQEJARYYZ3JheWxvZy1hZG1pbkBuYXVzY2gu +
-b3JnMIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIICCgKCAgEA6mVcmjs+qS1/8aWf +
-s+PNpFP7cDD9yL4A/QQqCPTq0mlmAi3F2bhTjdlafP16khJMq4POeorTDmAWh6Cm +
-IV6WKzaH6YXxG/5Wh+NuMECe9/jyjwX6V9D7EJSkLhbtVcsiYeOsTBNscNrmi4tU +
-9k7UWFoYBvFhIJgP3EwwTu/Eswxjk4JKiZgua651xzrJYCWsWPza1IM1xpYs2W9e +
-DJ+devIuq/AGW/VKdGICg5p24wTbn+5A1QOtRQ1pvjn0AHXbTfDpVnvlPj5jaSPJ +
-tAri0c1WdkGLQ/P8LgHKIRZ9qSTlZZ0hvGS83eH3iTMoOE4JfF187B9nWsCsPbIy +
-mnPM8sVBTBe3dcqtdjd+pvKFEMXj7pWUstJRzFmWyuQPlsF7iUJQYQFsMzIznXJX +
-okWS8L33R2/BUcC5Bf2pr6hs9psapeQrNAtiBLfDiaqDWlyCsNFyrAvg5JQ8RAuV +
-6aWXlu7pOLmSdImTMaZeyt342fjq/7NiSkWqHDUF/Cw22rJZr4JpLNdNbN8u/MFK +
-9uH5V7eDs7FOSDYeV5RlHqk/llYDIUYC3EpURvCZJZzIvyWK1h+6/atwzZbMKDY7 +
-ZrD7SEdZeGlbaWypyqEjVnpH90nPJbUdN4OE/vmKvv++5ZOcwAWZ0xSmziPcdc4M +
-peNAz/kQpkCTHyVR9n9cpHS3szkCAwEAAaN7MHkwCQYDVR0TBAIwADAsBglghkgB +
-hvhCAQ0EHxYdT3BlblNTTCBHZW5lcmF0ZWQgQ2VydGlmaWNhdGUwHQYDVR0OBBYE +
-FJMunPuznVtVigmBtPvCyoYonuqIMB8GA1UdIwQYMBaAFPfDBHAlOC8Cgl1fL38b +
-ZpdDn9gOMA0GCSqGSIb3DQEBDQUAA4ICAQBaVF0IUx0574XAr46Fv8m0A0m33EpC +
-q0YfVNeObMxwALDawYzYktHx2U3Zj4qtjttWG4zCYx3EBkHyB83jCUpoBp1Cy+cF +
-hpMmiqoR/nQ44ieaD6g44+rmY6RwCX0Bacxg98EyOtY9mj3hb45Up7z+3prh98t1 +
-ZcMuOTSL/ELyBep/ixGQ1/wX5j6hLG9RidzaYBJ3mS6zICqbY7Yrg2A8ISuNp7ah +
-fDF1COlJqSNgIkm4JhF0AKkeDCVbDeIeMGEHymx+EJLRGXPZEVOMzFAtIiOd3q8C +
-yMAH0y5CFRp4dgOTjNE6UBkF4sBrWK5YlhCTbgh/ssFTXA7SpyjjdDSt1uJcO22P +
-pqtpsMi5Uii+H98vtuTi4rWxweiyza4BfO6hrg3iWPXP02HZSOKwLppszii/PQJn +
-SO4lKAFL5UiXiIBmginPVdpnG7FumYglkvb8vG+J4KHOs1WOOVpSEsoGt5rDiomh +
-Q1PPcIqUhy9CJDwS6Yf6057eMyhVjJvxqrRNun3etzO8a+KKgtTYroR4kCc94hXa +
-/jq030Y4XKhbVYGR8jggKvkoXYidtrTRSwcmpO+r+ufpNGEBjXeNrku3GZPdZBaQ +
-oIbrwlGiDKORtdjLcBvwQshxGWAfXmpPZi1CddLCP4KxPMFeZ3uZ+bE1FgD/+MDo +
-kY+Z9s9+By5IVw== +
------END CERTIFICATE-----</code> +
- +
-===== 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, in dem wir die Clientzertifikate ablegen können. +
- +
-Zunächst erstellen wir uns ein Verzeichnis. +
-   # mkdir /etc/pki/tls/graylog-client-certs +
- +
-Anschließend kopieren wir das Clientzertifikat unseres Clientrechners **vml000037** in das Clientverzeichnis. +
-   # cp /etc/pki/CA/certs/rsyslog.vml000037.dmz.nausch.org.certificate.pem /etc/pki/tls/graylog-client-certs/ +
- +
-==== 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 'n' paste** kopieren. +
- +
-=== CA Root-Zertifikat === +
-   # ll /etc/pki/CA/certs/root-ca.certifikate.pem  +
- +
-<code>-rw-r--r--. 1 root root 2167 Jan  3 23:57 /etc/pki/CA/certs/root-ca.certifikate.pem</code> +
- +
-=== private Schlüssel zum Zertifikat === +
-   # ll /etc/pki/tls/private/graylog-server.dmz.nausch.org.key.pem  +
- +
-<code>-r--------. 1 root root 3243 Jan  4 00:12 /etc/pki/tls/private/graylog-server.dmz.nausch.org.key.pem</code> +
- +
-=== Server-Zertifikat === +
-   # ll /etc/pki/tls/certs/graylog-server.dmz.nausch.org.certificate.pem  +
- +
-<code>-rw-r--r--. 1 root root 2212 Jan  4 00:32 /etc/pki/tls/certs/graylog-server.dmz.nausch.org.certificate.pem</code> +
- +
-==== graylog Input ==== +
-Nun öffnen wir den zu konfigurierenden **Input** in der WEB-GUI mit dem Browser unserer Wahl. +
-   $ firefox https://graylog.nausch.org/system/inputs +
- +
-Folgende Optionen sind für die TLS-Aktivierung wichtig: +
- +
-  * **Port** = 6514 +
-  * **TLS cert file (optional)** = /etc/pki/tls/certs/graylog-server.dmz.nausch.org.certificate.pem +
-  * **TLS private key file (optional)** = /etc/pki/tls/private/graylog-server.dmz.nausch.org.key.pem +
-  * **TLS client authentication (optional)** = required +
-  * **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&505 |Bild: graylog Konfiguration Input (TCP/TLS)}} +
- +
-Ü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            0 :::6514                 :::                   LISTEN      988        9660525    1391/java +
- +
-==== iptables Paketfilter ==== +
-Damit sich unsere Clients auch mit dem Port **6514** verbinden können, benötigen wir eine passende Firewall-Regel, die wir nun noch anlegen müssen.  +
-   # firewall-cmd --permanent --zone=public --add-rich-rule="rule family="ipv4" source address="10.0.0.0/24" port protocol="tcp" port="6514" destination address="10.0.0.117/32" accept" +
- +
-  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 +
-<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> +
- +
-==== X.509 Dateien ==== +
-Wie schon bei der Konfiguration des **graylog-server**'s, rufen wir uns auch hier nochmal die benötigten ins GedächtnisLassen 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.+
  
 ====== Links ====== ====== Links ======
Zeile 4804: Zeile 4800:
   * **[[http://dokuwiki.nausch.org/doku.php/|Zurück zur Startseite]]**   * **[[http://dokuwiki.nausch.org/doku.php/|Zurück zur Startseite]]**
  
-~~DISCUSSION~~+
  
  • centos/web_c7/graylog2.txt
  • Zuletzt geändert: 22.07.2019 14:42.
  • von django