OSSEC - HIDS mit active response, Logmanagment und e-mail Benachrichtigung

You would like to contribute something for IPFire?
Post Reply
ummeegge
Community Developer
Community Developer
Posts: 5001
Joined: October 9th, 2010, 10:00 am

OSSEC - HIDS mit active response, Logmanagment und e-mail Benachrichtigung

Post by ummeegge » July 31st, 2011, 11:53 am

Hallo zusammen,
wollte euch mal fragen was ihr von dieser http://www.ossec.net/,{EDIT} bzw. mittlerweile auch von dieser Software --> https://wazuh.com/ haltet ?

Beides sind Network-Host-based-Intrusion-Detection-Systems (NHIDS) mit Log Analyse, System-Integritätschecks, Rootkit Erkennung, zeitbasiertem Alarm (email notification), Active Response (automatischer zeitbasierter Sperrung von verdächtigen Aktivitäten mittlels IPTables) und noch einigen anderen möglichen Erweiterungen incl. der eigenen Erweiterungen welche relativ leicht zu machen sind (XML).

Es können unterschiedlichste Logs für unterschiedliche Devices und OS´s ausgewertet und zentral korreliert werden, man kann relativ einfach über regular expressions (.xml Dateien) eigene Erweiterungen erstellen, es gibt einen lokalen und einen Server/Agent Modus in dem auch andere Maschinenlogs über sichere Verbindungen im LAN (oder auch WAN z.b. über OpenVPN/IPSec) geprüft werden.

Wäre doch ganz nett, so dachte ich mir, ein zentrales Logmanagement mit Warnungs{+Verteidiguns}system zu haben. Es gibt auch ein Webinterface was mit Core 118 aber nicht mehr funktioniert (kein PHP mehr) es sei denn es gibt eine alternative PHP Installation. Hierfür könnte z.b. auch Wazuh verwendet werden was ein OSSEC fork ist und von der Bedinung her relativ nah ist aber um einiges mehr an Erweiterungen bietet wie z.b. eine relativ leichte Anbindung an den ELK-Stack --> https://www.elastic.co/ was dann z.b. so aussehen könnte:

Image


11.02.2018:
EDIT: Es gibt mittlerweile ein admin Skript was 4 unterschiedliche Skript zu Verfügung stellt welche folgendes beinhalten:

1) OSSEC in- uninstaller,
2) Wazuh --> https://wazuh.com/ in- uninstaller als Alternative zu OSSEC.
3) OSSECs webinterface in- uninstaller (DEPRECATED was aber mit Core 118 nicht mehr funktionieren wird da IPFire ab dann kein PHP mehr hat, das Skript check das aber sollte jemand eine alternative PHP Installation haben geht das Skript dann dennoch),
3) Alternatives Email Alarm Setup via sendEmail, mit Verschlüsselung der Mails via GPG, TLS-Transport und SMTP-Auth.

Um das Skript auszuführen kann folgender Codeblock ausgeführt werden (copy/paste ;)

BITTE TEST SYSTEM VERWENDEN

Code: Select all

cd /tmp &&
curl -O https://gitlab.com/ummeegge/ossec-wazuh/raw/master/ossec-wazuh-admin.sh &&
chmod +x ossec-wazuh-admin.sh &&
./ossec-wazuh-admin.sh
EDIT(s):
05.02.2018
Mit Core 118 gibt es kein PHP mehr auf dem IPFire weswegen auch das OSSEC Wi nicht mehr funktionieren wird. Installer check ob eine PHP Installation vorhanden ist, wenn nicht wird auch nicht installiert. WI uninstaller geht hingegen noch.
11.02.2018
Wazuh --> https://wazuh.com/ is mittlerweile auch als Server/Agent und lokal Installation für 32 und 64 Bit Maschinen verfügbar.
OSSEC Wi option wurde von der admin.sh gelöscht da PHP ab Core 118 nicht mehr vorhanden ist. Sollte dennoch Interesse bestehen findet sich der WI un- installer hier --> https://gitlab.com/ummeegge/ossec-wazuh ... h-admin.sh .
13.03.2018
Update to OSSEC-2.9.3 and Wazuh-3.2.1. Installer geht nur mit Core 120 + (neues OpenSSL-1.1.0) .
20.08.2018
- Transfered project to Gitlab.
Last edited by ummeegge on May 6th, 2014, 4:51 am, edited 1 time in total.
Image
Image

ummeegge
Community Developer
Community Developer
Posts: 5001
Joined: October 9th, 2010, 10:00 am

Re: OSSEC - HIDS Software mit Logmanagment und e-mail Benachrichtigung bei Warnungen

Post by ummeegge » August 5th, 2012, 3:39 pm

Hallo zusammen,
ich habe jetzt mal OSSEC auf meinem testing Fire (als Master) und auf meinem Produktiv Fire (als Agent) installiert und bin recht angetan von dieser Lösung. Da es auch nicht all zu kompliziert war hier mal ein schnelles How-To zu.

Was man braucht:
Es muss in C-Compiler und make vorhanden sein, da ich eine Build Umgebung auf IPFire Basis laufen habe, hab ich diese auch verwendet.

Schnelle Vorgehensweise:
1) Das Paket wird runtergeladen, Checksum geprüft und Paket entpackt.
2) Teile der Source Kompiliert (preloaded-vars.conf modifiziert) um ein Binary für weitere IPFire Master oder Agents zu bauen (somit brauchts dann da keinen Kompiller bzw. make mehr).
3) OSSEC wird auf einem Master und einem Agent installiert.
4) OSSEC wird im IPFire integriert (in der WUI unter status->Dienste)
5) und beide werden miteinander Verbunden.

Also in das IPFire build Verzeichnis mit

Code: Select all

./make.sh shell

gewechselt.

1)
Die Source beziehen:

Code: Select all

wget http://www.ossec.net/files/ossec-hids-2.6.tar.gz

MD5 Summe überprüfen

Code: Select all

md5sum ossec-hids-2.6.tar.gz

Entpacken:

Code: Select all

tar xvfz ossec-hids-2.6.tar.gz

In das Verzeichnis navigieren

Code: Select all

cd ossec-hids-2.6


2)
Bin nach dieser Anleitung --> http://www.ossec.net/doc/manual/install ... inary.html vergegangen mit einer kleinen Änderung für den Master, bei einem Agent kann exakt nach Anleitung vorgegangen werden:

Teile der Source für einen Master Kompilieren:

Code: Select all

cd /src
make all
make build
cd ../..


Bei einem Agent-Binary wurde so vorgegangen:

Code: Select all

cd /src
make setagent
make all
make build
cd ../..

Also "make setagent" wird noch zusätzlich ausgeführt.

Binary Install aktivieren:

Code: Select all

echo "USER_BINARYINSTALL=\"y\"" >> ossec-hids*/etc/preloaded-vars.conf

und als Binary wieder packen:

Code: Select all

tar -cvzf ossec-binary.tgz ossec-hids-2.6


Die frisch entstandene ossec-binary.tgz kann dann zu den jeweiligen Maschinen mittels scp oder sftp (what ever) übermittelt werden und kann dort mit einem simplen "./install.sh" installiert werden.

3)
Die (geführte) Installation ist mit dem Binary denkbar einfach und kann auf jedem IPFire System (Build Umgebung wird nicht mehr benötigt) ausgeführt werden.

Das Paket entpacken, in´s Verzeichnis navigieren und die install.sh aufrufen:

Code: Select all

tar xvfz ossec-binary.tgz
cd ossec-hids-2.6
./install.sh


Installation auf einem Master:

Code: Select all

[root@ipfire-server /tmp/ossec-hids-2.6]# ./install.sh

  ** Para instalação em português, escolha [br].
  ** 要使用中文进行安装, 请选择 [cn].
  ** Fur eine deutsche Installation wohlen Sie [de].
  ** Για εγκατάσταση στα Ελληνικά, επιλέξτε [el].
  ** For installation in English, choose [en].
  ** Para instalar en Español , eliga [es].
  ** Pour une installation en français, choisissez [fr]
  ** Per l'installazione in Italiano, scegli [it].
  ** 日本語でインストールします.選択して下さい.[jp].
  ** Voor installatie in het Nederlands, kies [nl].
  ** Aby instalować w języku Polskim, wybierz [pl].
  ** Для инструкций по установке на русском ,введите [ru].
  ** Za instalaciju na srpskom, izaberi [sr].
  ** Türkçe kurulum için seçin .
  (en/br/cn/de/el/es/fr/it/jp/nl/pl/ru/sr/tr) [en]: de


 OSSEC HIDS v2.6 Installations Script - http://www.ossec.net

 
  - System: Linux ipfire-server 2.6.32.45-ipfire
  - User: root
  - Host: ipfire-server


  -- Drücken Sie eine Taste zum fortfahren oder Ctrl-C zum abbrechen --


1- Welche Art der Installation möchten Sie starten (server,agent,lokal oder hilfe)? server

  - Server installation ausgewählt.

2- Die Installation wird vorbereitet.

 - Bitte w?hlen Sie wo OSSEC HIDS installiert werden soll [/var/ossec]:

    - Die Installation wird kopiert nach  /var/ossec .

