iptables log analysis tool

 Introduction

Copies d'écran

Firewall Eyes est un outil d'analyse de logs en temps réel pour le pare-feu iptables. Grâce à une interface Web, vous visualisez et supervisez simplement et efficacement l'activité réseau traversant votre firewall.
Vous détectez aisément les activités suspectes et ajustez votre politique de sécurité.

Firewall Eyes est un logiciel open source sous licence GPL, vous pouvez le télécharger, le distribuer et l'utiliser sans contrainte, il est entièrement gratuit.
Ecrit en PHP, il fonctionne sous tout environnement Linux ou Windows.

La combinaison d'iptables avec les interfaces graphiques firewall Eyes et firewall Builder constitue une réelle alternative open source aux firewalls propriétaires, élevant le pare-feu libre à la portée de tous.

                    >>  Décrouvrez firewall Eyes : Démonstration


Suite à une demande croissante de ses clients,
Creabilis a développé un logiciel simple et efficace d'administration de leurs firewalls.
Vu l'accueil très favorable réservé à son produit, Creabilis a décidé de le mettre à la disposition de tous en l'ouvrant en open source.
iptables est le firewall open source statefull intégré au noyau Linux à partir de la version 2.4, plus d'infos sur http://www.netfilter.org/ Firewall Builder est une interface graphique permettant de définir facilement la politique de filtrage et de translation d'adresses d'iptables, plus d'infos sur http://www.fwbuilder.org/
 Fonctionnalités  Téléchargements
• Analyse les logs iptables (netfilter linux 2.4 ou plus).
• Affichage intuitif : couleurs, icônes, résolutions.
• Recherche élaborée permettant de suivre une adresse IP, un protocole.
• Résolution DNS et services tcp/udp.
• Fourni des informations réseau sur les adresses IP et les services (DNS lookup, ping, traceroute, whois, nmap, …).
• Gère plusieurs fichiers de logs et plusieurs firewalls.
• Ecrit en PHP.
• Interface HTML testée avec Internet Explorer 6 et Firefox 0.8 en résolution minimum de 800x600.

 firewallEyes-1.0-1.i386.rpm     32ko, md5

 firewallEyes1.0.tar.gz     27 ko, md5

 firewallEyes1.0.zip    33ko,  md5

 Contact & support
Vous souhaitez demander une amélioration, un support technique, poser une question ou soutenir le projet, contactez notre équipe à firewallEyes@creabilis.com.

 Utilisation
 Pré requis

Visualisation de l'activité en temps réel :
Vous choisissez le fichier de log à analyser, la boite à cocher "read from the end" et cliquez sur "GO".

Rafraîchissement automatique :

Si vous cochez "auto-refresh" la page sera rechargée tous les x secondes (delai configurable), sinon, cliquez sur GO pour actualiser les logs.

Informations réseau :
Cliquez sur les flèches pour obtenir les outils réseaux : ping, traceroute, whois, résolution DNS, nmap, ...

Recherche ciblée :
Vous pouvez spécifier des critères de recherche pour toutes les colonnes affichées (source, destination, port destination, règle, action …) en remplissant les champs de saisie. Par exemple : localhost dans la colonne source affiche uniquement les paquets provenant de localhost.
Vous pouvez rechercher sur plusieurs termes en les séparant par un espace : par exemple "80 443" dans la colonne "dst port" affiche les flux http et https.
Pour une recherche inverse, précédez votre critère par un point d'interrogation, par exemple !25 affiche tous les flux à l'exception des flux smtp.

  • Un serveur http (apache par exemple).
  • php 4 ou plus.
  • Linux iptables configuré pour écrire les logs sous le format suivant :
    Sep 24 04:03:17 host kernel: RULE 16 -- DENY IN=eth1 OUT=eth2 SRC=192.168.0.10 DST=10.3.3.25 LEN=48 TOS=0x00 PREC=0x00 TTL=122 ID=45323 DF PROTO=TCP SPT=1549 DPT=80 WINDOW=8192 RES=0x00 SYN URGP=0
    Utilisez le préfixe 'RULE [numéro de règle] – [action] ' grâce à l'option --log-prefix 'prefix' d'iptables. L'action peut être ACCOUNTING, DENY, REJECT ou ACCEPT.
    Par exemple :
    iptables -A RULE_3 -j LOG --log-level info --log-prefix "RULE 3 -- ACCEPT "

    Note : vous pouvez utiliser fwBuilder pour configurer votre firewall avec une interface graphique et des logs prêts à l'emploi pour firewall Eyes.

 

 Installation sous Linux  Configuration

Note: les logs (démon syslog) et firewall Eyes peuvent être sur une machine distincte du firewall.
 Installation automatique dans /var/www/html/firewallEyes :
rpm -i firewallEyes-1.0-1.i386.rpm

 Installation manuelle :

  • Téléchargez firewallEyes1.0.tar.gz dans /tmp/
  • Décompressez le fichier dans un répertoire firewallEyes/ accessible via http
    cd /var/www/html
    tar –xzvf /tmp/firewallEyes1.0.tar.gz

 Lancez l'url suivante dans un navigateur : http://[host]/firewallEyes/

Note : sécurisez l'accès à l'application en mettant en œuvre une authentification par .htaccess ou autre.

Via l'édition de configuration.php, vous configurez :

  • L'authentification par adresse IP (la liste des adresses IP clientes autorisées à accéder à l'application, par défaut, 127.0.0.1)
  • Le ou les fichiers de logs à analyser (accessibles par réseau, nfs, ftp ou http)
  • Les options par défaut d'affichage :
    • nombre de lignes
    • résolution DNS
    • résolution des services
    • lecture à partir de la fin du fichier
    • recherche exacte ou approchée
    • rafraîchissement automatique
  • Les colonnes affichées et leur largeur
  • Les outils réseau et web.

 

Contributions  
Mordread Wallas nous propose les modifications effectuées pour que FirewallEyes fonctionne avec les logs du Routeur Linksys WRT54G, avec le firmware Sveasoft.

1. configuration.php
Modification des indexes des champs :
$logFields[]=Array("date","1","60",null,null);
$logFields[]=Array("time","2","60",null,null);
$logFields[]=Array("intf","5","60",null,null);
$logFields[]=Array("source","6","150","ip","iptools");
$logFields[]=Array("destination","7","150","ip","iptools");
$logFields[]=Array("protocol","8","60","protocol",null);
$logFields[]=Array("src port","9","140",null,null);
$logFields[]=Array("dst port","10","140","service","srvtools");
//$logFields[]=Array("rule","9","30",null,null);
$logFields[]=Array("action","4","60",null,null);

Changement de la 1ere regex (remplacer XXXXX par l'ip du routeur):
$detectLine="/XXXXX/S";

Changement de la seconde regex:
$LineRegExp="/(\w+\s+\d+)\s+(\S+)\s+\S+.(\S+).(\S+).*IN=(\S+).*SRC=(\S+)\s+DST=(\S+).*PROTO=(\S+).*SPT=(\S+).*DPT=(\S+)/S";

2. log.css

Remplacer :
.DENY {
Par :
.DROP {