Archives de catégorie : Réseau

Installer cacti à partir des sources

Après le tuto d’installation de cacti à partir des dépôt. Je vais très rapidement celui a partir des sources sur une ubuntu.

Télécharger la dernière version de cacti

# wget http://www.cacti.net/downloads/cacti-0.8.7d.tar.gz

Installer les dépendances (dont un LAMP)

# apt-get install apache2 libapache2-mod-php5 php5 php5-cli php5-mysql php5-gd php5-snmp mysql-client mysql-server libmysqlclient15-dev snmp snmpd rrdtool

Créer les groupes et user

# groupadd cacti
# useradd -g cacti cacti

Continuer la lecture de Installer cacti à partir des sources

Supervision avec cacti

Aller un petit tuto classique parmi les classiques : Un tuto d’installation et d’utilisation de cacti. Il y a 2 serveurs, le supervisé (A) et le superviseur (B) avec simplement comme paramètre a surveillé le CPU/RAM et BP. Je reviendrais dans un prochain post pour approfondir le monitoring.

En 3 étapes :
1 / Installation et configuration de Snmpd
2 / Installation et configuration de Cacti
3 / Exemple d’utilisation

1 / Installation et configuration de Snmpd

1.1 Installation

Sur le serveurs supervisé (A) et le serveur superviseur (B) comme cela on monitorera les 2.

#apt-get install snmpd snmp

1.2 Configuration

Pour que superviseur (B) puisse faire des requetes snmp sur supervisé (A) il faut modifié le fichier /etc/default/snmpd afin de ne pas limiter l’écoute a seulement le localhost.
Retirer 127.0.0.1

Continuer la lecture de Supervision avec cacti

Monitor ESX3.5i avec Nagios3 Centreon2 (1/2)

Je cherchais un moyen de surveiller des serveurs VMWare ESX3.5i (et plus généralement des ESX3*) avec Centreon2. J’ai rapidement trouvé le plugin check_esx3. Sur le papier, c’est un petit bijou! Chose qui se confirme dans la pratique. Cependant, sur ma Debian 4 (oui je sais la 5 est sortie), il me manquait des dépendances Perl, et le script a raler.

Dans l’histoire, il faut obtenir un compte sur le serveur ESX (utiliser le profil « read only ») car le script va se logguer sur le DataCenter/VirtualCenter.

Sans plus tarder, les étapes de l’installation !
Continuer la lecture de Monitor ESX3.5i avec Nagios3 Centreon2 (1/2)

Centreon 2 stable sur Ubuntu 8.04

Alors une petite note sur l’installation de Centreon 2 stable sur Ubuntu.

Il est plus sur de partir sur une installation de Ubuntu neuve.

Faite une mise à jour avant de lancer le script.

# apt-get update
# apt-get upgrade

Script d’installation automatique réalisé par Rodolfo Matos que j’ai mis à jour :

  • MAJ vers Nagios 3.0.6
  • MAJ vers nagios-plugins-1.4.13
  • MAJ vers Centreon stable 2.0
  • Suppression de l’installation de webmin
  • Correction du bug de l’installation de centreon (./install.sh -i)

# wget http://www.artiflo.org/divers/centreon/centreon-installer-v0.2
# chmod +x centreon-installer-v0.2
# bash centreon-installer-v0.2

Il se peut que lors de connexion vers centreon il y ai l’erreur :

NDO Database connection error

Si c’est le cas editer le fichier /usr/local/nagios/etc/ndo2db.cfg et vérifiez qu’il contiens bien ces lignes :

db_name=ndo
db_prefix=nagios_
db_user=ndo
db_pass=votrepass

Ensuite aller sur votre bdd et vérifier que les champs de la table cfg_ndo2db de la base centreon correspondent aux information citer au dessus.

Relancer enfin nagios et ndo2db (après avoir tué son process) ainsi :

#/etc/init.d/nagios restart
#/usr/local/nagios/bin/ndo2db-3x -c /usr/local/nagios/etc/ndo2db.cfg

Vous pouvez verifier que la configuratin de nagios est bonne ainsi :

/usr/local/nagios/bin/nagios -v /usr/local/nagios/etc/nagios.cfg

Source :

La doc officielle :
http://en.doc.centreon.com/Installation_Scripts_for_Centreon_2/fr

Le super article de nicolargo http://blog.nicolargo.com/2009/01/le-serveur-de-supervision-libre-part-1.html

Un autre bon article : http://www.geekhelpme.fr/tutoriels/systemes/linux/27-installer-nagios-centreon-sous-ubuntu.html

Ip_conntrack ou nf_conntrack: table full, dropping packet.

Un problème assez fréquent lors de petit DDOS, ou de monté en charge de serveur.

