Outils personnels

OSSEC installation : Différence entre versions

De wikiGite

Ligne 36 : Ligne 36 :
 
Un fichier de base ossec-init.conf est seulement créé dans /etc, la config se fait sous /opt/ossec/etc.
 
Un fichier de base ossec-init.conf est seulement créé dans /etc, la config se fait sous /opt/ossec/etc.
  
Copier local_rules.xml modifié si nécessaire (CentOS-BQ, ISPConfig)
+
Créer une tâche de mise à jour du local_rules.xml (vi /etc/cron.daily/ossec-local-rules)
  cd /opt/ossec/rules
+
  #!/bin/bash
 
+
# Verify if standard directory exist
wget www.systea.net/public/local_rules_BQ.xml
+
if [ -d /opt/ossec ]
OU
+
then
wget www.systea.net/public/local_rules_ISPCONFIG.xml
+
  cd /opt/ossec/rules
Puis :
+
  # If there is no backup copy of local_rules.xml
mv local_rules.xml local_rules.xml.old
+
  if [ ! -f local_rules.xml.dist ]
mv local_rules_BQ.xml local_rules.xml
+
  then
 
+
    cp local_rules.xml local_rules.xml.dist
Relancer OSSEC
+
  fi
  /etc/init.d/ossec restart
+
  # Get it
 +
  wget -q http://www.systea.net/public/local_rules.xml.custom > /dev/null 2>&1
 +
  # If download is ok
 +
  if [ $? -eq 0 ]
 +
  then
 +
    cmp local_rules.xml.custom local_rules.xml > /dev/null 2>&1
 +
    # If downloaded file differs from local file, install it
 +
    if [ $? -gt 0 ]
 +
    then
 +
      mv local_rules.xml.custom local_rules.xml
 +
        logger -t ossec "local_rules.xml has changed. Restart needed."
 +
      /etc/init.d/ossec restart > /dev/null 2>&1
 +
    else
 +
        rm -f local_rules.xml.custom*
 +
        logger -t ossec "local_rules.xml not changed. No restart needed."
 +
    fi
 +
  fi
 +
fi
 +
Puis le lancer au moins une fois
 +
chmod /etc/cron.daily/ossec-local-rules
 +
  /etc/cron.daily/ossec-local-rules
  
 
A peaufiner :
 
A peaufiner :
Ligne 88 : Ligne 108 :
  
 
== SNORT LOG ANALYSIS : modif logs snort pour analysis par ossec. (A venir) ==
 
== SNORT LOG ANALYSIS : modif logs snort pour analysis par ossec. (A venir) ==
== Affinage alertes mails ==
 
Le niveau d'alertes est défini par le bloc <alerts>, mais ce niveau est annulé par l'option "email_by_alert" ou "no_email_alert" qui peut être placée sur les règles (stanza "options").
 
  
 
*ajouter <stats>0</stats> à globals pour éviter les "excessive number of..."
 
*ajouter <stats>0</stats> à globals pour éviter les "excessive number of..."
*enlever les alert_by_email sur les règles 1002,10100 (syslog_rules.xml)
 

Version du 17 mars 2010 à 16:50

Installation OSSEC

Il faut que gcc soit installé.

gcc -v
wget http://www.ossec.net/files/ossec-hids-latest.tar.gz
tar -xvzf ossec-hids-latest.tar.gz
cd ossec-hids-xxxxx
./install.sh