3- Konfiguration  OSSEC HIDS.

  3.1- M?chten Sie Benachrichtigungen per E-Mail?  (j/n) [j]: j
   - Wie lautet die E-Mail Adresse?  xxxxxxx@xxx.de
   - Wie lautet die Adresse des SMTP Servers? (IP/Host)  smtp.xx.xx

  3.2- M?chten Sie den syscheck (integrity check daemon) benutzen? (j/n) [j]: j

   - Syscheck (integrity check daemon) wird gestartet.

  3.3- M?chten Sie die rootkit detection engine benutzen? (j/n) [j]: j

   - Rootcheck (rootkit detection) wird gestartet.

  3.4- Mit 'Active Response' k?nnen Befehle abh?ngig von
       Events ausf?hren. Dadurch k?nnen zB IP-Adressen
       geblockt werden oder der Zugriff f?r bestimmte
       Benutzer abgeschaltet werden.
       http://www.ossec.net/en/manual.html#active-response
      
   - M?chten Sie active response benutzen? (j/n) [j]: j

   - Active response eingeschaltet."
  
   - Standardm?ssig kann 'host-deny' und 'firewall-drop'
     aktiviert werden. 'host-deny' f?gt eine IP in die
     Datei /etc/hosts.deny ein. 'firewall-response' f?gt
     eine IP per iptables (Linux) oder ipfilter (Solaris,
     FreeBSD usw) in die Firewall Regeln ein.

   - Beide k?nnen benutzt werden um SSH Brute-Force scans,
     Portscans oder andere Attacken zu verhindern. Es kann
     auch durch einen Snort-Event geblockt werden.

   - M?chten Sie firewall-drop benutzen? (j/n) [j]: j

     - firewall-drop (local) f?r level >= 6 eingeschaltet

   - Standard Ausnahmeliste (White-list) für active response:
      - 127.0.0.1

   - Möchten Sie weitere IPs zur White-list hinzufügen? (j/n)? [n]: j
   - IPs (Durch Leerzeichen getrennt): 192.168.xx.xx 192.168.xx.xx

  3.5- M?chten Sie Nachrichten von einem remote syslog (514 udp) empfangen? (j/n) [j]: j

   - Remote syslog empfang eingeschaltet.

  3.6- Die folgenden Log-Files werden analysiert:
    -- /var/log/messages
    -- /var/log/squid/access.log
    -- /var/log/snort/alert (snort-fast file)
    -- /var/log/httpd/error_log (apache log)
    -- /var/log/httpd/access_log (apache log)

 - Wenn Sie weitere Files ?berwachen m?chten, f?gen Sie
   einen weiteren 'localfile' Eintrag in der Datei
   ossec.conf hinzu. Alle Konfigurationsoptionen werden
   unter http://www.ossec.net/hids/ beschrieben.

   --- Dr?cken Sie eine Taste um fortzufahren ---
                           


5- Installiere das System
 - make wird ausgef?hrt


 - Erkanntes System  Linux (SysV).
 - Init script wurde ver?ndert um OSSEC HIDS beim boot zu starten.

 - Konfguration erfolgreich durchgef?hrt .

 - Um OSSEC HIDS zu starten:
      /var/ossec/bin/ossec-control start

 - Um OSSEC HIDS zu stoppen:
      /var/ossec/bin/ossec-control stop

 - Die Konfiguration kann angesehen oder ver?ndert werden unter:  /var/ossec/etc/ossec.conf


    Danke das Sie OSSEC HIDS benutzen.
    Bei Fragen, Anregungen oder wenn Sie einen Fehler gefunden
    haben, k?nnen Sie die Entwickler per E-Mail contact@ossec.net
    oder ?ber die Mailingliste unter ossec-list@ossec.net erreichen
    ( http://www.ossec.net/en/mailing_lists.html ).

    Weitere Informtionen finden Sie unter http://www.ossec.net/hids/

    ---  Dr?cken Sie eine Taste um fortzufahren  ---



 - Agenten m?ssen hinzugef?gt werden bevor sie zugreifen k?nnen.
   Run the 'Benutzen Sie manage_agents um Agenten hinzuzuf?gen oder zu entfernen:

   /var/ossec/bin/manage_agents

   Weitere Informationen unter:
   http://www.ossec.net/en/manual.html#ma

Da ist jetzt schon das init Skript fertig, die User sind angelegt, die Logs von Snort, Squid, /var/log/messages, httpd/error und httpd/access werden standardmässig überprüft und der remote syslog (1514 udp) läuft.

Die OSSEC installation befindet sich komplett unter /var/ossec

Installation auf einem Agent:

Code: Select all

[root@ipfire /tmp/ossec-hids-2.6]# ./install.sh 

  ** Para instalação em português, escolha [br].
  ** 要使用中文进行安装, 请选择 [cn].
  ** Fur eine deutsche Installation wohlen Sie [de].
  ** Για εγκατάσταση στα Ελληνικά, επιλέξτε [el].
  ** For installation in English, choose [en].
  ** Para instalar en Español , eliga [es].
  ** Pour une installation en français, choisissez [fr]
  ** Per l'installazione in Italiano, scegli [it].
  ** 日本語でインストールします.選択して下さい.[jp].
  ** Voor installatie in het Nederlands, kies [nl].
  ** Aby instalować w języku Polskim, wybierz [pl].
  ** Для инструкций по установке на русском ,введите [ru].
  ** Za instalaciju na srpskom, izaberi [sr].
  ** Türkçe kurulum için seçin .
  (en/br/cn/de/el/es/fr/it/jp/nl/pl/ru/sr/tr) [en]: de


 OSSEC HIDS v2.6 Installations Script - http://www.ossec.net

 
  - System: Linux feuerstuhl-bbach 2.6.32.45-ipfire
  - User: root
  - Host: feuerstuhl-bbach


  -- Drücken Sie eine Taste zum fortfahren oder Ctrl-C zum abbrechen --


1- Welche Art der Installation möchten Sie starten (server,agent,lokal oder hilfe)? agent

  - Agent(client) installation ausgewählt.

2- Die Installation wird vorbereitet.

 - Bitte w?hlen Sie wo OSSEC HIDS installiert werden soll [/var/ossec]:

    - Die Installation wird kopiert nach  /var/ossec .

3- Konfiguration  OSSEC HIDS.

  3.1- Wiw lautet die IP Addresse des OSSEC HIDS Servers?: 192.168.xx.xx

   - Server IP hinzugef?gt 192.168.xx.xx

  3.2- M?chten Sie den syscheck (integrity check daemon) benutzen? (j/n) [j]: j

   - Syscheck (integrity check daemon) wird gestartet.

  3.3- M?chten Sie die rootkit detection engine benutzen? (j/n) [j]: j

   - Rootcheck (rootkit detection) wird gestartet.

  3.4 - M?chten Sie active response benutzen? (j/n) [j]: j


  3.5- Die folgenden Log-Files werden analysiert:
    -- /var/log/messages
    -- /var/log/vsftpd.log
    -- /var/log/squid/access.log
    -- /var/log/httpd/error_log (apache log)
    -- /var/log/httpd/access_log (apache log)

 - Wenn Sie weitere Files ?berwachen m?chten, f?gen Sie
   einen weiteren 'localfile' Eintrag in der Datei
   ossec.conf hinzu. Alle Konfigurationsoptionen werden
   unter http://www.ossec.net/hids/ beschrieben.
  
  
   --- Dr?cken Sie eine Taste um fortzufahren ---
                           


5- Installiere das System
 - make wird ausgef?hrt


 - Erkanntes System  Linux (SysV).
 - Init script wurde ver?ndert um OSSEC HIDS beim boot zu starten.

 - Konfguration erfolgreich durchgef?hrt .

 - Um OSSEC HIDS zu starten:
      /var/ossec/bin/ossec-control start

 - Um OSSEC HIDS zu stoppen:
      /var/ossec/bin/ossec-control stop

 - Die Konfiguration kann angesehen oder ver?ndert werden unter:  /var/ossec/etc/ossec.conf


    Danke das Sie OSSEC HIDS benutzen.
    Bei Fragen, Anregungen oder wenn Sie einen Fehler gefunden
    haben, k?nnen Sie die Entwickler per E-Mail contact@ossec.net
    oder ?ber die Mailingliste unter ossec-list@ossec.net erreichen
    ( http://www.ossec.net/en/mailing_lists.html ).

    Weitere Informtionen finden Sie unter http://www.ossec.net/hids/

    ---  Dr?cken Sie eine Taste um fortzufahren  ---
   


 - Um mit dem Server zu kommunizieren m?ssen Sie erst den
   Agent auf dem Server hinzuf?gen. Danach kann der Schl?ssel
   mit dem Tool 'manage_agents' importiert werden.
  
   /var/ossec/bin/manage_agents

   Weitere Informationen unter:
   http://www.ossec.net/en/manual.html#ma


Da ist ebenfalls schon das init Skript fertig, die User sind angelegt, die Logs von Snort, Squid, messages, httpd/error und httpd/access und vsftpd (da dieser auf der Maschine installiert ist) werden standardmässig überprüft und der remote Server ist auch angegeben.


Die OSSEC Installation befindet sich hier auch komplett unter /var/ossec

4)
Damit das init Skript von ossec bei einem System Start|Stop|Restart abläuft und Ossec Startet und Stopt habe ich mal folgende Symlinks in die Runlevel auf beiden Rechnern (Server und Client) gesetzt.

Code: Select all

ln -s ../init.d/ossec /etc/rc.d/rc3.d/S9ossec
ln -s ../init.d/ossec /etc/rc.d/rc0.d/K91ossec
ln -s ../init.d/ossec /etc/rc.d/rc6.d/K91ossec


Dann das meta File angelegt:

Code: Select all

touch /opt/pakfire/db/installed/meta-ossec

Somit konnte OSSEC über die WUI unter status/Dienste an und abgeschaltet werden und das Häkchen zum de-aktivieren für den Boot ist gesetzt (Screenshoot hängt anbei). Die PID wird in der WUI leider nicht angezeigt da Ossec mehr als einen Prozess belegt.

Nach dem Start/Restart gibt ein

Code: Select all

ps aux | grep ossec

für OSSEC folgendes aus

Code: Select all

ossecm   26082  0.0  0.0   1744   496 ?        S    15:50   0:00 /var/ossec/bin/ossec-maild
root     26086  0.0  0.0   1556   436 ?        S    15:50   0:00 /var/ossec/bin/ossec-execd
ossec    26090  0.0  0.0   2660  1664 ?        S    15:50   0:01 /var/ossec/bin/ossec-analysisd
root     26094  0.0  0.0   1648   456 ?        S    15:50   0:00 /var/ossec/bin/ossec-logcollector
ossecr   26100  0.0  0.0  18244   836 ?        Sl   15:50   0:01 /var/ossec/bin/ossec-remoted
root     26106  0.4  0.0   1932  1008 ?        S    15:50   0:19 /var/ossec/bin/ossec-syscheckd
ossec    26110  0.0  0.0   1756   480 ?        S    15:50   0:00 /var/ossec/bin/ossec-monitord

Also läuft alles soweit  :) .

5)
Den Agent an den Master anbinden:
Auf dem Master wird ein Binary ausgeführt um einen Agent anzumelden mit:

Code: Select all

/var/ossec/bin/manage_agents

