« Snort » : différence entre les versions

De Lea Linux
Aller à la navigation Aller à la recherche
Aucun résumé des modifications
 
(6 versions intermédiaires par 5 utilisateurs non affichées)
Ligne 1 : Ligne 1 :
[[Category:Sécurité]]
= Installation de l'IDS SNORT =
= Installation de l'IDS SNORT =


Ligne 15 : Ligne 14 :
| valign="top" | '''REMARQUES'''
| valign="top" | '''REMARQUES'''
|-
|-
| valign="top" | <code>MySQL</code>
| valign="top" | <div class="code">MySQL</div>
| valign="top" | La base de données MySQL
| valign="top" | La base de données MySQL
|-
|-
| valign="top" | <code>MySQL-client</code>
| valign="top" | <div class="code">MySQL-client</div>
| valign="top" | La partie cliente de mysql (connexion BD)
| valign="top" | La partie cliente de mysql (connexion BD)
|-
|-
| valign="top" | <code>php-mysql</code>
| valign="top" | <div class="code">php-mysql</div>
| valign="top" | le module php de mysql
| valign="top" | le module php de mysql
|-
|-
| valign="top" | <code>Apache</code>
| valign="top" | <div class="code">Apache</div>
| valign="top" | Le serveur web Apache
| valign="top" | Le serveur web Apache
|-
|-
| valign="top" | <code>mod_php</code>
| valign="top" | <div class="code">mod_php</div>
| valign="top" | Le module php pour Apache
| valign="top" | Le module php pour Apache
|-
|-
| valign="top" | <code>libpcap/libpcap0-devel</code>
| valign="top" | <div class="code">libpcap/libpcap0-devel</div>
| valign="top" |
| valign="top" |
Librairie utilisée par SNORT pour capturer les paquets (rpm téléchargeable sur [http://www.rpmfind.net rpmfind.net])
Librairie utilisée par SNORT pour capturer les paquets (rpm téléchargeable sur [http://www.rpmfind.net rpmfind.net])
|-
|-
| valign="top" | <code>gcc</code>
| valign="top" | <div class="code">gcc</div>
| valign="top" | indispensable pour compiler les sources de SNORT
| valign="top" | indispensable pour compiler les sources de SNORT
|}
|}
Ligne 49 : Ligne 48 :
== Installation de SNORT ==
== Installation de SNORT ==


Téléchargez la dernière release de SNORT à l'adresse suivante : http://www.SNORT.org/dl . La compilation de ce programme reste traditionnelle :
{{Preferer un paquetage|snort}}
 
Téléchargez la dernière release de SNORT sur le site officiel, par exemple à l'adresse suivante : http://www.SNORT.org/dl . La compilation de ce programme reste traditionnelle :


{|
{|
Ligne 55 : Ligne 56 :
| valign="top" | '''REMARQUES'''
| valign="top" | '''REMARQUES'''
|-
|-
| valign="top" | <code>cd /usr/local/snort</code>
| valign="top" | <div class="code">cd /usr/local/snort</div>
| valign="top" | ...
| valign="top" | ...
|-
|-
| valign="top" | <code>tar -xvzf SNORT-1.9.*.tar.gz</code>
| valign="top" | <div class="code">tar -xvzf SNORT-1.9.*.tar.gz</div>
| valign="top" | Décompacte l'application
| valign="top" | Décompacte l'application
|-
|-
| valign="top" | <code>./configure --with-mysql=/usr/lib/mysql</code>
| valign="top" | <div class="code">./configure --with-mysql=/usr/lib/mysql</div>
| valign="top" | Retirez l'argument <code>--with-mysql</code> si vous ne souhaitez pas rediriger les logs SNORT vers une base de données mysql *
| valign="top" | Retirez l'argument <div class="code">--with-mysql</div> si vous ne souhaitez pas rediriger les logs SNORT vers une base de données mysql *
|-
|-
| valign="top" | <code>make</code>
| valign="top" | <div class="code">make</div>
| valign="top" | Compilation
| valign="top" | Compilation
|-
|-
| valign="top" | <code>make install</code>
| valign="top" | <div class="code">make install</div>
| valign="top" | Installation
| valign="top" | Installation
|}
|}


Pour l'argument <code>--with-mysql</code>, vous pouvez l'adapter si vous utilisez une base de données autre que MySQL :
Pour l'argument <div class="code">--with-mysql</div>, vous pouvez l'adapter si vous utilisez une base de données autre que MySQL :


* <code>--with-odbc=$PATH_ODBC</code> : pour une base de données Microsoft SQL server
* <div class="code">--with-odbc=$PATH_ODBC</div> : pour une base de données Microsoft SQL server
* <code>--with-postgresql=$PATH_POSTGRE</code> : pour une base PostegreSQL
* <div class="code">--with-postgresql=$PATH_POSTGRE</div> : pour une base PostegreSQL
* <code>--with-oracle=$ORACLE_HOME</code> : pour une base de données Oracle.
* <div class="code">--with-oracle=$ORACLE_HOME</div> : pour une base de données Oracle.


== Installation des règles SNORT ==
== Installation des règles SNORT ==


Maitenant, il faut télécharger les règles de SNORT. En effet, SNORT utilise des règles pour détecter les intrusions. Il existe aujourd'hui environ 1200 règles différentes. Ces règles se caractérisent par un ensemble de fichiers (ftp.rules, p2p.rules,telnet.rules etc...). Vous devez téléchargez les sources de ces règles à l'adresse suivante :<br />[http://www.snort.org/dl/signatures http://www.SNORT.org/dl/signatures]
Maitenant, il faut télécharger les règles de SNORT. En effet, SNORT utilise des règles pour détecter les intrusions. Il existe aujourd'hui environ 1200 règles différentes. Ces règles se caractérisent par un ensemble de fichiers (ftp.rules, p2p.rules,telnet.rules etc...). Vous devez téléchargez les sources de ces règles à l'adresse suivante :<br />[http://www.snort.org/pub-bin/downloads.cgi http://www.snort.org/pub-bin/downloads.cgi]


Créez le répertoire de configuration SNORT, et installez-y les règles :
Créez le répertoire de configuration SNORT, et installez-y les règles :
Ligne 87 : Ligne 88 :
| valign="top" | '''REMARQUES'''
| valign="top" | '''REMARQUES'''
|-
|-
| valign="top" | <code>mkdir /etc/snort</code>
| valign="top" | <div class="code">mkdir /etc/snort</div>
| valign="top" | Création du répertoire contenant la configuration SNORT
| valign="top" | Création du répertoire contenant la configuration SNORT
|-
|-
| valign="top" | <code>cp /usr/local/snort*/etc/snort.conf /etc/snort</code>
| valign="top" | <div class="code">cp /usr/local/snort*/etc/snort.conf /etc/snort</div>
| valign="top" | Copie du fichier de config snort dans /etc/snort
| valign="top" | Copie du fichier de config snort dans /etc/snort
|-
|-
| valign="top" | <code>cp snortrules.tar.gz /etc/snort</code>
| valign="top" | <div class="code">cp snortrules.tar.gz /etc/snort</div>
| valign="top" | Mise en place des règles dans le répertoire de configuration SNORT
| valign="top" | Mise en place des règles dans le répertoire de configuration SNORT
|-
|-
| valign="top" | <code>cd /etc/snort</code>
| valign="top" | <div class="code">cd /etc/snort</div>
| valign="top" | On se place dans le répertoire de configuration SNORT
| valign="top" | On se place dans le répertoire de configuration SNORT
|-
|-
| valign="top" | <code>tar -xvzf snortrules.tar.gz</code>
| valign="top" | <div class="code">tar -xvzf snortrules.tar.gz</div>
| valign="top" | Décompactage des règles
| valign="top" | Décompactage des règles
|}
|}


Les règles SNORT sont alors placées dans le répertoire <code>/etc/snort/rules</code>.
Les règles SNORT sont alors placées dans le répertoire <div class="code">/etc/snort/rules</div>.


Maintenant, Il faut éditer le fichier de configuration snort (<code>/etc/snort/snort.conf</code>) et spécifier le réseau sur lequel l'IDS travaille. Il faut pour cela modifier la variable <code>HOME_NET</code> :
Maintenant, Il faut éditer le fichier de configuration snort (<div class="code">/etc/snort/snort.conf</div>) et spécifier le réseau sur lequel l'IDS travaille. Il faut pour cela modifier la variable <div class="code">HOME_NET</div> :


<div class="exemple"><code>var HOME_NET [10.1.1.0/24] # SNORT travaille sur le réseau 10.1.1.0</code></div><div class="exemple"><code>var HOME_NET (10.1.1.0/24,192.168.1.0/24] # Si votre carte réseau possède 2 alias</code></div>
<div class="code">var HOME_NET [10.1.1.0/24] # SNORT travaille sur le réseau 10.1.1.0</div><div class="code">var HOME_NET (10.1.1.0/24,192.168.1.0/24] # Si votre carte réseau possède 2 alias</div>


Dans le fichier de configuration de SNORT (<code>/etc/snort/snort.conf</code>), vous avez toute une série de include. Il s'agit des règles utilisées par SNORT pour détecter d'éventuelles intrusions. Il y a des règles de telnet, ICMP, FTP, ... Bref, commentez celles que vous ne voulez pas et décommentez celles qui vous parait utile. Conseil : Décommentez les règles ICMP, car elles ne cessent pas de vous remonter des alarmes très souvent inutiles.
Dans le fichier de configuration de SNORT (<b>/etc/snort/snort.conf</b>), vous avez toute une série de include. Il s'agit des règles utilisées par SNORT pour détecter d'éventuelles intrusions. Il y a des règles de telnet, ICMP, FTP, ... Bref, commentez celles que vous ne voulez pas et décommentez celles qui vous parait utile. Conseil : Décommentez les règles ICMP, car elles ne cessent pas de vous remonter des alarmes très souvent inutiles.


Pour des explications plus détaillées concernant les règles SNORT, allez voir [http://www.groar.org/trad/snort/snort-faq/writing_snort_rules.html  ici].
Pour des explications plus détaillées concernant les règles SNORT, allez voir [http://www.groar.org/trad/snort/snort-faq/writing_snort_rules.html  ici].
Ligne 117 : Ligne 118 :
Deux possibilités s'offrent à nous. Soit vous lancez SNORT tout seul, et dans ce cas, il génerera ces logs dans un fichier plat. Soit vous décidez de l'interfacer avec une base de données. Suivant le cas, SNORT ne se lancera pas de la même façon.
Deux possibilités s'offrent à nous. Soit vous lancez SNORT tout seul, et dans ce cas, il génerera ces logs dans un fichier plat. Soit vous décidez de l'interfacer avec une base de données. Suivant le cas, SNORT ne se lancera pas de la même façon.


<div class="exemple"><u>Sans Mysql</u> :<br /><code>/usr/local/snort*/src/snort -c /etc/snort/snort.conf -i eth0 -D</code></div><div class="exemple"><u>Avec Mysql</u> :<br /><code>/usr/local/snort*/src/snort -c /etc/snort/snort.conf</code></div><div class="note">Remarque : Si vous souhaitez interfacer SNORT avec une base de données, ne lancez pas SNORT avec l'argument <code>-L</code> qui spécifie l'emplacement des logs.</div>
<u>Sans Mysql</u> :<br /><div class="code">/usr/local/snort*/src/snort -c /etc/snort/snort.conf -i eth0 -D</div>
<u>Avec Mysql</u> :<br /><div class="code">/usr/local/snort*/src/snort -c /etc/snort/snort.conf</div> Remarque : Si vous souhaitez interfacer SNORT avec une base de données, ne lancez pas SNORT avec l'argument <div class="code">-L</div> qui spécifie l'emplacement des logs.


== Lier les logs SNORT avec MySQL ==
== Lier les logs SNORT avec MySQL ==


Maintenant, nous allons éditer le fichier de configuration de SNORT afin de lui indiquer qu'il faut rediriger les logs dans une base de données (ici MySQL). Avec vos yeux de lynx, retrouvez la ligne suivante dans le fichier de configuration SNORT <code>/etc/snort/snort.conf</code> :
Maintenant, nous allons éditer le fichier de configuration de SNORT afin de lui indiquer qu'il faut rediriger les logs dans une base de données (ici MySQL). Avec vos yeux de lynx, retrouvez la ligne suivante dans le fichier de configuration SNORT <div class="code">/etc/snort/snort.conf</div> :


<div class="code"><nowiki>#output database:log,mysql,user=root password=test dbname=SNORT host=localhost</nowiki></div>
<div class="code"><nowiki>#output database:log,mysql,user=root password=test dbname=SNORT host=localhost</nowiki></div>
Ligne 139 : Ligne 141 :
| valign="top" | '''REMARQUES'''
| valign="top" | '''REMARQUES'''
|-
|-
| valign="top" | <code>MySQL-client-*</code>
| valign="top" | <div class="code">MySQL-client-*</div>
| valign="top" | partie cliente de MySQL
| valign="top" | partie cliente de MySQL
|-
|-
| valign="top" | <code>MySQL-devel-*</code>
| valign="top" | <div class="code">MySQL-devel-*</div>
| valign="top" |  
| valign="top" |  
|}
|}
Ligne 154 : Ligne 156 :
| valign="top" | '''REMARQUES'''
| valign="top" | '''REMARQUES'''
|-
|-
| valign="top" | <code>cd /usr/local/snort*/contrib</code>
| valign="top" | <div class="code">cd /usr/local/snort*/contrib</div>
| valign="top" | on se place à l'endroit du fichier contenant les tables SQL de SNORT
| valign="top" | on se place à l'endroit du fichier contenant les tables SQL de SNORT
|-
|-
| valign="top" | <code>mysql -u root -p</code>
| valign="top" | <div class="code">mysql -u root -p</div>
| valign="top" | Connexion à la base de données en tant qu'administrateur (au passage, si ce n'est pas encore fait, définissez un password pour l'administrateur de la base par la commande 'set password for root@localhost=PASSWORD('totomdp');
| valign="top" | Connexion à la base de données en tant qu'administrateur (au passage, si ce n'est pas encore fait, définissez un password pour l'administrateur de la base par la commande 'set password for root@localhost=PASSWORD('totomdp');
|-
|-
| valign="top" | <code>create database SNORT;</code>
| valign="top" | <div class="code">create database SNORT;</div>
| valign="top" | Création de la base de données SNORT
| valign="top" | Création de la base de données SNORT
|-
|-
| valign="top" | <code>use mysql;</code>
| valign="top" | <div class="code">use mysql;</div>
| valign="top" | On se place ici pour créer l'utilisateur MySQL qui gérera la base de données snort
| valign="top" | On se place ici pour créer l'utilisateur MySQL qui gérera la base de données snort
|-
|-
| valign="top" | <code><nowiki>insert into user values('localhost', 'user_snort', password('snort_pwd'),  
| valign="top" | <div class="code">insert into user values('localhost', 'user_snort', password('snort_pwd'),  
'Y', 'Y', 'Y', 'Y', 'Y', 'Y', 'Y', 'Y', 'Y', 'Y', 'Y', 'Y', 'Y', 'Y',  
'Y', 'Y', 'Y', 'Y', 'Y', 'Y', 'Y', 'Y', 'Y', 'Y', 'Y', 'Y', 'Y', 'Y',  
'Y', 'Y', 'Y', 'Y', 'Y', 'Y', 'Y', '', '', '', '', 'Y', 'Y', 'Y');</nowiki></code>
'Y', 'Y', 'Y', 'Y', 'Y', 'Y', 'Y', '', '', '', '', 'Y', 'Y', 'Y');</div>
| valign="top" | Création utilisateur MySQL "user_snort". Attention le nombre de 'Y' dépend de votre version de MySQL. (faites un <code>select * from user;</code> pour voir combien il faut en mettre)
| valign="top" | Création utilisateur MySQL "user_snort". Attention le nombre de 'Y' dépend de votre version de MySQL. (faites un <div class="code">select * from user;</div> pour voir combien il faut en mettre)
|-
|-
| valign="top" | <code>grant ALL PRIVILEGES ON SNORT.* TO user_snort@localhost IDENTIFIED BY 'snort_pwd' WITH GRANT OPTION;</code>
| valign="top" | <div class="code">grant ALL PRIVILEGES ON SNORT.* TO user_snort@localhost IDENTIFIED BY 'snort_pwd' WITH GRANT OPTION;</div>
| valign="top" | Attribution des droits de la base "snort" à l'utilisateur "user_snort"
| valign="top" | Attribution des droits de la base "snort" à l'utilisateur "user_snort"
|-
|-
| valign="top" | <code>flush privileges;</code>
| valign="top" | <div class="code">flush privileges;</div>
| valign="top" | Recharge les tables de droits pour prendre en compte les nouvelles modifications
| valign="top" | Recharge les tables de droits pour prendre en compte les nouvelles modifications
|-
|-
| valign="top" | <code>use snort;</code>
| valign="top" | <div class="code">use snort;</div>
| valign="top" | on se place dans la base où l'on veut créer les tables pour SNORT
| valign="top" | on se place dans la base où l'on veut créer les tables pour SNORT
|-
|-
| valign="top" | <code>Source create_mysql</code>
| valign="top" | <div class="code">Source create_mysql</div>
| valign="top" | Création des tables pour SNORT
| valign="top" | Création des tables pour SNORT
|}
|}


