Update : Installation de Cacti et des plugins Network Weathermap et Discovery

Adminstration Server Linux, Debian, Supervision 4 Comments »

Le tuto précédent étant dépassé, je ai refait l’installation à partir d’une debian squeeze et cacti 0.8.7g. Pour les détails et/ou explication référez vous à l’ancien tuto

Installation du serveur LAMP

aptitude update && aptitude full-upgrade
aptitude install apache2 mysql-server php5 php5-cli snmp rrdtool phpmyadmin php-pear unzip patch

Installation de cacti

aptitude install cacti cacti-spine

Installation du Plugin Architecture

cd /tmp
wget  http://mirror.cactiusers.org/downloads/plugins/cacti-plugin-0.8.7g-PA-v2.8.tar.gz
tar xvf cacti-plugin-0.8.7g-PA-v2.8.tar.gz
cd cacti-plugin-arch
cp cacti-plugin-0.8.7g-PA-v2.8.diff /usr/share/cacti/site/
cd /usr/share/cacti/site/
patch -p1 -N < cacti-plugin-0.8.7g-PA-v2.8.diff
mysql -u root -p cacti < /tmp/cacti-plugin-arch/pa.sql
vi include/config.php

Remplacer

$url_path = "/";

par

$url_path = "/cacti/";

Installation du Plugin Network Weathermap

cd  /usr/share/cacti/site/plugins
wget http://www.network-weathermap.com/files/php-weathermap-0.97a.zip
unzip php-weathermap-0.97a.zip
vi weathermap/editor.php

Remplacer

$ENABLED=false;

par

$ENABLED=true;
chown www-data weathermap/configs -R
chown www-data /usr/share/cacti/site/plugins/weathermap/output -R

Activation du plugin

-> User Management -> admin -> cocher [Plugin Management]

-> Plugin Management

aptitude update && aptitude full-upgrade

aptitude install apache2 mysql-server php5 php5-cli snmp rrdtool phpmyadmin php-pear unzip patch

Les paquets suivants ont des dépendances non satisfaites :
apache2-mpm-prefork: Est en conflit avec: apache2-mpm qui est un paquet virtuel
apache2-mpm-worker: Est en conflit avec: apache2-mpm qui est un paquet virtuel
Les actions suivantes permettront de résoudre ces dépendances :

Conserver les paquets suivants dans leur version actuelle :
1)     apache2-mpm-worker [Non installé]

Accepter cette solution ? [Y/n/q/?]Y

aptitude install cacti cacti-spine

ATTENTION : le répertoire d’installation a changé !                                                                                                        │
libphp-adodb n’est plus installé dans /usr/share/adodb. Le nouveau chemin d’installation (« include path » pour php) est maintenant /usr/share/php/adodb.  │
Veuillez mettre à jour votre fichier php.ini. Par ailleurs, vous devrez peut-être également modifier la configuration de votre serveur web.

cd /tmp
wget  http://mirror.cactiusers.org/downloads/plugins/cacti-plugin-0.8.7g-PA-v2.8.tar.gz
tar xvf cacti-plugin-0.8.7g-PA-v2.8.tar.gz

cd cacti-plugin-arch
cp cacti-plugin-0.8.7g-PA-v2.8.diff /usr/share/cacti/site/
cd /usr/share/cacti/site/

patch -p1 -N < cacti-plugin-0.8.7g-PA-v2.8.diff
mysql -u root -p cacti < /tmp/cacti-plugin-arch/pa.sql

vi include/config.php
$url_path = « /cacti/ »;

cd  /usr/share/cacti/site/plugins
wget http://www.network-weathermap.com/files/php-weathermap-0.97a.zip

vi weathermap/editor.php
$ENABLED=true;

chown www-data weathermap/configs -R

chown www-data /usr/share/cacti/site/plugins/weathermap/output -R

Installation de Cacti et des plugins Network Weathermap et Discovery

Administration des Réseaux, Adminstration Server Linux, Debian, Supervision 33 Comments »

Introduction

Cacti est un logiciel libre de supervision serveur basé sur la puissance de stockage de données de RRDTool. Il fonctionne grâce à un serveur web équipé d’une base de données et du langage PHP. Il peut-être considéré comme le successeur de MRTG et également comme une interface d’utilisation de RRDTool.

