Benutzer-Werkzeuge

Webseiten-Werkzeuge


tachtler:graylog_archlinux

Unterschiede

Hier werden die Unterschiede zwischen zwei Versionen angezeigt.

Link zu dieser Vergleichsansicht

Beide Seiten der vorigen RevisionVorhergehende Überarbeitung
Nächste Überarbeitung
Vorhergehende Überarbeitung
tachtler:graylog_archlinux [2022/01/29 14:39] – [Installation: Graylog] klaustachtler:graylog_archlinux [2023/05/21 09:54] (aktuell) – [Graylog: Gruppe und Benutzer anlegen] klaus
Zeile 46: Zeile 46:
  
 Mit nachfolgendem Befehl, kann das ''pacman''-Paket - **''pwgen''** installiert werden: Mit nachfolgendem Befehl, kann das ''pacman''-Paket - **''pwgen''** installiert werden:
 +<code>
 +# pacman --noconfirm -S pwgen
 +</code> 
 +++++ Installationsverlauf |
 <code> <code>
 # pacman --noconfirm -S pwgen # pacman --noconfirm -S pwgen
Zeile 76: Zeile 80:
 ==> root: 7 ==> root: 7
 </code> </code>
 +++++
  
-Mit nachfolgendem Befehl kann überprüft werden, welche Inhalte mit den Paket **''pwgen''** installiert wurden. +Mit nachfolgendem Befehl kann überprüft werden, welche Inhalte mit den Paket **''pwgen''** installiert wurden. 
 +<code> 
 +# pacman -Qil pwgen 
 +</code>  
 +++++ Installierte Dateien | 
 <code> <code>
 # pacman -Qil pwgen # pacman -Qil pwgen
Zeile 110: Zeile 119:
 pwgen /usr/share/man/man1/pwgen.1.gz pwgen /usr/share/man/man1/pwgen.1.gz
 </code> </code>
 +++++
  
 ===== Installation: MongoDB ===== ===== Installation: MongoDB =====
Zeile 116: Zeile 126:
   * [[tachtler:archlinux_-_arch_user_repository|ArchLinux - Arch User Repository]]   * [[tachtler:archlinux_-_arch_user_repository|ArchLinux - Arch User Repository]]
 erfolgreich eingebunden wurde, kann mit nachfolgendem Befehl, das ''AUR''-Paket - **''mongodb44-bin''** installiert werden: erfolgreich eingebunden wurde, kann mit nachfolgendem Befehl, das ''AUR''-Paket - **''mongodb44-bin''** installiert werden:
 +<code>
 +# pikaur --noconfirm -S mongodb44-bin
 +</code> 
 +++++ Installationsverlauf |
 <code> <code>
 # pikaur --noconfirm -S mongodb44-bin # pikaur --noconfirm -S mongodb44-bin
Zeile 217: Zeile 231:
 ==> root: 9 ==> root: 9
 </code> </code>
 +++++
  
-Mit nachfolgendem Befehl kann überprüft werden, welche Inhalte mit den Paket **''mongodb44-bin''** installiert wurden+Mit nachfolgendem Befehl kann überprüft werden, welche Inhalte mit den Paket **''mongodb44-bin''** installiert wurden
 +<code> 
 +# pacman -Qil mongodb44-bin 
 +</code>  
 +++++ Installierte Dateien |
 <code> <code>
 # pacman -Qil mongodb44-bin # pacman -Qil mongodb44-bin