Vérifiez que les tables sont bien créées. Allez voir dans <code>/var/lib/mysql/snort</code> et vous y verrez tout un tas de fichiers correspondant au nom des tables de la base de données SNORT (il doit y avoir 3 fichiers par tables).
Vérifiez que les tables sont bien créées. Allez voir dans <div class="code">/var/lib/mysql/snort</div> et vous y verrez tout un tas de fichiers correspondant au nom des tables de la base de données SNORT (il doit y avoir 3 fichiers par tables).


Lancez SNORT. Désormais, SNORT envoie les informations dans la base de données (astuce : installez PhpMyAdmin, et vérifiez la taille de la base de données SNORT. Si tout fonctionne, vous la voyez augmenter si bien évidemment il y a du trafic !).
Lancez SNORT. Désormais, SNORT envoie les informations dans la base de données (astuce : installez PhpMyAdmin, et vérifiez la taille de la base de données SNORT. Si tout fonctionne, vous la voyez augmenter si bien évidemment il y a du trafic !).
Ligne 192 : Ligne 194 :
ACID est une interface PHP qui permet de visualiser les remontées d'alarmes générées par SNORT. Cette partie sous-entend que vous avez une base de données qui récupère les informations envoyées par SNORT. Avant de suivre l'installation de cette application, assurez-vous d'avoir téléchargé :
ACID est une interface PHP qui permet de visualiser les remontées d'alarmes générées par SNORT. Cette partie sous-entend que vous avez une base de données qui récupère les informations envoyées par SNORT. Avant de suivre l'installation de cette application, assurez-vous d'avoir téléchargé :