Il permet de représenter graphiquement divers statuts de périphériques réseau utilisant SNMP ou encore grâce à des scripts (Bash, PHP, Perl, VBs…) pour avoir par exemple l’espace disque restant ou bien la mémoire utilisée, la charge processeur ou le ping d’un élément actif. Les données sont récoltées auprès des différents agents SNMP (ou auprès des scripts locaux) grâce à un script php.

L’intérêt de ce logiciel réside principalement dans son principe de modèles (Templates) qui permet de créer de manière générique les graphiques afin de pouvoir les réutiliser. De manière générale, tout est modèle sous Cacti. Cela est avantageux lorsque de nombreuses données identiques doivent être observées, mais cela peut se révéler fastidieux à configurer lorsque les données sont hétérogènes.

Version des logiciels utilisés

Debian : Net Install Squeeze
Cacti : 0.8.7e-1.1
Plugin Architecture : 2.6

Installation du server LAMP

Une fois la distribution installée et la configuration réseau faites, on met à jour les dépôts et on met tous a jour, même si normalement tous doit être déjà à jour

aptitude update && aptitude full-upgrade

On installe maintenant le server apache2 avec php5 et mysql-server, plus d’autre outil nécessaire a cacti

aptitude install apache2 mysql-server php5 php5-cli snmp rrdtool phpmyadmin php-pear

Réponse aux questions durant l’installation :
Nouveau mot de passe du superutilisateur de MySQL : superpass
Confirmation du mot de passe du superutilisateur de MySQL : superpass
Serveur web à reconfigurer automatiquement: Apache2
Faut-il configurer la base de données de phpmyadmin avec dbconfig-common : oui
Mot de passe de l’administrateur de la base de données : superpass
Mot de passe de connexion MySQL pour phpmyadmin : laisser vide, il sera générer aléatoirement

Votre server web est fonctionnel, vous pouvez tester en allant sur http://ip-du-server/phpmyadmin

Installation de Cacti

aptitude install cacti cacti-spine

Réponse aux questions durant l’installation :
Faut-il configurer la base de données de cacti avec dbconfig-common : oui
Mot de passe de l’administrateur de la base de données : superpass
Mot de passe de connexion MySQL pour cacti : laisser vide, il sera générer aléatoirement
Type de serveur web: Apache2

Si tous c’est bien dérouler vous devriez avoir accès à l’interface de Cacti via cette adresse http://ip-du-server/cacti
Le login:password par défaut est admin:admin, il vous sera demandé de le changer immédiatement au premier login.
C’est terminer pour la partie installation de cacti

Installation du Plugin Architecture

Une grande force de Cacti est sa faculté d’utiliser des autres outils dans des plugins intégrés à son interface. L’avantage sera alors de pouvoir gérer plusieurs logiciels avec une seule plate-forme.

On le trouve sur le site http://cactiusers.org/downloads/

On commence par installer de quoi dézip et ensuite on télécharge l’archive

aptitude install unzip
cd /tmp
wget  http://mirror.cactiusers.org/downloads/plugins/cacti-plugin-0.8.7e-PA-v2.6.zip
unzip cacti-plugin-0.8.7e-PA-v2.6.zip

On copie les fichiers pré modifié dans cacti

cd /tmp/cacti-plugin-arch/files-0.8.7e
cp -r * /usr/share/cacti/site/

On met à jour la base de données

mysql -u root -p cacti < pa.sql

On va maintenant configurer et corriger quelque bug dans la configuration

cd /usr/share/cacti/site/
vi include/global.php

À la ligne 56 remplacer

$config['url_path'] = '/';

Par

$config['url_path'] = '/cacti/';

À la ligne 202 remplacer

include($config["library_path"] . "/adodb/adodb.inc.php");

Par

include("/usr/share/php/adodb/adodb.inc.php");

Le Plugin Architecture est installé et configuré, vous pouvez l’activé dans les permissions des utilisateurs
utilites -> user management -> admin -> Realm Permissions
Cochez Plugin Management

Ajout de plugins

On se place dans le dossier plugins de Cacti

cd  /usr/share/cacti/site/plugins

Network Weathermap

