Monitorare la rete con Nagios tramite Iphone

Già da qualche anno monitoriamo la rete aziendale con Nagios, un prodotto eccezionale, sviluppato inizialmente da Ethan Galstad, al quale si è affiancata con gli anni una foltissima community. Negli ultimi giorni abbiamo configurato una vpn PPTP che ci permette di collegarci alla nostra rete attraverso l'Iphone. Attraverso poi la comodissima applicazione Touchmon for Nagios abbiamo a disposizione una semplice interfaccia che ci permette di verificare lo stato della nostra infrastruttura attraverso una visualizzazione molto chiara di host, hostgroup, servizi e problemi. Esiste poi la possibilità di fare "Acknowledge" dei problemi e di schedulare dei downtime.

Ma veniamo alla configurazione… per prima installiamo il software che ci permette di configurare la vpn pptp (io ho utilizzato una macchina con ubuntu 9.10, ma la vpn è configurabile su ogni tipo di sistema *nix like):

apt-get install pptpd

editiamo il file /etc/pptpd.conf e specifichiamo l'indirizzp ip sul quale pptpd si metterà in ascolto e gli indirizzi ip che verrano assegnati ai client che si connetteranno alla vpn:

nano /etc/pptpd.conf

alla fine del file aggiungere:

localip 192.168.0.x (ip della macchina sulla quale è installato il demone pptpd)
remote 192.168.0.x-y (dove x-y è un range di indirizzi a nostra scelta, della stessa network di localip)

modifichiamo (se il file non esiste lo creiamo con il comando touch) ora il file /etc/ppp/pptpd-options:

##################################################

# $Id: pptpd-options 4643 2006-11-06 18:42:43Z rene $#
# Sample Poptop PPP options file /etc/ppp/pptpd-options
# Options used by PPP when a connection arrives from a client.
# This file is pointed to by /etc/pptpd.conf option keyword.
# Changes are effective on the next connection.  See "man pppd".
#
# You are expected to change this file to suit your system.  As
# packaged, it requires PPP 2.4.2 and the kernel MPPE module.
##################################################

# Authentication

# Name of the local system for authentication purposes
# (must match the second field in /etc/ppp/chap-secrets entries)
name pptpd

# Optional: domain name to use for authentication
# domain mydomain.net

# Strip the domain prefix from the username before authentication.
# (applies if you use pppd with chapms-strip-domain patch)
#chapms-strip-domain

# Encryption
# Debian: on systems with a kernel built with the package
# kernel-patch-mppe >= 2.4.2 and using ppp >= 2.4.2, …
# {{{
refuse-pap
refuse-chap
refuse-mschap
# Require the peer to authenticate itself using MS-CHAPv2 [Microsoft
# Challenge Handshake Authentication Protocol, Version 2] authentication.
require-mschap-v2
# Require MPPE 128-bit encryption
# (note that MPPE requires the use of MSCHAP-V2 during authentication)
require-mppe-128
# }}}

# Network and Routing

# If pppd is acting as a server for Microsoft Windows clients, this
# option allows pppd to supply one or two DNS (Domain Name Server)
# addresses to the clients.  The first instance of this option
# specifies the primary DNS address; the second instance (if given)
# specifies the secondary DNS address.
# Attention! This information may not be taken into account by a Windows
# client. See KB311218 in Microsoft's knowledge base for more information.
ms-dns 10.133.0.236
#ms-dns 10.0.0.2

# If pppd is acting as a server for Microsoft Windows or "Samba"
# clients, this option allows pppd to supply one or two WINS (Windows
# Internet Name Services) server addresses to the clients.  The first
# instance of this option specifies the primary WINS address; the
# second instance (if given) specifies the secondary WINS address.
#ms-wins 10.0.0.3
#ms-wins 10.0.0.4

# Add an entry to this system's ARP [Address Resolution Protocol]
# table with the IP address of the peer and the Ethernet address of this
# system.  This will have the effect of making the peer appear to other
# systems to be on the local ethernet.
# (you do not need this if your PPTP server is responsible for routing
# packets to the clients — James Cameron)
proxyarp

# Debian: do not replace the default route
nodefaultroute

# Logging

# Enable connection debugging facilities.
# (see your syslog configuration for where pppd sends to)
#debug

# Print out all the option values which have been set.
# (often requested by mailing list to verify options)
#dump

# Miscellaneous

# Create a UUCP-style lock file for the pseudo-tty to ensure exclusive
# access.
lock

# Disable BSD-Compress compression
nobsdcomp

sembra complicato ma l'unica cosa che ho avuto la necessità di modificare è stata la riga ms-dns, dove ho inserito l'indirizzo del server dns che risolve i nomi delle macchine della nostra rete. E' una comodità in più, ma non è assolutamente indispensabile ai fini dell'implementazione della nostra vpn.

Abilitiamo poi l'ip forwarding sulle interfacce di rete della nostra macchina, che permetterà all'interfaccia ppp (che verrà creata nel momento in cui il client attiverà la connessione vpn) di comunicare con l'interaccia eth0 e quindi di raggiungere la rete che sta dietro a questa macchina. Per fare questo nel file /etc/sysctl.conf aggiungiamo:

net.ipv4.ip_forward = 1

Ora settiamo una password condivisa (metodo di certo non molto sicuro, è preferibile l'autenticazione tramite certificati, che ho trovato un po' laboriosa per quanto riguarda la configurazione su Iphone e che magari sarà argomento di uno dei prossimi articoli) per l'accesso alla vpn. Nel file /etc/ppp/chap-secrets aggiungiamo:

utente pptpd password *

questo indica che l'utente "utente" (ovviamente modificabile a piacere, così come la password), con la password "password", è abilitato a connettersi alla vpn con qualsiasi ip sorgente ("*"). E' possibile, se ad esempio sappiamo che l'utente "pippo", che utilizza la password "pluto", si connette utilizzando un ip statico (www.xxx.yyy.zzz), settare il file in questo modo

pippo pptpd pluto www.xxx.yyy.zzz

Infine riavviamo il demone pptpd:

/etc/init.d/pptpd restart

Ora ci sposiamo sul nostro Iphone:

da General -> Network -> VPN scegliamo PPTP

impostiamo l'indirizzo del server (che sarà un indirizzo pubblico di un router connesso a internet, sul quale avremo configurato un nat 1:1 sull'ip della macchina dove abbiamo installato pptpd), l'utente e la password (quelli specificati nel file /etc/ppp/chap-secrets). Manteniamo RSA SecurID impostato a "Off". La seguente immagine può aiutare a rendere la spiegazione più chiara:

Ora scarichiamo e installiamo l'applicazione TouchMon Lite for Nagios (gratuita, ma esiste la versione a pagamento, che con soli 12,99$ consente di fare Acknowledge" dei problemi e di schedulare dei downtime), attiviamo la vpn, lanciamo TouchMon e… abbiamo la nostra infrastruttura di rete sotto controllo!:)

 

Condividi :
  • Facebook
  • LinkedIn
  • Twitter

0 Responses to “Monitorare la rete con Nagios tramite Iphone”


  • No Comments

Leave a Reply