Ubuntu: Monitorer un serveur avec Monit

avril 23rd, 2011

Monit est un petit utilitaire sous Linux permettant la surveillance des services, périphériques et fichiers d’un serveur. Lorsequ’un élément surveillé change d’état, il envoie une notification par mail et peut effectuer les actions préalablement définies. Léger et simple à configurer, Monit adapté aux réseaux de petite taille, ou aux environnements ne nécessitant pas une solution telle que Nagios ou Zenoss.

 

 

 

 

 

 

 

 


Site Officiel

Documentation

Installation et configuration de Monit sur Ubuntu Server

I – Installation et configuration basique

1 -Installer via aptitude, Monit étant disponible à partir des dépôts officiels
apt-get install monit

2 -Editer /etc/monit/monitrc de la manière suivante:
set daemon  120 # Délai de rafraichissement 2 min
set logfile syslog facility log_daemon

# Serveur, expéditeur et destinataire pour le courrier d’alerte
set mailserver localhost
set mail-format { from: monit@domai.ne }
set alert user@domai.ne

# Port d’écoute et activation du SSL (générer un certificat SSL) pour l’interface web
set httpd port 2812 and
SSL ENABLE
PEMFILE /etc/ssl/certifica t.pem

# Nom d’utilisateur et mot de passe
allow admin:mot-de-passe