PHP Weathermap est un outil particulièrement utile qui génère des cartes graphiques pour mesurer les bandes passantes (en pourcentage ou en absolu) de vos liens réseaux.
Les cartes vont vous montrer s’il existe des goulots d’étranglements (bottlenecks) sur votre réseau et ainsi vous permettre de mettre à jour le bon lien réseau au lieu de les mettre à jour au hasard et à grand frais.

wget http://www.network-weathermap.com/files/php-weathermap-0.96a.zip
unzip php-weathermap-0.96a.zip
rm php-weathermap-0.96a.zip

Petite correction d’un bug connu

vi /usr/share/cacti/site/plugins/weathermap/setup.php

À la ligne 146 remplacer

if($_REQUEST["action"] == 'viewmapcycle')

Par

if (isset( $_REQUEST["action"] ) && $_REQUEST["action"] == 'viewmapcycle')

Discovery

Ce plugin ajoute la possibilité de découvrir automatiquement tous les périphériques d’un sous-réseau qui ne sont pas surveillées par Cacti et vous indique si SNMP est activé.
Disponible sur cactiusers.org

mkdir discovery
cd discovery/
wget http://cactiusers.org/downloads/discovery.zip
unzip discovery-0.8.5.zip
rm discovery-0.8.5.zip

Activation des plugins

Pour activer les plugins il suffit de remplir un tableau dans le fichier de configuration global

cd  /usr/share/cacti/site/
vi include/global.php

À la ligne 44 on remplace

$plugins = array();
//$plugins[] = 'thold';

Par

$plugins = array(
	'weathermap',
	'disco’
	) ;

Et enfin dans utilites -> user management -> admin -> Realm Permissions
Cochez:
Plugin -> Weathermap: Configure/Manage
Plugin -> Weathermap: View
View Host Auto-Discovery

Finalisation

On termine l’installation par créer le dossier rra si il n’a pas été créé automatiquement et on change le propriétaire des fichiers pour que tous fonctionne bien

mkdir  /usr/share/cacti/site/rra
chown www-data: -R usr/share/cacti/site

C’est fini, il ne vous reste plus cas ajouter vos devices et créer votre carte réseau.

Liens additionnels

Installation d’OpenVPN over HTTPS sous debian

Administration des Réseaux, Adminstration Server Linux, Debian 10 Comments »

Avant-propos

OpenVPN est un logiciel permettant de créer des réseaux privés virtuels sans utiliser des technologies telles que PPtP (Microsoft) ou IPSec. Il est de plus disponibles sur de nombreux systèmes d’exploitation (Microsoft Windows, GNU / Linux, MacOS X, …). C’est une solution simple pour gérer un réseau privé virtuel composé de machines hétéroclites dans un environnement n’autorisant pas IPSec.

Dans notre cas nous allons utiliser OpenVPN over HTTPS afin de contourner les éventuels restrictions que l’on trouve à l’école ou au boulot.

Voici un schéma du réseaux que nous allons mettre en place

tunnelvpn

Le server dispose de deux ips, l’une public et une autre privée pour le réseau VPN
Eth0 : 91.121.95.122
Tun0 : 172.16.0.1

Le client dispose également de deux ips, l’ip de l’interface normal donnant accès au net et l’ip du l’interface virtuel d’OpenVPN
Réseau local : 10.1.6.30
Interface virtuel 172.16.0.6

Voyons maintenant en détail l’installation et la configuration du server

Server OpenVPN

L’installation d’OpenVPN se fait simplement par la ligne de commande :

apt-get install openvpn openssl

Création du certificat de l’autorité de certification

La partie la plus compliquée et la plus fastidieuse dans la mise en place d’un serveur OpenVPN concerne la génération des clés et des certificats. OpenVPN est livré avec plusieurs scripts permettant de générer plus facilement les clés et les certificats pour OpenSSL. Ces scripts sont enregistrés dans le dossier « easy-rsa » :

cd /usr/share/doc/openvpn/examples/easy-rsa/2.0/

On maintenant configuré les variable du script, pour ce faire on édite le fichier vars :

Vi /usr/share/doc/openvpn/examples/easy-rsa/2.0/vars

Tous en bas on trouve :

export KEY_COUNTRY="BE"
export KEY_PROVINCE="Belgium"
export KEY_CITY="Namur"
export KEY_ORG="MajorXtrem"
export KEY_EMAIL="admin@majorxtrem.be"

Une fois le fichier modifié, la ligne suivante permet d’initialiser les variables pour les scripts :