und dann "A" für "Add...." drücken, somit ist dann folgendes zu sehen:

Code: Select all

****************************************
* OSSEC HIDS v2.6 Agent manager.     *
* The following options are available: *
****************************************
   (A)dd an agent (A).
   (E)xtract key for an agent (E).
   (L)ist already added agents (L).
   (R)emove an agent (R).
   (Q)uit.
Choose your action: A,E,L,R or Q: a

- Adding a new agent (use '\q' to return to the main menu).
  Please provide the following:
   * A name for the new agent: Alix
   * The IP Address of the new agent: 192.168.xx.xx
   * An ID for the new agent[001]:
Agent information:
   ID:001
   Name:Alix
   IP Address:192.168.xx.xx

Confirm adding it?(y/n): y
Agent added.

Der Agent wurde auf dem Master hinzugefügt. Nun braucht es den Client Key, wieder mit

Code: Select all

/var/ossec/bin/manage_agents

wird diese mal allerdings "E" Für "Extract...." gedrückt und folgendes ist zu sehen:

Code: Select all

****************************************
* OSSEC HIDS v2.6 Agent manager.     *
* The following options are available: *
****************************************
   (A)dd an agent (A).
   (E)xtract key for an agent (E).
   (L)ist already added agents (L).
   (R)emove an agent (R).
   (Q)uit.
Choose your action: A,E,L,R or Q: e

Available agents:
   ID: 001, Name: Alix, IP: 192.168.xx.xx
Provide the ID of the agent to extract the key (or '\q' to quit): 001

Agent key information for '001' is:
MDAxIoksq5ggMTkyLjE2OC4yMjAHuSAwYmZlOWYyNKkxNjBiMzYDOGJiZWEwMjljYjhhNDY5ZThiMzuHmjGFjYjExYzZlYjBhMWYzZTk4OTl6Hzk3NGU0

** Press ENTER to return to the main menu.

Der Key ist also die

Code: Select all

MDAxIoksq5ggMTkyLjE2OC4yMjAHuSAwYmZlOWYyNKkxNjBiMzYDOGJiZWEwMjljYjhhNDY5ZThiMzuHmjGFjYjExYzZlYjBhMWYzZTk4OTl6Hzk3NGU0

Copy und Paste und zum Agent Rechner damit.

Auf dem Agent wird ebenfalls das Binary gestartet mit:

Code: Select all

/var/ossec/bin/manage_agents

Die Auswahl ist hier kleiner als beim Master hier wird dann "i" für "Import" gedrückt. Was dann so aussieht:

Code: Select all

****************************************
* OSSEC HIDS v2.6 Agent manager.     *
* The following options are available: *
****************************************
   (I)mport key from the server (I).
   (Q)uit.
Choose your action: I or Q: i

* Provide the Key generated by the server.
* The best approach is to cut and paste it.
*** OBS: Do not include spaces or new lines.

Paste it here (or '\q' to quit): MDAxIEFsaXggMTkyLjE2OC4yMjAuMSAwYmZlOWYyNDkxNjBiMzYwOGJiZWEwMjljYjhhNDY5ZThiMzM2MGFjYjExYzZlYjBhMWYzZTk4OTlhYzk3NGU0

Agent information:
   ID:001
   Name:Alix
   IP Address:192.168.xx.xx

Confirm adding it?(y/n): y
Added.
** Press ENTER to return to the main menu.



****************************************
* OSSEC HIDS v2.6 Agent manager.     *
* The following options are available: *
****************************************
   (I)mport key from the server (I).
   (Q)uit.


Beide OSSEC´s (Master und Agent) sollten einmal durchgestartet werden,

Code: Select all

/etc/init.d/ossec restart

oder über das Binary unter /var/ossec/bin/ mit einem

Code: Select all

./ossec-control restart

damit die Änderungen auch übernommen werden.

So das wars erstmal. Damit sich Master und Agent erreichen können, braucht es einen "Externen Zugang" (sofern über rot auf ihn zugegriffen wird) zum Master und bei aktivierter Ausgehender Firewall (sofern die Verbindung über rot läuft) beim Agent ein Freigabe für Port 1514 UDP.

Ein

Code: Select all

tail -f /var/ossec/logs/alerts/alerts.log

gibt dann die OSSEC Warnungen aus den IPFire Logs aus:

Beispiel:

Code: Select all

** Alert 1344164453.5224: mail  - ossec,rootcheck,
2012 Aug 05 13:00:53 ipfire-server->rootcheck
Rule: 510 (level 7) -> 'Host-based anomaly detection event (rootcheck).'
File '/usr/lib/php/Log/null.php' is owned by root and has written permissions to anyone.

** Alert 1344164453.5484: mail  - ossec,rootcheck,
2012 Aug 05 13:00:53 ipfire-server->rootcheck
Rule: 510 (level 7) -> 'Host-based anomaly detection event (rootcheck).'
File '/usr/lib/php/Log.php' is owned by root and has written permissions to anyone.

** Alert 1344167363.5739: mail  - syslog,sudo
2012 Aug 05 13:49:23 ipfire-server->/var/log/messages
Rule: 5403 (level 4) -> 'First time user executed sudo.'
User: root
Aug  5 13:49:23 ipfire-server sudo:     root : TTY=unknown ; PWD=/opt/teamspeak3 ; USER=teamspeak3 ; COMMAND=./ts3server_startscript.sh status

** Alert 1344167379.6051: mail  - ossec,
2012 Aug 05 13:49:39 ipfire-server->ossec-monitord
Rule: 502 (level 3) -> 'Ossec server started.'
ossec: Ossec started.


und da ist auch schon der Agent angemeldet  :):

Code: Select all

** Alert 1344173866.10197: mail  - ossec,
2012 Aug 05 15:37:46 (Alix) 192.168.xx.xx->ossec
Rule: 501 (level 3) -> 'New ossec agent connected.'
ossec: Agent started: 'Alix->192.168.xx.xx'.

** Alert 1344174057.10386: mail  - ossec,
2012 Aug 05 15:40:57 ipfire-server->ossec-monitord
Rule: 502 (level 3) -> 'Ossec server started.'
ossec: Ossec started.


Mit dieser Software geht über das Logmanagement hinaus noch so einiges mehr.

