Unterschiede
Hier werden die Unterschiede zwischen zwei Versionen angezeigt.
Beide Seiten der vorigen Revision Vorhergehende Überarbeitung Nächste Überarbeitung | Vorhergehende Überarbeitung Nächste ÜberarbeitungBeide Seiten der Revision | ||
centos:web_c7:graylog [04.01.2016 19:58. ] – [graylog-server Zertifikat erzeugen] django | centos:web_c7:graylog [07.01.2016 18:20. ] – Logdatenanalyse mit graylog unter CentOS 7.x #TLS #graylog #rsyslog #centos7 django | ||
---|---|---|---|
Zeile 2943: | Zeile 2943: | ||
<font style=" | <font style=" | ||
</ | </ | ||
+ | |||
+ | <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:// | ||
+ | java.lang.IllegalArgumentException: | ||
+ | </ | ||
+ | |||
+ | Wir konvertieren also noch den Schlüssel in das passende Format mit folgendem **openssl** Kommando. | ||
+ | < | ||
+ | <font style=" | ||
+ | -inform pem -out / | ||
+ | </ | ||
+ | |||
+ | Graylog selbst läuft mit den Nutzerrechten des Users **graylog**; | ||
+ | < | ||
+ | <font style=" | ||
+ | </ | ||
+ | |||
=== CSR erstellen === | === CSR erstellen === | ||
Zeile 3237: | Zeile 3255: | ||
==== rsyslog Client-Zertifikate ==== | ==== rsyslog Client-Zertifikate ==== | ||
+ | Was uns nun noch für unser Glück fehlt, ist ein Server-Zertifikat für den **[[centos: | ||
- | FIXME FIXME FIXME FIXME FIXME FIXME FIXME FIXME FIXME FIXME FIXME FIXME FIXME | + | Im folgenden Konfigurationsbeispiel werden wir für den Host **vml.dmz.nausch.org** ein Clientzertifikat erstellen. |
+ | === Schlüssel für das Clientzertifikat erzeugen === | ||
+ | Wie auch schon beim graylog-server Zertifikat erzeugen wir uns zunächst einen 4096 Bit langen RSA Schlüssel, den wir mit AES 256 verschlüsselt auf der Platte abgelegt lassen. Da OpenSSL keine leere Passphrase zulässt braucht die Passphrase diesmal nicht sonderlich geheim sein, da wir diese im Anschluss ohnehin sofort wieder entfernen werden. | ||
+ | |||
+ | Die Eingaben sind auch hier zur besseren Unterscheidung fett und kursiv in der Farbe < | ||
+ | |||
+ | < | ||
+ | <font style=" | ||
+ | </ | ||
+ | < | ||
+ | <font style=" | ||
+ | .......................................................................................................................................................................................................................++ | ||
+ | ........................................................................................................................................................................................++ | ||
+ | e is 65537 (0x10001) | ||
+ | Enter pass phrase for clientkey.pem: | ||
+ | <font style=" | ||
+ | </ | ||
+ | |||
+ | Anschließend entfernen wir die Passphrase nun wieder, in dem wir bei der Frage **Enter pass phrase:** einfach die Taste **[ENTER]** drücken. | ||
+ | < | ||
+ | <font style=" | ||
+ | </ | ||
+ | < | ||
+ | <font style=" | ||
+ | writing RSA key</ | ||
+ | </ | ||
+ | |||
+ | Wie schon zuvor schützen wir auch hier den Serverschlüssel über die Dateirechte. | ||
+ | < | ||
+ | <font style=" | ||
+ | </ | ||
+ | |||
+ | Da wir die Schlüsseldatei mit der unsicheren Passphrase nicht mehr benötigen, vernichten wir die zugehörige Datei. | ||
+ | < | ||
+ | <font style=" | ||
+ | </ | ||
+ | |||
+ | === CSR erstellen === | ||
+ | Nachdem wir unseren privaten Schlüssel erzeugt haben, können wir uns nun unserem **CSR**((**C**ertificate **S**igning **R**equest)) widmen. Wie schon zuvor, sind die Eingaben auch hier zur besseren Unterscheidung fett und kursiv in der Farbe < | ||
+ | |||
+ | < | ||
+ | <font style=" | ||
+ | -out / | ||
+ | </ | ||
+ | |||
+ | < | ||
+ | <font style=" | ||
+ | into your certificate request. | ||
+ | What you are about to enter is what is called a Distinguished Name or a DN. | ||
+ | There are quite a few fields but you can leave some blank | ||
+ | For some fields there will be a default value, | ||
+ | If you enter ' | ||
+ | ----- | ||
+ | Country Name (2 letter code) [XX]:</ | ||
+ | <font style=" | ||
+ | <font style=" | ||
+ | <font style=" | ||
+ | <font style=" | ||
+ | <font style=" | ||
+ | <font style=" | ||
+ | <font style=" | ||
+ | Please enter the following ' | ||
+ | to be sent with your certificate request | ||
+ | A challenge password []: | ||
+ | An optional company name []:</ | ||
+ | </ | ||
+ | |||
+ | === CSR ausgeben === | ||
+ | Möchten wir den Inhalt unseres Certificate Signing Request ausgeben und ansehen, verwenden wir den folgenden openssl-Aufruf. | ||
+ | # openssl req -noout -text -in / | ||
+ | |||
+ | < | ||
+ | Data: | ||
+ | Version: 0 (0x0) | ||
+ | Subject: C=DE, ST=Bayern, L=Pliening, O=nausch.org, | ||
+ | Subject Public Key Info: | ||
+ | Public Key Algorithm: rsaEncryption | ||
+ | Public-Key: (4096 bit) | ||
+ | Modulus: | ||
+ | 00: | ||
+ | cd: | ||
+ | ea: | ||
+ | 7a: | ||
+ | a6: | ||
+ | 6e: | ||
+ | a4: | ||
+ | e6: | ||
+ | 0f: | ||
+ | 2e: | ||
+ | 35: | ||
+ | 06: | ||
+ | 40: | ||
+ | e9: | ||
+ | 56: | ||
+ | e5: | ||
+ | 09: | ||
+ | cc: | ||
+ | 85: | ||
+ | 0f: | ||
+ | 57: | ||
+ | a9: | ||
+ | c3: | ||
+ | 3c: | ||
+ | 93: | ||
+ | aa: | ||
+ | 4d: | ||
+ | 4e: | ||
+ | 02: | ||
+ | ba: | ||
+ | 59: | ||
+ | cf: | ||
+ | 9c: | ||
+ | 40: | ||
+ | b7:b3:39 | ||
+ | Exponent: 65537 (0x10001) | ||
+ | Attributes: | ||
+ | a0:00 | ||
+ | Signature Algorithm: sha256WithRSAEncryption | ||
+ | | ||
+ | | ||
+ | | ||
+ | | ||
+ | | ||
+ | | ||
+ | | ||
+ | | ||
+ | | ||
+ | | ||
+ | | ||
+ | | ||
+ | | ||
+ | | ||
+ | | ||
+ | | ||
+ | | ||
+ | | ||
+ | | ||
+ | | ||
+ | | ||
+ | | ||
+ | | ||
+ | | ||
+ | | ||
+ | | ||
+ | | ||
+ | | ||
+ | | ||
+ | |||
+ | Wie auch schon beim graylog-server Zertifikat können wir uns auch den CSR BASE64 kodiert ausgeben lassen. | ||
+ | # cat / | ||
+ | |||
+ | < | ||
+ | MIIE+DCCAuACAQAwgbIxCzAJBgNVBAYTAkRFMQ8wDQYDVQQIDAZCYXllcm4xETAP | ||
+ | BgNVBAcMCFBsaWVuaW5nMRMwEQYDVQQKDApuYXVzY2gub3JnMRYwFAYDVQQLDA1J | ||
+ | VC1Nb25pdG9yaW5nMSkwJwYDVQQDDCByc3lzbG9nLnZtbDAwMDAzNy5kbXoubmF1 | ||
+ | c2NoLm9yZzEnMCUGCSqGSIb3DQEJARYYZ3JheWxvZy1hZG1pbkBuYXVzY2gub3Jn | ||
+ | MIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIICCgKCAgEA6mVcmjs+qS1/ | ||
+ | pFP7cDD9yL4A/ | ||
+ | KzaH6YXxG/ | ||
+ | WFoYBvFhIJgP3EwwTu/ | ||
+ | evIuq/ | ||
+ | 0c1WdkGLQ/ | ||
+ | 8sVBTBe3dcqtdjd+pvKFEMXj7pWUstJRzFmWyuQPlsF7iUJQYQFsMzIznXJXokWS | ||
+ | 8L33R2/ | ||
+ | lu7pOLmSdImTMaZeyt342fjq/ | ||
+ | V7eDs7FOSDYeV5RlHqk/ | ||
+ | SEdZeGlbaWypyqEjVnpH90nPJbUdN4OE/ | ||
+ | z/ | ||
+ | lK59JJpeTYTovBI3IKJk+f0Vg5qhWXL+Kivf+PMR8ArguQ6uuJPtozxIBlpadG1i | ||
+ | yZ34It6bXjm9ogn6n70+HYc38y+fNZpesMZ6ZgyGT/ | ||
+ | 6/ | ||
+ | tH0lGjHsodjHMbz7RB0vaZEaEY4CY7/ | ||
+ | n3OYuhJhHpTRkoqLk7D2dFg5+JYmerr8SGMJlSHujjZfx85bYRxr7XWhsZp0ZClt | ||
+ | A2R7boq1XYNizlSWxUdoemMqjDw8X1Q6T1GnrknopDFuWDSXdJ9tcsFVI+p1fyOL | ||
+ | Dsv3caARZFDHHj8PG81N2Tt5bKQ5ipRyM2Fa+weKDAJzd3LCnWym1Lky4ppu3P8z | ||
+ | 3+51/ | ||
+ | jxU3wJhu6Q8NlsuHQ8Uefih+ytfrWOgyNIUpTLFWsVfG5XKmCjsmZK+8Hy9y7sdQ | ||
+ | xQmYV+aSWzCL+AXljFkbUxWW3ErestDbmmzOYDiclA88IWP/ | ||
+ | eCfI2XQcMd3CtcmCSC3l4PPpUZYawNNYGzyRsA== | ||
+ | -----END CERTIFICATE REQUEST-----</ | ||
+ | |||
+ | === CSR bei CA zum Signieren vorlegen === | ||
+ | Damit unsere CA den gerade erstellten CSR prüfen und signieren kann, müssen wir den Certificate Signing Request der CA vorlegen. Wir kopieren entweder den gerade erstellten **CSR** via **scp** zum Server auf dem unsere **CA** erstellt hatten, oder wir legen die CSR-Datei mit dem Editor direkt auf dem Server ab. | ||
+ | # vim / | ||
+ | |||
+ | < | ||
+ | MIIE+DCCAuACAQAwgbIxCzAJBgNVBAYTAkRFMQ8wDQYDVQQIDAZCYXllcm4xETAP | ||
+ | BgNVBAcMCFBsaWVuaW5nMRMwEQYDVQQKDApuYXVzY2gub3JnMRYwFAYDVQQLDA1J | ||
+ | VC1Nb25pdG9yaW5nMSkwJwYDVQQDDCByc3lzbG9nLnZtbDAwMDAzNy5kbXoubmF1 | ||
+ | c2NoLm9yZzEnMCUGCSqGSIb3DQEJARYYZ3JheWxvZy1hZG1pbkBuYXVzY2gub3Jn | ||
+ | MIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIICCgKCAgEA6mVcmjs+qS1/ | ||
+ | pFP7cDD9yL4A/ | ||
+ | KzaH6YXxG/ | ||
+ | WFoYBvFhIJgP3EwwTu/ | ||
+ | evIuq/ | ||
+ | 0c1WdkGLQ/ | ||
+ | 8sVBTBe3dcqtdjd+pvKFEMXj7pWUstJRzFmWyuQPlsF7iUJQYQFsMzIznXJXokWS | ||
+ | 8L33R2/ | ||
+ | lu7pOLmSdImTMaZeyt342fjq/ | ||
+ | V7eDs7FOSDYeV5RlHqk/ | ||
+ | SEdZeGlbaWypyqEjVnpH90nPJbUdN4OE/ | ||
+ | z/ | ||
+ | lK59JJpeTYTovBI3IKJk+f0Vg5qhWXL+Kivf+PMR8ArguQ6uuJPtozxIBlpadG1i | ||
+ | yZ34It6bXjm9ogn6n70+HYc38y+fNZpesMZ6ZgyGT/ | ||
+ | 6/ | ||
+ | tH0lGjHsodjHMbz7RB0vaZEaEY4CY7/ | ||
+ | n3OYuhJhHpTRkoqLk7D2dFg5+JYmerr8SGMJlSHujjZfx85bYRxr7XWhsZp0ZClt | ||
+ | A2R7boq1XYNizlSWxUdoemMqjDw8X1Q6T1GnrknopDFuWDSXdJ9tcsFVI+p1fyOL | ||
+ | Dsv3caARZFDHHj8PG81N2Tt5bKQ5ipRyM2Fa+weKDAJzd3LCnWym1Lky4ppu3P8z | ||
+ | 3+51/ | ||
+ | jxU3wJhu6Q8NlsuHQ8Uefih+ytfrWOgyNIUpTLFWsVfG5XKmCjsmZK+8Hy9y7sdQ | ||
+ | xQmYV+aSWzCL+AXljFkbUxWW3ErestDbmmzOYDiclA88IWP/ | ||
+ | eCfI2XQcMd3CtcmCSC3l4PPpUZYawNNYGzyRsA== | ||
+ | -----END CERTIFICATE REQUEST-----</ | ||
+ | |||
+ | === CSR durch die CA prüfen und signieren === | ||
+ | Nun prüfen wir die Angaben des CSR und signieren den öffentlichen Schlüssel des CSRs mit dem privaten Schlüssel unserer CA; dies wir auch als Zertifikatsgenerierung bezeichnet. Diese Arbeit erledigen wir mit Hilfe des folgenden **openssl**-Aufrufs. Auch hier sind die Eingaben zur besseren Unterscheidung fett und kursiv in der Farbe < | ||
+ | |||
+ | < | ||
+ | <font style=" | ||
+ | -out / | ||
+ | </ | ||
+ | |||
+ | Die Option **days** setzen wir dabei wieder auf 30 Jahre, was 10950 Tage entspricht. Bei der Frage nach der Passphrase des privaten Schlüssels geben wir das Passwort an, welches wir bei der **[[centos: | ||
+ | |||
+ | < | ||
+ | <font style=" | ||
+ | Enter pass phrase for / | ||
+ | <font style=" | ||
+ | Signature ok | ||
+ | Certificate Details: | ||
+ | Serial Number: 1 (0x1) | ||
+ | Validity | ||
+ | Not Before: Jan 4 10:08:53 2016 GMT | ||
+ | Not After : Dec 27 10:08:53 2045 GMT | ||
+ | Subject: | ||
+ | countryName | ||
+ | stateOrProvinceName | ||
+ | organizationName | ||
+ | organizationalUnitName | ||
+ | commonName | ||
+ | emailAddress | ||
+ | X509v3 extensions: | ||
+ | X509v3 Basic Constraints: | ||
+ | CA:FALSE | ||
+ | Netscape Comment: | ||
+ | OpenSSL Generated Certificate | ||
+ | X509v3 Subject Key Identifier: | ||
+ | 93: | ||
+ | X509v3 Authority Key Identifier: | ||
+ | keyid: | ||
+ | |||
+ | Certificate is to be certified until Dec 27 10:08:53 2045 GMT (10950 days) | ||
+ | Sign the certificate? | ||
+ | <font style=" | ||
+ | |||
+ | 1 out of 1 certificate requests certified, commit? [y/ | ||
+ | <font style=" | ||
+ | Data Base Updated</ | ||
+ | </ | ||
+ | |||
+ | === Zertifikat ausgeben === | ||
+ | # openssl x509 -noout -text -in / | ||
+ | |||
+ | < | ||
+ | Data: | ||
+ | Version: 3 (0x2) | ||
+ | Serial Number: 1 (0x1) | ||
+ | Signature Algorithm: sha512WithRSAEncryption | ||
+ | Issuer: C=DE, ST=Bayern, L=Pliening, O=nausch.org, | ||
+ | Validity | ||
+ | Not Before: Jan 4 10:08:53 2016 GMT | ||
+ | Not After : Dec 27 10:08:53 2045 GMT | ||
+ | Subject: C=DE, ST=Bayern, O=nausch.org, | ||
+ | Subject Public Key Info: | ||
+ | Public Key Algorithm: rsaEncryption | ||
+ | Public-Key: (4096 bit) | ||
+ | Modulus: | ||
+ | 00: | ||
+ | cd: | ||
+ | ea: | ||
+ | 7a: | ||
+ | a6: | ||
+ | 6e: | ||
+ | a4: | ||
+ | e6: | ||
+ | 0f: | ||
+ | 2e: | ||
+ | 35: | ||
+ | 06: | ||
+ | 40: | ||
+ | e9: | ||
+ | 56: | ||
+ | e5: | ||
+ | 09: | ||
+ | cc: | ||
+ | 85: | ||
+ | 0f: | ||
+ | 57: | ||
+ | a9: | ||
+ | c3: | ||
+ | 3c: | ||
+ | 93: | ||
+ | aa: | ||
+ | 4d: | ||
+ | 4e: | ||
+ | 02: | ||
+ | ba: | ||
+ | 59: | ||
+ | cf: | ||
+ | 9c: | ||
+ | 40: | ||
+ | b7:b3:39 | ||
+ | Exponent: 65537 (0x10001) | ||
+ | X509v3 extensions: | ||
+ | X509v3 Basic Constraints: | ||
+ | CA:FALSE | ||
+ | Netscape Comment: | ||
+ | OpenSSL Generated Certificate | ||
+ | X509v3 Subject Key Identifier: | ||
+ | 93: | ||
+ | X509v3 Authority Key Identifier: | ||
+ | keyid: | ||
+ | |||
+ | Signature Algorithm: sha512WithRSAEncryption | ||
+ | | ||
+ | | ||
+ | | ||
+ | | ||
+ | | ||
+ | | ||
+ | | ||
+ | | ||
+ | | ||
+ | | ||
+ | | ||
+ | | ||
+ | | ||
+ | | ||
+ | | ||
+ | | ||
+ | | ||
+ | | ||
+ | | ||
+ | | ||
+ | | ||
+ | | ||
+ | | ||
+ | | ||
+ | | ||
+ | | ||
+ | | ||
+ | | ||
+ | | ||
+ | |||
+ | # cat / | ||
+ | |||
+ | < | ||
+ | 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-----</ | ||
+ | |||
+ | |||
+ | === erstellte Zertifikat dem rsyslog-Daemon auf dem Clientrechner zur Verfügung stellen === | ||
+ | Als letzten Schritt stellen wir nun das gerade erzeugte Server-Zertifikat dem graylog-server 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-----</ | ||
+ | |||
+ | ===== 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) | ||
+ | $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 ###</ | ||
+ | |||
+ | 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 3245: | Zeile 3964: | ||
* **[[http:// | * **[[http:// | ||
+ | ~~AUTOTWEET: | ||
~~DISCUSSION~~ | ~~DISCUSSION~~ | ||