Zeile 270: Zeile 289:
 mongodb44-bin /usr/share/man/man1/mongos.1.gz mongodb44-bin /usr/share/man/man1/mongos.1.gz
 </code> </code>
 +++++
 +
 +Nachdem das ''AUR''-Repository von [[https://aur.archlinux.org//|ArchLinux - AUR]]
 +  * [[tachtler:archlinux_-_arch_user_repository|ArchLinux - Arch User Repository]]
 +erfolgreich eingebunden wurde, kann mit nachfolgendem Befehl, das ''AUR''-Paket - **''mongodb-tools''** ebenfalls installiert werden:
 +<code>
 +# pikaur --noconfirm -S mongodb-tools
 +</code> 
 +++++ Installationsverlauf |
 +<code>
 +# pikaur --noconfirm -S mongodb-tools
 +Reading repository package databases...
 +Reading local package database...
 +Resolving AUR dependencies...
 +looking for conflicting AUR packages...
 +Not showing diff for mongodb-tools package (--noconfirm)
 +:: Skipping review of PKGBUILD for mongodb-tools package (--noconfirm)
 +
 +Reading local package database...
 +:: Installing repository dependencies for mongodb-tools:
 +resolving dependencies...
 +looking for conflicting packages...
 +
 +Package (1)   New Version  Net Change  Download Size
 +
 +community/go  2:1.20.4-1   196.00 MiB      36.30 MiB
 +
 +Total Download Size:    36.30 MiB
 +Total Installed Size:  196.00 MiB
 +
 +:: Proceed with installation? [Y/n] 
 +:: Retrieving packages...
 + go-2:1.20.4-1-x86_64   36.3 MiB  3.67 MiB/s 00:10 [######################] 100%
 +(1/1) checking keys in keyring                     [######################] 100%
 +(1/1) checking package integrity                   [######################] 100%
 +(1/1) loading package files                        [######################] 100%
 +(1/1) checking for file conflicts                  [######################] 100%
 +(1/1) checking available disk space                [######################] 100%
 +:: Running pre-transaction hooks...
 +(1/1) Performing snapper pre snapshots for the following configurations...
 +==> root: 51
 +:: Processing package changes...
 +(1/1) installing go                                [######################] 100%
 +:: Running post-transaction hooks...
 +(1/2) Arming ConditionNeedsUpdate...
 +(2/2) Performing snapper post snapshots for the following configurations...
 +==> root: 52
 +Reading local package database...
 +
 +:: Starting the build:
 +Running as unit: run-u401.service
 +Press ^] three times within 1s to disconnect TTY.
 +==> Making package: mongodb-tools 1:100.7.0-1 (Sun 14 May 2023 07:35:38 PM CEST)
 +==> Checking runtime dependencies...
 +==> Checking buildtime dependencies...
 +==> Retrieving sources...
 +  -> Downloading mongodb-tools-100.7.0.tar.gz...
 +  % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
 +                                 Dload  Upload   Total   Spent    Left  Speed
 +  0        0        0          0      0 --:--:-- --:--:-- --:--:--     0
 +100 4311k    0 4311k    0      3098k      0 --:--:--  0:00:01 --:--:-- 6283k
 +==> Validating source files with sha256sums...
 +    mongodb-tools-100.7.0.tar.gz ... Passed
 +==> Extracting sources...
 +  -> Extracting mongodb-tools-100.7.0.tar.gz with bsdtar
 +==> Starting prepare()...
 +==> Starting build()...
 +go: downloading github.com/craiggwilson/goke v0.0.0-20220110201909-adb8bfb05d58
 +go: downloading github.com/mattn/go-isatty v0.0.16
 +go: downloading github.com/mgutz/ansi v0.0.0-20200706080929-d51e80ef957d
 +go: downloading github.com/aws/aws-sdk-go v1.44.114
 +go: downloading github.com/mattn/go-colorable v0.1.13
 +go: downloading golang.org/x/sys v0.0.0-20220811171246-fbc7d0a398ab
 +go: downloading github.com/jmespath/go-jmespath v0.4.0
 +START  | build
 +       | rm: bin/bsondump
 +       | exec: '/usr/bin/go build -o bin/bsondump -ldflags "-X main.VersionStr=100.7.0 -X main.GitCommit=release" -tags "ssl sasl gssapi failpoints" -buildmode=pie bsondump/main/bsondump.go'
 +       | go: downloading go.mongodb.org/mongo-driver v1.10.3
 +       | go: downloading github.com/pkg/errors v0.9.1
 +       | go: downloading github.com/youmark/pkcs8 v0.0.0-20201027041543-1326539a0a0a
 +       | go: downloading github.com/jessevdk/go-flags v1.5.0
 +       | go: downloading gopkg.in/yaml.v2 v2.4.0
 +       | go: downloading golang.org/x/crypto v0.0.0-20220622213112-05595931fe9d
 +       | go: downloading github.com/golang/snappy v0.0.4
 +       | go: downloading github.com/klauspost/compress v1.13.6
 +       | go: downloading github.com/xdg-go/scram v1.1.1
 +       | go: downloading github.com/xdg-go/stringprep v1.0.3
 +       | go: downloading golang.org/x/sync v0.0.0-20220923202941-7f9b1623fab7
 +       | go: downloading github.com/montanaflynn/stats v0.6.6
 +       | go: downloading golang.org/x/term v0.0.0-20210927222741-03fcf44c2211
 +       | go: downloading github.com/xdg-go/pbkdf2 v1.0.0
 +       | go: downloading golang.org/x/text v0.3.7
 +       | rm: bin/mongodump
 +       | exec: '/usr/bin/go build -o bin/mongodump -ldflags "-X main.VersionStr=100.7.0 -X main.GitCommit=release" -tags "ssl sasl gssapi failpoints" -buildmode=pie mongodump/main/mongodump.go'
 +       | rm: bin/mongorestore
 +       | exec: '/usr/bin/go build -o bin/mongorestore -ldflags "-X main.VersionStr=100.7.0 -X main.GitCommit=release" -tags "ssl sasl gssapi failpoints" -buildmode=pie mongorestore/main/mongorestore.go'
 +       | rm: bin/mongoimport
 +       | exec: '/usr/bin/go build -o bin/mongoimport -ldflags "-X main.VersionStr=100.7.0 -X main.GitCommit=release" -tags "ssl sasl gssapi failpoints" -buildmode=pie mongoimport/main/mongoimport.go'
 +       | go: downloading gopkg.in/tomb.v2 v2.0.0-20161208151619-d5d1b5820637
 +       | rm: bin/mongoexport
 +       | exec: '/usr/bin/go build -o bin/mongoexport -ldflags "-X main.VersionStr=100.7.0 -X main.GitCommit=release" -tags "ssl sasl gssapi failpoints" -buildmode=pie mongoexport/main/mongoexport.go'
 +       | rm: bin/mongostat
 +       | exec: '/usr/bin/go build -o bin/mongostat -ldflags "-X main.VersionStr=100.7.0 -X main.GitCommit=release" -tags "ssl sasl gssapi failpoints" -buildmode=pie mongostat/main/mongostat.go'
 +       | go: downloading github.com/nsf/termbox-go v1.1.1
 +       | go: downloading github.com/mattn/go-runewidth v0.0.14
 +       | go: downloading github.com/rivo/uniseg v0.2.0
 +       | rm: bin/mongotop
 +       | exec: '/usr/bin/go build -o bin/mongotop -ldflags "-X main.VersionStr=100.7.0 -X main.GitCommit=release" -tags "ssl sasl gssapi failpoints" -buildmode=pie mongotop/main/mongotop.go'
 +       | rm: bin/mongofiles
 +       | exec: '/usr/bin/go build -o bin/mongofiles -ldflags "-X main.VersionStr=100.7.0 -X main.GitCommit=release" -tags "ssl sasl gssapi failpoints" -buildmode=pie mongofiles/main/mongofiles.go'
 +FINISH | build in 27.013235818s
 +---------------
 +Completed in 27.01522859s
 +==> Entering fakeroot environment...
 +==> Starting package()...
 +==> Tidying install...
 +  -> Removing libtool files...
 +  -> Purging unwanted files...
 +  -> Removing static library files...
 +  -> Stripping unneeded symbols from binaries and libraries...
 +  -> Compressing man and info pages...
 +==> Checking for packaging issues...
 +==> Creating package "mongodb-tools"...
 +  -> Generating .PKGINFO file...
 +  -> Generating .BUILDINFO file...
 +  -> Generating .MTREE file...
 +  -> Compressing package...
 +==> Leaving fakeroot environment.
 +==> Finished making: mongodb-tools 1:100.7.0-1 (Sun 14 May 2023 07:36:38 PM CEST)
 +Finished with result: success
 +Main processes terminated with: code=exited/status=0
 +Service runtime: 1min 197ms
 +CPU time consumed: 1min 10.325s
 +
 +:: Removing already installed dependencies for mongodb-tools:
 +checking dependencies...
 +
 +Package (1)  Old Version  Net Change 
 +
 +go           2:1.20.4-1   -196.00 MiB
 +
 +Total Removed Size:  196.00 MiB
 +
 +:: Do you want to remove these packages? [Y/n] 
 +:: Running pre-transaction hooks...
 +(1/1) Performing snapper pre snapshots for the following configurations...
 +==> root: 53
 +:: Processing package changes...
 +(1/1) removing go                                  [######################] 100%
 +:: Running post-transaction hooks...
 +(1/2) Arming ConditionNeedsUpdate...
 +(2/2) Performing snapper post snapshots for the following configurations...
 +==> root: 54
 +loading packages...
 +resolving dependencies...
 +looking for conflicting packages...
 +
 +Package (1)    New Version  Net Change
 +
 +mongodb-tools  1:100.7.0-1   88.70 MiB
 +
 +Total Installed Size:  88.70 MiB
 +
 +:: Proceed with installation? [Y/n] 
 +(1/1) checking keys in keyring                     [######################] 100%
 +(1/1) checking package integrity                   [######################] 100%
 +(1/1) loading package files                        [######################] 100%
 +(1/1) checking for file conflicts                  [######################] 100%
 +(1/1) checking available disk space                [######################] 100%
 +:: Running pre-transaction hooks...
 +(1/1) Performing snapper pre snapshots for the following configurations...
 +==> root: 55
 +:: Processing package changes...
 +(1/1) installing mongodb-tools                     [######################] 100%
 +:: Running post-transaction hooks...
 +(1/2) Arming ConditionNeedsUpdate...
 +(2/2) Performing snapper post snapshots for the following configurations...
 +==> root: 56
 +</code>
 +++++
 +
 +Mit nachfolgendem Befehl kann überprüft werden, welche Inhalte mit den Paket **''mongodb-tools''** installiert wurden:
 +<code>
 +# pacman -Qil mongodb-tools
 +</code> 
 +++++ Installierte Dateien |
 +<code>
 +# pacman -Qil mongodb-tools
 +Name            : mongodb-tools
 +Version         : 1:100.7.0-1
 +Description     : Import, export, and diagnostic tools for MongoDB
 +Architecture    : x86_64
 +URL             : https://github.com/mongodb/mongo-tools
 +Licenses        : Apache
 +Groups          : None
 +Provides        : None
 +Depends On      : glibc  krb5
 +Optional Deps   : None
 +Required By     : None
 +Optional For    : mongodb-bin
 +Conflicts With  : None
 +Replaces        : None
 +Installed Size  : 88.70 MiB
 +Packager        : Unknown Packager
 +Build Date      : Sun 14 May 2023 07:35:37 PM CEST
 +Install Date    : Sun 14 May 2023 07:36:40 PM CEST
 +Install Reason  : Explicitly installed
 +Install Script  : No
 +Validated By    : None
 +
 +mongodb-tools /usr/
 +mongodb-tools /usr/bin/
 +mongodb-tools /usr/bin/bsondump
 +mongodb-tools /usr/bin/mongodump
 +mongodb-tools /usr/bin/mongoexport
 +mongodb-tools /usr/bin/mongofiles
 +mongodb-tools /usr/bin/mongoimport
 +mongodb-tools /usr/bin/mongorestore
 +mongodb-tools /usr/bin/mongostat
 +mongodb-tools /usr/bin/mongotop
 +</code>
 +++++
  
 ==== MongoDB: Dienst/Deamon-Start einrichten ==== ==== MongoDB: Dienst/Deamon-Start einrichten ====
Zeile 535: Zeile 776:
 </code> </code>
  
-Anschließend sollen die **Besitz**rechte an dem Verzeichnis einem **unprivilegiertem** Benutzer - hier: ''klaus'' übertragen werden, da die spätere Ausführung des Befehls ''makepg'' nur durch einen **unprivilegierten** Benutzer erfolgen kann:+Anschliessend sollen die **Besitz**rechte an dem Verzeichnis einem **unprivilegiertem** Benutzer - hier: ''klaus'' übertragen werden, da die spätere Ausführung des Befehls ''makepg'' nur durch einen **unprivilegierten** Benutzer erfolgen kann:
 <code> <code>
 # chown klaus:klaus /var/cache/makepkg # chown klaus:klaus /var/cache/makepkg
 </code> </code>
  
-Anschließend soll wieder zum Benutzer, hier: ''klaus'' gewechselt werden, was mit nachfolgendem Befehl durchführt werden kann:+Anschliessend soll wieder zum Benutzer, hier: ''klaus'' gewechselt werden, was mit nachfolgendem Befehl durchführt werden kann:
 <code> <code>
 # exit # exit
Zeile 563: Zeile 804:
 </code>  </code> 
  
-Anschließend muss in das so neu entstandene Verzeichnis ''/var/cache/makepkg/elasticsearch-xpack'' mit nachfolgendem Befehl gewechselt werden:+Anschliessend muss in das so neu entstandene Verzeichnis ''/var/cache/makepkg/elasticsearch-xpack'' mit nachfolgendem Befehl gewechselt werden:
 <code> <code>
 $ cd /var/cache/makepkg/elasticsearch-xpack  $ cd /var/cache/makepkg/elasticsearch-xpack 
Zeile 599: Zeile 840:
 :!: **WICHTIG** - Der verwendete Benutzer, hier: ''klaus'' **__muss__ das ''sudo''-Recht** besitzen! :!: **WICHTIG** - Der verwendete Benutzer, hier: ''klaus'' **__muss__ das ''sudo''-Recht** besitzen!
  
 +<code>
 +$ makepkg -cCfs
 +</code> 
 +++++ Kompilierungsverlauf |
 <code> <code>
 $ makepkg -cCfs $ makepkg -cCfs
Zeile 743: Zeile 988:
 ==> Cleaning up... ==> Cleaning up...
 </code> </code>
 +++++
  
 Das erneute Auflisten des Inhalts des Verzeichnisses ''/var/cache/makepkg/elasticsearch-xpack'', sollte nun die erstellten **pacman**-Pakete entahlten, was mit nachfolgendem Befehl überprüft werden kann: Das erneute Auflisten des Inhalts des Verzeichnisses ''/var/cache/makepkg/elasticsearch-xpack'', sollte nun die erstellten **pacman**-Pakete entahlten, was mit nachfolgendem Befehl überprüft werden kann:
Zeile 770: Zeile 1016:
  
 Nachfolgemder Befehl führt nun die Installation des soeben erstellten **pacman**-Pakets durch: Nachfolgemder Befehl führt nun die Installation des soeben erstellten **pacman**-Pakets durch:
 +<code>
 +# pacman -U /var/cache/makepkg/elasticsearch-xpack/elasticsearch-xpack-7.16.3-1-x86_64.pkg.tar.zst
 +</code> 
 +++++ Installationsverlauf |
 <code> <code>
 # pacman -U /var/cache/makepkg/elasticsearch-xpack/elasticsearch-xpack-7.16.3-1-x86_64.pkg.tar.zst # pacman -U /var/cache/makepkg/elasticsearch-xpack/elasticsearch-xpack-7.16.3-1-x86_64.pkg.tar.zst
Zeile 804: Zeile 1054:
 ==> root: 37 ==> root: 37
 </code> </code>
 +++++
  
-Mit nachfolgendem Befehl kann überprüft werden, welche Inhalte mit den Paket **''elasticsearch-xpack''** installiert wurden+Mit nachfolgendem Befehl kann überprüft werden, welche Inhalte mit den Paket **''elasticsearch-xpack''** installiert wurden
 +<code> 
 +# pacman -Qil elasticsearch-xpack 
 +</code>  
 +++++ Installierte Dateien | 
 <code> <code>
 # pacman -Qil elasticsearch-xpack # pacman -Qil elasticsearch-xpack
Zeile 1454: Zeile 1709:
 elasticsearch-xpack /var/log/elasticsearch/ elasticsearch-xpack /var/log/elasticsearch/
 </code> </code>
 +++++
  
 ==== Elasticsearch: Dienst/Deamon-Start einrichten ==== ==== Elasticsearch: Dienst/Deamon-Start einrichten ====
Zeile 1778: Zeile 2034:
   * [[tachtler:archlinux_-_arch_user_repository|ArchLinux - Arch User Repository]]   * [[tachtler:archlinux_-_arch_user_repository|ArchLinux - Arch User Repository]]
 erfolgreich eingebunden wurde, kann mit nachfolgendem Befehl, das ''AUR''-Paket - **''graylog''** installiert werden: erfolgreich eingebunden wurde, kann mit nachfolgendem Befehl, das ''AUR''-Paket - **''graylog''** installiert werden:
 +<code>
 +# pikaur --noconfirm -S graylog
 +</code> 
 +++++ Installationsverlauf |
 <code> <code>
 # pikaur --noconfirm -S graylog # pikaur --noconfirm -S graylog
Zeile 1868: Zeile 2128:
 ==> root: 39 ==> root: 39
 </code> </code>
 +++++
  
 :!: **HINWEIS** - Der Fehler :!: **HINWEIS** - Der Fehler
Zeile 1876: Zeile 2137:
  
 Mit nachfolgendem Befehl kann überprüft werden, welche Inhalte mit den Paket **''graylog''** installiert wurden.  Mit nachfolgendem Befehl kann überprüft werden, welche Inhalte mit den Paket **''graylog''** installiert wurden. 
 +<code>
 +# pacman -Qil graylog
 +</code> 
 +++++ Installierte Dateien |
 <code> <code>
 # pacman -Qil graylog # pacman -Qil graylog
Zeile 1927: Zeile 2192:
 graylog /usr/share/doc/graylog/README.markdown graylog /usr/share/doc/graylog/README.markdown
 </code> </code>
 +++++
  
 ==== Graylog: Dienst/Deamon-Start einrichten ==== ==== Graylog: Dienst/Deamon-Start einrichten ====
Zeile 2795: Zeile 3061:
  
 ==== Graylog: Gruppe und Benutzer anlegen ==== ==== Graylog: Gruppe und Benutzer anlegen ====
 +
 +:!: **HINWEIS** - **Ab Version 5.1.0-2 __NICHT__ mehr erforderlich!**
  
 Mit nachfolgendem Befehl, soll eine Gruppe mit dem Namen ''graylog'' erstellt werden: Mit nachfolgendem Befehl, soll eine Gruppe mit dem Namen ''graylog'' erstellt werden:
Zeile 2822: Zeile 3090:
 Damit beim ersten Start des [[https://www.graylog.org/|Graylog]]-Servers die Konfigurationsdatei ''/etc/graylog/server/node.id'' erstellt werden kann, muss der Benutzer mit dem [[https://www.graylog.org/|Graylog]] gestartet wird, Besitzer des Verzeichnisses ''/etc/graylog/server'' sein, was mit nachfolgendem Befehl durchgeführt werden kann: Damit beim ersten Start des [[https://www.graylog.org/|Graylog]]-Servers die Konfigurationsdatei ''/etc/graylog/server/node.id'' erstellt werden kann, muss der Benutzer mit dem [[https://www.graylog.org/|Graylog]] gestartet wird, Besitzer des Verzeichnisses ''/etc/graylog/server'' sein, was mit nachfolgendem Befehl durchgeführt werden kann:
 <code> <code>
-# chown graylog:graylog server/+# chown graylog:graylog /etc/graylog/server
 </code> </code>
  
Zeile 2866: Zeile 3134:
 {{:tachtler:graylog:graylog-login-signed_in.png|Graylog Server - Signed in}} {{:tachtler:graylog:graylog-login-signed_in.png|Graylog Server - Signed in}}
  
 +===== Graylog TLS-Zertifikat erstellen =====
 +
 +Um entsprechenden **Inputs** des [[https://www.graylog.org/|Graylog]]-Server nicht nur **unverschlüsselte**, sondern auch via TLS/StartTLS-**Verschlüsselung** ansprechen zu können, muss zuerst ein Zertifikat erzeugt werden. Dies kann durch eine **offizielle Zertifizierungsstelle** durchgeführt werden, was jedoch natürlich mit **Kosten** verbunden ist, oder es kommt ein sogenanntes **Self-Signed-Certificate** (Selbst erstelltes/unterschriebenes) Zertifikat zum Einsatz.
 +
 +Um die Verschlüsselung einsetzen zu können, sind folgende Komponenten erforderlich:
 +  * eine eigen **Certificate Authority (CA)**, welche **Self-Signed-Certificate** (Selbst erstelltes/unterschriebenes) Zertifikat esrtellen kann 
 +  * einen **CSR (Certificate Request)**, welcher von einer **Certificate Authority (CA)** signiert wird
 +  * einem **private key (privaten Schlüssel)**, welcher zum **CRT (Certificate)** gehört und zum Einsatz eines **CRT (Certificate)** benötigt wird
 +  * das **CRT (Certificate)** selbst, welcher von der **Certificate Authority (CA)** ausgestellt wird
 +
 +Zur Erstellung eines **Self-Signed-Certificate** und zur Erstellung der oben genannten Komponenten, wird das Paket 
 +  * **''openssl''**
 +benötigt, welches i.d.R. bereits installiert sein sollte.
 +
 +Abschliessend soll mit nachfolgendem Befehl in das Verzeichnis ''/etc/ssl'' gewechselt werden:
 +<code>
 +# cd /etc/ssl
 +</code>
 +
 +==== /etc/ssl/openssl.cnf ====
 +
 +Nachfolgende Anpassungen müssen mindestens in der Konfigurationsdatei ''/etc/ssl/openssl.cnf '' durchgeführt werden, um SAN (**S**ubject **A**lternative **N**ames) in das Zertifikat mit aufnehmen zu können:
 +
 +(**__Nur relevanter Ausschnitt__**):
 +<code ini>
 +[ v3_req ]
 +
 +# Extensions to add to a certificate request
 +
 +basicConstraints = CA:FALSE
 +keyUsage = nonRepudiation, digitalSignature, keyEncipherment
 +# Tachtler - NEW -
 +subjectAltName = @alt_names
 +
 +# Tachtler - NEW -
 +[ alt_names ]
 +DNS.1 = localhost
 +DNS.2 = 127.0.0.1
 +DNS.3 = ::1
 +
 +</code>
 +
 +* //Danke an Stefan Mayr für den Hinweis das Zertifikat mit **S**ubject **A**lternative **N**ames auszustatten → Hintergrund: [[https://www.rfc-editor.org/rfc/rfc6125#section-6.6.4|Representation and Verification of Domain-Based Application Service
 + Identity within Internet Public Key Infrastructure Using X.509 (PKIX)
 +     Certificates in the Context of Transport Layer Security (TLS) - Section 6.4.4]]//
 +     
 +==== Erstellen CA (Certificate Authority) ====
 +
 +Zur Erstellung einer eigene **Certificate Authority (CA)** kann ein Script, welches bei der Installation von ''openssl'' mitgeliefert wird und sich im Verzeichnis ''/etc/ssl/misc/'' befindet, genutzt werden. Der Name des Scripts lautet 
 +  * **''/etc/ssl/misc/CA.pl''**.
 +
 +:!: **HINWEIS** - **Um Subject Alternative Names hinzufügen zu können, muss nachfolgende __zweite__ Ergänzung abgeändert werden, das sonst die '' -extensions v3_req'' __NICHT__ angezogen wird!**
 +
 +:!: **HINWEIS** - **Die zu erstellende Certificate Authority (CA) hat __standardmässig__ eine Laufzeit von __3 Jahren__ !!!**
 +
 +Falls eine längere Laufzeit als **drei Jahre** gewünscht sein soll, kann nachfolgender Parameter im Skript, in nachfolgendem Verzeichnis, mit nachfolgendem Namen 
 +  * **''/etc/ssl/misc/CA.pl''**
 +**angepasst** werden:
 +
 +(**Nur relevanter Ausschnitt**)
 +<code perl>
 +...
 +# Tachtler
 +# default: my $DAYS = "-days 365";
 +my $DAYS = "-days 28023"; # 10.04.2023 - 30.12.2099
 +# Tachtler
 +# default: my $CADAYS = "-days 1095";   # 3 years
 +my $CADAYS = "-days 28024"; # 10.04.2023 - 31.12.2099
 +...
 +...
 +...
 +} elsif ($WHAT eq '-sign' ) {
 +    $RET = run("$CA -policy policy_anything -out $NEWCERT"
 +            # Tachtler
 +            # default: . " -infiles $NEWREQ $EXTRA{ca}");
 +            . " -extensions v3_req -infiles $NEWREQ $EXTRA{ca}");
 +    print "Signed certificate is in $NEWCERT\n" if $RET == 0;
 +... 
 +</code>
 +
 +:!: **WICHTIG** - **Die Laufzeit der //Certificate Authority (CA)// muss länger als die Laufzeit des Zertifikates sein !!!**
 +
 +Folgender Aufruf erstellt eine eigene **Certificate Authority (CA)**:
 +
 +:!: **HINWEIS** - **Nicht benötigte Angaben werden mit Eingabe eines Punktes [.] übersprungen**!
 +
 +<code>
 +# /etc/ssl/misc/CA.pl -newca
 +</code>
 +<code perl>
 +# /etc/ssl/misc/CA.pl -newca
 +CA certificate filename (or enter to create)
 +
 +Making CA certificate ...
 +====
 +openssl req  -new -keyout /etc/ssl/private/cakey.pem -out /etc/ssl/careq.pem 
 +Generating a RSA private key
 +.............................+++++
 +......+++++
 +writing new private key to '/etc/ssl/private/cakey.pem'
 +Enter PEM pass phrase:
 +Verifying - Enter PEM pass phrase:
 +-----
 +You are about to be asked to enter information that will be incorporated
 +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 '.', the field will be left blank.
 +-----
 +Country Name (2 letter code) [AU]:DE
 +State or Province Name (full name) [Some-State]:Bavaria (Bayern)
 +Locality Name (eg, city) []:Munich (Muenchen)
 +Organization Name (eg, company) [Internet Widgits Pty Ltd]:tachtler.net
 +Organizational Unit Name (eg, section) []:.
 +Common Name (e.g. server FQDN or YOUR name) []:www.tachtler.net
 +Email Address []:hostmaster@tachtler.net
 +
 +Please enter the following 'extra' attributes
 +to be sent with your certificate request
 +A challenge password []:
 +An optional company name []:.
 +==> 0
 +====
 +====
 +openssl ca  -create_serial -out /etc/ssl/cacert.pem -days 28024 -batch -keyfile /etc/ssl/private/cakey.pem -selfsign -extensions v3_ca  -infiles /etc/ssl/careq.pem
 +Using configuration from /etc/ssl/openssl.cnf
 +Enter pass phrase for /etc/ssl/private/cakey.pem:
 +Check that the request matches the signature
 +Signature ok
 +Certificate Details:
 +        Serial Number:
 +            58:b7:f2:c0:f9:30:8d:48:4f:77:d3:56:3d:9d:a9:98:19:e6:a2:49
 +        Validity
 +            Not Before: Apr 10 10:48:57 2023 GMT
 +            Not After : Dec 31 10:48:57 2099 GMT
 +        Subject:
 +            countryName               = DE
 +            stateOrProvinceName       = Bavaria (Bayern)
 +            organizationName          = tachtler.net
 +            commonName                = www.tachtler.net
 +            emailAddress              = hostmaster@tachtler.net
 +        X509v3 extensions:
 +            X509v3 Subject Key Identifier: 
 +                07:39:3F:8F:38:B5:EA:69:3E:FA:BC:C4:AB:7C:30:18:93:26:B8:77
 +            X509v3 Authority Key Identifier: 
 +                keyid:07:39:3F:8F:38:B5:EA:69:3E:FA:BC:C4:AB:7C:30:18:93:26:B8:77
 +
 +            X509v3 Basic Constraints: critical
 +                CA:TRUE
 +Certificate is to be certified until Dec 31 10:48:57 2099 GMT (28403 days)
 +
 +Write out database with 1 new entries
 +Data Base Updated
 +==> 0
 +====
 +CA certificate is in /etc/ssl/cacert.pem
 +</code>
 +
 +Durch ausführen des Skriptes mit nachfolgendem Aufrufparameter ''/etc/ssl/misc/CA.pl -newca'' ist eine neue Verzeichnisstruktur und neue Dateien unter
 +  * ''/etc/ssl''
 +entstanden, deren Inhalt mit nachfolgendem Befehl bequem aufgelistet werden kann:
 +<code>
 +# ls -l /etc/ssl
 +total 64
 +-rw-r--r-- 1 root root  4611 Apr 10 12:48 cacert.pem
 +-rw-r--r-- 1 root root  1078 Apr 10 12:48 careq.pem
 +lrwxrwxrwx 1 root root    46 Jun  3  2021 cert.pem -> ../ca-certificates/extracted/tls-ca-bundle.pem
 +drwxr-xr-x 1 root root 13526 Apr 16 09:30 certs
 +drwxr-xr-x 1 root root     0 Apr 10 12:47 crl
 +-rw-r--r-- 1 root root     3 Apr 10 12:47 crlnumber
 +-rw-r--r-- 1 root root   412 Dec 18 11:31 ct_log_list.cnf
 +-rw-r--r-- 1 root root   412 Dec 18 11:31 ct_log_list.cnf.dist
 +-rw-r--r-- 1 root root   166 Apr 10 12:48 index.txt
 +-rw-r--r-- 1 root root    21 Apr 10 12:48 index.txt.attr
 +-rw-r--r-- 1 root root     0 Apr 10 12:47 index.txt.old
 +drwxr-xr-x 1 root root    36 Apr 10 12:47 misc
 +drwxr-xr-x 1 root root    88 Apr 10 12:48 newcerts
 +-rw-r--r-- 1 root root 11160 Apr 10 12:46 openssl.cnf
 +-rw-r--r-- 1 root root 10909 Dec 18 11:31 openssl.cnf.dist
 +drwxr-xr-x 1 root root    18 Apr 10 12:47 private
 +-rw-r--r-- 1 root root    41 Apr 10 12:48 serial
 +</code>
 +<code>
 +# ls -l /etc/ssl/newcerts
 +total 8
 +-rw-r--r-- 1 root root 4611 Apr 10 12:48 58B7F2C0F9308D484F77D3563D9DA99819E6A249.pem
 +</code>
 +<code>
 +# ls -l /etc/ssl/private
 +total 4
 +-rw------- 1 root root 1854 Apr 10 12:48 cakey.pem
 +</code>
 +
 +==== Erstellen CSR (Certificate Request) =====
 +
 +Ebenfalls mit dem Script, welches schon bei der Erstellung einer eigene **Certificate Authority (CA)** genutzt wurde und sich unter ''/etc/ssl/misc'' befindet und den Namen ''**CA**'' trägt, kann nun dieses auch zur Erstellung von
 +  * einem **CSR (Certificate Request)**
 +  * einem **private key (privaten Schlüssel)**
 +genutzt werden.
 +
 +:!: **HINWEIS** - **Das zu erstellende Zertifikat hat __standardmässig__ eine Laufzeit von __1 Jahr__ !!!**
 +
 +Falls eine längere Laufzeit als **ein Jahr** gewünscht sein soll, kann nachfolgender Parameter im Skript, in nachfolgendem Verzeichnis, mit nachfolgendem Namen 
 +  * **''/etc/ssl/openssl.cnf''**
 +**angepasst** werden:
 +
 +(**Nur relevanter Ausschnitt**)
 +<code ini>
 +...
 +# Tachtler
 +# default: default_days = 365           # how long to certify for
 +default_days    = 28023         # how long to certify for 10.04.2023 - 30.12.2099
 +...
 +</code>
 +
 +:!: **HINWEIS** - **Nicht benötigte Angaben werden mit Eingabe eines Punktes [.] übersprungen**!
 +
 +<code>
 +# /etc/ssl/misc/CA.pl -newreq -extra-req -extensions=v3_req
 +</code>
 +<code perl>
 +# /etc/ssl/misc/CA.pl -newreq -extra-req -extensions=v3_req
 +Use of uninitialized value $1 in concatenation (.) or string at /etc/ssl/misc/CA.pl line 137.
 +====
 +openssl req  -new  -keyout newkey.pem -out newreq.pem -days 28023 -extensions=v3_req
 +Ignoring -days; not generating a certificate
 +Generating a RSA private key
 +...+++++
 +....................................+++++
 +writing new private key to 'newkey.pem'
 +Enter PEM pass phrase:
 +Verifying - Enter PEM pass phrase:
 +-----
 +You are about to be asked to enter information that will be incorporated
 +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 '.', the field will be left blank.
 +-----
 +Country Name (2 letter code) [AU]:DE
 +State or Province Name (full name) [Some-State]:Bavaria (Bayern)
 +Locality Name (eg, city) []:Munich (Muenchen)
 +Organization Name (eg, company) [Internet Widgits Pty Ltd]:tachtler.net
 +Organizational Unit Name (eg, section) []:.
 +Common Name (e.g. server FQDN or YOUR name) []:graylog.idmz.tachtler.net
 +Email Address []:hostmaster@tachtler.net
 +
 +Please enter the following 'extra' attributes
 +to be sent with your certificate request
 +A challenge password []: 
 +An optional company name []:.
 +==> 0
 +====
 +Request is in newreq.pem, private key is in newkey.pem
 +</code>
 +
 +Durch ausführen des Scripts mit nachfolgendem Aufrufparameter ''/etc/ssl/misc/CA.pl -newreq -extra-req -extensions=v3_req'' sind zwei neue Dateien unter
 +  * ''/etc/ssl''
 +entstanden, welche mit nachfolgendem Befehl aufgelistet werden können:
 +<code>
 +# ls -l /etc/ssl/new*.pem
 +-rw------- 1 root root 1854 Apr 10 14:01 /etc/ssl/newkey.pem
 +-rw-r--r-- 1 root root 1086 Apr 10 14:03 /etc/ssl/newreq.pem
 +</code>
 +
 +:!: **WICHTIG** - Die so entstandene Datei ''/etc/ssl/newreq.pem'' enthält den **CSR (Certificate Request)**.
 +
 +==== Signieren CSR (Certificate Request) ====
 +
 +Um den in obigen Beispiel entstandenen **CSR (Certificate Request)** nun mit der **Certificate Authority (CA)** zu unterschreiben und somit ein **signiertes CRT (Certificate)** zu erzeugen, kann wieder das Script, welches schon bei der Erstellung der **Certificate Authority (CA)** genutzt wurde und sich unter ''/etc/ssl/misc'' befindet und den Namen ''**CA.pl**'' trägt, mit nachfolgendem Befehl genutzt werden:
 +
 +:!: **WICHTIG** - Das Passwort, ist das Passwort, welches im Schritt [[tachtler:graylog_archlinux#erstellen_ca_certificate_authority|graylog ArchLinux - Erstellen CA (Certificate Authority)]] verwendet wurde!
 +
 +<code>
 +# /etc/ssl/misc/CA.pl -sign -extra-ca
 +</code>
 +<code perl>
 +# /etc/ssl/misc/CA.pl -sign -extra-ca
 +====
 +openssl ca  -policy policy_anything -out newcert.pem -extensions=v3_req -infiles newreq.pem
 +Using configuration from /etc/ssl/openssl.cnf
 +Enter pass phrase for /etc/ssl/private/cakey.pem:
 +Check that the request matches the signature
 +Signature ok
 +Certificate Details:
 +        Serial Number:
 +            58:b7:f2:c0:f9:30:8d:48:4f:77:d3:56:3d:9d:a9:98:19:e6:a2:4a
 +        Validity
 +            Not Before: Apr 10 12:04:22 2023 GMT
 +            Not After : Dec 30 12:04:22 2099 GMT
 +        Subject:
 +            countryName               = DE
 +            stateOrProvinceName       = Bavaria (Bayern)
 +            localityName              = Munich (Muenchen)
 +            organizationName          = tachtler.net
 +            commonName                = graylog.idmz.tachtler.net
 +            emailAddress              = hostmaster@tachtler.net
 +        X509v3 extensions:
 +            X509v3 Basic Constraints: 
 +                CA:FALSE
 +            X509v3 Key Usage: 
 +                Digital Signature, Non Repudiation, Key Encipherment
 +            X509v3 Subject Alternative Name: 
 +                DNS:localhost, DNS:127.0.0.1, DNS:::1
 +Certificate is to be certified until Dec 30 12:04:22 2099 GMT (28402 days)
 +Sign the certificate? [y/n]:y
 +
 +
 +1 out of 1 certificate requests certified, commit? [y/n]y
 +Write out database with 1 new entries
 +Data Base Updated
 +==> 0
 +====
 +Signed certificate is in newcert.pem
 +</code>
 +
 +Durch ausführen des Skriptes mit nachfolgendem Aufrufparameter ''/etc/ssl/misc/CA.pl -sign -extra-ca'' ist eine weitere neue Dateien unter
 +  * ''/etc/ssl''
 +entstanden, welche mit nachfolgendem Befehl aufgelistet werden kann:
 +<code>
 +# ls -l /etc/ssl/new*.pem
 +-rw-r--r-- 1 root root 4639 Apr 10 14:04 /etc/ssl/newcert.pem
 +-rw------- 1 root root 1854 Apr 10 14:01 /etc/ssl/newkey.pem
 +-rw-r--r-- 1 root root 1086 Apr 10 14:03 /etc/ssl/newreq.pem
 +</code>
 +
 +:!: **WICHTIG** - Die so entstandene Datei ''/etc/ssl/newcert.pem'' enthält **das neue signierte CRT (Certificate)**!
 +
 +==== Entfernen des Passwortes vom private key ====
 +
 +Ein Problem ist durch die Erstellung der einzelnen Komponenten, wie in den drei vorhergehenden Schritten beschrieben worden noch offen.
 +
 +:!: **WICHTIG** - **Der //private key (privaten Schlüssel)// ist mit einer Passphrase gesichert !**
 +
 +Um dieses Problem zu lösen und das Passwort aus dem **private key (privaten Schlüssel)** zu entfernen, kann folgender Aufruf von ''openssl'' genutzt werden:
 +
 +:!: **WICHTIG** - Das Passwort, ist das Passwort, welches im Schritt [[tachtler:graylog_archlinux#erstellen_ca_certificate_authority|graylog ArchLinux - Erstellen CA (Certificate Authority)]] verwendet wurde!
 +
 +<code>
 +# openssl rsa < /etc/ssl/newkey.pem > /etc/ssl/key.pem
 +Enter pass phrase: 
 +writing RSA key
 +</code> 
 +
 +Durch ausführen des oben genannten Befehls ist eine weitere neue Dateien unter
 +  * ''/etc/ssl''
 +entstanden, welche mit nachfolgendem Befehl aufgelistet werden kann:
 +<code>
 +# ls -l /etc/ssl/*key*
 +-rw-r--r-- 1 root root 1679 Apr 10 13:16 /etc/ssl/key.pem
 +-rw------- 1 root root 1854 Apr 10 13:12 /etc/ssl/newkey.pem
 +</code>
 +
 +:!: **WICHTIG** - Die so entstandene Datei ''/etc/ssl/key.pem'' enthält **den //private key (privaten Schlüssel)// __OHNE__ Passphrase**!
 +
 +==== Installation Zertifikat ====
 +
 +Nach dem ein Zertifikat wie hier: Graylog ArchLinux - TLS-Zertifikat erstellen beschrieben erstellt wurde, müssen die benötigen Komponenten noch an die entsprechenden Stellen im Betriebssystem kopiert werden. Dazu sind nachfolgende Befehle notwendig.
 +
 +Bevor mit der abschliessenden Konfiguration von [[https://www.graylog.org/|Graylog]] zur Nutzung von **HTTPS** begonnen werden kann, sind die in den vorhergehenden Schritten erstellten Dateien:
 +  * ''/etc/ssl/key.pem''
 +  * ''/etc/ssl/newcert.pem''
 +  * ''/etc/ssl/cacert.pem''
 +noch zu kopieren und ggf. umzubenennen und die **Besitz**- und **Datei**rechte der entsprechend Dateien noch anzupassen!
 +
 +Als erstes werden mit den nachfolgenden Befehlen zwei neue Verzeichnisse im bestehen Verzeichnis ''/etc/kea'' angelegt:
 +<code>
 +# mkdir -p /etc/graylog/server/ssl/{certs,private}
 +</code>
 +
 +Anschliessend werden mit den nachfolgenden Befehlen die entsprechenden Dateien an den jeweiligen Bestimmungsort kopiert und ggf. umbenannt:
 +<code>
 +# cp -a /etc/ssl/key.pem /etc/graylog/server/ssl/private/graylog.idmz.tachtler.net.key
 +# cp -a /etc/ssl/newcert.pem /etc/graylog/server/ssl/certs/graylog.idmz.tachtler.net.pem
 +# cp -a /etc/ssl/cacert.pem /etc/graylog/server/ssl/certs/CAcert.pem
 +</code> 
 +
 +Die **Besitz**- und **Datei**rechte der soeben kopieren und ggf. umbenannten Dateien
 +  * ''/etc/graylog/server/ssl/private/graylog.idmz.tachtler.net.key''
 +  * ''/etc/graylog/server/ssl/certs/graylog.idmz.tachtler.net.pem''
 +  * ''/etc/graylog/server/ssl/certs/CAcert.pem''
 +können mit folgenden Befehlen die **Besitz**rechte wie folgt korrigiert werden:
 +<code>
 +# chown root:root /etc/graylog/server/ssl/private/graylog.idmz.tachtler.net.key
 +# chown root:root /etc/graylog/server/ssl/certs/graylog.idmz.tachtler.net.pem
 +# chown root:root /etc/graylog/server/ssl/certs/CAcert.pem
 +</code>
 +und mit folgenden Befehlen die **Datei**rechte:
 +<code>
 +# chmod 400 /etc/graylog/server/ssl/private/graylog.idmz.tachtler.net.key
 +# chmod 444 /etc/graylog/server/ssl/certs/graylog.idmz.tachtler.net.pem
 +# chmod 444 /etc/graylog/server/ssl/certs/CAcert.pem
 +</code>
 +
 +Durch Ausführen der oben genannten Befehle sieht der Inhalt des Verzeichnisses
 +  * ''/etc/kea/ssl''
 +wie folgt aus, welches mit nachfolgendem Befehl aufgelistet werden kann:
 +<code>
 +# ls -l /etc/kea/ssl/*
 +/etc/kea/ssl/certs:
 +total 16
 +-r--r--r-- 1 root root 4611 Apr 10 14:59 CAcert.pem
 +-r--r--r-- 1 root root 4810 Apr 10 14:59 graylog.idmz.tachtler.net.pem
 +
 +/etc/kea/ssl/private:
 +total 4
 +-r-------- 1 root root 1675 Apr 10 14:59 graylog.idmz.tachtler.net.key
 +</code>
 +
 +===== systemd-journald -> graylog =====
 +
 +Zum Transport der in **''systemd-journald''** aufgelaufenen LOG-Meldungen nach [[https://www.graylog.org/|Graylog]] sollen die LOG-Daten 
 +  * **verschlüsselt**
 +  * abgesichert durch **Zertifikate**
 +  * **direkt** zu [[https://www.graylog.org/|Graylog]]
 +via transportiert werden.
 +
 +==== Elastic - beats - filebeat ====
 +
 +Die nachfolgende Methode unter Zuhilfenahme des [[https://www.elastic.co/de/beats/filebeat|Elastic - Beats - filebeat]] soll hier zum Einsatz kommen.
 +
 +Siehe auch nachfolgenden internen Link
 +  * **[[tachtler:graylog_archlinux_-_elastic_-_beats_-_filebeats|graylog ArchLinux - Elastic - beats - filebeats]]**
  
-FIXME - :!: - **Hier geht es weiter.../ To be continued...** 
tachtler/graylog_archlinux.1643463554.txt.gz · Zuletzt geändert: 2022/01/29 14:39 von klaus