Die automatischen Mails funktionieren gerade noch nicht  :(

Code: Select all

2012/08/05 16:00:49 os_sendmail(1764): WARN: Mail from not accepted by server


Vielleicht kanns ja jemand mal brauchen. Erweiterungen, Verbesserungen und Erfahrungen von anderen wären toll....

Soweit erstmal

UE

EDIT: Und da kommen auch die ersten Alert Mails an. Ein Beispiel vom Squid Log

Code: Select all

OSSEC HIDS Notification.
2012 Aug 05 22:54:55

Received From: (Alix) 192.168.220.1->/var/log/squid/access.log
Rule: 35052 fired (level 10) -> "Multiple unauthorized attempts to use proxy."
Portion of the log(s):

1344200101.730    108 192.168.xx.xx TCP_DENIED/407 3716 CONNECT versioncheck.addons.mozilla.org:443 - NONE/- text/html
1344200101.730    108 192.168.xx.xx TCP_DENIED/407 3716 CONNECT versioncheck.addons.mozilla.org:443 - NONE/- text/html
1344200101.576    381 192.168.xx.xx TCP_DENIED/407 3716 CONNECT versioncheck.addons.mozilla.org:443 - NONE/- text/html
1344200101.576    381 192.168.xx.xx TCP_DENIED/407 3716 CONNECT versioncheck.addons.mozilla.org:443 - NONE/- text/html
1344200101.576    381 192.168.xx.xx TCP_DENIED/407 3716 CONNECT versioncheck.addons.mozilla.org:443 - NONE/- text/html
1344200101.576    381 192.168.xx.xx TCP_DENIED/407 3716 CONNECT versioncheck.addons.mozilla.org:443 - NONE/- text/html
1344200101.576    381 192.168.xx.xx TCP_DENIED/407 3716 CONNECT versioncheck.addons.mozilla.org:443 - NONE/- text/html
1344200101.576    381 192.168.xx.xx TCP_DENIED/407 3716 CONNECT versioncheck.addons.mozilla.org:443 - NONE/- text/html
1344200101.325    130 192.168.xx.xx TCP_DENIED/407 3656 CONNECT tools.google.com:443 - NONE/- text/html
1344200101.132    209 192.168.xx.xx TCP_DENIED/407 3700 CONNECT services.addons.mozilla.org:443 - NONE/- text/html



--END OF NOTIFICATION

Die Email Notifications liefen leider nur anfänglich und dann sporadisch ab und zu das eine Mail angekommen ist. Das liegt daran das sendmail auf OSSEC keine SMTP Authentifizierung unterstützt welche aber mittlerweile eigentlich von allen Providern vorrausgesetzt wird. <-- Also entweder eigener Mailserver oder einen eigenen SMTP Client per Skript einbinden der SMTP Auth beherrscht.

Mal schauen ob da Ssmtp, sendEMail (o.a. smtp clients) für verwendet werden können. Extra Postfix bzw. Cyrus aufesetzen geht natürlich auch ist aber wahrscheinlich mehr arbeit als OSSEC zu installieren.
... Mal weiter schauen.

EDIT: Ein paar Ergänzungen und Rechtschreibung.
Last edited by ummeegge on June 21st, 2014, 9:59 am, edited 1 time in total.
Image
Image

ummeegge
Community Developer
Community Developer
Posts: 5001
Joined: October 9th, 2010, 10:00 am

Re: OSSEC - HIDS Software mit Logmanagment und e-mail Benachrichtigung bei Warnungen

Post by ummeegge » August 5th, 2012, 4:02 pm

Ach ja hab ich noch vergessen, hier werden die Alert Levels ganz nett erklärt.

Zitat von:
cat ~/ossec-hids-2.0/doc/rules.txt

00 - Ignored - No action taken. Used to avoid false positives. These 
rules 
are scanned before all the others. They include events with no 
security relevance.


01 - None -


02 - System low priority notification - System notification or 
status messages. They have no security relevance. 


03 - Successful/Authorized events - They include successful login 
attempts, 
     firewall allow events, etc. 


04 - System low priority error - Errors related to bad configurations 
or 
unused devices/applications. They have no security relevance and 
are usually caused by default installations or software testing.

05 - User generated error - They include missed passwords, denied 
actions, etc. By itself they have no security relevance.

06 - Low relevance attack - They indicate a worm or a virus that have no affect to the system (like code red for apache servers, etc). 
They also include frequently IDS events and frequently errors.

07 - "Bad word" matching. They include words like "bad", "error", etc. 
These events are most of the time unclassified and may have 
some security relevance.

08 - First time seen - Include first time seen events. First time 
     an IDS event is fired or the first time an user logged in. 
If you just started using OSSEC HIDS these messages will 
probably be frequently. After a while they should go away. 
It also includes security relevant actions (like the starting 
of a sniffer or something like that).

09 - Error from invalid source - Include attempts to login as 
an unknown user or from an invalid source. May have security 
relevance (specially if repeated). They also include errors 
regarding the "admin" (root) account. 


10 - Multiple user generated errors - They include multiple bad 
passwords, multiple failed logins, etc. They may indicate an 
attack or may just be that a user just forgot his credencials.

11 - Integrity checking warning - They include messages regarding 
the modification of binaries or the presence of rootkits (by 
rootcheck). If you just modified your system configuration you should be fine regarding the "syscheck" messages. They 
may indicate a successful attack. Also included IDS events 
that will be ignored (high number of repetitions). 


12 - High importancy event - They include error or warning messages 
from the system, kernel, etc. They may indicate an attack against 
a specific application. 


13 - Unusual error (high importance) -  Most of the times it matches a 
common attack pattern. 


14 - High importance security event. Most of the times done with 
correlation and it indicates an attack. 


15 - Severe attack - No chances of false positives. Immediate 
attention is necessary.

== Rules Group ==
-We can specify groups for specific rules. It's used for active 
response reasons and for correlation. 

- We currently use the following groups:
- invalid_login

- authentication_success 

- authentication_failed

- connection_attempt 

- attacks

- adduser

- sshd

- ids 

- firewall

- squid 

- apache

- syslog


Mehr dazu bei:
http://www.ossec.net/en/manual.html#rules

UE
Image
Image

ummeegge
Community Developer
Community Developer
Posts: 5001
Joined: October 9th, 2010, 10:00 am

Re: OSSEC - HIDS Software mit Logmanagment und e-mail Benachrichtigung bei Warnungen

Post by ummeegge » August 7th, 2012, 10:03 am

Die active-response arbeitet per default auch ganz gut. Mal getestet mit einem SSH Login und mit mehrfacher falscher Eingabe vom Passwort was dann so aussieht:

Von /var/ossec/logs/active-responses.log

Code: Select all

Mon Aug  6 12:03:44 CEST 2012 /var/ossec/active-response/bin/firewall-drop.sh add - 192.168.20.3 1344247424.41058 5720
Mon Aug  6 12:03:44 CEST 2012 /var/ossec/active-response/bin/host-deny.sh add - 192.168.20.3 1344247424.41058 5720
Mon Aug  6 12:14:15 CEST 2012 /var/ossec/active-response/bin/firewall-drop.sh delete - 192.168.20.3 1344247424.41058 5720
Mon Aug  6 12:14:15 CEST 2012 /var/ossec/active-response/bin/host-deny.sh delete - 192.168.20.3 1344247424.41058 5720


Ein Eintrag unter /etc/hosts.deny wurde automatisch gemacht und das firewall-drop.sh von OSSEC hat die IP für ca. 11 Minuten gesperrt und dann wieder freigegeben. Man könnte meinen eine Funktion wie Guardian wenn da die email Benachrichtigung nicht wäre  :D .

Folgende Email hat OSSEC dann verschickt:

Code: Select all

OSSEC HIDS Notification.
2012 Aug 06 12:31:14

Received From: ipfire-server->/var/log/messages
Rule: 5720 fired (level 10) -> "Multiple SSHD authentication failures."
Portion of the log(s):

Aug  6 12:31:13 ipfire-server sshd[20813]: Failed password for root from 192.168.xx.xx port 49205 ssh2
Aug  6 12:31:11 ipfire-server sshd[20813]: Failed password for root from 192.168.xx.xx port 49205 ssh2
Aug  6 12:31:00 ipfire-server sshd[20759]: Failed password for root from 192.168.xx.xx port 49204 ssh2
Aug  6 12:30:58 ipfire-server sshd[20759]: Failed password for root from 192.168.xx.xx port 49204 ssh2
Aug  6 12:30:56 ipfire-server sshd[20759]: Failed password for root from 192.168.xx.xx port 49204 ssh2
Aug  6 12:30:43 ipfire-server sshd[20719]: Failed password for root from 192.168.xx.xx port 49203 ssh2
Aug  6 12:30:42 ipfire-server sshd[20719]: Failed password for root from 192.168.xx.xx port 49203 ssh2
Aug  6 12:30:41 ipfire-server sshd[20719]: Failed password for root from 192.168.xx.xx port 49203 ssh2



--END OF NOTIFICATION


So und nun mal mit Snort testen  :) ...

Kurzer Check mit Snort:

Also erstmal ganz interessant was passiert wenn mit nmap gescannt wird. Ich habe die Emergingthreats.net Community Rules in Snort mit entsprechenden Rules für ICMP geladen und mal einen intensiv Scan von 192.168.220.1 auf die 192.168.220.2 mit

Code: Select all

nmap -T4 -A -v 192.168.220.2

gemacht. Da die active response (alles noch default Einstellungen) bei OSSEC aktiviert ist, gab es erstmal eine Sperre der 192.168.220.1 für ~ 10 Minuten.

Eintrag unter /etc/hosts.deny :

Code: Select all

[root@ipfire-server /]# cat /etc/hosts.deny 
ALL : ALL
ALL:192.168.220.1


Kurzer Ausschnitt von /var/ossec/logs/firewall/firewall.log

Code: Select all

2012 Aug 13 15:11:16 ipfire-server->/var/log/messages DROP TCP 192.168.220.1:35504->192.168.220.2:80
2012 Aug 13 15:11:16 ipfire-server->/var/log/messages DROP TCP 192.168.220.1:35504->192.168.220.2:22
2012 Aug 13 15:11:16 ipfire-server->/var/log/messages DROP TCP 192.168.220.1:35504->192.168.220.2:111
2012 Aug 13 15:11:16 ipfire-server->/var/log/messages DROP TCP 192.168.220.1:35504->192.168.220.2:443
2012 Aug 13 15:11:16 ipfire-server->/var/log/messages DROP TCP 192.168.220.1:35504->192.168.220.2:21
2012 Aug 13 15:11:22 ipfire-server->/var/log/messages DROP TCP 192.168.220.1:35505->192.168.220.2:1061
2012 Aug 13 15:11:28 ipfire-server->/var/log/messages DROP TCP 192.168.220.1:35505->192.168.220.2:3517
2012 Aug 13 15:11:48 ipfire-server->/var/log/messages DROP TCP 192.168.220.1:60811->192.168.220.2:444
2012 Aug 13 15:11:50 ipfire-server->/var/log/messages DROP UDP 192.168.220.1:35610->192.168.220.2:41678
2012 Aug 13 15:11:50 ipfire-server->/var/log/messages DROP TCP 192.168.220.1:35567->192.168.220.2:444
2012 Aug 13 15:11:50 ipfire-server->/var/log/messages DROP TCP 192.168.220.1:35568->192.168.220.2:41969
2012 Aug 13 15:11:50 ipfire-server->/var/log/messages DROP TCP 192.168.220.1:35569->192.168.220.2:41969
2012 Aug 13 15:11:50 ipfire-server->/var/log/messages DROP TCP 192.168.220.1:35567->192.168.220.2:444
2012 Aug 13 15:11:50 ipfire-server->/var/log/messages DROP TCP 192.168.220.1:35569->192.168.220.2:41969
2012 Aug 13 15:11:50 ipfire-server->/var/log/messages DROP TCP 192.168.220.1:35567->192.168.220.2:444
2012 Aug 13 15:11:52 ipfire-server->/var/log/messages DROP UDP 192.168.220.1:35610->192.168.220.2:38160


Unter /var/ossec/log/active-responses.log

Code: Select all

Mon Aug 13 15:11:56 CEST 2012 /var/ossec/active-response/bin/firewall-drop.sh add - 192.168.220.1 1344863516.108690 31104
Mon Aug 13 15:11:56 CEST 2012 /var/ossec/active-response/bin/host-deny.sh add - 192.168.220.1 1344863516.108690 31104
Mon Aug 13 15:22:26 CEST 2012 /var/ossec/active-response/bin/firewall-drop.sh delete - 192.168.220.1 1344863516.108690 31104
Mon Aug 13 15:22:26 CEST 2012 /var/ossec/active-response/bin/host-deny.sh delete - 192.168.220.1 1344863516.108690 31104


O.K. so viel erstmal zum Schnellcheck von Snort und OSSEC.


EDIT: Ein ganz aufschlussreiches Video über OSSEC --> https://www.youtube.com/watch?v=lUMs1uqwRX0 geht halt 35 Minuten ist aber ganz interessant find ich.

Ein Webinterface gibt es auch --> https://www.youtube.com/watch?v=yMIpUQw ... ated&nbsp; 8)
Last edited by ummeegge on April 17th, 2014, 6:17 am, edited 1 time in total.
Image
Image

ummeegge
Community Developer
Community Developer
Posts: 5001
Joined: October 9th, 2010, 10:00 am

Re: OSSEC - HIDS Software mit Logmanagment und e-mail Benachrichtigung bei Warnungen

Post by ummeegge » August 13th, 2012, 2:33 pm

Dokumentiere mal noch ein bisschen weiter für mich  ;D .

Dachte mir mal das ich mir die OSSEC WUI auch mal anschauen sollte, deswegen geht´s mal weiter mit -->

Das OSSEC Webinterface in IPFire integrieren:

1) WUI downloaden und für Apache fit machen
unter http://www.ossec.net/?page_id=19 gibts den Download, checksum unter  http://www.ossec.net/files/ossec-wui-0.3.tar.gz

EDIT:
Es gibt mittlerweile eine neue Version vom OSSEC WUI welche die meisten unten aufgeführten Bugs gefixt hat. Hier --> http://forum.ipfire.org//viewtopic.php?p=65954#p65954 steht mehr dazu.

