Outils personnels

OSSEC installation : Différence entre versions

De wikiGite

 
(66 révisions intermédiaires par 3 utilisateurs non affichées)
Ligne 1 : Ligne 1 :
 
__TOC__
 
__TOC__
== Installation OSSEC ==
+
= Installation locale =
Il faut que gcc soit installé.
+
Se connecter en root. Créer un sous-répertoire install pour y mettre les fichiers d'installation.
  wget http://www.ossec.net/files/ossec-hids-latest.tar.gz
+
mkdir install
 +
cd install
 +
Vérifier que gcc soit installé
 +
gcc -v
 +
Au besoin sur CentOS :
 +
yum -y install gcc
 +
ou sur Debian :
 +
apt-get install gcc make
 +
 
 +
note : wget retourne une erreur "403 - Forbidden", forcer le "user agent" pour contenter le serveur :
 +
  wget -U firefox http://www.ossec.net/files/ossec-hids-latest.tar.gz
 +
puis :
 
  tar -xvzf ossec-hids-latest.tar.gz
 
  tar -xvzf ossec-hids-latest.tar.gz
  cd ossec-hids-xxxxx
+
  cd $(ls -d ossec-hids-* | grep -v latest)
 
  ./install.sh
 
  ./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)
+
(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). Sinon répondre NON, indiquer le même répertoire d'installation et demander à supprimer l'installation existante.
  
 
Installation selon la doc "Securing Your Server With A Host-based Intrusion Detection System"
 
Installation selon la doc "Securing Your Server With A Host-based Intrusion Detection System"
Ligne 20 : Ligne 31 :
 
** pare-feu ? : OUI
 
** pare-feu ? : OUI
 
*Ajouter l'adresse fixe local dans la white list
 
*Ajouter l'adresse fixe local dans la white list
 +
* depuis la 2.8 : fonctionnalité syslog : NON (envoi des logs à un ou plusieurs serveurs syslog)
  
 
Puis compilation ossec...
 
Puis compilation ossec...
Ligne 32 : Ligne 44 :
 
  - La configuration peut être visualisée ou modifiée dans /opt/ossec/etc/ossec.conf
 
  - La configuration peut être visualisée ou modifiée dans /opt/ossec/etc/ossec.conf
  
 +
= Installation centralisée client (agent) / serveur =
 +
Sur la machine qui sera serveur, installer OSSEC en choisissant le type "server". L'installation est la même que pour "local" ci-dessus.
 +
 +
Bug v2.7 - '''RESOLU EN v2.8''' : le fichier ar.conf n'a pas les bons droits. Après l'installation faire :
 +
# chown root.ossec /var/ossec/etc/shared/ar.conf
 +
# rm -rf /var/ossec/etc/shared/merged.mg
 +
et relancer OSSEC.
 +
 +
Puis générer une clé pour chaque agent :
 +
# /var/ossec/bin/manage_agents
 +
Taper "A" pour ajouter un agent, donner son IP et laisser l'identifiant par défaut. Puis "E" pour afficher sa clé.
 +
 +
TIPS : Si plusieurs machine sont sensés arriver avec la même adresse IP (exemple : des serveurs derrière un firewall et du NAT, arrivant tous avec la même IP publique du firewall), indiquer "any" au lieu de l'adresse IP du client.
 +
 +
Sur les machines qui seront agents, installer OSSEC en indiquant le type "agent". Donner l'IP du serveur, c'est tout.
 +
 +
Ensuite, lancer
 +
# /var/ossec/bin/manage_agents
 +
et taper "I" pour importer la clé à copier/coller du serveur ci-dessus.
 +
 +
Sur le serveur, valider que le lien fonctionne en relançant l'agent à distance
 +
# /var/ossec/bin/agent_control -R 001
 +
et vérifier dans # /var/ossec/logs/ossec.log de l'agent.
 +
 +
'''A TESTER'''<br/>
 +
Pour mettre en place plusieurs serveurs (pour de la haute disponibilité), on peut mettre les adresses IP de ces serveurs dans l'ossec.conf des agents, dans des balises <server-ip> l'une en-dessous de l'autre.
 +
 +
Problème : les agents ne switchent pas tous seuls si le serveur principal tombe : il faut les relancer. A ce moment, s'ils ne voient pas le premier serveur, il passent sur le suivant.
 +
 +