* [http://php.weblogs.com/adodb Adodb] : Contient des scripts PHP génériques de gestion de bases de données. L'installer dans la racine d'apache (<code>/var/www/html/adodb par exemple</code>)
* [http://php.weblogs.com/adodb Adodb] : Contient des scripts PHP génériques de gestion de bases de données. L'installer dans la racine d'apache (<div class="code">/var/www/html/adodb par exemple</div>)
* [http://www.phplot.com PHPlot] : librairie de scripts PHP utilisée par ACID pour présenter graphiquement certaines données statistiques (optionnel)
* [http://www.phplot.com PHPlot] : librairie de scripts PHP utilisée par ACID pour présenter graphiquement certaines données statistiques (optionnel)


Ligne 201 : Ligne 203 :
| valign="top" | '''REMARQUES'''
| valign="top" | '''REMARQUES'''
|-
|-
| valign="top" | <code>cd /var/www/html</code>
| valign="top" | <div class="code">cd /var/www/html</div>
| valign="top" | Placez-vous dans la racine du serveur web
| valign="top" | Placez-vous dans la racine du serveur web
|-
|-
| valign="top" | <code>tar -xvzf acid*</code>
| valign="top" | <div class="code">tar -xvzf acid*</div>
| valign="top" | Décompactage de ACID
| valign="top" | Décompactage de ACID
|-
|-
| valign="top" | <code>tar -xvzf adodb*</code>
| valign="top" | <div class="code">tar -xvzf adodb*</div>
| valign="top" | Décompactage de AdoDB
| valign="top" | Décompactage de AdoDB
|-
|-
| valign="top" | <code>tar -xvzf phplot*</code>
| valign="top" | <div class="code">tar -xvzf phplot*</div>
| valign="top" | Décompactage de PHPlot
| valign="top" | Décompactage de PHPlot
|-
|-
| valign="top" | <code>vi /var/www/html/acid/acid_conf.php</code>
| valign="top" | <div class="code">vi /var/www/html/acid/acid_conf.php</div>
| valign="top" |
| valign="top" |
Renseignez les champs suivants :  
Renseignez les champs suivants :  


* <code>$DBlib_path="../adodb";</code>
* <div class="code">$DBlib_path="../adodb";</div>
* <code>$Chartlin_path="../phplot";</code>
* <div class="code">$Chartlin_path="../phplot";</div>
* <code>alert_dbname="snort"</code>
* <div class="code">alert_dbname="snort"</div>
* <code>alert_host="localhost"</code>
* <div class="code">alert_host="localhost"</div>
* <code>alert_user="user_snort"</code>
* <div class="code">alert_user="user_snort"</div>
* <code>alert_password="snort_pwd"</code>
* <div class="code">alert_password="snort_pwd"</div>
|}
|}


Ligne 228 : Ligne 230 :


Sachez que ce document a pour but de vous apporter quelques éléments de réponse concernant l'installation et la configuration de l'IDS SNORT. Il est loin d'être parfait. Vos remarques sont les bienvenues. Je prévois de modifier le présent document suivant les remarques que vous y apporterez.
Sachez que ce document a pour but de vous apporter quelques éléments de réponse concernant l'installation et la configuration de l'IDS SNORT. Il est loin d'être parfait. Vos remarques sont les bienvenues. Je prévois de modifier le présent document suivant les remarques que vous y apporterez.
<br/>
<br/>
'''<b>[[Sécurité et vie privée|@ Retour à la rubrique Sécurité et vie privée]]</b>'''
<br/>


Pour me contacter : [mailto:guitarparts chez fr point st guitarparts chez fr point st]
Pour me contacter : [mailto:guitarparts chez fr point st guitarparts chez fr point st]


<div class="merci">Cette page est issue de la documentation 'pré-wiki' de Léa a été convertie avec HTML::WikiConverter. Elle fut créée par Julien Lecubin le 15/04/2003.</div>
Cette page est issue de la documentation 'pré-wiki' de Léa a été convertie avec HTML::WikiConverter. Elle fut créée par Julien Lecubin le 15/04/2003.


= Copyright =
= Copyright =
Copyright &copy; 15/04/2003, Julien Lecubin
Copyright &copy; 15/04/2003, Julien Lecubin
{{CC-BY-NC-SA}}
{{CC-BY-NC-SA}}
[[Category:Sécurité et vie privée]]

Dernière version du 19 décembre 2023 à 23:34

Installation de l'IDS SNORT

Installation de l'IDS SNORT

Introduction

Ce document va tenter d'expliquer les différentes étapes pour mettre en place le détecteur d'intrusions SNORT à partir des sources. Un détecteur d'intrusions s'appelle aussi "IDS" pour Intrusion Detection System. SNORT est un système de détection d'intrusions réseau en OpenSource, capable d'effectuer l'analyse du trafic en temps réel. On l'utilise en général pour détecter une variété d'attaques et de scans tels que des débordements de tampons, des scans de ports furtifs, des attaques CGI, des scans SMB, des tentatives d'identification d'OS, et bien plus.

Avant de commencer l'installation de SNORT, vous devez avoir installé :

PACKAGES REMARQUES
MySQL
La base de données MySQL
MySQL-client
La partie cliente de mysql (connexion BD)
php-mysql
le module php de mysql
Apache
Le serveur web Apache
mod_php
Le module php pour Apache
libpcap/libpcap0-devel

Librairie utilisée par SNORT pour capturer les paquets (rpm téléchargeable sur rpmfind.net)

gcc
indispensable pour compiler les sources de SNORT

Si vous n'avez pas encore installé le trio Apache/PHP/MySQL, il y a un article sur Lea vous expliquant comment le faire. C'est [../reseau/Apache_PHP_MySQL.php3 ici].

Les étapes pour l'installation de SNORT sont les suivantes :

  • Installation de l'outil SNORT
  • Installation des règles SNORT
  • Liaison Mysql et SNORT
  • Mise en place de ACID (Interface php pour visualiser les logs SNORT)

Installation de SNORT

Rappel : si votre distribution contient un paquetage pour snort, préférez utiliser ce paquetage plutôt que les sources. Certains puristes prétendrons qu'utiliser les sources c'est l'esprit Linux, mais ce sont surtout des problèmes de dépendances non gérées, des choix par forcément simple à faire sur l'utilisation de telle ou telle fonctionnalité du logiciel que l'on désire compiler.

Pour vérifier que votre distribution contient un paquetage pour snort, il faut utiliser l'outil de gestion de paquetage de celle-ci. Par exemple :

  • pour Ubuntu / Debian : apt-cache search snort
  • pour Mageia / Mandriva : urpmq snort
  • pour Gentoo : emerge -s snort
  • pour Slackware : swaret --search snort

Votre distribution contient aussi presque surement un outil graphique pour obtenir cette information.

Pour plus d'information sur ces questions, consulter cette documentation.

Téléchargez la dernière release de SNORT sur le site officiel, par exemple à l'adresse suivante : http://www.SNORT.org/dl . La compilation de ce programme reste traditionnelle :

COMMANDES REMARQUES
cd /usr/local/snort
...
tar -xvzf SNORT-1.9.*.tar.gz
Décompacte l'application
./configure --with-mysql=/usr/lib/mysql
Retirez l'argument
--with-mysql
si vous ne souhaitez pas rediriger les logs SNORT vers une base de données mysql *
make
Compilation
make install
Installation

Pour l'argument

--with-mysql

, vous pouvez l'adapter si vous utilisez une base de données autre que MySQL :

  • --with-odbc=$PATH_ODBC
     : pour une base de données Microsoft SQL server
  • --with-postgresql=$PATH_POSTGRE
     : pour une base PostegreSQL
  • --with-oracle=$ORACLE_HOME
     : pour une base de données Oracle.

Installation des règles SNORT

Maitenant, il faut télécharger les règles de SNORT. En effet, SNORT utilise des règles pour détecter les intrusions. Il existe aujourd'hui environ 1200 règles différentes. Ces règles se caractérisent par un ensemble de fichiers (ftp.rules, p2p.rules,telnet.rules etc...). Vous devez téléchargez les sources de ces règles à l'adresse suivante :
http://www.snort.org/pub-bin/downloads.cgi

Créez le répertoire de configuration SNORT, et installez-y les règles :

COMMANDES REMARQUES
mkdir /etc/snort
Création du répertoire contenant la configuration SNORT
cp /usr/local/snort*/etc/snort.conf /etc/snort
Copie du fichier de config snort dans /etc/snort
cp snortrules.tar.gz /etc/snort
Mise en place des règles dans le répertoire de configuration SNORT
cd /etc/snort
On se place dans le répertoire de configuration SNORT
tar -xvzf snortrules.tar.gz
Décompactage des règles

Les règles SNORT sont alors placées dans le répertoire

/etc/snort/rules

. Maintenant, Il faut éditer le fichier de configuration snort (

/etc/snort/snort.conf

) et spécifier le réseau sur lequel l'IDS travaille. Il faut pour cela modifier la variable

HOME_NET

 :

var HOME_NET [10.1.1.0/24] # SNORT travaille sur le réseau 10.1.1.0
var HOME_NET (10.1.1.0/24,192.168.1.0/24] # Si votre carte réseau possède 2 alias

Dans le fichier de configuration de SNORT (/etc/snort/snort.conf), vous avez toute une série de include. Il s'agit des règles utilisées par SNORT pour détecter d'éventuelles intrusions. Il y a des règles de telnet, ICMP, FTP, ... Bref, commentez celles que vous ne voulez pas et décommentez celles qui vous parait utile. Conseil : Décommentez les règles ICMP, car elles ne cessent pas de vous remonter des alarmes très souvent inutiles.

Pour des explications plus détaillées concernant les règles SNORT, allez voir ici.

Lancement de SNORT

Deux possibilités s'offrent à nous. Soit vous lancez SNORT tout seul, et dans ce cas, il génerera ces logs dans un fichier plat. Soit vous décidez de l'interfacer avec une base de données. Suivant le cas, SNORT ne se lancera pas de la même façon.

Sans Mysql :

/usr/local/snort*/src/snort -c /etc/snort/snort.conf -i eth0 -D

Avec Mysql :

/usr/local/snort*/src/snort -c /etc/snort/snort.conf

Remarque : Si vous souhaitez interfacer SNORT avec une base de données, ne lancez pas SNORT avec l'argument

-L

qui spécifie l'emplacement des logs.

Lier les logs SNORT avec MySQL

Maintenant, nous allons éditer le fichier de configuration de SNORT afin de lui indiquer qu'il faut rediriger les logs dans une base de données (ici MySQL). Avec vos yeux de lynx, retrouvez la ligne suivante dans le fichier de configuration SNORT

/etc/snort/snort.conf

 :

#output database:log,mysql,user=root password=test dbname=SNORT host=localhost

Décommentez et modifiez cette ligne par :

output database:log,mysql,user=user_snort password=snort_pwd dbname=snort host=localhost

Ici, l'utilisateur MySQL accédant à la base de données s'appelle "user_snort", son password associé est "snort_pwd", le nom de la base MySQL utilisée par snort est "snort" et la machine qui fait tourner la base Mysql est la même que celle où SNORT tourne.

Création de la base de données SNORT

Au préalable, assurez-vous d'avoir installé :

PACKAGES REMARQUES
MySQL-client-*
partie cliente de MySQL
MySQL-devel-*

Astuce : La commande "rpm -qa | grep client" vous permet de vérifier que votre station Linux possède bien ces packages installés.

Suivez alors les instructions suivantes :

COMMANDES REMARQUES
cd /usr/local/snort*/contrib
on se place à l'endroit du fichier contenant les tables SQL de SNORT
mysql -u root -p
Connexion à la base de données en tant qu'administrateur (au passage, si ce n'est pas encore fait, définissez un password pour l'administrateur de la base par la commande 'set password for root@localhost=PASSWORD('totomdp');
create database SNORT;
Création de la base de données SNORT
use mysql;
On se place ici pour créer l'utilisateur MySQL qui gérera la base de données snort
insert into user values('localhost', 'user_snort', password('snort_pwd'),

'Y', 'Y', 'Y', 'Y', 'Y', 'Y', 'Y', 'Y', 'Y', 'Y', 'Y', 'Y', 'Y', 'Y',

'Y', 'Y', 'Y', 'Y', 'Y', 'Y', 'Y', , , , , 'Y', 'Y', 'Y');
Création utilisateur MySQL "user_snort". Attention le nombre de 'Y' dépend de votre version de MySQL. (faites un
select * from user;
pour voir combien il faut en mettre)
grant ALL PRIVILEGES ON SNORT.* TO user_snort@localhost IDENTIFIED BY 'snort_pwd' WITH GRANT OPTION;
Attribution des droits de la base "snort" à l'utilisateur "user_snort"
flush privileges;
Recharge les tables de droits pour prendre en compte les nouvelles modifications
use snort;
on se place dans la base où l'on veut créer les tables pour SNORT
Source create_mysql
Création des tables pour SNORT

Vérifiez que les tables sont bien créées. Allez voir dans

/var/lib/mysql/snort

et vous y verrez tout un tas de fichiers correspondant au nom des tables de la base de données SNORT (il doit y avoir 3 fichiers par tables).

Lancez SNORT. Désormais, SNORT envoie les informations dans la base de données (astuce : installez PhpMyAdmin, et vérifiez la taille de la base de données SNORT. Si tout fonctionne, vous la voyez augmenter si bien évidemment il y a du trafic !).

Installation/Configuration ACID

ACID est une interface PHP qui permet de visualiser les remontées d'alarmes générées par SNORT. Cette partie sous-entend que vous avez une base de données qui récupère les informations envoyées par SNORT. Avant de suivre l'installation de cette application, assurez-vous d'avoir téléchargé :

  • Adodb : Contient des scripts PHP génériques de gestion de bases de données. L'installer dans la racine d'apache (
    /var/www/html/adodb par exemple
    )
  • PHPlot : librairie de scripts PHP utilisée par ACID pour présenter graphiquement certaines données statistiques (optionnel)

Le téléchargement de ACID se fait ici. Imaginons que la racine de votre serveur web est /var/www/html. Installez ACID dans la racine d'apache :

COMMANDES REMARQUES
cd /var/www/html
Placez-vous dans la racine du serveur web
tar -xvzf acid*
Décompactage de ACID
tar -xvzf adodb*
Décompactage de AdoDB
tar -xvzf phplot*
Décompactage de PHPlot
vi /var/www/html/acid/acid_conf.php

Renseignez les champs suivants :

  • $DBlib_path="../adodb";
  • $Chartlin_path="../phplot";
  • alert_dbname="snort"
  • alert_host="localhost"
  • alert_user="user_snort"
  • alert_password="snort_pwd"

Voilà, maintenant vous pouvez vérifier que ACID est bien configuré (allez voir sur http://localhost/acid). Si vous le souhaitez, L'accès peut se faire via certificat SSL de manière à crypter l'échange entre vous et le détecteur d'intrusions.

Sachez que ce document a pour but de vous apporter quelques éléments de réponse concernant l'installation et la configuration de l'IDS SNORT. Il est loin d'être parfait. Vos remarques sont les bienvenues. Je prévois de modifier le présent document suivant les remarques que vous y apporterez.




@ Retour à la rubrique Sécurité et vie privée


Pour me contacter : chez fr point st guitarparts chez fr point st

Cette page est issue de la documentation 'pré-wiki' de Léa a été convertie avec HTML::WikiConverter. Elle fut créée par Julien Lecubin le 15/04/2003.

Copyright

Copyright © 15/04/2003, Julien Lecubin

Creative Commons License
Creative Commons Attribution iconCreative Commons Share Alike iconCreative Commons Noncommercial
Ce document est publié sous licence Creative Commons
Attribution, Partage à l'identique, Contexte non commercial 2.0 :
http://creativecommons.org/licenses/by-nc-sa/2.0/fr/