Zabbix, OcsInventory NG, GLPI su CentOs 5.7

Su un server con CPU Intel Core2 Duo E7400 @ 2.80GHz, 3GB RAM e HD Sata Western Digital da 300GB ho messo a punto un sistema per l’hardware e software inventory, asset management e monitoring per conto di un’azienda locale.

Per il sistema operativo la scelta è stata CentOs.

Avevo a disposizione un dvd con la release 5.2 di CentOs, ma un kernel panic in fase di installazione dovuto (come ho avuto modo di scoprire subito) ad un bug del driver della scheda di rete integrata Realtek  RTL8101E, mi ha costretto ad effettuare il download del primo degli 8 cd di installazione della release 5.7. Con questo solo cd, e customizzando la scelta dei pacchetti di installazione lasciando solo i base package, è possibile installare un sistema basilare e poi completare l’installazione dei vari pacchetti dai repository di rete.

Scopro con piacere che Windows 7 è in grado di masterizzare nativamente un’immagine ISO facendo click con il destro sul file di immagine e scegliendo il comando Masterizza immagine disco.

Continua a leggere

Lotus Notes 8.5 supporter

IBM crede molto nel pinguino, in particolar modo nelle sue qualità in ambiente enterprise. E così, in risposta alle tante richieste giunte dai clienti del gigante del software, Lotus Notes 8.5 supporterà in tutto e per tutto Ubuntu 7.10. Anche per Lotus Symphony si adotterà la stessa strategia.

L’iniziativa è stata annunciata durante la conferenza Lotusphere 2008 tenutasi a Orlando. Il rilascio dei due prodotti avverrà non prima della seconda metà dell’anno e utilizzerà Open Collaboration Client, il software dell’azienda basato su standard aperti. La decisione di Big Blue arriva dopo le numerose richieste giunte dai suoi clienti. Antony Satyadas, chief competitive marketing office per IBM Lotus, ha dichiarato che ad oggi sono molte le grandi aziende interessate a effettuare la migrazione verso GNU/Linux. In numeri, sono circa 100.000 gli utenti interessati a utilizzare Ubuntu Linux come unico sistema operativo per il desktop.

“È stato comunque interessante”, dice Satyadas, “constatare un costante e crescente interessamento verso GNU/Linux da parte dei clienti”. Prima 500, poi 1000 sino ad arrivare ai 100.000 odierni. “Utilizziamo Linux in tutte le nostre operazioni per offrire una sicura, ricca e meno costosa alternativa a Microsoft”, conclude Satyadas. E così, anche le grosse aziende cominciano ad affidarsi a GNU/Linux. Nei prossimi anni ne vedremo delle belle.

How-To: Recover root password under linux with single user mode

It happens sometime that you can’t remember root password. On Linux, recovering root password can be done by booting Linux under a specific mode: single user mode.
This tutorial will show how to boot Linux in single user mode when using GRUB and finally how to change root password.

During normal usage, a Linux OS runs under runlevels between 2 and 5 which corresponds to various multi-user modes. Booting Linux under runlevel 1 will allow one to enter into a specific mode, single user mode. Under such a level, you directly get a root prompt. From there, changing root password is a piece of cake.

1. Entering runlevel 1

Some Linux distribution, such as Ubuntu for instance, offer a specific boot menu entry where it is stated “Recovery Mode” or “Single-User Mode”. If this is your case, selecting this menu entry will boot your machine into single user mode, you can carry on with the next part. If not, you might want to read this part.

Using GRUB, you can manually edit the proposed menu entry at boot time. To do so, when GRUB is presenting the menu list (you might need to press ESC first), follow those instructions:

  • use the arrows to select the boot entry you want to modify.
  • press e to edit the entry
  • use the arrows to go to kernel line
  • press e to edit this entry
  • at the end of the line add the word single
  • press ESC to go back to the parent menu
  • press b to boot this kernel