Comment automatiser ça ?
 +
 +
= Configuration =
 
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.
 +
vi /opt/ossec/etc/ossec.conf
  
Copier local_rules.ml modifié si nécessaire (CentOS-BQ, ISPConfig)
+
* L'adresse mail expéditeur doit être valide (domaine reconnu) : '''ATTENTION AU NOM DE DOMAINE APRES LE "@"'''
 +
== Ajouter des logs applicatifs ==
 +
Exemple, après :
 +
  <localfile>
 +
    <log_format>apache</log_format>
 +
    <location>/var/log/httpd/access_log</location>
 +
  </localfile>
 +
Ajouter :
 +
  <localfile>
 +
    <log_format>apache</log_format>
 +
    <location>/var/log/monappli/http_error_log</location>
 +
  </localfile>
 +
 
 +
  <localfile>
 +
    <log_format>apache</log_format>
 +
    <location>/var/log/monappli/http_access_log</location>
 +
  </localfile>
  
A peaufiner :
+
== Sujet des mails d'alertes ==
Ajouter la surveillance nmap (nécessite d'installer nmap et de le lancer régulièrement):
+
Modifier le format du sujet des mails d'alertes. Editer /opt/ossec/etc/internal_options.conf, changer :
 +
# Maild full subject (0=disabled, 1=enabled)
 +
maild.full_subject=1
 +
 
 +
== Whitelist ==
 +
Si nécessaire, on peut aussi ajouter des adresses IP dans le bloc <white_list>.
 +
 
 +
''Note : en configuration client/serveur, la whitelist n'est possible que sur le serveur OSSEC, donc pour tous les clients !''
 +
 
 +
== Blocage IP sur une configuration client/serveur ==
 +
Dans ce genre de configuration, le blocage d'IP par firewall et host.deny est paramétré sur le serveur, plus sur les postes.
 +
 
 +
Pour spécifier des blocages spécifiques, on peut indique l'ID d'un client et des filtres :
 +
  <active-response>
 +
    <command>firewall-drop</command>
 +
    <location>defined-agent</location>
 +
    <agent_id>003</agent_id>
 +
    <timeout>3600</timeout>
 +
    <rules_id>4151,4101</rules_id>
 +
  </active-response>
 +
Seul l'agent d'ID 003 verra ses blocages passer à 1h (3600s) pour les règles 4151 et 4101.
 +
 
 +
'''Attention : dans ossec.conf, ces réponses spécifiques doivent être positionnées AVANT l'active-response par défaut (blocage 600s pour toutes les règles > 6)'''. Sinon elles sont interceptées et non évaluées.
 +
 
 +
== Repeated offender ==
 +
L' "active response" bloque par défaut une IP pendant 10mn (600s). Pour un attaquant qui revient systématiquement malgré ce blocage, on peut définir des règles d' "escalade" du blocage :
 +
  <active-response>
 +
    <!-- For a repeated offender, block xx min the second
 +
        time, then yy min, and zz min all other times -->
 +
    <repeated_offenders>30,60,120</repeated_offenders>
 +
  </active-response>
 +
Cette configuration ne fonctionne '''que sur un serveur ou un agent''', pas sur une installation de type locale.
 +
 
 +
== Ajout d'un log NMAP ==
 +
S'assurer que nmap est installé
 +
nmap -V
 +
Générer le fichier de log (script /opt/systools/nmap_ossec.sh) :
 +
nmap --append_output -sU -sT -oG /var/log/nmap-out.log localhost > /dev/null
 +
Sans oublier
 +
chmod 700 /opt/systools/nmap_ossec.sh
 +
Ajouter l'analyse du log à ossec.conf :
 
  <localfile>
 
  <localfile>
 
   <log_format>nmapg</log_format>
 
   <log_format>nmapg</log_format>
 
   <location>/var/log/nmap-out.log</location>
 
   <location>/var/log/nmap-out.log</location>
 
  </localfile>
 
  </localfile>
(voir Sécurité/Sécurité - nmap-ossec)
 
  
ET ENLEVER LA SURVEILLANCE DU LOG DE SNORT, c'est plein de faux-positifs sur HTTP, trop restrictif.
+
Redémarrer OSSEC
*modif local_rules pour ajouter des exclusions à ids.xml ?
+
 
 +
Puis mettre le script en cron
 +