# Charge les fichiers fichiers de configuration des sondes dans le répertoire conf.d
include /etc/monit/conf.d/*

3 -Editer /etc/default/monit de la manière suivante:
startup=1

4 – Lancer le démon
service monit start
A partir de là, l’interface web devrait être accessible à l’adresse http://localhost:2812

II – Configuration des sondes
Comme défini précédement dans le fichier monitrc, la configuration des sondes est chargée depuis le repertoire conf.d. Pour des raisons de commodité, il est conseiller de créer 1 fichier par sonde.

Monitoring du démon ssh:
check process sshd with pidfile /var/run/sshd.pid
group ssh
start program « /etc/init.d/ssh start »
stop program « /etc/init.d/ssh stop »
if failed host 127.0.0.1 port 22 protocol ssh then restart
if 5 restarts within 5 cycles then timeout

Monitoring du démon apache:
check process httpd with pidfile /var/run/apache2.pid
group apache
start program = « /etc/init.d/apache2 start »
stop program = « /etc/init.d/apache2 stop »
if failed host 127.0.0.1 port 80
protocol http then restart
if 5 restarts within 5 cycles then timeout
if cpu is greater than 85% for 2 cycles then alert
if cpu > 90% for 5 cycles then restart
if children > 250 then restart

Monitoring du démon samba:
check process smbd with pidfile /var/run/samba/smbd.pid
group samba
start program = « /etc/init.d/smbd start »
stop  program = « /etc/init.d/smbd stop »
if failed host 192.168.7.4 port 139 type TCP  then restart
if 5 restarts within 5 cycles then timeout

Monitoring du démon mysql:
check process mysql with pidfile /var/lib/mysql/ns4.pid
group database
start program = « /etc/init.d/mysql start »
stop program = « /etc/init.d/mysql stop »
if failed host localhost port 3306 protocol mysql then restart
if 5 restarts within 5 cycles then timeout

Monitoring du démon postfix:
check process postfix with pidfile /var/spool/postfix/pid/master.pid
group mail
start program = « /etc/init.d/postfix start »
stop  program = « /etc/init.d/postfix stop »
if failed port 25 protocol smtp then restart
if 5 restarts within 5 cycles then timeout

Monitoring du démon dovecot:
check process dovecot with pidfile /var/run/dovecot/master.pid
start program = « /etc/init.d/dovecot start »
stop program = « /etc/init.d/dovecot stop »
group mail
if failed host ns4.net32.lan port 993 type tcpssl sslauto protocol imap for 5 cycles then restart
if 3 restarts within 5 cycles then timeout

Monitoring de la partition sde1:
check device sda1 with path /dev/sde1

if space usage > 85% then alert
group system

Monitoring d’un switch réseau:
check host cisco-SLM2008 with address 192.168.0.32

if failed icmp type echo count 5 with timeout 15 seconds
then alert

Notes Connexes:

Catégories: Procédures | Mots-clefs :, , | Commentaires fermés

Infections: Protéger sa clé USB

mars 8th, 2011

Les supports amovibles sont encore aujourd’hui un moyen d’infection largement utilisé par les programmes indésirables. Les menaces actuelles sont souvent polymorphes, et utilisent en effet tous les canaux de propagation. Ainsi,  après utilisation d’une clé USB sur des postes publics ou mal entretenus, il n’est pas rare d’y découvrir quel-qu’exécutables supplémentaires. Que faire lorsque l’on est amené à utiliser régulièrement un poste infecté dont nous n’avons pas la tâche d’administration? A défaut de pouvoir intervenir sur le poste, il s’agit ici de protéger au mieux son périphérique. L’éditeur d’antivirus TrustPort a d’ailleurs ciblé ce besoin avec une solution payante (TrustPort Antivirus USB).

/!\ Les solutions suivantes ne sont pas en mesure de prévenir d’un éventuel vol de données. Ce qui peut être lu, peut être copié. Si des données importantes sont stockés sur le média, il convient de les chiffrer avec un logiciel tel que TrueCrypt (TrueCrypt Portable Mode).

I- Empécher l’écriture d’un fichier
Le fichier « autorun.inf », très utilisé par les virus, est aujourd’hui bloqué par la plupart des logiciels antivirus, et n’est plus automatiquement chargé sous Windows à partir de Windows Xp SP3 (KB971029). Empêcher sa création est tout de même conseillé.

Méthode:
- Création d’un répertoire nommé « autorun.inf » avec les attributs « caché », « système » et « lecture seule ». Ainsi nommé il empêchera l’existence d’un fichier homonyme.
- Création d’un fichier utilisant un nom réservés par Windows. Placé à l’intérieur du répertoire autorun.inf, il verrouille plus efficacement sa suppression.
Source

En admettant que F soit la lettre assignée au lecteur concerné
mkdir F:\autorun.inf

attrib.exe +r +s +h F:\autorun.inf
(paramètre « r » pour lecture seule, « s » pour système, et « h » pour caché)
type nul > « \\?\f:\autorun.inf\nul.autorun »

La mesure ci-dessus empêche toute exécution automatique liée au lecteur, mais elle n’empêche pas l’installation des exécutables vérolés. Si l’on connait le type d’infection dont est sujet le poste, la même méthode permettra de s’en protéger. C’est ce que fait certains programmes de « vaccination de support amovible », en utilisant le nom des programmes infectieux les plus courants.

Exemple avec le cheval de Troie
TR/PSW.Magania.dbwz:
Agissements à l’encontre d’un périphérique de masse connecté: Installation d’un fichier « autorun.inf » et d’un exécutable nommé « dqm.exe ».

En admettant que F soit la lettre assignée au lecteur concerné
mkdir F:\dqm.exe
attrib.exe +r +s +h F:\dqm.exe
type nul > « \\?\f:\dqm.exe\nul.psw.magania »

II- Programme d’auto-désinfection
Il serait lourd et même difficile de filtrer efficacement ce qui doit ou ne doit pas être écris sur la clé. La méthode ici proposée est donc de désinfecter puis démonter le système de fichier après utilisation faite. On utilisera pour cela un script automatisant les opérations

Logiciels utilisés:
- Sysclean de TrendMicro: Un scanneur antiviral utilisable en ligne de commande. Gratuit, il  utilise les signatures à jour de l’éditeur.
- RemoveDrive 2.0: Un outil gratuit en ligne de commande permettant de « démonter » un périphérique amovible sous MS-DOS

a- Installation rapide:

  1. Télécharger et extraire l’archive Clean&Escape.zip à la racine du disque amovible
  2. Télécharger les dernières signatures en date et les placer dans le répertoire « usbin » du disque amovible.

Après utilisation sur un poste à risque, il suffira de lancer le script Clean&Escape.exe pour désinfecter puis démonter proprement la clé USB.

b- Installation manuelle:
Dans son fonctionnement normal, Sysclean s’auto-extrait par sécurité à chaque lancement. Pour une utilisation sur clé USB, ces fichiers seront extrait définitivement afin d’optimiser les temps d’exécution.

  1. Télécharger Sysclean et extraire le contenu de l’archive dans un répertoire temporaire
  2. Lancer Sysclean.com et récupérer les fichiers extraits lors de son fonctionnement
  3. Puis les copier dans un nouveau répertoire (nommé usbin dans cet exemple) à la racine de la clé
  4. Télécharger les signatures TrendMicro ainsi que RemoveDrive, et les placer également dans le répertoire « usbin » précédemment créé
  5. Créer un nouveau fichier texte (nommé Clean&Escape.bat dans cet exemple) à la racine de la clé et l’éditer de la manière suivante:

# Déclaration de la variable définissant la lettre assignée à la clé
set usbdrive=%cd%
# Lancement de l’analyse de la clé en mode console
usbin\sysclean.exe /NOGUI %usbdrive%
# Démontage propre du système de fichier. L’argument « . » est utilisé afin que le programme s’auto-duplique temporairement en évitant ainsi le problème de vérouillage du système de fichier.
usbin\RemoveDrive.exe .

 

2.

Notes Connexes:

Catégories: Procédures | Mots-clefs :, , | Commentaires fermés

BitDefender for Unices: Un scanneur antivirus gratuit sous Linux

janvier 7th, 2011

BitDefender for Unices, de la société roumaine éponyme, est un scanneur à la demande destiné aux systèmes d’exploitation basés sur UNIX (Linux/FreeBSD). Moins abouti que la solution commerciale « BitDefender Security for Samba« ,  il est cependant totalement gratuit (pour une utilisation personnelle), et dispose de la base de signatures ainsi que du moteur d’analyse heuristique de la marque. Enfin,  BitDefender for Unices est entièrement utilisable en ligne de commande, ce qui rend son intégration aisée.

Documentations (PDF): BitDefender for UnicesBitDefender Security for Samba

Procédure de mise place de BitDefender for Unices sur Ubuntu Server 10.10

1Installation
- Télécharger le paquet correspondant à l’architecture (32/64 bits)

- Installer le paquet en l’exécutant avec l’outil sh:
sh BitDefender-Antivirus-Scanner-x.x-x.linux-gcc4x.x.deb.run

2 - Configuration
Editer le fichier /opt/BitDefender-scanner/etc/bdscan.conf et modifier les paramètres suivants:

Key = xxxxxxxxxxxxxxxxxxxx
Permet de renseigner la clé d’activation récupérable via cette page.

#Extensions = xxx:xxx:xxx…
Défini les critères d’analyse par extension de fichier. La liste par défaut recense déjà les principaux types de fichiers potentiellement infectieux. Ce paramètre est donc a dé-commenter dans l’optique d’optimiser les analyses.

QuarantinePath = chemin
Désigne le réperoire ou stocker les fichier envoyés en quarantaine, de préférence sur un montage indépendant de la racine.

3 - Commandes et planification des analyses
Mise a jour de la base: bdscan –update
Analyse à la demande
: bdscan CIBLE –action=
[disinfect|quarantine|delete|ignore]

Planification des analyses:
Editer le fichier /opt/BitDefender-scanner/share/doc/examples/update/bdscan-update et rajouter la lignes suivante en fin de script :

# Finally, let’s scan the world !
$BDSCAN –action=ignore –no-list –log –verbose CIBLE | mail -s « BitDefender: Rapport d’Analyse » destinataire@domaine
Effectue une analyse seulement du dossier cible et envoi le rapport par mail au destinataire.

Copier le fichier ainsi modifié dans le repertoire correspondant:
Planification hebdomadaire:  /etc/cron.weekly
Planification mensuelle: /etc/cron.monthly

! Le processus d’analyse « bdscan » est très gourmand en ressources processeur.
Pour éviter le ralentissement des autres processus (voir le load average: uptime), rajouter nice -n 19 devant la commande bdscan.


Notes Connexes:

Catégories: Procédures | Mots-clefs :, , , | Commentaires fermés

UPS Eaton/MGE Ellipse: Monitoring avec NUT sous Ubuntu Server 10.10

janvier 5th, 2011

Si l’installation d’une alimentation sans interruption (UPS: Uninterruptible Power Supply) est une mesure de sécurité parfaitement efficace contre les micro-coupures, le contrôle de son fonctionnement demeure inévitable pour anticiper des coupures plus importantes. Network UPS Tools (NUT) est une solution efficace de monitoring sous Linux. Il supporte un grand nombre de modèles d’onduleurs, et notamment ceux de la marque Eaton (anciennement MGE).

Monitoring via pfSense

La procédure suivante concerne l’environnement suivant, mais reste adaptable selon le cas.

Système d’exploitation: Ubuntu Server 10.10
UPS
: Eaton Ellipse 600 ASR USB
Connectique
: Cable USB

1- Installation de Network UPS Tools
apt-get install nut

Après avoir interconnecté l’UPS au serveur via le cable usb, passer la commande « lsusb » pour déterminer le bus utilisé
lsusb => Bus 002 Device 005: ID xxxx:xxxx MGE UPS Systems UPS

Puis affecter le periphérique au groupe « nut »
chgrp nut /dev/bus/usb/

La commande « ls -l /dev/bus/usb/002″ devrait ainsi afficher les droits correspondants
=> crw-rw-r– 1 root nut 189, 129 2011-xx-xx xx:xx 005

2- Configuration de Network UPS Tools
Editer /etc/nut/nut.conf et modifier la valeur du paramètre MODE:
MODE=netserver

NUT se compose de deux démons. Upsd est en charge de communiquer avec l’UPS connecté localement, et Upsmon permet d’interroger Upsd en local ou a distance, et de définir des alertes.

Configuration de Upsd:

- Editer /etc/nut/ups.conf et déclarer le materiel:
[myups] #Nom du périphérique déclaré
driver = usbhid-ups #Driver à utiliser (voir liste)
port = auto
desc = « EATON Ellipse ASR USBS 600″
#Description destinée au client Upsmon

- Editer /etc/nut/upsd.conf et ajouter les paramètrages suivants:
MAXAGE 15 #Durée maximale d’un état
LISTEN 192.168.X.X 3493 #IP et port d’écouté
MAXCONN 32 #Nombre maximal de connections simultanées

- Editer /etc/nut/upsd.users et créer les utilisateurs (administrateur et superviseur):
[admin]
password = xxx
actions = SET
instcmds = ALL

[monitor]
password  = xxx
upsmon master

Configuration de Upsmon:
La configuration par défaut de /etc/nut/upsmon.conf se révèle satisfaisante pour le poste connecté a l’UPS. Elle se réfère donc au serveur Upsd local et automatise l’instinction du poste lorsque la batterie est détectée comme faible.

Pour les poste distants, il faudra configurer Upsmon selon les paramétrages suivants:
MONITOR myups@localhost 1 monitor xxx « master » #Machine et identifiants de monitoring
MINSUPPLIES 1 #Nombre minimal de périphérique
FINALDELAY 5 #Délai d’instinction aprés notification
HOSTSYNC 15 #Délai pour les client Upsd distants
SHUTDOWNCMD « /sbin/shutdown -h +0″ #Commande exécutée
POWERDOWNFLAG /etc/killpower #Fichier de sortie
POLLFREQ 5 #Délai de rafraichissement du statut de l’UPS
POLLFREQALERT 5 #
Délai de rafraichissement du statut de l’UPS lorsqu’il est sur batterie
DEADTIME 15 #Delai avant lequel l’UPS est considéré comme HS
NOCOMMWARNTIME 300 #Délai de notification lorsque l’UPS est HS
RBWARNTIME 43200 #Fréquence des notification de changement de batterie

REDEMARRAGE de la machine

—————————————————–

Pour les machines sous Windows, il existe WinNUT. Il peut tourner en tant que service et se configure de la même manière, en éditant le fichier upsmon.conf. La version 2.0.0.3 prend en charge la mise en veille prolongée. Sous Windows 7, il faudra le lancer en mode compatibilité Vista.

Sources et Informations connexes:
Site Officiel NUT: http://www.networkupstools.org/
Fiche produit Ellipse 600: http://powerquality.eaton.com/66765.aspx?CX=80
Guide NUT sur Developpez.com: http://ovanhoof.developpez.com/upsusb/
EATON UPS Software (Windows/Linux32-64): http://download.mgeops.com/explore/eng/ptp/ptp_sol.htm
Modèle NUT pour graphiques Cacti: http://www.eric-a-hall.com/software/cacti-nut/

Notes Connexes:

Catégories: Procédures | Mots-clefs :, , , | Commentaires fermés

Evernote: Synchroniser ses notes sur un serveur privé

novembre 1st, 2010

Evernote est une solution de centralisation de notes. Elle se compose d’un logiciel de gestion des notes et d’un service d’hébergement pour les centraliser. Porté sur la plupart des systèmes, le logiciel est efficace et agréable à utiliser. En revanche, le fait que les notes (potentiellement personnelles ou professionnelles) puissent être stockées sur le « nuage » pourra provoquer la réticence de certains (Politique de sécurité Evernote). Ceux qui n’utilisent que la version Windows de Evernote ont cependant la possibilité, moyennant quelque bidouillage, de bloquer les synchronisations vers les serveurs Evernote, et de centraliser les données sur un serveur personnel.

La méthode ici présentée nécessite l’accessibilité à partage (NetBIOS/Smb) pour y placer la base de données. Chaque client Evernote du réseau utilise donc la même base (initialement locale) pour lire ou écrire les notes. Aucun problème de verrouillage n’a été rencontré lors des tests, et cela même lors d’écritures simultanées dans la base.

I Bloquer les synchronisations vers les serveurs officiels:
Outils -> Options -> Synchronisation: Décocher « Synchroniser automatiquement »

Pour plus de sécurité, modifier la valeur « SyncServiceUrl » dans le registre.
[HKEY_CURRENT_USER\Software\Evernote\Evernote\] –> « SyncServiceUrl »= »127.0.0.1″

II Définir l’emplacement de la base de données:
Depuis Evernote, le paramétrage de l’emplacement de la base est limité aux chemins locaux. Il est en revanche possible de définir un emplacement réseau en éditant la clé de registre correspondante.

[HKEY_CURRENT_USER\Software\Evernote\Evernote\] –> « EvernotePath »= »\\serveur\partage »

Notes Connexes:

Catégories: Procédures | Mots-clefs : | Commentaires fermés

Rapatrier des mails sur un serveur local avec GetMail

mai 12th, 2010

GetMail est un outil sous Linux permettant de récupérer en local les mails d’un serveur distant. Il utilise pour cela les protocoles POP3 ou IMAP4 et supporte les connexions sécurisées SSL. Les mails récupérés pourront être redirigés vers un système de filtrage tel que Procmail ou être directement stockées aux formats Mbox et Maildir. Plus simple et plus léger que sont homologue Fetchmail, Getmail permettra d’effectuer des transfert vers un serveur mail local comme Postfix et Exim, ou tout simplement de sauvegarder des comptes distants.

Site Officiel / Documentation
Téléchargement

I- Installation:
Décompacter l’archive et exécuter « setup.py » depuis le répertoire extrait.
tar xzf
getmail-4.17.0.tar.gz
cd getmail-4.17.0
python setup.py install

Consulter la documentation pour une installation plus personnalisée.

II- Configuration:
La configuration standard se fait par le biais d’un fichier de configuration placé dans le « home » de chaque utilisateur utilisant Getmail. Il est cependant possible de créer des configurations nominatives et de lancer les transferts depuis un compte d’administration (voir documentation pour plus d’informations).

Créer le répertoire .getmail dans le home de l’utilisateur:
mkdir -m 0700 $HOME/.getmail

Créer le fichier getmailrc de la manière suivante dans le répertoire précédemment créé:
vi $HOME/.getmail/getmailrc

L’exemple suivant correspond à la configuration pour un compte Gmail. Le protocole POP3 en SSL semble poser problème, la moitié seulement du contenu ayant été récupéré lors de mes tests (>1000 mails). Il est donc préférable d’utiliser le protocole IMAP avec les comptes Gmail.

——————–  getmailrc  ————————
[retriever]
type = SimpleIMAPSSLRetriever
port = 993
server = imap.gmail.com
username = [email protected]
password =xxx

[destination]
type = Maildir
path = ~/Maildir/

[options]
verbose = 0
read_all = false
delete = false
delete_after = 0
message_log = ~/.getmail/log
———————————————————-

Détail des paramètres:
Retriever Type : Protocole de réception (SimplePOP3Retriever / SimpleIMAPRetriever / SimplePOP3SSLRetriever / SimpleIMAPSSLRetriever)
Port : Port d’écoute du serveur distant ( POP 110 / IMAP 143 / POP3S 995)
Server : Consulter la liste des adresse des principaux FAI
Username : Identifiants
Password : Mot de passe
Destination Type : Format de destination (Maildir / Mboxrd)
Path : Chemin de destination (~/Maildir/ pour Maildir, ~/inbox pour Mbox)
Verbose : Niveau de verbosité (de 0 a 2)
Read all : (1) Récupérer l’intégralité (0) Récupérer les nouveaux messages uniquement
Delete : Supprimer les messages après récupération (True/False)
Delete after : Supprimer au bout de X jours (0 – Désactivé)
Message log : Destination des fichiers de log

! La Récupération sur un compte Gmail en POP3 par SSL semble ne pas fonctionner convenablement,

III- Utilisation:
La récupération des mails s’effectue par l’exécution de la commande getmail sous le compte de l’utilisateur concerné.

Automatisation de la tâche par Crontab:
Éditerle fichier /etc/crontab et rajouter la ligne suivante:
*/10 7-21 * * * utilisateur getmail &> /dev/null
–> Récupération des mails toutes les 10 minutes de 7 h a 21 h

Notes Connexes:

Catégories: Procédures | Mots-clefs :, , , , | Commentaires fermés