Also in das Verzeichnis navigieren wo Apache Zugriff hat:

Code: Select all

cd /srv/web


WUI runterladen:

Code: Select all

wget http://www.ossec.net/files/ossec-wui-0.3.tar.gz


Checksum vergleichen mit:

Code: Select all

md5sum ossec-wui-0.3.tar.gz


Entpacken:

Code: Select all

tar xvfz ossec-wui-0.3.tar.gz 


Das Verzeichnis habe ich der einfachheitshalber mal von ossec-wui-0.3 auf ossec umbenannt:

Code: Select all

mv ossec-wui-0.3 ossec 


Dann OSSEC Setup ausgeführen:

Code: Select all

cd /srv/web/ossec
./setup.sh

Benutzername und 2x Password eingeben.

Ermitteln welcher User für Apache zuständig ist:

Code: Select all

cat /etc/httpd/conf/uid.conf

Ausgabe war:

Code: Select all

User nobody
Group nobody


User für Ossec in /etc/group eintragen:

Code: Select all

nano /etc/group

Was dann so aussieht:

Code: Select all

ossec:x:1001:nobody


Zugriffsrechte für das ossec-wui Verzeichnis anpassen:

Code: Select all

cd /srv/web
chown nobody.nobody -R ossec


Dem /tmp Verzeichnis in ossec-wui-0.3 folgende Zugriffsrechte gegeben:

Code: Select all

chmod 750 /srv/web/ossec/tmp


2) vhost für ossec erstellen:

Code: Select all

cd /etc/httpd/conf/vhosts.d


Eine config erstellen:

Code: Select all

touch ossec.conf


Mit folgendem Inhalt füllen:

Code: Select all

Listen 9955
<VirtualHost *:9955>
    SSLEngine on
    SSLProtocol all -SSLv2
    SSLCipherSuite ALL:!ADH:!EXPORT56:!eNULL:!SSLv2:!RC4+RSA:+HIGH:+MEDIUM
    SSLCertificateFile /etc/httpd/server.crt
    SSLCertificateKeyFile /etc/httpd/server.key

        DocumentRoot "/srv/web/ossec"
   Include /etc/httpd/conf/conf.d/php*.conf
        ErrorLog "/var/log/httpd/ossec-wui-error.log"
        CustomLog "/var/log/httpd/ossec-wui-access.log" combined

<Directory "/srv/web/ossec">
   Options +FollowSymlinks
        AllowOverride All
        Order Allow,Deny
        Allow from 192.168.20.0/24
</Directory>

    <Location />

        Order allow,deny

        Allow from 192.168.20.0/24

        Satisfy All

    </Location>

</VirtualHost>

Habe jetzt mal den Port 9955 genommen und Abfragen nur aus dem grünen Netz (bsp. 192.168.20.0/24) zugelassen "Allow from ....." Ausserdem hab ich mal unter /var/log/httpd/ ein access_log und error _log für OSSEC angelegt, wo die WUI reinloggen kann.

Code: Select all

touch /var/log/httpd/ossec-wui-error.log
touch /var/log/httpd/ossec-wui-access.log


und logrotate für die beiden neuen Logs angelegt:

Code: Select all

nano /etc/logrotate.conf

und mit folgendem Inhalt gefüllt:

Code: Select all

# OSSEC access log
/var/log/httpd/ossec-wui-access.log {
    weekly
    rotate 4
    copytruncate
    compress
    notifempty
    missingok
}

# OSSEC error log
/var/log/httpd/ossec-wui-error.log {
    weekly
    rotate 4
    copytruncate
    compress
    notifempty
    missingok
}


Apache durchgestartet:

Code: Select all

/etc/init.d/apache restart


3) OSSEC in das sidemenü in die IPFire WUI integrieren:

Es gibt es ein nettes HowTo im Wiki wie man das sidemenü erweitern kann, welches hier --> http://wiki.ipfire.org/de/addons/menuerweiterung/start zu finden ist.

Nach getaner Wiki Vorarbeit wurde folgendes unter /srv/web/ipfire/cgi-bin/external.cgi hinzugfügt:

Code: Select all

#############################################################################
#Hier weitere Eintr?ge erg?nzen!
#############################################################################
    case "ossec" {

   print "Content-type: text/html\n\n";

   print <<EOF
   <head>
   <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/>
   <meta http-equiv="refresh" content="0; URL=http://{IP-des_hosts}:9955">
   </head>
EOF
            ;
       }
}


und unter /var/ipfire/menu.d/EX-external.menu wurde folgendes Ergänzt:

Code: Select all

  $subipfire->{'ossec'} = {'caption' => Ossec,
           'uri' => '/cgi-bin/external.cgi?ossec',
           'title' => Ossec,
           'enabled' => 1,
           };


Dann über das Sidemenü im Bereich "ipfire" der IPFire-WUI die neue OSSEC-WUI aufgerufen und erstmal gefreut.

So geht das erstmal ganz gut aber vielleicht hat da noch jemand Tipps Tricks oder weitere Ideen  :) ?

Ausserdem gibt es noch ein paar false positives die man erstmal für das spezifische System ausbügeln muss und die Email Alerts konnte ich bis jetzt nur zuverlässig mit eigenem Mailserver handhaben.

Screenshoots hängen anbei:

UE

EDIT: Logrotate für die OSSEC Logs ergänzt
EDIT_2: Die OSSEC Wui ist ziemlich buggy und wird scheinbar auch durch die Community nicht gepflegt. Es gibt jede Menge PHP errors welche die Funktionalität der Seite scheinbar erstmal nicht beeinflusst aber bei einem tieferen Blick einige Fehler aufweist. Das Log hatte nach 2 Tage ausprobieren dann doch gut 50 MB und wird somit dann, trotz logrotate zum echten Speicherfresser.
Eine Seite mit ein paar wichtigen Hinweisen konnte ich hier finden --> http://industrialwebapps-com.blogspot.d ... 20tutorial
EDIT_3: Die neue OSSEC WUI-0.8 hat das eigentlich alle genannten Fehler gefixt, hier --> http://forum.ipfire.org//viewtopic.php?p=65954#p65954 nochmal ein paar weitere Infos zu.

Hier mal ein paar Fehler.

1. Fehler
Eine Ergänzung gab es bei IPFire in der /etc/php.ini , aber erstmal kurz der Fehler:
Dies muss auch mit der neuen Version 0.8 gemacht werden

Code: Select all

[Tue Aug 14 10:15:04 2012] [error] [client 192.168.20.3] PHP Warning:  date() [<a href='function.date'>function.date</a>]: It is not safe to rely on the system's timezone settings. You are *required* to use the date.timezone setting or the date_default_timezone_set() function. In case you used any of those methods and you are still getting this warning, you most likely misspelled the timezone identifier. We selected 'Europe/Berlin' for 'CEST/2.0/DST' instead in /srv/web/ossec-wui-0.3/site/search.php on line 276, referer: http://192.168.20.3:9955/


gefixt wurde das unter /etc/php.ini

Code: Select all

; Defines the default timezone used by the date functions
date.timezone = "Europe/Berlin"

in dem "Europe/Berlin" eingetragen wurde.

2. Fehler

Code: Select all

[Mon Aug 13 11:59:24 2012] [error] [client 192.168.123.1] PHP Deprecated:  Function ereg_replace() is deprecated in /srv/web/ossec-wui-0.3/lib/os_lib_alerts.php on line 361

und das unter line 329, 330, 362, 365, 366 .
Hierbei wurde

Code: Select all