The kernel should be booting as usual (except for the graphical splash screen you might be used to), and you will finally get a root prompt (sh#).

Here we are, we have gained root access to the filesystem, let’s finally change the password.

2. Changing root password

As root, changing password does not ask for your old password, therefore running the command:

# passwd

will prompt you for your new password and will ask you to confirm it to make sure there is no typo.

That’s it, you can now reboot your box and gain root access again

Dump installazione client TSM e DPM su server Suse SLES 9.3

Per un cliente del fabrianese ho recentemente curato l’installazione e la configurazione di un client Tivoli Storage Manager e del Tivoli Data Protection for Mail su un server con OS Suse SLES 9.3

I pacchetti del TSM installati erano versione 5.4.1-2

L’installazione è stata eseguita remotamente con una connessione ssh al server.

Ho appoggiato i pacchetti su un server http e li ho scaricati dal server SUSE con un comando wget creando alcune directory di servizio sotto /root

Tutti i pacchetti erano in formato RPM tranne il DPM il cui installer era in formato eseguibile.

Installazione delle api 5.4.1-2 con il comando rpm -Uvh

Installazione del client BA versione 5.4.1-2 con il comando rpm -Uvh

Installazione dei file dei messagi in italiano versione 5.4.1-2 con il comando rpm -Uvh

Dopo aver creato il file di ocnfigurazione /opt/tivoli/tsm/client/ba/bin/dsm.sys lanciando il comando dsmc per testare la corretta installazione veniva fuori il seguente errore.

Errore di shared library libgpfs.so non trovata al lancio di dsmc. Quindi:

  • Esecuzione di ldconfig
  • Edit del file /etc/ld.so.conf
  • Aggiunta della riga /opt/tivoli/tsm/client/api/bin

Creazione del link simbolico

dsm.sys -> /opt/tivoli/tsm/client/ba/bin/dsm.sys
nella directory
/opt/tivoli/tsm/client/api/bin

Esecuzione di TDP-Domino.i386.bin dalla directory /dpd/LK4T-3781-00/domino/linux86 con l’opzione –i perché non siamo su X

./ TDP-Domino.i386.bin –i console
./ TDP-Domino.msg.it_IT.i386.bin –i console

Esecuzione di dominstall dalla directory /opt/tivoli/tsm/client/domino/bin

./dominstall -console

Aggiunta al file /local/notesdata/.profile delle variabili contenute nel file

/opt/tivoli/tsm/client/domino/bin/domdsmc_<notes_user>/<notes_user>.profile

NOTA: <notes_user> va sostituito con l’utente sotto cui gira Domino.

export DSMI_LOG=/opt/tivoli/tsm/client/domino/bin/domdsmc_<notes_user>
export DSMI_CONFIG=/opt/tivoli/tsm/client/domino/bin/domdsmc_<notes_user>/dsm.opt
export DOMI_DIR=/opt/tivoli/tsm/client/domino/bin
export DOMI_LOG=/opt/tivoli/tsm/client/domino/bin/domdsmc_<notes_user>
export DOMI_CONFIG=/opt/tivoli/tsm/client/domino/bin/domdsmc_<notes_user>/domdsm.cfg
alias domdsmc=domdsmc_<notes_user>
export PATH=/opt/ibm/lotus/bin:/local/notesdata:$PATH

Aggiunta anche la seguente parte:

export LANG=it_IT
export LC_CTYPE=it_IT


File dsm.sys finale:

SErvername server_a
COMMMethod TCPip
TCPPort 1500
TCPServeraddress xxx.yyy.zzz

PASSWORDACCESS GENERATE
MANAGEDSERVICES SCHEDULE WEBCLIENT

SCHEDLOGNAME /var/log/dsmsched.log
SCHEDLOGRETENTION 15 D
ERRORLOGNAME /var/log/dsmerror.log
ERRORLOGRETENTION 15 D
NODENAME ?????
DOMNODE /opt/tivoli/tsm/client/domino/bin/domdsmc_<notes_user>/domdsm.cfg

SERVERNAME server_a_
<notes_user>
COMMMETHOD TCPip
TCPPORT 1500
TCPSERVERADDRESS xxx.yyy.zzz
PASSWORDACCESS GENERATE
SCHEDLOGNAME /var/log/dsmsched.log
SCHEDLOGRETENTION 15 D
ERRORLOGNAME /var/log/dsmerror.log
ERRORLOGRETENTION 15 D
PASSWORDDIR /opt/tivoli/tsm/client/domino/bin/domdsmc_
<notes_user>
NODENAME ?????_DOMINO


Creazione del Tivoli Storage Manager client acceptor daemon

File di init da creare nela directory /etc/init.d

Nominarlo dsm

Salva il file in /etc/init.d/ assegnandogli i permessi chmod 755. Poi esegui chkconfig dsm cosicché il comando venga inserito negli opportuni runlevels. Inoltre esecuzione di chkconfig dsm on (esecuzione automatica), e verifica delle corrispondenti directory /etc/init.d/rcx.d per verificare che il lnk simbolico sia stato creato.

#!/bin/sh
### BEGIN INIT INFO
# Provides: dsm
# Required-Start: $network $syslog $remote_fs
# Required-Stop: $network $syslog $remote_fs
# Default-Start: 3 5
# Default-Stop: 0 1 2 6
# Description: Tivoli Storage Manager client acceptor daemon
### END INIT INFO

# Check for existence of Binaries
DSMC_BIN=/opt/tivoli/tsm/client/ba/bin/dsmc
DSMCAD_BIN=/opt/tivoli/tsm/client/ba/bin/dsmcad

test -x $DSMC_BIN || { echo “$DSMC_BIN not installed”;
if [ “$1” = “stop” ]; then exit 0;
else exit 5; fi; }

test -x $DSMCAD_BIN || { echo “$DSMCAD_BIN not installed”;
if [ “$1” = “stop” ]; then exit 0;
else exit 5; fi; }

prog1=”dsmcad”
prog2=”dsmc”

export DSM_DIR=/opt/tivoli/tsm/client/ba/bin
export DSM_CONFIG=/opt/tivoli/tsm/client/ba/bin/dsm.opt
# senza gli export qui sotto si riceve un errore quando si carica il web client (applet)
# inoltre server per i nomi dei file con caratteri italiani tipo è ò à
export LANG=it_IT
export LC_CTYPE=it_IT

DSMCAD_PIDFILE=/var/run/dsmcad.pid
DSMC_PIDFILE=/var/run/dsmc.pid

. /etc/rc.status

# First reset status of this service
rc_reset

case “$1” in
start)
echo -n $”Starting $prog2: ”
startproc -f -p $DSMC_PIDFILE $DSMC_BIN sched >/dev/null 2>/dev/null
rc_status -v
echo -n $”Starting $prog1: ”
startproc -f -p $DSMCAD_PIDFILE $DSMCAD_BIN >/dev/null 2>/dev/null
rc_status -v
;;
stop)
echo -n $”Stopping $prog2: ”
killproc -p $DSMC_PIDFILE -TERM $DSMC_BIN
rc_status -v
echo -n $”Stopping $prog1: ”
killproc -p $DSMCAD_PIDFILE -TERM $DSMCAD_BIN
rc_status -v
;;
restart)
$0 stop
$0 start
rc_status
;;
status)
echo -n “Checking for DSMC”
checkproc $DSMC_BIN
rc_status -v
echo -n “Checking for DSMCAD”
checkproc $DSMCAD_BIN
rc_status -v
;;
*)
echo “Usage: $0 {start|stop|restart|status}”
exit 1
;;
esac
rc_exit

