Voici une procédure d'installation pour ntop avec supervision du service par daemontools.
Merci de m'indiquer toutes vos remarques : succès, échecs, manque de clarté, évolution, etc.
I Configuration du dépôt
Nous utiliserons le dépôt RPMforge (qui contient DAG, pour les connaisseurs). S'il est déjà configuré sur votre système, vous pouvez passer cette première étape :
- Code: Tout sélectionner
db yum_repositories set rpmforge repository BaseURL http://apt.sw.be/redhat/el4/en/\$basearch/dag EnableGroups no GPGCheck yes GPGKey http://dag.wieers.com/rpm/packages/RPM-GPG-KEY.dag.txt MirrorList http://apt.sw.be/redhat/el4/en/mirrors-rpmforge Name "Red Hat Enterprise $releasever - RPMforge.net - dag" Visible no status disabled
expand-template /etc/yum.smerepos.d/sme-base.repo
signal-event yum-update
Cette configuration oblige à spécifier l'utilisation de ce dépôt pour toute installation ; ce n'est pas très contraignant et beaucoup plus sûr !
II Installation
Installation de ntop et de ses dépendances (libart_lgpl, perl-rrdtool et rrdtool) :
- Code: Tout sélectionner
yum --enablerepo rpmforge install ntop
Pour ceux qui souhaitent utiliser la fonction "Local Network Traffic Map" (cf. image ci-dessous), il est nécessaire d'installer des paquets supplémentaires.
Installation de ces paquets et de leurs dépendances (chkfontpath, fonts-xorg-base, ttmkfdir, xorg-x11-font-utils, xorg-x11-xfs) :
- Code: Tout sélectionner
yum --enablerepo rpmforge install graphviz urw-fonts
[ -s /usr/share/fonts/fonts.cache-1 ] || rm -f /usr/share/fonts/fonts.cache-1
La dernière ligne permet de corriger un petit bug aléatoire...
Avant toute utilisation, il est nécessaire de définir le mot de passe du compte admin de ntop :
- Code: Tout sélectionner
ntop -A
III Configuration
La configuration passe par les mécanismes de SME dont voici un exemple basique :
- Code: Tout sélectionner
/sbin/e-smith/db configuration set ntop service HTTPPort 3000 access private status enabled
ntop sera donc lancé en service à chaque démarrage (status enabled) avec un accès uniquement depuis le réseau local (access private) et il sera accessible en HTTP sur le port 3000 (HTTPPort 3000).
Il est possible de le configurer en HTTPS (ex : HTTPSPort 3001), mais il doit exister un mécanisme dans SME qui en bloque l'accès ; si quelqu'un pouvait m'aider sur ce point, ça serait avec plaisir.
Si vous souhaitez que ce service soit accessible de l'extérieur, il faut le définir (access public) et ne pas oublier d'ouvrir le ou les ports (TCPPort 3000) ou (TCPPorts 3000,3001).
A noter que ntop considérera comme réseaux locaux tous ceux définis dans la "Gestion des réseaux locaux" du gestionnaire de serveur de SME.
Définition du template pour hosts.allow :
- Code: Tout sélectionner
mkdir -p /etc/e-smith/templates-custom/etc/hosts.allow
sed -e 's/sshd/ntop/g' /etc/e-smith/templates/etc/hosts.allow/sshd > /etc/e-smith/templates-custom/etc/hosts.allow/ntop
signal-event remoteaccess-update
IV Intégration à daemontools
Daemontools est utile pour relancer automatiquement un service en cas de plantage et comme il est très bien intégré dans SME, autant en profiter.
- Code: Tout sélectionner
mkdir -p /var/service/ntop/log
Créer le fichier /var/service/ntop/run qui doit contenir les lignes suivantes :
- Code: Tout sélectionner
#!/bin/sh
exec 2>&1
httpport=$(/sbin/e-smith/db configuration getprop ntop HTTPPort || echo 0)
httpsport=$(/sbin/e-smith/db configuration getprop ntop HTTPSPort || echo 0)
localsubnets=''
for i in `/sbin/e-smith/db networks keys`
do
localsubnets=$i/$(/sbin/e-smith/db networks getprop $i Mask),$localsubnets
done
localsubnets=${localsubnets%?}
exec /usr/bin/ntop --user ntop --db-file-path /var/ntop --http-server $httpport --https-server $httpsport --local-subnets $localsubnets
Créer le fichier /var/service/ntop/log/run qui doit contenir les lignes suivantes :
- Code: Tout sélectionner
#!/bin/sh
exec \
/usr/local/bin/setuidgid smelog \
/usr/local/bin/multilog t s5000000 \
/var/log/ntop
Et on finit l'intégration :
- Code: Tout sélectionner
chmod 755 /var/service/ntop/run /var/service/ntop/log/run
touch /var/service/ntop/down
mkdir /var/log/ntop
chown smelog.smelog /var/log/ntop
ln -s /var/service/ntop /service
ln -s ../daemontools /etc/init.d/supervise/ntop
ln -s /etc/rc.d/init.d/e-smith-service /etc/rc7.d/S93ntop
V Utilisation
Si le service est configuré avec (status enabled), il sera lancé automatiquement à chaque démarrage. Vous pouvez également le lancer en ligne de commande :
- Code: Tout sélectionner
/etc/rc7.d/S*ntop start
L'accès à l'interface web se fait depuis un navigateur en indiquant l'adresse du serveur et le port d'écoute de ntop (ex: http://monserveur.monsite.org:3000)
Si vous avez installé les paquets nécessaire à "Local Network Traffic Map", vous devez aller dans Admin/Configure/Prefrences et à la dernière ligne, créer un nouvel enregistrement :
- Code: Tout sélectionner
Preference = dot.path
Configured Value = /usr/bin/dot
Après chaque changement de configuration du service, n'oubliez pas de faire prendre en compte vos changements par le système. Par exemple :
- Code: Tout sélectionner
/sbin/e-smith/db configuration setprop ntop HTTPPort 5000
signal-event remoteaccess-update
/etc/rc7.d/S*ntop restart
Notez que le script /etc/init.d/ntop inclus dans le RPM ntop-3.3.8-1.el4.rf est buggé. Et pour une fois, c'est une bonne chose car vous ne devriez pas utiliser ce script pour gérer le service : seul /etc/rc7.d/S*ntop doit être utilisé.
Pour mémoire, le bug peut être corrigé en remplaçant la ligne [daemon $prog -d -L @/etc/ntop.conf] par [daemon $prog @/etc/ntop.conf -d -L]