source ./vars

Le script suivant, permet de créer ou de réinitialiser le sous-dossier « keys » :

./clean-all

Le script suivant permet de créer le certificat principal du serveur « ca.crt » et la clé correspondante « ca.key » :

./build-ca

Pour le « Common Name » il faut le renseigner manuellement, exemple le FQDN de la machine

Création du certificat et de la clé pour le serveur OpenVPN

Le script suivant permet de créer le certificat et la pour le serveur VPN

/build-key-server server

ATTENTION : Pour les questions, la plupart des champs sont renseignés par défaut sauf le « Common Name » qu’il faut renseigner manuellement. Exemple le FQDN de la machine

Pour les questions, tous les champs sont renseignés par défaut sauf le « Common Name » qu’il faut renseigner manuellement.
Je n’ai pas renseigné le champ « password »

Création du certificat et de la clé pour un client OpenVPN

Le script suivant permet de créer le certificat et la clé pour le client VPN.

./build-key johann-laptop

Lorsque le script vous pose des questions, utilisez les valeurs par défaut, mais faites bien attention de répondre y aux questions :
Pour le « Common Name » il faut le renseigner manuellement, exemple le FQDN de la machine
Sign the certificate? [y/n]: y
1 out of 1 certificate requests certified, commit? [y/n] y

Création du paramètre Diffie Hellman

Le script suivant permet de créer dans « keys » le fichier « dh1024.pem » :

./build-dh

Mise en place des certificats et des clés

concernant le serveur OpenVPN, le plus simple est de copier les 4 fichiers dans le dossier « /etc/openvpn » :

cp ./keys/ca.crt /etc/openvpn/
cp ./keys/ca.key /etc/openvpn/
cp ./keys/server.crt /etc/openvpn/
cp ./keys/server.key /etc/openvpn/
cp ./keys/dh1024.pem /etc/openvpn/

Création d’un utilisateur avec des droits limités pour OpenVPN

Pour limiter les risques d’attaques sur OpenVPN, il est important que le processus d’OpenVPN fonctionne sur un utilisateur n’ayant aucun droit sur le système.

Souvent, l’utilisateur « nobody » est utilisé par défaut, mais il est encore plus sécurisant de faire tourner chaque processus avec un utilisateur différent. Donc, pour le processus OpenVPN, nous allons créer l’utilisateur « openvpn » :

groupadd openvpn
useradd -d /dev/null -g openvpn -s /bin/false openvpn
chown openvpn:openvpn -R /etc/openvpn/

Génération d’une clef TLS

Nous allons maintenant générer une clef qui nous protègera de certains types d’attaques. Elle va nous permettre de créer un pare-feu HSA :

openvpn --genkey --secret /etc/openvpn/ta.key

Configuration d’OpenVPN

On va partir d’une configuration vierge

Mv /etc/openvpn/server.conf /etc/openvpn/server.conf_old
Vi /etc/openvpn/server.conf

Ensuite on copie la config suivante :

# Server configuration
mode server
dev tun
max-clients 4
port 443
port-share 91.121.95.122 4443
server 172.16.0.0 255.255.255.0
proto tcp
keepalive 10 120
persist-key
persist-tun
comp-lzo

# SSL parameters
ca ca.crt
cert server.crt
key server.key
dh dh1024.pem
tls-auth ta.key 0
tls-server

# VPN Gateway offer DNS parameters
push "dhcp-option DOMAIN majorxtrem.be"
push "dhcp-option DNS 172.16.0.1"
push "dhcp-option NTP 172.16.0.1"

# VPN Gateway offer this routes to clients
push "redirect-gateway"
push "route 172.16.0.0 255.255.255.0"
ifconfig-pool-persist ipp.txt

# Fix MTU problems
mssfix 1300

# Drop root privileges
chroot /etc/openvpn
user openvpn
group openvpn

#  Gestion des clients
client-to-client
client-config-dir ccd

# Logging configuration
status /var/log/openvpn-status.log
verb 1

Les paramètres port et port-share sont extrêmes important et requière une petite explication.