ln -s /opt/systools/nmap_ossec.sh /etc/cron.hourly/nmap_ossec
 +
 
 +
Penser à ajouter /var/log/nmap-out.log à logrotate (fichier /etc/logrotate.d/nmap_ossec) :
 +
/var/log/nmap-out.log {
 +
    weekly
 +
    rotate 5
 +
    compress
 +
    missingok
 +
    notifempty
 +
    create 0640 root root
 +
    sharedscripts
 +
    postrotate
 +
        /etc/cron.hourly/nmap_ossec.sh
 +
    endscript
 +
}
 +
 
 +
== SNORT LOG ANALYSIS (A venir) ==
 +
TODO : modif logs snort pour analyse par ossec.
 +
 
 +
= mise à jour local_rules.xml =
 +
Créer une tâche de mise à jour du local_rules.xml (vi /opt/systools/ossec-local-rules.sh)<br>
 +
(Ou se reporter à "[[mise à jour automatique des scripts]]" (maj_script.sh))
 +
#!/bin/bash
 +
OSSEC_DIR=/opt/ossec
 +
CHANGED=0
 +
# Verify if standard directory exist
 +
if [ -d $OSSEC_DIR ]
 +
then
 +
  cd $OSSEC_DIR
 +
  # If there is no backup copy of xml files
 +
  if [ ! -f rules/local_rules.xml.dist ]
 +
  then
 +
    cp rules/local_rules.xml rules/local_rules.xml.dist
 +
  fi
 +
  if [ ! -f etc/decoder.xml.dist ]
 +
  then
 +
    cp etc/decoder.xml etc/decoder.xml.dist
 +
  fi
 +
  # Get them
 +
  cd $OSSEC_DIR/rules
 +
  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."
 +
      CHANGED=1
 +
    else
 +
        rm -f local_rules.xml.custom*
 +
        logger -t ossec "local_rules.xml not changed. No restart needed."
 +
    fi
 +
  fi
 +
  cd $OSSEC_DIR/etc
 +
  wget -q http://www.systea.net/public/decoder.xml.custom > /dev/null 2>&1
 +
  # If download is ok
 +
  if [ $? -eq 0 ]
 +
  then
 +
    cmp decoder.xml.custom decoder.xml > /dev/null 2>&1
 +
    # If downloaded file differs from local file, install it
 +
    if [ $? -gt 0 ]
 +
    then
 +
      mv decoder.xml.custom decoder.xml
 +
      logger -t ossec "decoder.xml has changed. Restart needed."
 +
      CHANGED=1
 +
    else
 +
        rm -f decoder.xml.custom*
 +
        logger -t ossec "decoder.xml not changed. No restart needed."
 +
    fi
 +
  fi
 +
  if [ $CHANGED -eq 1 ]
 +
  then
 +
    /etc/init.d/ossec restart > /dev/null 2>&1
 +
  fi
 +
fi
 +
Puis le lancer au moins une fois
 +
chmod 700 /opt/systools/ossec-local-rules.sh
 +
ln -s /opt/systools/ossec-local-rules.sh /etc/cron.daily/ossec-local-rules
 +
/etc/cron.daily/ossec-local-rules
 +
 
 +
Ajouter la surveillance d'OSSEC à [[check_service.sh]] si nécessaire
  
OSSEC n'est pas démarré après l'installation. Penser à le lancer.
+
NE PAS ACTIVER 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, beaucoup trop bavard.
 +
* A étudier : modif local_rules pour ajouter des exclusions à ids.xml ?
  
== OSSEC-WUI ==
+
= OSSEC-WUI =
  wget http://www.ossec.net/files/ui/ossec-wui-0.2.tar.gz
+
  wget http://www.ossec.net/files/ossec-wui-0.8.tar.gz
  tar -xvzf ossec-wui-0.2.tar.gz
+
  tar -xvzf ossec-wui-0.8.tar.gz
  mv ossec-wui-0.2 /var/www/ossec-wui
+
  mv ossec-wui-0.8 /var/www/ossec-wui
 
  cd /var/www/ossec-wui
 
  cd /var/www/ossec-wui
 
  ./setup.sh
 
  ./setup.sh
*Donner un nom/pwd pour le .htaccess + .htpasswd : admin/<mot_de_passe_admin>
+
* 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
+
* Le setup.sh ne semble pas très au point. '''Ajouter manuellement www-data (ou apache selon la distribution) dans le groupe ossec'''.
 +
