Category Archives: Linux

Installare Nagios su Debian

n questa breve guida vediamo come installare Nagios su Debian.

-Installare le applicazioni richieste da Nagios.

apt-get install build-essential gcc libgd2-xpm-dev libglib2.0-dev make

-Creare gli utenti e i gruppi richiesti da Nagios.
/usr/sbin/useradd nagios
passwd nagios
/usr/sbin/groupadd nagcmd
/usr/sbin/usermod -G nagcmd nagios
/usr/sbin/usermod -G nagcmd www-data

-Spostarsi in una directory in cui scaricare i file sorgente.
cd /usr/local/src/

-Scaricare i file sorgente.
wget http://prdownloads.sourceforge.net/sourceforge/nagios/nagios-3.2.1.tar.gz
wget http://prdownloads.sourceforge.net/sourceforge/nagiosplug/nagios-plugins-1.4.14.tar.gz

-Estrarre i file sorgente di Nagios.
tar -xvzf nagios-3.2.1.tar.gz

-Compilare e installare Nagios
cd nagios-3.2.1
./configure –with-command-group=nagcmd
make all
make install
make install-init
make install-config
make install-commandmode
make install-webconf

-A questo punto è possibile creare un account nagiosadmin da utilizzare per accedere all’interfaccia web.
htpasswd -c /usr/local/nagios/etc/htpasswd.users nagiosadmin

-Riavviare Apache
/etc/init.d/apache2 restart

-Una volta fatto questo, è possibile estrarre i file sorgente dei plugin scaricati in precedenza.
cd /usr/local/src
tar -xvzf nagios-plugins-1.4.14.tar.gz

-Compilare e installare i plugin.
cd nagios-plugins-1.4.14
./configure –with-nagios-user=nagios –with-nagios-group=nagios
make
make install

-Impostare Nagios in modo che venga eseguito all’avvio.
update-rc.d nagios defaults

-Verificare la configurazione di Nagios.
/usr/local/nagios/bin/nagios -v /usr/local/nagios/etc/nagios.cfg

-Avviare Nagios.
/etc/init.d/nagios start

A questo punto l’installazione di Nagios è completata e l’interfaccia web è raggiungibile.

Configurare e utilizzare Aide

In un articolo precedente, abbiamo visto come installare Aide, in questa breve guida analizziamo la configurazione e l’utilizzo dell’applicazione.

Aide è un ids, intrusion detection system, che si basa sul controllo dell’integrità dei file.

L’applicazione costruisce un database dei file specificati nel file di configurazione aide.conf, nel database venfono archiviati diversi attribuiti relativi ai file come permesi, utente, gruppo, dimensione, data di creazione e modifica e numero di link.
Aide crea inoltre un hash di ogni file utizzando uno degli algoritmi supportati.

Il database iniziale dovrebbe essere quindi creato sul server dopo l’installazione e prima del collegamento in rete, in questo modo si ha la situazione di partenza e risulta poi possibile controllare tutte le modifiche che si sono verificate.
Nel database dovrebbero essere salvate le informazioni relative ai file di sistema che non dovrebbero cambiare come librierie e file binari.

Nel caso si verifichino degli accessi non autorizzati al proprio server, risulta possibile confrontare il database attuale con quello di partenza per individuare modifiche ai file.

La configurazione di Aide si basa sul file aide.conf che ha un contenuto simile al seguente.

#AIDE conf

# Here are all the things we can check – these are the default rules
#
#p:      permissions
#i:      inode
#n:      number of links
#l:      link name
#u:      user
#g:      group
#s:      size
#b:      block count
#m:      mtime
#a:      atime
#c:      ctime
#S:      check for growing size
#I:      ignore changed filename
#md5:    md5 checksum
#sha1:   sha1 checksum
#sha256: sha256 checksum
#sha512: sha512 checksum
#rmd160: rmd160 checksum
#tiger:  tiger checksum
#haval:  haval checksum
#crc32:  crc32 checksum
#R:      p+i+l+n+u+g+s+m+c+acl+selinux+xattrs+md5
#L:      p+i+l+n+u+g+acl+selinux+xattrs
#E:      Empty group
#>:      Growing logfile p+l+u+g+i+n+S+acl+selinux+xattrs
#The following are available if you have mhash support enabled:
#gost:   gost checksum
#whirlpool: whirlpool checksum
#The following are available when explicitly enabled using configure:
#acl:    access control list
#selinux SELinux security context
#xattr:  extended file attributes