(note : pour une mise à jour il détecte l'ancienne installation et propose de la mettre à jour. Seul petit soucis : si on répond oui à la mise à jour des règles, il écrase aussi decoder.xml. Penser à y remettre postfix-auth)

Installation selon la doc "Securing Your Server With A Host-based Intrusion Detection System"

  • choisir la langue
  • Valider l'écran de résumé du système
  • choisir installation type local
  • install dans /opt/ossec plutôt que /var
  • alerte mail : OUI. Il doit trouver le serveur de mail à partir de l'adresse qu'on lui donne.
  • démon de vérification d'intégrité (syscheck) : OUI
  • moteur de détection de rootkit (rootcheck) : OUI
  • réponse active : OUI
    • pare-feu ? : OUI
  • Ajouter l'adresse fixe local dans la white list

Puis compilation ossec...

Messages de fin :

- Configuration correctement terminée.
- Pour démarrer OSSEC HIDS:
               /opt/ossec/bin/ossec-control start
- Pour arrêter OSSEC HIDS:
               /opt/ossec/bin/ossec-control stop

(ça marche aussi par /etc/init.d/ossec start/stop)

- La configuration peut être visualisée ou modifiée dans /opt/ossec/etc/ossec.conf

Un fichier de base ossec-init.conf est seulement créé dans /etc, la config se fait sous /opt/ossec/etc.

Créer une tâche de mise à jour du local_rules.xml (vi /etc/cron.daily/ossec-local-rules)

#!/bin/bash
# Verify if standard directory exist
if [ -d /opt/ossec ]
then
  cd /opt/ossec/rules
  # If there is no backup copy of local_rules.xml
  if [ ! -f local_rules.xml.dist ]
  then
    cp local_rules.xml local_rules.xml.dist
  fi
  # Get it
  wget -q http://www.systea.net/public/local_rules.xml.custom > /dev/null 2>&1
  # If download is ok
  if [ $? -eq 0 ]
  then
    cmp local_rules.xml.custom local_rules.xml > /dev/null 2>&1
    # If downloaded file differs from local file, install it
    if [ $? -gt 0 ]
    then
      mv local_rules.xml.custom local_rules.xml
       logger -t ossec "local_rules.xml has changed. Restart needed."
      /etc/init.d/ossec restart > /dev/null 2>&1
    else
       rm -f local_rules.xml.custom*
       logger -t ossec "local_rules.xml not changed. No restart needed."
    fi
  fi
fi

Puis le lancer au moins une fois

chmod /etc/cron.daily/ossec-local-rules
/etc/cron.daily/ossec-local-rules

A peaufiner : Ajouter la surveillance nmap (nécessite d'installer nmap et de le lancer régulièrement):

<localfile>
  <log_format>nmapg</log_format>
  <location>/var/log/nmap-out.log</location>
</localfile>

(voir Sécurité/Sécurité - nmap-ossec) ENLEVER POUR L'INSTANT LA SURVEILLANCE DU LOG DE SNORT (dans ossec.conf, inclu automatiquement si SNORT est installé), c'est plein de faux-positifs sur HTTP, trop restrictif.

  • modif local_rules pour ajouter des exclusions à ids.xml ?

OSSEC n'est pas démarré après l'installation. Penser à le lancer.

OSSEC-WUI

wget http://www.ossec.net/files/ui/ossec-wui-0.2.tar.gz
tar -xvzf ossec-wui-0.2.tar.gz
mv ossec-wui-0.2 /var/www/ossec-wui
cd /var/www/ossec-wui
./setup.sh
  • Donner un nom/pwd pour le .htaccess + .htpasswd : admin/<mot_de_passe_admin>

Editer /var/www/ossec-wui//var/www/ossec-wui, changer le répertoire racine d'Ossec si nécessaire

Créer un alias dans /etc/apache2/conf.d/ossec.conf :

<IfModule mod_alias.c>
  Alias /ossec-wui "/var/www/ossec-wui"
</IfModule>

<DirectoryMatch /var/www/ossec-wui/>
  Options -FollowSymLinks
  AllowOverride All
  order deny,allow
#  deny from all
#  allow from 127.0.0.0/255.0.0.0
</DirectoryMatch>

Ajouter www-data dans le groupe ossec dans /etc/group

Redémarrer Apache

SNORT LOG ANALYSIS : modif logs snort pour analysis par ossec. (A venir)

  • ajouter <stats>0</stats> à globals pour éviter les "excessive number of..."