* Editer /var/www/ossec-wui/ossec_conf.php, vérifier le chemin vers OSSEC, changer le répertoire racine si nécessaire
  
 
Créer un alias dans /etc/apache2/conf.d/ossec.conf :
 
Créer un alias dans /etc/apache2/conf.d/ossec.conf :
Ligne 71 : Ligne 258 :
 
  </DirectoryMatch>
 
  </DirectoryMatch>
  
Ajouter www-data dans le groupe ossec dans /etc/group
+
Eventuellement, ajouter le chemin racine vers OSSEC au base_dir de PHP pour qu'il ait le droit d'y accèder.
  
 
Redémarrer Apache
 
Redémarrer Apache
 
+
<!-- *ajouter <stats>0</stats> à globals pour éviter les "excessive number of..." -->
== 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..."
 
*enlever les alert_by_email sur les règles 1002,10100 (syslog_rules.xml)
 

Version actuelle datée du 11 juin 2015 à 16:25

Installation locale

Se connecter en root. Créer un sous-répertoire install pour y mettre les fichiers d'installation.

mkdir install
cd install

Vérifier que gcc soit installé

gcc -v

Au besoin sur CentOS :

yum -y install gcc

ou sur Debian :

apt-get install gcc make

note : wget retourne une erreur "403 - Forbidden", forcer le "user agent" pour contenter le serveur :

wget -U firefox http://www.ossec.net/files/ossec-hids-latest.tar.gz

puis :

tar -xvzf ossec-hids-latest.tar.gz
cd $(ls -d ossec-hids-* | grep -v latest)
./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). Sinon répondre NON, indiquer le même répertoire d'installation et demander à supprimer l'installation existante.

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
  • depuis la 2.8 : fonctionnalité syslog : NON (envoi des logs à un ou plusieurs serveurs syslog)

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

Installation centralisée client (agent) / serveur

Sur la machine qui sera serveur, installer OSSEC en choisissant le type "server". L'installation est la même que pour "local" ci-dessus.

Bug v2.7 - RESOLU EN v2.8 : le fichier ar.conf n'a pas les bons droits. Après l'installation faire :

# chown root.ossec /var/ossec/etc/shared/ar.conf
# rm -rf /var/ossec/etc/shared/merged.mg

et relancer OSSEC.

Puis générer une clé pour chaque agent :

# /var/ossec/bin/manage_agents

Taper "A" pour ajouter un agent, donner son IP et laisser l'identifiant par défaut. Puis "E" pour afficher sa clé.

TIPS : Si plusieurs machine sont sensés arriver avec la même adresse IP (exemple : des serveurs derrière un firewall et du NAT, arrivant tous avec la même IP publique du firewall), indiquer "any" au lieu de l'adresse IP du client.

Sur les machines qui seront agents, installer OSSEC en indiquant le type "agent". Donner l'IP du serveur, c'est tout.

Ensuite, lancer

# /var/ossec/bin/manage_agents

et taper "I" pour importer la clé à copier/coller du serveur ci-dessus.

Sur le serveur, valider que le lien fonctionne en relançant l'agent à distance

# /var/ossec/bin/agent_control -R 001

et vérifier dans # /var/ossec/logs/ossec.log de l'agent.

A TESTER
Pour mettre en place plusieurs serveurs (pour de la haute disponibilité), on peut mettre les adresses IP de ces serveurs dans l'ossec.conf des agents, dans des balises <server-ip> l'une en-dessous de l'autre.

Problème : les agents ne switchent pas tous seuls si le serveur principal tombe : il faut les relancer. A ce moment, s'ils ne voient pas le premier serveur, il passent sur le suivant.

Comment automatiser ça ?

Configuration

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

vi /opt/ossec/etc/ossec.conf
  • L'adresse mail expéditeur doit être valide (domaine reconnu) : ATTENTION AU NOM DE DOMAINE APRES LE "@"

Ajouter des logs applicatifs

Exemple, après :

 <localfile>
   <log_format>apache</log_format>
   <location>/var/log/httpd/access_log</location>
 </localfile>

Ajouter :

 <localfile>
   <log_format>apache</log_format>
   <location>/var/log/monappli/http_error_log</location>
 </localfile>
 
 <localfile>
   <log_format>apache</log_format>
   <location>/var/log/monappli/http_access_log</location>
 </localfile>