Le module ip_conntrack ou nf_conntrack permet le suivi de connections lorsque l’on utilise netfilter. Dans cette table est écrit toutes les connections ouvertes ces 5 derniers jours. Cela peut poser un problème lorsque cette table est pleine. Aucune connections n’est alors possible et la console renvoie le message suivant :

nf_conntrack: table full, dropping packet.

Ou

ip_conntrack: table full, dropping packet.

Il faut commencer par par regarder les valeurs par default :

#/sbin/sysctl -a | grep conntrack

Ce qui devrait donner quelques chose comme ça :

net.ipv4.netfilter.ip_conntrack_generic_timeout = 600
net.ipv4.netfilter.ip_conntrack_tcp_timeout_syn_sent = 120
net.ipv4.netfilter.ip_conntrack_tcp_timeout_syn_recv = 60
net.ipv4.netfilter.ip_conntrack_tcp_timeout_established = 432000
net.ipv4.netfilter.ip_conntrack_tcp_timeout_fin_wait = 120
net.ipv4.netfilter.ip_conntrack_tcp_timeout_close_wait = 60
net.ipv4.netfilter.ip_conntrack_tcp_timeout_last_ack = 30
net.ipv4.netfilter.ip_conntrack_tcp_timeout_time_wait = 120
net.ipv4.netfilter.ip_conntrack_tcp_timeout_close = 10
net.ipv4.netfilter.ip_conntrack_tcp_timeout_max_retrans = 300
net.ipv4.netfilter.ip_conntrack_tcp_loose = 1
net.ipv4.netfilter.ip_conntrack_tcp_be_liberal = 0
net.ipv4.netfilter.ip_conntrack_tcp_max_retrans = 3
net.ipv4.netfilter.ip_conntrack_udp_timeout = 30
net.ipv4.netfilter.ip_conntrack_udp_timeout_stream = 180
net.ipv4.netfilter.ip_conntrack_icmp_timeout = 30
net.ipv4.netfilter.ip_conntrack_max = 65536
net.ipv4.netfilter.ip_conntrack_count = 4983
net.ipv4.netfilter.ip_conntrack_buckets = 16384
net.ipv4.netfilter.ip_conntrack_checksum = 1
net.ipv4.netfilter.ip_conntrack_log_invalid = 0
net.netfilter.nf_conntrack_generic_timeout = 600
net.netfilter.nf_conntrack_max = 65536
net.netfilter.nf_conntrack_count = 4983
net.netfilter.nf_conntrack_buckets = 16384
net.netfilter.nf_conntrack_checksum = 1
net.netfilter.nf_conntrack_log_invalid = 0
net.netfilter.nf_conntrack_expect_max = 256
net.netfilter.nf_conntrack_tcp_timeout_syn_sent = 120
net.netfilter.nf_conntrack_tcp_timeout_syn_recv = 60
net.netfilter.nf_conntrack_tcp_timeout_established = 432000
net.netfilter.nf_conntrack_tcp_timeout_fin_wait = 120
net.netfilter.nf_conntrack_tcp_timeout_close_wait = 60
net.netfilter.nf_conntrack_tcp_timeout_last_ack = 30
net.netfilter.nf_conntrack_tcp_timeout_time_wait = 120
net.netfilter.nf_conntrack_tcp_timeout_close = 10
net.netfilter.nf_conntrack_tcp_timeout_max_retrans = 300
net.netfilter.nf_conntrack_tcp_loose = 1
net.netfilter.nf_conntrack_tcp_be_liberal = 0
net.netfilter.nf_conntrack_tcp_max_retrans = 3
net.netfilter.nf_conntrack_udp_timeout = 30
net.netfilter.nf_conntrack_udp_timeout_stream = 180
net.netfilter.nf_conntrack_icmp_timeout = 30

Bon la première chose à faire est de limiter le délai maximum d’une connexion de 432000 secondes ( soit 120 heures ou 5 jours)  à seulement 1 jours (ou moins).

Pour nf_conntrack :

# /sbin/sysctl -w net.netfilter.nf_conntrack_tcp_timeout_established=86400

Pour ip_conntrack :

# /sbin/sysctl -w net.ipv4.netfilter.ip_conntrack_tcp_timeout_established =86400

Ensuite si ce n’est pas déjà le cas augmenter le conntrack_max. Dans cet exemple je la passe à 64536 mais cela peut être beaucoup plus, tout dépend de la quantité de RAM que vous avez. Plus cette valeur sera élevé plus cela consommera de RAM.

Pour nf_conntrack :

# /sbin/sysctl -w net.netfilter.nf_conntrack_max=65536

Pour ip_conntrack :

# /sbin/sysctl -w net.ipv4.netfilter.ip_conntrack_max =65536

