Mise à jour juillet 2016 pour la version 3 (3.0.1 pour être précis).
Il faut maintenant installer des choses sérieuses : "make", "wget" et "git" si ce n'est déjà fait ainsi que la triplette "mysql-client","mysql-server" ainsi que "libmysqld-dev" , je fonctionne actuellement avec MariaDB.
J'ai créé un utilisateur "suricata" avec un mot de passe du même métal pour faire tourner le tout sans droits "root".
Ensuite télécharger le tar.gz (1.4.1 lors des premiers tests 3.0.1 à ce jour) dans un répertoire tranquille :
wget http://www.openinfosecfoundation.org/download/suricata-3.0.1.tar.gz ou plus récent visible sur https://oisf.net/
suivi d'un : tar -xvf suricata-3.0.1.tar.gz
Il faut charger quelques dépendances spécifiques :
- pkg-config
- libpcap-dev
- libpcre3-dev
- libyaml-dev
- libnet1-dev
- libcap-ng-dev
- libmagic-dev
- libhtp-dev
- zlib1g-dev
- libjansson4 libjansson-dev
- libnfnetlink0 libnfnetlink-dev
- libnetfilter-queue-1 libnetfilter-queue-dev
Un apt-get install de toute la liste suffit.
Ensuite le "./configure" magique permet de commencer le travail et le récap en fin d'exécution permet de vérifier si toutes les options nous conviennent :
Suricata Configuration: AF_PACKET support: yes PF_RING support: no NFQueue support: no IPFW support: no DAG enabled: no Napatech enabled: no Unix socket enabled: no libnss support: no libnspr support: no libjansson support: no Prelude support: no PCRE jit: no libluajit: no libgeoip: no Non-bundled htp: no Old barnyard2 support: no CUDA enabled: no Suricatasc install: yes Unit tests enabled: no Debug output enabled: no Debug validation enabled: no Profiling enabled: no Profiling locks enabled: no Generic build parameters: Installation prefix (--prefix): /usr/local Configuration directory (--sysconfdir): /usr/local/etc/suricata/ Log directory (--localstatedir) : /usr/local/var/log/suricata/ Host: i686-pc-linux-gnu GCC binary: gcc GCC Protect enabled: no GCC march native enabled: yes GCC Profile enabled: no To build and install run 'make' and 'make install'. You can run 'make install-conf' if you want to install initial configuration files to /usr/local/etc/suricata/. Running 'make install-full' will install configuration and rules and provide you a ready-to-run suricata. To install Suricata into /usr/bin/suricata, have the config in /etc/suricata and use /var/log/suricata as log dir, use: ./configure --prefix=/usr/ --sysconfdir=/etc/ --localstatedir=/var/ |
Pour plus de sécurité (isolation dans un répertoire spécifique) je vais lancer la configuration avec les options suivantes :
./configure --prefix=/opt/suricata \
--sysconfdir=/opt/suricata/ \
--localstatedir=/opt/suricata/
Le log final contient :
Generic build parameters: Installation prefix (--prefix): /opt/suricata Configuration directory (--sysconfdir): /opt/suricata/suricata/ Log directory (--localstatedir) : /opt/suricata/log/suricata/ |
Ce n'est pas tout à fait ce que je voulais et je corrige "un peu" le Makefile (aux environs de la ligne 245) pour obtenir un "arbre" de répertoires sous /opt/suricata :
e_localstatedir = /opt/suricata/run e_logdir = /opt/suricata/log e_logfilesdir = /opt/suricata/log/files e_magic_file = /usr/share/file/magic e_rundir = /opt/suricata/run/ e_sysconfdir = /opt/suricata/etc e_sysconfrulesdir = /opt/suricata/etc/rules |
Je lance enfin le "make" qui se déroule sans ennuis ... de même pour le "make install" ... qui m'installe un arbre de répertoires "convenable", enfin qui me convient, "make install-conf" installe la config de base puis "make install-full" télécharge et installe un jeu de règles standard.
Image de mon arbre de répertoires :
drwxrwsr-x 9 root suricata 4096 2013-05-06 14:39 . drwxrwsr-x 18 root staff 4096 2013-05-06 13:40 .. drwxr-xr-x 2 root suricata 4096 2013-05-07 16:29 bin drwxr-xr-x 3 root suricata 4096 2013-05-07 17:09 etc drwxr-xr-x 3 root suricata 4096 2013-05-06 14:37 include drwxr-xr-x 4 root suricata 4096 2013-05-06 15:10 lib drwxrwxr-x 3 root suricata 4096 2013-05-07 17:14 log drwxrwxr-x 2 root suricata 4096 2013-05-07 16:07 run drwxr-sr-x 3 root suricata 4096 2013-05-06 14:37 share |
J'ai donné au user "suricata" les droits "group" sur l'ensemble des répertoires de /opt/suricata et les droits d'écriture sur les répertoires "log" et "run".
Il faut ensuite réaliser un script de démarrage car je n'en ai pas trouvé de disponible (mon exemplaire est disponible par le lien en bas de page).
Il faut ensuite légèrement modifier le fichier "etc/suricata.yaml" pour l'adapter à la structure de mes répertoires. J'ai désactivé l'option "fast log" qui consomme trop d'espace pour mes besoins de test sur un portable. J'ai aussi réduit la fréquence de stockage des statistiques à 30 minutes.
Après le lancement du produit on peut constater l'arrivée de quelques alertes ... mais elles sont au format "Unified2" et donc illisibles il faut utiliser un interface pour les rendre compréhensibles. Le projet conseille "Barnyard2" qui les enregistre dans une base de données (ici Mysql) et que je vais essayer au prochain épisode.
Le paramétrage du fichier de configuration est très bien expliqué (au moins pour les options "courantes") dans le fichier suricata.yaml.
Vous trouverez ces fichiers en attachement, mes quelques modifications du fichier YAML sont précédées d'un commentaire #JPP.