Sujet des mails d'alertes

Modifier le format du sujet des mails d'alertes. Editer /opt/ossec/etc/internal_options.conf, changer :

# Maild full subject (0=disabled, 1=enabled)
maild.full_subject=1

Whitelist

Si nécessaire, on peut aussi ajouter des adresses IP dans le bloc <white_list>.

Note : en configuration client/serveur, la whitelist n'est possible que sur le serveur OSSEC, donc pour tous les clients !

Blocage IP sur une configuration client/serveur

Dans ce genre de configuration, le blocage d'IP par firewall et host.deny est paramétré sur le serveur, plus sur les postes.

Pour spécifier des blocages spécifiques, on peut indique l'ID d'un client et des filtres :

 <active-response>
   <command>firewall-drop</command>
   <location>defined-agent</location>
   <agent_id>003</agent_id>
   <timeout>3600</timeout>
   <rules_id>4151,4101</rules_id>
 </active-response>

Seul l'agent d'ID 003 verra ses blocages passer à 1h (3600s) pour les règles 4151 et 4101.

Attention : dans ossec.conf, ces réponses spécifiques doivent être positionnées AVANT l'active-response par défaut (blocage 600s pour toutes les règles > 6). Sinon elles sont interceptées et non évaluées.

Repeated offender

L' "active response" bloque par défaut une IP pendant 10mn (600s). Pour un attaquant qui revient systématiquement malgré ce blocage, on peut définir des règles d' "escalade" du blocage :

 <active-response>
   <repeated_offenders>30,60,120</repeated_offenders>
 </active-response>

Cette configuration ne fonctionne que sur un serveur ou un agent, pas sur une installation de type locale.

Ajout d'un log NMAP

S'assurer que nmap est installé

nmap -V

Générer le fichier de log (script /opt/systools/nmap_ossec.sh) :

nmap --append_output -sU -sT -oG /var/log/nmap-out.log localhost > /dev/null

Sans oublier

chmod 700 /opt/systools/nmap_ossec.sh

Ajouter l'analyse du log à ossec.conf :

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

Redémarrer OSSEC

Puis mettre le script en cron

ln -s /opt/systools/nmap_ossec.sh /etc/cron.hourly/nmap_ossec

Penser à ajouter /var/log/nmap-out.log à logrotate (fichier /etc/logrotate.d/nmap_ossec) :

/var/log/nmap-out.log {
   weekly
   rotate 5
   compress
   missingok
   notifempty
   create 0640 root root
   sharedscripts
   postrotate
       /etc/cron.hourly/nmap_ossec.sh
   endscript
}

SNORT LOG ANALYSIS (A venir)

TODO : modif logs snort pour analyse par ossec.

mise à jour local_rules.xml

Créer une tâche de mise à jour du local_rules.xml (vi /opt/systools/ossec-local-rules.sh)
(Ou se reporter à "mise à jour automatique des scripts" (maj_script.sh))

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

Puis le lancer au moins une fois

chmod 700 /opt/systools/ossec-local-rules.sh
ln -s /opt/systools/ossec-local-rules.sh /etc/cron.daily/ossec-local-rules
/etc/cron.daily/ossec-local-rules

Ajouter la surveillance d'OSSEC à check_service.sh si nécessaire

NE PAS ACTIVER 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, beaucoup trop bavard.

  • A étudier : modif local_rules pour ajouter des exclusions à ids.xml ?

OSSEC-WUI

wget http://www.ossec.net/files/ossec-wui-0.8.tar.gz
tar -xvzf ossec-wui-0.8.tar.gz
mv ossec-wui-0.8 /var/www/ossec-wui
cd /var/www/ossec-wui
./setup.sh
  • Donner un nom/pwd pour le .htaccess + .htpasswd : admin/<mot_de_passe_admin>
  • Le setup.sh ne semble pas très au point. Ajouter manuellement www-data (ou apache selon la distribution) dans le groupe ossec.
  • Editer /var/www/ossec-wui/ossec_conf.php, vérifier le chemin vers OSSEC, changer le répertoire racine 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>

Eventuellement, ajouter le chemin racine vers OSSEC au base_dir de PHP pour qu'il ait le droit d'y accèder.

Redémarrer Apache