Modifica dei permessi ai files dsm* contenuti in /var/log affinché anche l’utente <notes_user> possa accederli in scrittura.

Test del data protection for domino

->su – <notes_user>

verifica delle variabili di ambiente con il comando env

Esecuzione dei seguenti comandi

->domdsmc query adsm -configfile=/opt/tivoli/tsm/client/domino/bin/domdsmc_<notes_user>/domdsm.cfg -adsmpwd=<password>

->domdsmc q adsm

->domdsmc q domino

Esecuzione del backup della names.nsf da riga di comando

->domdsmc sel names.nsf

Collegamento all’interfaccia web ed esecuzione del backup del db mail\xxxx.nsf

Collegamento all’interfaccia web ed esecuzione del backup di tutto il filesystem fatta eccezione per la directory /local/notes data

Creazione del command per la schedulazione di domino

Il file è /opt/tivoli/tsm/client/domino/bin/domdsmc_<notes_user>/domsel.sh

#!/bin/bash
#
# ===================================================================
# domsel.smp command file
#
# Command file containing commands to do a scheduled selective backup
# of Domino Databases to IBM Tivoli Storage Manager.
#
# This file is meant to be executed by the IBM Tivoli Storage Manager
# central scheduler in response to a defined schedule on the IBM Tivoli
# Storage Manager server.
#
# Complete paths must be given for all file names and non-system
# commands.
# ===================================================================
# Update DOM_ID with your Domino Server ID
# ===================================================================

