Een klant vroeg mij om een Syslog Server te installeren, het liefst een gratis versie met mogelijkheden zoals filteren, grafieken, dashboards maken etc.
Er zijn genoeg betaalde versies die dit kunnen maar na even zoeken ben ik een prachtige gratis versie hiervan tegengekomen! Graylog Syslog Server!
In dit artikel zal ik de basisinstallatie beschrijven waarmee je aan de slag kunt om te gaan Sysloggen!
Installatie procedure
Dit artikel beschrijft de installatie onder Ubuntu Linux Server 20.04 LTS en links en pakketten zijn aanwezig op het moment van het schrijven van dit artikel per 2-9-2022 maar mogelijk kan dit aangepast worden.
Wat we niet behandelen is het beveiligen van de Linux Server!
Voorbereidingen
Natuurlijk hebben we een basis installatie nodig van Ubuntu Server 20.04 LTS.
Richt hiervoor een VM of fysieke machine in.
De ISO is hier te vinden
Voer een minimale server installatie uit en als je remote via Putty bij de machine wilt kunnen komen, installeer dan ook de OpenSSH server mee.
Na installatie dien je Linux te updaten en een aantal pakketten te installeren.
Voer hiervoor deze commando’s uit:
$ sudo apt-get update && sudo apt-get upgrade
$ sudo apt install apt-transport-https openjdk-11-jre-headless uuid-runtime pwgen dirmngr gnupg wget
MongoDB Installatie
De officiele MongoDB repository beschikt over de meest up-to-date versie en is de aanbevolen manier om MongoDB te installeren :
$ sudo apt-key adv –keyserver hkp://keyserver.ubuntu.com:80 –recv 9DA31620334BD75D9DCB49F368818C72E52529D4
$ echo “deb [ arch=amd64 ] https://repo.mongodb.org/apt/ubuntu bionic/mongodb-org/4.0 multiverse” | sudo tee /etc/apt/sources.list.d/mongodb-org-4.0.list
$ sudo apt-get update
$ sudo apt-get install -y mongodb-org
De laatste stap is het opstarten van MongoDB wanneer het systeem opgestart wordt en te controleren of MongoDB draait:
$ sudo systemctl daemon-reload
$ sudo systemctl enable mongod.service
$ sudo systemctl restart mongod.service
$ sudo systemctl –type=service –state=active | grep mongod
Elasticsearch installatie :
Graylog kan gebruikt worden met Elasticsearch 7.x.
Gebruik onderstaande commando’s om de opensource versie hiervan te installeren
$ wget -q https://artifacts.elastic.co/GPG-KEY-elasticsearch -O myKey
$ sudo apt-key add myKey
$ echo “deb https://artifacts.elastic.co/packages/oss-7.x/apt stable main” | sudo tee -a /etc/apt/sources.list.d/elastic-7.x.list$ sudo apt-get update && sudo apt-get install elasticsearch-oss
Pas de Elasticsearch configuratie aan (/etc/elasticsearch/elasticsearch.yml) door Clusternaam “Graylog” in te stellen en uncomment action.auto_create_index: false mbv de volgende commando’s
$ sudo tee -a /etc/elasticsearch/elasticsearch.yml > /dev/null <<EOT
cluster.name: graylog
action.auto_create_index: false
EOT
Nadat je de configuratie hebt aangepast kun je Elasticsearch starten en controleren of deze draait :
$ sudo systemctl daemon-reload
$ sudo systemctl enable elasticsearch.service
$ sudo systemctl restart elasticsearch.service
$ sudo systemctl –type=service –state=active | grep elasticsearch
Graylog installeren :
Nu gaan we Graylog installeren!
$ wget https://packages.graylog2.org/repo/packages/graylog-4.3-repository_latest.deb
$ sudo dpkg -i graylog-4.3-repository_latest.deb
$sudo apt-get update && sudo apt-get install graylog-server graylog-enterprise-plugins graylog-integrations-plugins graylog-enterprise-integrations-plugins
Tip!
Als je de standaard versie van Graylog wilt draaien kun je het commando sudo apt-get install graylog-server.
Configuratie Bestand aanpassen :
Een paar zaken dienen aangepast te worden in het configuratie bestand /etc/graylog/server/server.conf
Voer een wachtwoord in bij password_secret en root_password_sha2.
Deze zijn verplicht en zonder wachtwoord zal Graylog niet starten.
om een wachtwoord te maken voer je het volgende commando uit:
echo -n “Enter Password: ” && head -1 </dev/stdin | tr -d ‘\n’ | sha256sum | cut -d” ” -f1
Voer het gewenste wachtwoord in en hieruit komt een password hash, deze kopieer en plak je in de server.conf file.
Om verbinding te kunnen maken met Graylog met je webbrowser moet je nog de http_bind_address variabele in server.conf aanpassen.
Bijvoorbeeld http_bind_address = 0.0.0.0:9000
De laatste stap is Graylog instellen om automatisch te starten bij het opstarten van het systeem en te controleren of deze draait:
$ sudo systemctl daemon-reload
$ sudo systemctl enable graylog-server.service
$ sudo systemctl start graylog-server.service
$ sudo systemctl –type=service –state=active | grep graylog
Klaar met installeren, door met inrichten!
Wanneer Graylog draait ben je klaar met de installatie en kun je door met het inrichten van Graylog!
Hiervoor ga je met je webbrowser naar http://graylogserver-ip-of-naam:9000
Meld je aan met admin en het wachtwoord wat je hierboven hebt ingesteld.
Eenmaal aangemeld kun je beginnen!
Eerste stap is het maken van een Syslog Input welke je vindt onder System –> Inputs
Hint: Het is niet mogelijk om een input op de standaard Syslog poort 514 te laten draaien!
Pas de poort aan naar bijvoorbeeld UDP 5140 waarna de Input probleemloos zal starten.
Vervolgens kun je apparaten gaan instellen om te gaan sysloggen naar het IP adres en poort van de Graylog Syslog Server.
Wanneer je berichten binnen krijgt kun je deze bekijken, filteren, extractors toevoegen, dashboards creëren met grafieken etc. Duik hiervoor in de documentatie van Graylog want dit kent wel een bepaalde leercurve!
Handige zaken die nuttig kunnen zijn voor het analyseren van de logs
Extractors aanmaken:
Extractors kun je gebruiken om uit de vele berichten bepaalde zaken te filteren en daar een “Field” voor te genereren welke je kunt gebruiken om een Dashboard te maken voor specifiek die berichten. Je krijgt dan een widget die de informatie bevat van het filter dat je wilt gebruiken.
Hieronder de parameters voor diverse apparatuur:
Voor Sonicwall Appliances:
Filter |
GROK Extractor parameter |
Source IP: |
src=%{IP:srcip} |
TCP Protocollen |
tcp/%{WORD:protocol-tcp} |
UDP Protocollen |
udp/%{WORD:protocol-udp} |
Website Categorieën |
Category=%{QUOTEDSTRING:WebsiteCategory} |
Gebruikersnaam |
usr=%{QUOTEDSTRING:UserName} |
Bericht |
msg=%{QUOTEDSTRING:Bericht} |
Destination Hostname |
dstname=%{HOSTNAME:DestinationName} |
VPN Policy |
vpnpolicy=%{QUOTEDSTRING:VPNPolicy} |
Responder IP/Land |
Responder IP:%{IPV4:RespIP} Country Name:%{WORD:CountryName} |
Duplicate IP’s |
Duplicate address %{GREEDYDATA:DupIP} |
Voor HPE/Aruba Switches:
Filter |
GROK Extractor parameter |
User login |
User %{QUOTEDSTRING:SwitchLogin} |
Offline Ports |
00077 ports:%{GREEDYDATA:PortOffline} |
Online Ports |
00076 ports:%{GREEDYDATA:PortOnline} |
Spanning Tree TCN |
STP_NOTIFIED_TC:%{GREEDYDATA:SpanTCN} |
NTP |
00414 SNTP:%{GREEDYDATA:SwSNTP} |
Port Duplex meldingen |
00633 FFI:%{GREEDYDATA:SwPortDuplex} |
Certificaat meldingen |
03425 crypto:%{GREEDYDATA:SwCertificate} |
CRC Errors |
00329 FFI:%{GREEDYDATA:SwCRC} |
Spanning Tree Blocked |
00435 ports:%{GREEDYDATA:SwSTPBlocked} |
Aruba Activate Server |
05220 activate:%{GREEDYDATA:SwActivateServer} |
Ik hoop dat je iets aan dit artikel hebt gehad en wens je veel plezier en gemak met dit prachtige pakket!