OSSEC installation : Différence entre versions
De wikiGite
(→Installation OSSEC) |
|||
Ligne 1 : | Ligne 1 : | ||
__TOC__ | __TOC__ | ||
− | + | = Installation OSSEC = | |
Se connecter en root. Créer un sous-répertoire install pour y mettre les fichiers d'installation. | Se connecter en root. Créer un sous-répertoire install pour y mettre les fichiers d'installation. | ||
mkdir install | mkdir install | ||
Ligne 41 : | Ligne 41 : | ||
- 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 | ||
− | + | = 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 "@"''' | * 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> | <localfile> | ||
<log_format>apache</log_format> | <log_format>apache</log_format> | ||
Ligne 59 : | Ligne 63 : | ||
</localfile> | </localfile> | ||
− | + | == Sujet des mails d'alertes == | |
− | |||
Modifier le format du sujet des mails d'alertes. Editer /opt/ossec/etc/internal_options.conf, changer : | 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 (0=disabled, 1=enabled) | ||
maild.full_subject=1 | maild.full_subject=1 | ||
+ | == Whitelist == | ||
+ | Si nécessaire, on peut aussi ajouter des adresses IP dans le bloc <white_list> | ||
+ | |||
+ | == 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> | ||
+ | |||
+ | = 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> | 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)) | (Ou se reporter à "[[mise à jour automatique des scripts]]" (maj_script.sh)) | ||
Ligne 165 : | Ligne 180 : | ||
} | } | ||
− | == OSSEC-WUI | + | |
+ | == SNORT LOG ANALYSIS : modif logs snort pour analyse par ossec. (A venir) == | ||
+ | |||
+ | = OSSEC-WUI = | ||
wget http://www.ossec.net/files/ui/ossec-wui-0.2.tar.gz | wget http://www.ossec.net/files/ui/ossec-wui-0.2.tar.gz | ||
tar -xvzf ossec-wui-0.2.tar.gz | tar -xvzf ossec-wui-0.2.tar.gz | ||
Ligne 191 : | Ligne 209 : | ||
Redémarrer Apache | Redémarrer Apache | ||
− | + | <!-- *ajouter <stats>0</stats> à globals pour éviter les "excessive number of..." --> | |
− | |||
− | *ajouter <stats>0</stats> à globals pour éviter les "excessive number of..." |
Version du 1 août 2013 à 07:27
Sommaire
Installation OSSEC
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
wget http://www.ossec.net/files/ossec-hids-latest.tar.gz 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)
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
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>
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>
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 ?
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 : modif logs snort pour analyse par ossec. (A venir)
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