DOM_ID=<notes_user>

export DOM_ID_DIR=/opt/tivoli/tsm/client/domino/bin/domdsmc_${DOM_ID}

# ===================================================================
# Put a date and time stamp in a log file for yourself.
#
# Note: You can change “domsched.log.sel” to whatever you prefer
# ===================================================================
date >> ${DOM_ID_DIR}/domsched.log.sel

# ===================================================================
# Now call the commandline to do the backups.
#
# Notes:
# 1) You can change “domsel.log” to whatever you prefer
# 2) domdsmc must be run by the Domino Server ID. If the scheduler
# is started from /etc/initab, root is the id that will be running
# this script. For this situation, we need to “su” to the Server
# ID before running domdsmc.
#
# ===================================================================

iam=`whoami`

if [ ${iam} = “root” ]
then
su – ${DOM_ID} -c “/opt/ibm/lotus/bin/domdsmc_${DOM_ID} selective “‘”*”‘” -subdir=yes -adsmoptfile=${DOM_ID_DIR}/dsm.opt -logfile=${DOM_ID_DIR}/domsel.log” >>${DOM_ID_DIR}/domsched.log.sel &
else
/opt/ibm/lotus/bin/domdsmc_${DOM_ID} selective ‘*’ -subdir=yes -adsmoptfile=${DOM_ID_DIR}/dsm.opt -logfile=${DOM_ID_DIR}/domsel.log >>${DOM_ID_DIR}/domsched.log.sel &
fi


Creazione sul server Tivoli Storage Manager della schedulazione SCHED_DOMINO_SUSE nel gruppo POL_DOM_SERVER associata al nodo ?????? (vedi il file dsm.sys definito in precedenza) per l’esecuzione del precedente comando.

Test della schedulazione.

INIT Script per il client Tivoli Storage Manager su piattaforma SUSE

Applicazione:

Il client Tivoli Storage Manager non viene fornito di uno script di INIT per la piattaforma SUSE Linux Enterprise: se ne hai bisogno puoi usare quello che segue.

Spiegazione:

Questo script di INIT consente di far partire il daemon relativo al client acceptor di Tivoli Storage Manager su piattforma SUSE Linux Enterprise.

Script:

Copia il testo qui sotto in un file nominato preferibilmente dsm.

#!/bin/sh
### BEGIN INIT INFO
# Provides:          dsm
# Required-Start:    $network $syslog $remote_fs
# Required-Stop:     $network $syslog $remote_fs
# Default-Start:     3 5
# Default-Stop:      0 1 2 6
# Description:       Tivoli Storage Manager client acceptor daemon
### END INIT INFO

# Check for existence of Binaries
DSMC_BIN=/opt/tivoli/tsm/client/ba/bin/dsmc
DSMCAD_BIN=/opt/tivoli/tsm/client/ba/bin/dsmcad