# You can alse create custom rules – my home made rule definition goes like this
#
MyRule = p+i+n+u+g+s+b+m+c+md5+sha1

# Next decide what directories/files you want in the database

/etc p+i+u+g     #check only permissions, inode, user and group for etc
/bin MyRule      # apply the custom rule to the files in bin
/sbin MyRule     # apply the same custom rule to the files in sbin
/var MyRule
!/var/log/.*     # ignore the log dir it changes too often
!/var/spool/.*   # ignore spool dirs as they change too often
!/var/adm/utmp$  # ignore the file /var/adm/utmp

In questo esempio all’interno del database vengono inclusi i file che si trovano nelle directory /etc, /bin e /sbin.
Vengono inoltre inclusi i file che si trovano in /var, escludendo però /var/adm/utmp e quelli che si trovano in /var/log e /var/spool.
Questi file vengono infatti modificati spesso e includendoli si ottiene un numero particolarmente elevato di segnalazioni.

Come è possibile notare dal file di esempio, gli elementi che possono essere controllati sono numerosi.
/etc p+i+u+g
In questa riga viene specificato che per i file presenti nella directory /etc devono essere controllati solo permessi, inode, utente e gruppo.

Una volta che si è completata la configurazione, è possibile creare il database iniziale.
aide -c aide.conf  –init

Aide crea, in fase di installazione, uno script in /etc/cron.daily/aide che verifica il sistema e invia una mail se vengono rilevati problemi.

Installare IonCube Loader

IonCube è uno strumento che permette di criptare il codice php in modo che non possa essere visualizzato e permette quindi di proteggere il codice sorgente.

Per riuscire a leggere i file criptati con ionCube, sul server deve essere installato IonCube Loader.

L’installazione risulta essere piuttosto semplie e veloce.
-Scaricare l’applicazione dal sito ufficiale all’indirizzo http://www.ioncube.com/loader_download.php

-Estrarre i file.
tar -xvzf ioncube_loaders.tar.gz

-Copiare il file ioncube-install-assistant.php nella root del proprio sito.
cp ioncube-install-assistant.php /home/www/html

-Accedere alla pagina copiata attraverso il browser.

http://www.dominio.com/ioncube-install-assistant.php

All’interno della pagina viene visualizzato il percorso in cui si trova il file php.ini.

-Spostare la cartella ioncube estratta in precedenza in /usr/local
mv ioncube /usr/local

-Modificare il file php.ini individuato in precedenza aggiungendo una nuova riga nella sezione in cui sono presenti le estensioni zend.

zend_extension = /usr/local/ioncube/ioncube_loader_lin_4.3.so

-Salvare il file e riavviare apache.

Sicurezza Linux – Sudo

Sudo permette a utenti non root di eseguire dei comandi come se fossero root.
Per limitare gli utenti e i file che possono utilizzare questa funzionalità è possibile modificare il file /etc/sudoers utilizzando il comando visudo

supporto ALL=/sbin/shutdown

Questa riga indica che l’utente supporto può eseguire shutdown come se fosse l’utente root su tutti gli host come è specificato da ALL

Sudo permette anche di specificare un utente diverso da root che viene usato quando si lancia un comando

supporto ALL=(mysql) /usr/local/bin/mysqld

Questa linea indica che l’utente supporto può eseguire mysqld come se fosse l’utente mysql

Sudo permette anche di specificare un gruppo invece che un singolo utente

%supporto ALL=/sbin/shutdown

Questa linea indica che tutti i membri del gruppo supporto possono eseguire shutdown come se fossero root

Per eseguire un comando utilizzando sudo basta semplicemente scrivere sudo prima del nome del comando in questo modo il sistema chiederà la password dell’utente e se questo utente rientra tra quelli autorizzati il comando verrà eseguito come root.