ereg_replace(">",

durch

Code: Select all

str_replace("/>/g",

ersetzt und das unter ossec-wui-0.3/lib/os_lib_alerts.php und ossec-wui-0.3/lib/os_lib_syscheck.php

3. Fehler

Code: Select all

[Mon Aug 13 11:59:24 2012] [error] [client 192.168.123.1] PHP Warning:  fseek() expects parameter 3 to be long, string given in /srv/web/ossec-wui-0.3/lib/os_lib_alerts.php on line 842

Konnte ebenfalls unter ossec-wui-0.3/lib/os_lib_alerts.php behoben werden in dem

Code: Select all

fseek($fp, $seek_place, "SEEK_SET");

zu

Code: Select all

fseek($fp, $seek_place, SEEK_SET);

(also Anführungsstriche weg) geändert wurde.

Patch für obige Fehler (ausser Nr.1) ist in der Anlage.

EDIT 3: Die Search Funktion der WUI benötigt auch noch einige Fixes. Fehler ausgabe hierfür waren:

[Wed Aug 15 09:04:52 2012] [error] [client 192.168.123.1] PHP Notice:  Trying to get property of non-object in /srv/web/ossec-wui-0.3/lib/Ossec/AlertList.php on line 105, referer: http://192.168.123.1:9955/index.php?f=s
[Wed Aug 15 09:04:54 2012] [error] [client 192.168.123.1] PHP Notice:  Trying to get property of non-object in /srv/web/ossec-wui-0.3/lib/Ossec/AlertList.php on line 107, referer: http://192.168.123.1:9955/index.php?f=s
Last edited by ummeegge on April 17th, 2014, 6:24 am, edited 1 time in total.
Image
Image

ummeegge
Community Developer
Community Developer
Posts: 5001
Joined: October 9th, 2010, 10:00 am

Re: OSSEC - HIDS Software mit Logmanagment und e-mail Benachrichtigung bei Warnungen

Post by ummeegge » March 21st, 2014, 6:54 pm

Bei der neue Version 2.7.1 kann ebenfalls so vorgegangen werden.
Für den Server:

Code: Select all

cd /src
make all
make build
cd ../..
echo "USER_BINARYINSTALL=\"y\"" >> ossec-hids*/etc/preloaded-vars.conf
tar -cvf ossec-binary-2.7.1_server.tar ossec-hids*

und für den Agent:

Code: Select all

cd src/
make setagent
make all
make build
cd ../..
echo "USER_BINARYINSTALL=\"y\"" >> ossec-hids*/etc/preloaded-vars.conf
tar -cvf ossec-binary-2.7.1_agent.tar ossec-hids*


Infos zur neuen Version findet man u.a. hier --> http://www.ossec.net/?page_id=19 .

Das WUI ist neu in Version 0.8 erschienen --> https://github.com/ossec/ossec-wui und hat so einige oben genannte Bugs gefixt. Der php.ini Eintrag für die Zeitzone musste noch gemacht werden, aber bis jetzt gab es im error Log noch keine weiteren Fehler.

Die Installation läuft auch ein wenig angenehmer:

OSSEC WUI wurde wie oben nach /srv/web kopiert, umbenannt etc.

Code: Select all

mv ossec-wui-0.8/ ossec-wui
cd /ossec-wui
./setup.sh
Setting up ossec ui...

Username: ossec
New password:
Re-type new password:
Adding password for user ossec
Enter your web server user name (e.g. apache, www, nobody, www-data, ...)
nobody
Enter your OSSEC install directory path (e.g. /var/ossec)
/var/ossec
You must restart your web server after this setup is done.

Setup completed successfuly.


Eintrag unter groups hat scheinbar der Installer gemacht.

Code: Select all

ossec:x:1001:nobody


Mal weiterschauen wie sich die Ossec Logs in die IPFire WUI integrieren lassen.

EDIT: Erstellung des Agent Binaries gefixt.
Last edited by ummeegge on April 22nd, 2014, 5:26 am, edited 1 time in total.
Image
Image

Mr. AtiX
Posts: 47
Joined: October 23rd, 2012, 8:39 pm

Re: OSSEC - HIDS Software mit Logmanagment und e-mail Benachrichtigung bei Warnungen

Post by Mr. AtiX » April 16th, 2014, 8:52 pm

Ein sehr interessantes Thema. Vielen Dank für die ausführliche Doku.

Werde es schnellstmöglich durcharbeiten.
--
Adios Señorita
Mr. AtiX

ummeegge
Community Developer
Community Developer
Posts: 5001
Joined: October 9th, 2010, 10:00 am

Re: OSSEC - HIDS mit Logmanagment und e-mail Benachrichtigung bei Warnungen

Post by ummeegge » April 17th, 2014, 3:55 pm

Ja gerne freut mich das du was mit anfangen kannst.
Du brauchst ein wenig Einarbeitungszeit aber wenn es läuft, läuft es  :D .

Auch interresant: Ein RaspberryPI als OSSEC Master und kleinem Mailserver in Kombi und der Fire stellt dann den Agent, generell können die Logs von OS X, Windows, Linux, ? Clients an einem zentralen Ort verwaltet werden um sie weiterführend zu verarbeiten.

Die .xml Files sind auch echt ganz praktisch zum Konfigurieren/Erweitern.

Grüsse

UE
Last edited by ummeegge on June 8th, 2014, 6:57 pm, edited 1 time in total.
Image
Image

5p9
Mentor
Mentor
Posts: 1865
Joined: May 1st, 2011, 3:27 pm

Re: OSSEC - HIDS mit Logmanagment und e-mail Benachrichtigung bei Warnungen

Post by 5p9 » April 17th, 2014, 5:30 pm

Hi ummeegge,

jo danke für die Anleitung. Da ich eh gerade ein RPi habe und meinen eigenen MailServer* dem entsprechenden "SchnickSchnack" dazu, würde dies als Zusatz sicherlich gut hinein passen :D

*)
Mailserver: Postfix
IMAP: Dovecot
Greylisting: Postgrey
Webmail: Roundcube

Mal sehen was sich da so machen lässt. Evtl. könnte man das in das Wiki als Zusatz-Bonus-Spezial-Function einfließen lassen ;)

VG, 5p9
Mail Gateway: mail proxy

Image

Image

ummeegge
Community Developer
Community Developer
Posts: 5001
Joined: October 9th, 2010, 10:00 am

Re: OSSEC - HIDS mit Logmanagment und e-mail Benachrichtigung bei Warnungen

Post by ummeegge » April 21st, 2014, 4:32 pm

Hallo 5p9,
ja sauber dann kannst du ja mal schauen wie das hinhaut.
Zum RaspPI:
Ich habe da eine Gesamtlösung (etwas reduziert) laufen die sich iRedmail nennt.

  • Postfix
  • Dovecot
  • Policyd (cluebringer)
  • OpenLDAP
  • ClamAV (deaktiviert)
  • Amavisd (deaktiviert)
  • Spamassassin
  • Awstats
  • Fail2ban (deaktiviert)
  • Admin Panels (PHP, Apache,etc.)
soweit braucht der Mailserver derzeit zwischen 200-300 MB RAM. Eine neue Wheezy Installation liegt bei ~ 124 MB, OSSEC braucht mit maild, execd, analysisd, logcollector, syscheckd und monitord um die ~ 20 MB RAM, also alles hart an der Grenze beim B Model ;) .

OSSEC kannst du auf dem PI auch kompilieren, musst nur die Sourcen laden und die install.sh ausführen, build Prozess hat bei mir um die 8 Min. gedauert.
Bei der ossec.conf auf dem PI hab ich den "email_from" Eintrag rausgenommen und als smtp Server die 127.0.0.1 eingetragen, somit lässt er sich erstmal scharf schalten.

Code: Select all

<ossec_config>
  <global>
    <email_notification>yes</email_notification>
    <email_to>ossec@pi.home</email_to>
    <smtp_server>127.0.0.1</smtp_server>
  </global>

allerdings rasseln da dann am Anfang auch ordentlich Mails rein, du kannst aber über die ossec.conf auch den Alert Level für die Mails granulieren also ab wann Emails getriggert werden --> http://ossec-docs.readthedocs.org/en/la ... lerts.html .

Ein Wiki lässt sich zu dem Thema sicher erstellen, allerdings muss da nochmal nachgedacht werden wie man OSSEC dann anbietet.

Grüsse und noch einen schönen restlichen Ostermontag noch.

UE

EDIT: Hab schon eine kleinere Liste mit False Positives angefangen, vielleicht lässt sich da ja nach und nach ein IPFire Template erstellen.
Last edited by ummeegge on April 22nd, 2014, 5:39 am, edited 1 time in total.
Image
Image

5p9
Mentor
Mentor
Posts: 1865
Joined: May 1st, 2011, 3:27 pm

Re: OSSEC - HIDS mit Logmanagment und e-mail Benachrichtigung bei Warnungen

Post by 5p9 » April 22nd, 2014, 5:23 am

Hi,