test -x $DSMC_BIN || { 
   echo "$DSMC_BIN not installed";	
   if [ "$1" = "stop" ]; 
      then exit 0;
   else exit 5; 
   fi; }

test -x $DSMCAD_BIN || {
  echo "$DSMCAD_BIN not installed";
	if [ "$1" = "stop" ]; 
           then exit 0;
 	else exit 5; 
        fi; 
}

prog1="dsmcad"
prog2="dsmc"

export DSM_DIR=/opt/tivoli/tsm/client/ba/bin
export DSM_CONFIG=/opt/tivoli/tsm/client/ba/bin/dsm.opt

DSMCAD_PIDFILE=/var/run/dsmcad.pid
DSMC_PIDFILE=/var/run/dsmc.pid

. /etc/rc.status

# First reset status of this servicerc_reset

case "$1" in  start)
    echo -n $"Starting $prog2: "
    startproc -f -p $DSMC_PIDFILE $DSMC_BIN sched >/dev/null 2>/dev/null
    rc_status -v    echo -n $"Starting $prog1: "
    startproc -f -p $DSMCAD_PIDFILE $DSMCAD_BIN  >/dev/null 2>/dev/null
    rc_status -v    ;
;  stop)
    echo -n $"Stopping $prog2: "
    killproc -p $DSMC_PIDFILE -TERM $DSMC_BIN
    rc_status -v    echo -n $"Stopping $prog1: "
    killproc -p $DSMCAD_PIDFILE -TERM $DSMCAD_BIN
    rc_status -v    ;
;  restart)
    $0 stop
    $0 start
    rc_status    ;
;  status)
    echo -n "Checking for DSMC"
    checkproc $DSMC_BIN
    rc_status -v
    echo -n "Checking for DSMCAD"
    checkproc $DSMCAD_BIN
    rc_status -v    ;
;  *)
    echo "Usage: $0 {start|stop|restart|status}"
    exit 1    ;
;
esacrc_exit

Salva il file in /etc/init.d/ assegnandogli i permessi chmod 755. Poi esegui chkconfig dsm cosicché il comando venga inserito negli opportuni runlevels. Inoltre se vuoi testarlo e lasciarlo partire automaticamente esegui chkconfig dsm on, e controlla le corrispondenti directory /etc/init.d/rcx.d per verificare che il lnk simbolico sia stato creato.

E’ più sicuro Windows o Linux?

Il sistema Windows è implicitamente  più difficile da rendere sicuro rispetto a Linux.
Una semplice verità.
Su tale argomento sono stati scritti fiumi di parole, ma forse con una coppia di immagini si può provare a fare una semplice constatazione.
Windows nel suo lunghissimo sviluppo è diventato così complesso che è ormai un compito arduo mantenerlo sicuro.
Le due immagini evidenziano tale situazione molto bene.

Tutte e due le immagini mostrano una mappa completa delle chiamate di sistema (systems call) che avvengono quando un web server deve “servire” una singola pagina html composta da una sola immagine. La stessa pagina e la stessa immagine. Per un hacker ogni system call è un’opportunità per cercare di infiltrarsi nella memoria del server. Il suo lavoro (quello dell’hacker) è di scoprire se una delle tante system call ha una vulnerabilità (nota tecnica: buffer overflow attack). Viceversa lo sviluppatore deve testare e garantire la qualità (e la sicurezza) di ognuna di queste chiamate.

Maggiore è il numero di system calls, maggiore è la possibilità di avere un sistema vulnerabile, maggiore è lo sforzo per rendere il sistema sicuro.

La prima figura mostra il numero di system calls che avvengono in un sistema Linux con Apache.

Syscall Apache su Linux

La seconda figura è un server Windows su cui gira IIS (Internet Information Server).

Syscall IIS su Windows

Un’immagine vale più di un milione di parole.

Lbera traduzione di un articolo di Richard Stiennon pubblicato su ZDnet il 14 aprile 2006 (Titolo originale: “Why Windows is less secure than Linux”).