Hallo Freunde der Sonne,
so ziehmlich jedes System unterstützt Syslog als Protokoll um seine Protokoll-Meldungen zu einem System zwecks Auswertung zu übertragen. Wer sich jetzt an den Begriff: Vorratsdatenspeicherung erinnert fühlt – der hat verdammt recht.
Trotzdem ist eine passive Dokumentation aller Ereignisse zwecks Fehlerfindung oder auch Angriffsauswertung ganz sinnvoll und los gehts…
Installation Syslog-Server (mit MySQL-Datenbank)
In diesem Beispiel installieren wir auf einem CentOS das Linux-Standardpaket für Syslog, sowie den MySQL-Server um die Daten aufzuzeichnen:
yum install rsyslog rsyslog-* mysql mysql-server nano ntsysv
Hinweis: Syslog wird gleich als Dienst installiert und gestartet, ggf. sollte man rsyslog gleich wieder auf dem Autostart entfernen oder zumindest stopppen.
service rsyslog stop service mysqld start
Nebenbei sollten wir schon Mal das Admin-Kennwort des MySQL-Servers einstellen:
mysqladmin -u root password 'Kennwort'
Danach sollten wir das rsyslog-Datenbankskript importieren:
mysql -u root < /usr/share/doc/rsyslog-mysql-5.8.10/createDB.sql -p
Wie üblich legt man danach via MySQL noch den Zugriffsbenutzer für die Datenbank an:
mysql -u root -p
CREATE USER rsyslog@localhost; GRANT ALL ON Syslog.* TO rsyslog@localhost; FLUSH PRIVILEGES; SET PASSWORD FOR rsyslog@localhost = PASSWORD('Kennwort');
Nun müssen wir dem Syslog-Dienst noch als Server-Dienst konfigurieren und ihn mit der Datenbank verbinden, dies tuen wir in der Konfigurationsdatei:
nano /etc/rsyslog.conf
Hier folgenden Inhalt einkommentieren oder einfügen:
# rsyslog v5 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 #### $ModLoad imuxsock # provides support for local system logging (e.g. via logger command) $ModLoad imklog # provides kernel logging support (previously done by rklogd) #$ModLoad immark # provides --MARK-- message capability # Provides UDP syslog reception $ModLoad imudp $UDPServerRun 514 # Provides TCP syslog reception $ModLoad imtcp $InputTCPServerRun 514 # MySQL $ModLoad ommysql $ModLoad ommysql *.* :ommysql:127.0.0.1,Syslog,rsyslog,Kennwort $AllowedSender UDP, 127.0.0.1, 192.168.0.0/16, 10.0.0.0/8 $AllowedSender TCP, 127.0.0.1, 192.168.0.0/16, 10.0.0.0/8
Hoffentlich erkennbar dunkelrot markiert müssen hier die Verbindungsdaten hinterlegt werden, sowie der Zugriff auf den Syslog-Server freigegeben werden.
(ich geh Mal davon aus, das bekommt jeder selbst hin mit dem Beispiel)
Nun sollte die Firewall konfiguriert werden – in unserem Falle iptables:
# MySQL besser nicht # -A INPUT -p tcp -m state --state NEW -m tcp --dport 3306 -j ACCEPT # Webanalyzer via Apache -A INPUT -p tcp -m state --state NEW -m tcp --dport 80 -j ACCEPT -A INPUT -p tcp -m state --state NEW -m tcp --dport 443 -j ACCEPT # Syslog-Server -A INPUT -p tcp -m state --state NEW -m tcp --dport 514 -j ACCEPT -A INPUT -p udp -m state --state NEW -m udp --dport 514 -j ACCEPT
Zur Erinnerung: iptables Speichern, Einspielen, in Autostart übernehmen
# im Benutzerverzeichnis sichern cd iptables-save > iptables.save # Bearbeiten und wieder einspielen iptables-restore iptables.save # als Standard uebernehmen cp /root/iptables.save /etc/sysconfig/iptables
Nun sollten wir den Dienst starten für den Syslog-Dienst wieder starten:
service rsyslog start
Der Syslog-Server ist nun bereits einsatzfähig, nun installieren wir eine Weboberfläche zum Filtern der protokollierten Syslog-Einträge, hierzu installieren wir zuerst den Apache inkl. PHP:
yum install httpd mod_ssl php php-mysql openssl wget rm /etc/httpd/conf.d/welcome.conf
Nun laden wir ein Interface zur Steuerung des Syslog-Servers herunter und stellen dies im Standardpfad des Apache bereit:
cd wget http://download.adiscon.com/loganalyzer/loganalyzer-3.6.6.tar.gz tar xvzf ./loganalyzer-3.6.6.tar.gz mkdir /var/www/html/loganalyzer mv src/* /var/www/html/loganalyzer/ mv contrib/* /var/www/html/loganalyzer/ cd /var/www/html/loganalyzer/ chmod +x *.sh ./configure.sh
Zwecks Funktionalität müssen wir noch SELINUX abschalten, dies tuen wir via:
nano /etc/sysconfig/selinux
Und setzen SELINUX auf disabled (deaktiviert):
# This file controls the state of SELinux on the system.
# SELINUX= can take one of these three values:
# enforcing - SELinux security policy is enforced.
# permissive - SELinux prints warnings instead of enforcing.
# disabled - No SELinux policy is loaded.
SELINUX=disabled
# SELINUXTYPE= can take one of these two values:
# targeted - Targeted processes are protected,
# mls - Multi Level Security protection.
SELINUXTYPE=targeted
Nun überprüfen wir die Autostart-Ko0nfiguration aller benötigten Dienste:
ntsysv
Foglende Dienste müssen aktiviert sein:
- httpd – Webserver
- mysqld – Datenbankserver
- rsyslog – Syslog-Server
Danach rufen wir die Konfiguration-Seite des Loganalyzer nach einem Neustart auf:
init 6
Installation Loganalyzer (Webfrontend)
Bitte per Browser die entsprechende URL aufrufen: http://<centos>/loganalyzer/
Abbildung 1: Loganalyzer Einrichtung starten

Abbildung 2: Interne Prüfung (sonst Dateizugriff per Shell anpassen)

Abbildung 3: Dantebankverbindung einrichten

Abbildung 4: Tabellen erstellen

Abbildung 5: Überprüfung der 23 Tabellen

Abbildung 7: Zugriff auf Inhaltsdatenbank, Tabellenname korrigieren!
WICHTIG: In Abbildung 7 muss darauf geachtet werden, dass der Tabellenname in Groß- und Kleinschreibung korrigiert wird!
Hiermit ist die Einrichtung des Loganalyzer-Webfrontends für den Syslog-Server abgeschlossen.
Es kann sich nun als Admin eingeloggt werden.
Troubleshooting
Falls die Installation kein Benutzerkonto hinzugefügt hat, kann über folgendes SQL-Query ein Benutzer „admin“ mit Kennwort „pass“ angelegt werden.
INSERT INTO `logcon_user` (`ID`, `username`, `password`, `is_admin`, `is_readonly`,`last_login`) VALUES (1, 'admin', '1a1dc91c907325c69271ddf0c944bc72', 1, 0,0);