ja das mit der Ressourcenknappheit ist mir auch schon in den Kopf gekommen, jedoch hätte ich einfach Amavisd & Co. wie im Wiki (http://wiki.ipfire.org/de/optimization/mailproxy/start) über IPFire als Proxy laufen lassen, somit würde ich mir das an dieser Stelle ersparen können und hätte noch etwas mehr Power für den RPi-Mailserver zur Hand ;)

Mal sehen wies läuft, werde berichten.

VG, 5p9
Mail Gateway: mail proxy

Image

Image

ummeegge
Community Developer
Community Developer
Posts: 5001
Joined: October 9th, 2010, 10:00 am

Re: OSSEC - HIDS mit active response, Logmanagment und e-mail Benachrichtigung

Post by ummeegge » May 11th, 2014, 6:47 am

Hallo 5p9,
habe hier --> http://forum.ipfire.org//viewtopic.php?p=67992#p67992 gesehen das du Probleme mit Dovecot hast, wenn du Konfigs brauchst schreibs mir kann dir dann per PM was schicken.

Grüsse

UE
Image
Image

ummeegge
Community Developer
Community Developer
Posts: 5001
Joined: October 9th, 2010, 10:00 am

Re: OSSEC - HIDS mit active response, Logmanagment und e-mail Benachrichtigung

Post by ummeegge » June 21st, 2014, 1:04 pm

Hallo zusammen,
es gibt ein Update bei Ossec auf die Version 2.8 mit einigen Fixes welche hier --> http://www.ossec.net/files/ossec-hids-2 ... e-note.txt zu finden sind.

Habe die neue Version mal auf dem Fire kompiliert und zwei Binaries erstellt welche bei Interesse hier --> http://people.ipfire.org/~ummeegge/Ossec_for_IPFire/ zu finden sind.

Bei schon installierten Versionen können obige Binaries auch zum Updaten genutzt werden, was ca. so aussieht:

Code: Select all

[root@ipfire-server ossec-hids-2.8]# ./install.sh 

  ** Para instalação em português, escolha [br].
  ** 要使用中文进行安装, 请选择 [cn].
  ** Fur eine deutsche Installation wohlen Sie [de].
  ** Για εγκατάσταση στα Ελληνικά, επιλέξτε [el].
  ** For installation in English, choose [en].
  ** Para instalar en Español , eliga [es].
  ** Pour une installation en français, choisissez [fr]
  ** A Magyar nyelvű telepítéshez válassza [hu].
  ** Per l'installazione in Italiano, scegli [it].
  ** 日本語でインストールします.選択して下さい.[jp].
  ** Voor installatie in het Nederlands, kies [nl].
  ** Aby instalować w języku Polskim, wybierz [pl].
  ** Для инструкций по установке на русском ,введите [ru].
  ** Za instalaciju na srpskom, izaberi [sr].
  ** Türkçe kurulum için seçin .
  (en/br/cn/de/el/es/fr/hu/it/jp/nl/pl/ru/sr/tr) [en]: de


 OSSEC HIDS v2.8 Installations Script - http://www.ossec.net
 
 Um OSSEC HIDS zu installieren mu? auf Ihrem System ein C-Compiler
 installiert sein. Bei Fragen, Anregungen oder sonstigen Kommentaren
 senden Sie eine E-Mail an dcid@ossec.net (or daniel.cid@gmail.com).
 
  - System: Linux ipfire-server 3.10.43-ipfire-pae
  - User: root
  - Host: ipfire-server


  -- Drücken Sie eine Taste zum fortfahren oder Ctrl-C zum abbrechen --


 - OSSEC ist bereits installiert. M?chten Sie es updaten? (j/n): j


2- Die Installation wird vorbereitet.


    - Die Installation wird kopiert nach  /var/ossec .

5- Installiere das System
 - make wird ausgef?hrt
Killing ossec-logcollector ..
Killing ossec-syscheckd ..
Killing ossec-agentd ..
Killing ossec-execd ..
OSSEC HIDS v2.7.1 Stopped
Starting OSSEC HIDS v2.8 (by Trend Micro Inc.)...
Started ossec-execd...
2014/06/21 12:20:33 ossec-agentd: INFO: Using notify time: 600 and max time to reconnect: 1800
Started ossec-agentd...
Started ossec-logcollector...
Started ossec-syscheckd...
Completed.

 - Konfguration erfolgreich durchgef?hrt .

 - Um OSSEC HIDS zu starten:
      /var/ossec/bin/ossec-control start

 - Um OSSEC HIDS zu stoppen:
      /var/ossec/bin/ossec-control stop

 - Die Konfiguration kann angesehen oder ver?ndert werden unter:  /var/ossec/etc/ossec.conf


    Danke das Sie OSSEC HIDS benutzen.
    Bei Fragen, Anregungen oder wenn Sie einen Fehler gefunden
    haben, k?nnen Sie die Entwickler per E-Mail contact@ossec.net
    oder ?ber die Mailingliste unter ossec-list@ossec.net erreichen
    ( http://www.ossec.net/en/mailing_lists.html ).

    Weitere Informtionen finden Sie unter http://www.ossec.net/hids/

    ---  Dr?cken Sie eine Taste um fortzufahren  ---
   

 - Update durchgef?hrt.


Update lief problemlos durch und schaut bis jetzt gut aus soweit.

Grüsse,

UE
Image
Image

ummeegge
Community Developer
Community Developer
Posts: 5001
Joined: October 9th, 2010, 10:00 am

Re: OSSEC - HIDS mit active response, Logmanagment und e-mail Benachrichtigung

Post by ummeegge » September 19th, 2014, 5:17 pm

Die 2.8.1 ist draussen mit einem Fix für CVE-2014-5284 --> https://github.com/ossec/ossec-hids/releases/tag/2.8.1 und auch schon als IPFire Binary hochgeladen --> http://people.ipfire.org/~ummeegge/Ossec_for_IPFire/ .
Installation und Update wie oben.

UE
Image
Image

ummeegge
Community Developer
Community Developer
Posts: 5001
Joined: October 9th, 2010, 10:00 am

Re: OSSEC - HIDS mit active response, Logmanagment und e-mail Benachrichtigung

Post by ummeegge » February 7th, 2015, 11:32 am

Hi all,
here is now a in- and uninstaller for OSSEC on IPFire with the possibility to install an agent or a server.

Some points to consider:
- Even if the integrated OSSEC installer provides hybrid and local installation, you should only use agent or server otherwise you will get an installation error.
- Modified OSSEC installer to a fix path which is /var/ossec, this couldn´t be changed during installation and it shouldn´t be changed with this binary installer otherwise you get an

Code: Select all

ERROR: Unable to chroot to directory: '/var/ossec'.

- The binaries was build with hints from OSSEC docu --> http://ossec-docs.readthedocs.org/en/la ... inary.html .
- Packages will be downloaded (a SHA256 sum check is integrated) if they aren´t localy presant.
- Symlinks and init script will be set but won´t be startet during installation but you can do this with the configuration menu from this installerscript.

For info if you want to start it manually use,

Code: Select all

/etc/init.d/ossec start

or even if you navigate into /var/ossec/bin/ and execute

Code: Select all

./ossec-control start

after you have configured it to your needs.
You can also start and stop (also for boot) OSSEC over the WUI under status --> services.

- Users will be set under /etc/passwd and /etc/group (uninstaller delets them also).
- Reduced installer and uninstaller logs will be produced under /tmp.
- You should make a minimal configuration before you start OSSEC, configs are located under /var/ossec/etc/ossec.conf
- Added minimal configuration to installerscript for server and agent, the following options are available:
Server:
- Add an agent.
- Extract key for an agent .
- List already added agents.
- Remove an agent.
- Quit.
Agent:
- Import key from the server.
- Quit.
which should be enough for a first try/test.

Please use only testing and no productiv systems for this
Installerscript:

Code: Select all

#!/bin/bash -

#
# Installerscript for OSSEC on IPFire.
# This installer includes in- or uninstallation for an OSSEC agent or master.
# The OSSEC packages was build by documentation instructions -->
# http://ossec-docs.readthedocs.org/en/latest/manual/installation/installation-binary.html
# but with modification in install.sh for the install directory which is fixed to /var/ossec .
#
# ummeegge 04.04.2017   ummeegge[at]ipfire.org
#################################################################################################
# Installer includes also a minimal configuration option for server and agent.
#

# Packages
VER="2.8.3";
AGENTA="ossec-binary-${VER}_agent_32bit.tgz";
SERVERA="ossec-binary-${VER}_server_32bit.tgz";
AGENTB="ossec-binary-${VER}_agent_64bit.tgz";
SERVERB="ossec-binary-${VER}_server_64bit.tgz";
INSTDIR="/tmp/ossec-hids-${VER}*";

# Download URL
URL="http://people.ipfire.org/~ummeegge/Ossec_for_IPFire/";

# SHA256 sums
SERVERSUMA="67030a6901d3089c8b674d80360be9d023f9be01711c6b0e0142bad81290fe37";
AGENTSUMA="102c5313db060f5ffdb649913e8c2fe020dd946a9edca94457ff5d9052836a87";
SERVERSUMB="92df72f9076b64033a9ab6055ace9167680c106c534b704eb566b13cc3a38f79";
AGENTSUMB="7a2296902f034e26df223983f4fe8763be538340896c4bf283c94e1272859a12";

# Platform check
TYPE=$(uname -m | tail -c 3);



# Check for existing symlinks delete them if presant and create new one
symlink_funct() {
os=$(find /etc/rc.d/rc*.d -name "*ossec");
    if [ -e "${os}" ]; then
        rm -rfv "${os}";
    fi
    ln -s ../init.d/ossec /etc/rc.d/rc3.d/S70ossec
    ln -s ../init.d/ossec /etc/rc.d/rc0.d/K91ossec
    ln -s ../init.d/ossec /etc/rc.d/rc6.d/K91ossec
}

# Installer Menu
while true
do

    # Choose installation
    clear;
    echo "+------------------------------------------------------------------------------+          ";
    echo "|                   Welcome to OSSEC on IPFire installation                    |          ";
    echo "| This script includes an in- and unstaller of OSSECs server, agent and local  |          ";
    echo "+------------------------------------------------------------------------------+          ";
    echo;
    echo -e "    If you want to install OSSEC server (or local) press   \033[1;36m's'\033[0m and [ENTER] ";
    echo -e "    If you want to install OSSEC agent press               \033[1;36m'a'\033[0m and [ENTER] ";
    echo -e "    If you want to configure OSSEC press                   \033[1;36m'c'\033[0m and [ENTER] ";
    echo -e "    If you want to uninstall OSSEC press                   \033[1;36m'u'\033[0m and [ENTER] ";
    echo;
    echo    "+------------------------------------------------------------------------------+";
    echo -e "          If you want to quit this installation press \033[1;36m'q'\033[0m and [ENTER]  ";
    echo    "+------------------------------------------------------------------------------+";
    echo;
    read choice
    clear;

        # Install Server
        case $choice in
            s*|S*)
                # Check for 64 bit installation
                if [[ ${TYPE} = "64" ]]; then
                    clear;
                    read -p "To install the OSSEC server now press [ENTER] , to quit use [CTRL-c]... ";
                    cd /tmp || exit 1;
                    # Check if package is already presant otherwise download it
                    if [[ ! -e "${SERVERB}" ]]; then
                        echo;
                        curl -O ${URL}/${SERVERB};
                    fi
                    # Check SHA256 sum
                    CHECK=$(sha256sum ${SERVERB} | awk '{print $1}');
                    if [[ "${CHECK}" = "${SERVERSUMB}" ]]; then
                        echo;
                        echo -e "SHA2 sum should be \033[1;32m${SERVERSUMB}\033[0m";
                        echo -e "SHA2 sum is        \033[1;32m${CHECK}\033[0m and is correct… ";
                        echo;
                        echo "will go to further processing :-) ...";
                        echo;
                        sleep 3;
                    else
                        echo;
                        echo -e "SHA2 sum should be \033[1;32m${SERVERSUMB}\033[0m";
                        echo -e "SHA2 sum is        \033[1;32m${CHECK}\033[0m and is not correct… ";
                        echo;
                        echo -e "\033[1;31mShit happens :-( the SHA2 sum is incorrect, please report this here\033[0m";
                        echo "--> https://forum.ipfire.org/viewtopic.php?f=4&t=4924";
                        echo;
                        exit 1;
                    fi
                    # Unpack and install package
                    tar xvfz ${SERVERB};
                    cd ${INSTDIR};
                    echo;
                    echo -e "\033[1;32mChange now to original OSSEC installer... \033[0m ";
                    sleep 3;
                    ./install.sh 2>&1 | tee /tmp/ossec_installer.log;
                    symlink_funct;
                    touch /opt/pakfire/db/installed/meta-ossec;
                    # CleanUP
                    rm -rf \
                    /tmp/ossec-hids-${VER} \
                    echo;
                    clear;
                    echo "Please don´t forget to integrate your agent(s) into your server environment if you do not use the local version... ";
                    echo;
                    echo "To start OSSEC use /etc/init.d/ossec start ";
                    echo;
                    echo "Or use OSSECs internal bin/ with a /var/ossec/bin/ossec-control start ";
                    echo;
                    read -p "The script provides also minimum configuration in the menu. Press [ENTER] to proceed further... ";
                elif [[ ${TYPE} = "86" ]]; then
                    # 32 bit installation
                    clear;
                    read -p "To install the OSSEC server now press [ENTER] , to quit use [CTRL-c]... ";
                    cd /tmp || exit 1;
                    # Check if package is already presant otherwise download it
                    if [[ ! -e "${SERVERA}" ]]; then
                        echo;
                        curl -O ${URL}/${SERVERA};
                    fi
                    # Check SHA256 sum
                    CHECK=$(sha256sum ${SERVERA} | awk '{print $1}');
                    if [[ "${CHECK}" = "${SERVERSUMA}" ]]; then
                        echo;
                        echo -e "SHA2 sum should be \033[1;32m${SERVERSUMA}\033[0m";
                        echo -e "SHA2 sum is        \033[1;32m${CHECK}\033[0m and is correct… ";
                        echo;
                        echo "will go to further processing :-) ...";
                        echo;
                        sleep 3;
                    else
                        echo;
                        echo -e "SHA2 sum should be \033[1;32m${SERVERSUMA}\033[0m";
                        echo -e "SHA2 sum is        \033[1;32m${CHECK}\033[0m and is not correct… ";
                        echo;
                        echo -e "\033[1;31mShit happens :-( the SHA2 sum is incorrect, please report this here\033[0m";
                        echo "--> https://forum.ipfire.org/viewtopic.php?f=4&t=4924";
                        echo;
                        exit 1;
                    fi
                    # Unpack and install package
                    tar xvfz ${SERVERA};
                    cd ${INSTDIR};
                    echo;
                    echo -e "\033[1;32mChange now to original OSSEC installer... \033[0m ";
                    sleep 3;
                    ./install.sh 2>&1 | tee /tmp/ossec_installer.log;
                    symlink_funct;
                    touch /opt/pakfire/db/installed/meta-ossec;
                    # CleanUP
                    rm -rf \
                    /tmp/ossec-hids-${VER} \
                    echo;
                    clear;
                    echo "Please don´t forget to integrate your agent(s) into your server environment if you do not use the local version... ";
                    echo;
                    echo "To start OSSEC use /etc/init.d/ossec start ";
                    echo;
                    echo "Or use OSSECs internal bin/ with a /var/ossec/bin/ossec-control start ";
                    echo;
                    read -p "The script provides also minimum configuration in the menu. Press [ENTER] to proceed further... ";
                else
                    echo;
                    echo "Sorry this platform is currently not supported, need to quit... ";
                    echo;
                fi
                ;;
   
            a*|A*)
                # Check for 64 bit installation
                if [[ ${TYPE} = "64" ]]; then
                    clear;
                    read -p "To install the OSSEC agent now press [ENTER] , to quit use [CTRL-c]... ";
                    cd /tmp;
                    # Check if package is already presant
                    if [[ ! -e "${AGENTB}" ]]; then
                        echo;
                        curl -O ${URL}/${AGENTB};
                    fi
                    # Check SHA256 sum
                    CHECK=$(sha256sum "${AGENTB}" | awk '{print $1}');
                    if [[ "${CHECK}" = "${AGENTSUMB}" ]]; then
                        echo;
                        echo -e "SHA2 sum should be \033[1;32m${AGENTSUMB}\033[0m";
                        echo -e "SHA2 sum is        \033[1;32m${CHECK}\033[0m and is correct… ";
                        echo;
                        echo "will go to further processing :-) ...";
                        echo;
                        sleep 3;
                    else
                        echo;
                        echo -e "SHA2 sum should be \033[1;32m${AGENTSUMB}\033[0m ";
                        echo -e "SHA2 sum is        \033[1;32m${CHECK}\033[0m and is not correct… ";
                        echo;
                        echo -e "\033[1;31mShit happens the SHA2 sum is incorrect, please report this here\033[0m";
                        echo "--> https://forum.ipfire.org/viewtopic.php?f=4&t=4924";
                        echo;
                        exit 1;
                    fi
                    # Unpack and install package
                    tar xvfz ${AGENTB};
                    cd ${INSTDIR};
                    echo;
                    echo -e "\033[1;32mChange now to original OSSEC installer... \033[0m";
                    sleep 3;
                    ./install.sh 2>&1 | tee /tmp/installer.log;
                    symlink_funct;
                    touch /opt/pakfire/db/installed/meta-ossec;
                    # CleanUP
                    rm -rf \
                    /tmp/ossec-hids-${VER} \
                    echo;
                    clear;
                    echo "Please don´t forget to configure your agent to your needs... ";
                    echo;
                    echo "To start OSSEC use /etc/init.d/ossec start ";
                    echo;
                    echo "Or use OSSECs internal bin/ with a /var/ossec/bin/ossec-control start ";
                    echo;
                    read -p "The script provides also minimum configuration in the menu. Press [ENTER] to proceed further... ";
                elif [[ ${TYPE} = "86" ]]; then
                    clear;
                    read -p "To install the OSSEC agent now press [ENTER] , to quit use [CTRL-c]... ";
                    cd /tmp;
                    # Check if package is already presant
                    if [[ ! -e "${AGENTA}" ]]; then
                        echo;
                        curl -O ${URL}/${AGENTA};
                    fi
                    # Check SHA256 sum
                    CHECK=$(sha256sum "${AGENTA}" | awk '{print $1}');
                    if [[ "${CHECK}" = "${AGENTSUMA}" ]]; then
                        echo;
                        echo -e "SHA2 sum should be \033[1;32m${AGENTSUMA}\033[0m";
                        echo -e "SHA2 sum is        \033[1;32m${CHECK}\033[0m and is correct… ";
                        echo;
                        echo "will go to further processing :-) ...";
                        echo;
                        sleep 3;
                    else
                        echo;
                        echo -e "SHA2 sum should be \033[1;32m${AGENTSUMA}\033[0m ";
                        echo -e "SHA2 sum is        \033[1;32m${CHECK}\033[0m and is not correct… ";
                        echo;
                        echo -e "\033[1;31mShit happens the SHA2 sum is incorrect, please report this here\033[0m";
                        echo "--> https://forum.ipfire.org/viewtopic.php?f=4&t=4924";
                        echo;
                        exit 1;
                    fi
                    # Unpack and install package
                    tar xvfz ${AGENTA};
                    cd ${INSTDIR};
                    echo;
                    echo -e "\033[1;32mChange now to original OSSEC installer... \033[0m";
                    sleep 3;
                    ./install.sh 2>&1 | tee /tmp/installer.log;
                    symlink_funct;
                    touch /opt/pakfire/db/installed/meta-ossec;
                    # CleanUP
                    rm -rf \
                    /tmp/ossec-hids-${VER} \
                    echo;
                    clear;
                    echo "Please don´t forget to configure your agent to your needs... ";
                    echo;
                    echo "To start OSSEC use /etc/init.d/ossec start ";
                    echo;
                    echo "Or use OSSECs internal bin/ with a /var/ossec/bin/ossec-control start ";
                    echo;
                    read -p "The script provides also minimum configuration in the menu. Press [ENTER] to proceed further... ";
                else
                    echo;
                    echo "Sorry this platform is currently not supported, need to quit... ";
                    echo;
                fi
            ;;

            c*|C*)
                clear;
                read -p "To start minimal configuration press [ENTER] , to quit use [CTRL-c]... ";
                # Check for installation
                if [[ ! -d /var/ossec ]]; then
                    echo;
                    echo "OSSEC is not installed on this system, please install it first... "
                    echo;
                    sleep 5;
                else
                    cd /var/ossec/bin;
                    ./manage_agents;
                    # Start OSSEC
                    echo;
                    read -p "If you want to start your OSSEC installation press 'y' . To quit press "n": " what
                    echo;
                    case "$what" in
                        y)
                            echo "Start now OSSEC... ";
                            echo;
                            /etc/init.d/ossec restart;
                            echo;
                    ;;

                    *)
                        echo;
                        echo "Will quit goodbye... "
                        exit 1;
                    ;;
                    esac
                    echo "Configuration is done... ";
                    echo "Please check the console output if OSSEC was startet... ";
                    echo "If yes enjoy ;-)... ";
                    echo "If not, come to https://forum.ipfire.org/viewtopic.php?f=4&t=4924 will try then to help you... ";
                    echo;
                    echo "Goodbye";
                    echo
                    exit 1;
                fi

            ;;

       u*|U*)
                clear;
                read -p "To uninstall the OSSEC installation press [ENTER] , to quit use [CTRL-c]... ";
                if [[ ! -e /etc/init.d/ossec ]]; then
                    echo "OSSEC is currently not installed on this system... ";
                    echo;
                    exit 1;
                else
                    echo;
                    echo "Will stop OSSEC now... ";
                    echo;
                    /etc/init.d/ossec stop;
                fi

                if [[ -d /var/ossec ]]; then
                    rm -rvf \
                    /var/ossec \
                    /etc/rc.d/rc0.d/K91ossec \
                    /etc/rc.d/rc6.d/K91ossec \
                    /etc/rc.d/init.d/ossec \
                    /etc/rc.d/rc3.d/S70ossec \
                    /opt/pakfire/db/installed/meta-ossec \
                    /etc/ossec-init.conf 2>&1 | tee /tmp/ossec_uninstaller.log;
                    sed -i '/^ossec/d' /etc/passwd;
                    sed -i '/^ossec/d' /etc/group;
                    echo;
                    echo "OSSEC has been uninstalled, the uninstaller is finished now, thanks for testing.";
                    echo;
                    echo "Goodbye."
                    echo;
                    exit 1;
                else
                    echo;
                    echo "Can´t find OSSEC installation... ";
                    echo;
                    exit 1;
                fi
            ;;

            q*|Q*)
                exit 1
            ;;
   
            *)   
                echo;
                echo "   Ooops, there went something wrong 8-\ - for explanation again   ";
                echo "-------------------------------------------------------------------";
                echo "             To install-server press 's' and [ENTER]";
                echo "             To install-agent press  'a' and [ENTER]";
                echo "             To configure press      'c' and [ENTER]";
                echo "             To uninstall press      'u' and [ENTER]";
                echo;
                read -p " To start the installer again press [ENTER] , to quit use [CTRL-c]";
                echo;
            ;;
   
    esac

done

## End OSSEC installerscript


Dont forget to make the script executable.

Hope i haven´t forgot something :) . Critics/enhancements/other ideas/further development with your help might be great.

Greetings from

UmmeeggE

EDIT(s):
- Changed '*)' declaration thanks XerXes .
- Deleted for the first configuration section, will come a new one in the next days.
- Modified OSSEC internal installer and hardcoded install path to /var/ossec to prevent chroot error.
- Added new minimal configuration like explained above, OSSEC start dialog is also integrated.
- Reduced installer packages sizes from ~30MB to 9MB and leave original ossec package out.
- Added initscript restart in configuration section if config should be changed again after installation.
- Typos ;-)
- Updated to version 2.8.2 which fixes CVE-2015-3222 vulnerability --> http://www.ossec.net/?p=1198 .
11.01.2016
- Update to version 2.8.3
- Added 64bit version
Last edited by ummeegge on February 7th, 2015, 3:21 pm, edited 1 time in total.
Image
Image

Post Reply