A présent il faut que vos configuration perdurent au prochain reboot. Pour cela rajouter les lignes précédentes dans le sysctl.conf.

# nano /etc/sysctl.conf

net.netfilter.nf_conntrack_max=65536.
net.netfilter.nf_conntrack_tcp_timeout_established=60
net.ipv4.netfilter.ip_conntrack_max =65536
net.ipv4.netfilter.ip_conntrack_tcp_timeout_established =60

Enfin redémarrer votre interface réseau.

# /etc/init.d/network restart

Comparatif et test de firewall

Voici quelques site qui donne tout un tas d’information sur les firewall sous Windows.

Celui ci permet de tester le firewall de votre machine avec plusieurs test avec des degrés de sécurité différent : http://www.pcflank.com

Celui ci applique une batterie de test sur les différent firewall pour Windows du marché et dresse une liste en les notants tous : http://www.matousec.com/projects/firewall-challenge/results.php

Firewall pour serveur dédié avec iptables

Firewall pour serveur dédié avec iptables

Ce script ce base sur iptables, il a pour but de bloquer tout le trafic entrant sur le serveur à part les service qui seront listé. Le trafic sortant n’est quand a lui n’est pas impacté.

Je créer un fichier firewall :

# nano /etc/init.d/firewall

#!/bin/bash
echo Setting firewall rules...
#
# config de base dedibox
# Florian Cristina
#v1.1

###### Debut Initialisation ######

# Vider les tables actuelles
iptables -t filter -F
iptables -t filter -X
echo - Vidage : [OK]

# Ne pas casser les connexions etablies
iptables -A INPUT -m state --state RELATED,ESTABLISHED -j ACCEPT
echo - Ne pas casser les connexions établies : [OK]

###### Fin Inialisation ######

##### Debut Regles ######

# Autoriser SSH
iptables -t filter -A INPUT -p tcp --dport 22 -j ACCEPT
echo - Autoriser SSH : [OK]

# Autoriser loopback
iptables -t filter -A INPUT -i lo -j ACCEPT
echo - Autoriser loopback : [OK]

# Autoriser ping
iptables -t filter -A INPUT -p icmp -j ACCEPT
echo - Autoriser ping : [OK]

# HTTP et HTTPS
iptables -t filter -A INPUT -p tcp --dport 80 -j ACCEPT
iptables -t filter -A INPUT -p tcp --dport 443 -j ACCEPT
iptables -t filter -A INPUT -p tcp --dport 8443 -j ACCEPT
echo - Autoriser HTTP et HTTPS : [OK]

# DNS
iptables -t filter -A INPUT -p tcp --dport 53 -j ACCEPT
iptables -t filter -A INPUT -p udp --dport 53 -j ACCEPT
echo - Autoriser DNS : [OK]

# FTP
modprobe ip_conntrack_ftp
iptables -t filter -A INPUT -p tcp --dport 20 -j ACCEPT
iptables -t filter -A INPUT -p tcp --dport 21 -j ACCEPT
echo - Autoriser FTP : [OK]

# Mail : POP, SMTP, IMAP
iptables -t filter -A INPUT -p tcp --dport 25 -j ACCEPT
iptables -t filter -A INPUT -p tcp --dport 110 -j ACCEPT
iptables -t filter -A INPUT -p tcp --dport 143 -j ACCEPT
echo - Autoriser Mail : [OK]

###### Fin Regles ######

###### Interdiction de tout entrant ######
# Interdire toute connexion entrante
iptables -t filter -P INPUT DROP
iptables -t filter -P FORWARD DROP
echo - Interdire toute connexion entrante : [OK]

echo Firewall mis a jour avec succes !

Je donne les droits d’exécution :

# chmod +x /etc/init.d/firewall

Une fois que vous l’avez tester et que cela fonctionne vous pouvez le mettre à chaque démarrage du serveur.

# update-rc.d firewall defaults 99

Merci à Rusty Russell et son How-To, il est la base de cette page. Et merci surtout pour son travail au sein de l’équipe de développement de Netfilter 🙂

Tester votre Firewall avec nmap

Tester votre Firewall avec nmap

Attention un scan de port sur un serveur qui ne vous appartient pas est considéré comme une attaque.

Afin de savoir si votre firewall fonctionne, vous pouvez utiliser l’utilitaire nmap (http://insecure.org/nmap/). Avec nmap vous allez chercher à savoir quel est l’état de vos ports.

Il y a 3 états possibles :

* open : Le port est ouvert et un service écoute le port.
* closed : Le port est ouvert mais il n’y a aucun service qui écoute le port.
* filtered : Le port est fermé.

Pour utiliser nmap, vous devez vous situer sur un autre serveur (ou de chez vous) et procéder ainsi :

#nmap IPduserveurcible -p leport