Le server OpenVPN tournera sur le port 443 pour pouvoir passer à travers d’éventuel proxy dans le cas ou l’accès direct au net n’est pas possible là ou vous vous trouvez. Ce pendant apache écoute aussi sur le port 443, on va donc dire a OpenVPN de transmettre les requêtes qui ne lui sont pas attribuer sur le port 4443. Il faut évidement configurer vos vhosts ssl apache sur le port 4443 et ne plus le mettre à l’écoute du port 443 mais 4443.

cat /etc/apache2/ports.conf
Listen 80
Listen 4443
cat /etc/apache2/sites-available/ssl
NameVirtualHost 91.121.95.122:4443
<VirtualHost 91.121.95.122:4443>
    …
    …

Pour le reste des option je vous invite a voir leur signification sur la doc d’OpenVPN (http://openvpn.net/index.php/documentation/manuals/openvpn-21.html)

Ne pas oublier de redémarrer apache et OpenVPN

/etc/init.d/apache2 restart
/etc/init.d/openvpn restart

Ne pas hésiter à regarder dans les logs que tout c’est bien passé :

tail -n 100 /var/log/syslog

Bien vérifier également que le processus tourne sous l’utilisateur « openvpn »

ps aux | grep openvpn

Pour finir, si tout c’est bien passé l’interface « tun0 » doit apparaître dans la configuration du réseau :

ifconfig tun0
tun0      Link encap:UNSPEC  HWaddr 00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00
          inet adr:172.16.0.1  P-t-P:172.16.0.2  Masque:255.255.255.255
          UP POINTOPOINT RUNNING NOARP MULTICAST  MTU:1500  Metric:1
          RX packets:22 errors:0 dropped:0 overruns:0 frame:0
          TX packets:22 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 lg file transmission:100
          RX bytes:1436 (1.4 KiB)  TX bytes:1436 (1.4 KiB)

Et il doit être possible de la pinguer :

ping 172.16.0.1

Configuration du NAT

L’objectif du VPN étant d’outre passé les limite du réseau dans le quel on se trouve, il serait peut-être utile d’activé le forward des paquet sur le server

echo 1 > /proc/sys/net/ipv4/ip_forward
iptables -t nat -A POSTROUTING -s 172.16.0.0/24 -o eth0 -j MASQUERADE

Voilà pour la partie serveur :) On va maintenant installer et configurer la partie client

Client OpenVPN sous Windows Seven

On télécharge la dernier version en date à savoir la 2.1_rc15 à partir du site d’OpenVPN ( http://openvpn.net/release/ ).
L’installateur ne fonctionne pas sous seven, il suffit de faire clic droit compatibilité et de choisir Windows XP SP3

Récupérer les key et certificats sur le serveur, ils se trouvent dans le dossier :
/usr/share/doc/openvpn/examples/easy-rsa/2.0/key/

Vous avez besoin de la clef et du certificat du client, du certificat racine ainsi que de la clef
○ johann-laptop.crt
○ johann-laptop.key
○ ca.crt

Vous avez également besoin de la clef TSL, elle se trouve dans le repertoire /etc/openvpn/
○ ta.key

Copiez ces 4 fichiers dans le répertoire conf C:\Program Files\OpenVPN\config du client

Lancer ensuite le GUI d’OpenVPN, et dans la zone de notification faites un clic droit dessus et sélectionner « edit config »

# Client configuration
client
dev tun
remote 91.121.95.122 443
proto tcp
resolv-retry infinite
nobind
persist-key
persist-tun
comp-lzo

# SSL parameters
ca ca.crt
cert johann-laptop.crt
key johann-laptop.key
tls-auth ta.key 1 

# Route and Network
route-method exe
route-delay 2
shaper 100000000 

# Log
verb 3

Sur l’icône dans la zone de notification faites connect

Si tous fonctionne bien, vous devriez être capable de pinguer le serveur via le tunnel

Ping 172.16.0.1

Démarrer une console et tappez route print

Network Destination	Netmask		Gateway		Interface	Metric
0.0.0.0		0.0.0.0		172.16.0.5	172.16.0.6	31
91.121.95.122		255.255.255.255	192.168.3.1	192.168.3.9	21

Vous devez avoir quelque chose de la sorte, a savoir que la passerelle par défaut est maintenant 172.16.0.5
Et que pour joindre le server VPN la route a prendre est l’ancienne passerelle par défaut

WP Theme & Icons by N.Design Studio
Entries RSS Comments RSS Connexion
ipv6 ready