Protezione [base] contro DOS

mod_evasive è un altro modulo di Apache in grado di aumentare la sicurezza del sistema proteggendoci da attacchi DOS e D-DOS sulla porta 80.
Gli attacchi di tipo DOS e D-DOS (Denial of Services e Distributed Denial of Services) sono attacchi atti a rendere inaccessibili i sistemi a causa di un intenso traffico dati. Grazie a questo modulo, però, riusciamo a prevenire questo tipo di attacco quando viene rivolto ad Apache in quanto il modulo tiene traccia del numero di connessioni provenienti da un determinato IP e, in caso di superamento della soglia, interviene bloccandole.
Per installare il modulo su Debian/Ubuntu è sufficiente lanciare il comando:

apt-get install libapache2-mod-evasive

Quindi creiamo la directory per i log:
mkdir -p /var/log/apache2/evasive
chown -R www-data:root /var/log/apache2/evasive

Ora creiamo un file di configurazione per il modulo:
/etc/apache2/conf.d/modevasive.conf
<IfModule mod_evasive20.c>
DOSHashTableSize 3097
DOSPageCount 5
DOSSiteCount 100
DOSPageInterval 1
DOSSiteInterval 1
DOSBlockingPeriod 600
DOSLogDir "/var/log/apache2/evasive"
</IfModule>

e riavviamo Apache:
/etc/init.d/apache2 restart

Per collaudare il funzionalmento del modulo, c’è un semplice script perl incluso con la documentazione:
# perl /usr/share/doc/libapache2-mod-evasive/examples/test.pl 
HTTP/1.1 200 OK
HTTP/1.1 200 OK
HTTP/1.1 200 OK
HTTP/1.1 200 OK
HTTP/1.1 200 OK
HTTP/1.1 200 OK
HTTP/1.1 200 OK
HTTP/1.1 200 OK
HTTP/1.1 200 OK
HTTP/1.1 200 OK
HTTP/1.1 200 OK
HTTP/1.1 200 OK
HTTP/1.1 200 OK
HTTP/1.1 200 OK
HTTP/1.1 200 OK
HTTP/1.1 200 OK
HTTP/1.1 200 OK
HTTP/1.1 200 OK
HTTP/1.1 200 OK
HTTP/1.1 200 OK
HTTP/1.1 200 OK
HTTP/1.1 200 OK
HTTP/1.1 200 OK
HTTP/1.1 200 OK
HTTP/1.1 200 OK
HTTP/1.1 200 OK
HTTP/1.1 200 OK
HTTP/1.1 200 OK
HTTP/1.1 200 OK
HTTP/1.1 403 Forbidden
HTTP/1.1 200 OK
HTTP/1.1 403 Forbidden
HTTP/1.1 403 Forbidden
HTTP/1.1 403 Forbidden
HTTP/1.1 403 Forbidden
HTTP/1.1 403 Forbidden
HTTP/1.1 403 Forbidden
HTTP/1.1 403 Forbidden
HTTP/1.1 403 Forbidden
HTTP/1.1 403 Forbidden
HTTP/1.1 403 Forbidden
HTTP/1.1 403 Forbidden
HTTP/1.1 403 Forbidden
HTTP/1.1 403 Forbidden
HTTP/1.1 403 Forbidden
HTTP/1.1 403 Forbidden
HTTP/1.1 403 Forbidden
HTTP/1.1 403 Forbidden
HTTP/1.1 403 Forbidden
HTTP/1.1 403 Forbidden
HTTP/1.1 403 Forbidden
HTTP/1.1 403 Forbidden
HTTP/1.1 403 Forbidden
HTTP/1.1 403 Forbidden
HTTP/1.1 403 Forbidden
HTTP/1.1 403 Forbidden
HTTP/1.1 403 Forbidden
HTTP/1.1 403 Forbidden
HTTP/1.1 403 Forbidden
HTTP/1.1 403 Forbidden
HTTP/1.1 403 Forbidden
HTTP/1.1 403 Forbidden
HTTP/1.1 403 Forbidden
HTTP/1.1 403 Forbidden
HTTP/1.1 403 Forbidden
HTTP/1.1 403 Forbidden
HTTP/1.1 403 Forbidden
HTTP/1.1 403 Forbidden
HTTP/1.1 403 Forbidden
HTTP/1.1 403 Forbidden
HTTP/1.1 403 Forbidden
HTTP/1.1 403 Forbidden
HTTP/1.1 403 Forbidden
HTTP/1.1 403 Forbidden
HTTP/1.1 403 Forbidden
HTTP/1.1 403 Forbidden
HTTP/1.1 403 Forbidden
HTTP/1.1 403 Forbidden
HTTP/1.1 403 Forbidden
HTTP/1.1 403 Forbidden
HTTP/1.1 403 Forbidden
HTTP/1.1 403 Forbidden
HTTP/1.1 403 Forbidden
HTTP/1.1 403 Forbidden
HTTP/1.1 403 Forbidden
HTTP/1.1 403 Forbidden
HTTP/1.1 403 Forbidden
HTTP/1.1 403 Forbidden
HTTP/1.1 403 Forbidden
HTTP/1.1 403 Forbidden
HTTP/1.1 403 Forbidden
HTTP/1.1 403 Forbidden
HTTP/1.1 403 Forbidden
HTTP/1.1 403 Forbidden
HTTP/1.1 403 Forbidden
HTTP/1.1 403 Forbidden
HTTP/1.1 403 Forbidden
HTTP/1.1 403 Forbidden
HTTP/1.1 403 Forbidden
HTTP/1.1 403 Forbidden
HTTP/1.1 403 Forbidden

List tutti i vhost di apache

Ecco uno script perl/bash dove tiro fuori formattati bene tutti i vhost di apache :

Modo più verboso :

 Bash | 
 
 copy code |
?

1
/usr/sbin/apache2ctl&nbsp;&minus;S&nbsp;2>&1&nbsp;|&nbsp;perl&nbsp;&minus;ne&nbsp;'m@.*port\s+([0&minus;9]+)\s+\w+\s+(\S+)\s+\((.+):.*@&nbsp;&&&nbsp;do&nbsp;{&nbsp;print&nbsp;"$2:$1\n\t$3\n";&nbsp;$root&nbsp;=&nbsp;qx{grep&nbsp;DocumentRoot&nbsp;$3};&nbsp;$root&nbsp;=~&nbsp;s/^\s+//;&nbsp;print&nbsp;"\t$root\n"&nbsp;};'

Modo meno verboso :

 Bash | 
 
 copy code |
?

1
#!/bin/bash
2
apache2ctl&nbsp;&minus;S&nbsp;2>&1&nbsp;|&nbsp;grep&nbsp;&minus;v&nbsp;Syntax&nbsp;|&nbsp;perl&nbsp;&minus;ne&nbsp;'m@.*port\s+([0&minus;9]+)\s+\w+\s+(\S+)\s+\((.+):.*@&nbsp;&&&nbsp;do&nbsp;{&nbsp;print&nbsp;"$2:$1\n";};'

Mysql Proxy

Vi è mai capitato di dover configurare un’applicazione in modo che in un’archiettura mysql master/slave scriva automaticamente sul master e legga dagli slave senza modificare l’applicativo ?

Mysql-proxy è quello che fa per te !

MySQL Proxy è un programma che si interpone fra un client e un server MySQL, per consentire di effettuare operazioni sul traffico di dati, in maniera trasparente per l’utente. MySQL Proxy usa il protocollo client/server esteso di MySQL, introdotto con la versione 4.1. Pertanto, questa applicazione è compatibile con i server dalla versione 4.1 e superiore.

MySQL Proxy è un’applicazione molto leggera (200 KB in compilazione dinamica, 1.5 MB in compilazione statica con le librerie), che è stata disegnata per interporsi fra un client e un server MySQL ed eseguire operazioni sui pacchetti inviati e ricevuti.
Il programma ha poche opzioni di configurazione. La caratteristica che lo rende interessante e funzionale è un interprete Lua integrato, grazie al quale è possibile analizzare ed eventualmente modificare i pacchetti passati fra client e server.
Il client non si accorge del Proxy, che agisce da man in the middle. Il client si connette con le solite credenziali. Il Proxy intercetta la richiesta e si collega al server. Da quel momento, ogni query inviata dal client e i relativi risultati restituiti dal server passano attraverso il Proxy.

Si noti che MySQL Proxy non è un’applicazione di malware, anche se la definizione resa sopra, con la sua possibilità di intercettazione, potrebbe farlo credere. L’uso del Proxy è trasparente per il client, in materia di protocollo, ovvero il client usa il server tramite il Proxy senza avvertire differenze (tranne quando usa funzioni esplicitamente create per il Proxy). Ma il Proxy usa una porta diversa dal server, e pertanto, anche se l’uso è trasparente per l’applicazione, l’amministratore è conscio della sua esistenza. L’uso del Proxy senza consenso di una delle due parti non è possibile. Il Proxy può essere usato dall’amministratore, per ampliare le funzionalità del server, o dall’utente, per lo stesso motivo. Nel primo caso, il Proxy sarà visibile a tutti gli utenti. Nel secondo caso solo l’utente che l’ha installato nella sua macchina è al corrente delle funzioni estese.

Nella sua forma essenziale, MySQL Proxy è uno strumento di ridirezione, che passa un pacchetto di richiesta dal client al server, prende dal server i risultati, e li passa al client. Nel passaggio di dati, il Proxy può intervenire, ed effettuare operazioni sulla query prima che venga inviata, o sui risultati, prima che vengano restituiti. Le modifiche vengono effettuate tramite script in Lua, che usano funzioni predefinite per alterare lo stato dei pacchetti. Le funzioni sono le seguenti:

  • connect_server in cui si può agire al momento della connessione al server;
  • read_handshake che avviene immediatamente dopo la connessione;
  • read_auth in cui si passano al server le credenziali di accesso;
  • read_auth_result dove viene ricevuto il risultato dell’operazione precedente;
  • read_query che si attiva per ogni query inviata al server;
  • read_query_result che viene richiamata quando il Proxy riceve il risultato di una query modificata;
  • disconnect_client che si attiva quando un client viene disconnesso.

Ecco come l’ho configurato ed installato  su Ubuntu per avere uno splitting r/w :

apt-get install mysql-proxy

Mi sono crato uno script dentro /root/scritpt/proxy.sh :
#!/bin/bash

MASTERDB=server1
SLAVEDB01=server2

LUA_PATH="/usr/share/mysql-proxy/?.lua" /usr/sbin/mysql-proxy \
 --daemon \
 --proxy-backend-addresses=$MASTERDB:3306 \
 --proxy-read-only-backend-addresses=$SLAVEDB01:3306 \
 --proxy-lua-script=/usr/share/mysql-proxy/rw-splitting.lua

e gli ho assegnato i permessi di esecuzione con chmod.
Notare che lo script puo’ essere modificato per avere + slave.

 A questo punto facciamo partire automaticamente lo script creando un file in /etc/init.d/mysql-proxy :

#!/bin/bash
#
# mysql-proxy: Start mysql-proxy in daemon mode
#
# Author: OpenX
#
# chkconfig: - 99 01
# description: Start mysql-proxy in daemon mode with r/w splitting
# processname: mysql-proxy
start(){
 echo "Starting mysql-proxy..."
 /root/script/proxy.sh
}
stop(){
  echo "Stopping mysql-proxy..."
  killall mysql-proxy
}

case "$1" in
start)
start
;;
stop)
stop
;;
restart)
stop
start
;;
*)
echo "Usage: mysql-proxy {start|stop|restart}"
exit 1
esac

Occhio alle perfomance pero’ ! 
http://www.mysqlperformanceblog.com/2009/06/09/mysql-proxy-urgh-performance-and-scalability/ 

Bash script cambio password

Personalmente me lo sono scrittp per cabiare qualcosa come 54 password ftp.

Non volendolo fare a mano sono ricorso al solito bash

Gli utenti nei sistemi Linux sono contenuti in questo file  /etc/passwd
e si presentano in questo modo :

test.it:x:526:526:test.it:/home/test.it:/bin/sh

Per prima cosa elimino tutto quello che non mi serve :
awk -F":" '{ print $1 }' /etc/passwd > user.txt

ed ottengo quindi solo lo user :
test.it

A questo punto ecco che entra in azione lo script vero e proprio :

#!/bin/bash

function randpass
{
echo `</dev/urandom tr -dc A-Za-z0-9 | head -c8`
}

for i in `more ftp_ok`
do
p=`randpass`
echo $i $p

echo $p | passwd –stdin $i
done

Il gioco è fatto !

 

Allineare mysql slave

Cosa succede se si fa una bella insert sul nostro database mysql slave?
Due cose :

  1. Lo slave server si disallinea
  2. Il sistemista bestemmia 
Per controllore lo stato dello slave bisogna lanciare dallo slave :

mysql> show slave status\G 

Lo Slave utilizza piu’ thread. Il primo e’ una connessione remota al Master ed ha il compito di raccogliere i dati dal bin-log (BinLog Dump) ed e’ sempre attivo. Gli altri thread sono locali ed hanno il compito di ricevere il contenuto del bin-log (Slave I/O) e di applicarlo alla base dati (Slave SQL). In caso d’errore nell’inserimento dei dati il thread Slave SQL si interrompe mentre lo Slave I/O continua a raccogliere i dati dal Master. Con show slave status\G si ottiene l’indicazione dell’errore occorso; una volta corretto il problema la replicazione riprende dal punto in cui si era interrotta applicando il relay-log. 

Per risolvere il problema numero 1 bisogna seguire questa facile guida :

1. Stoppare sugli SLAVE SERVER il servizio di replica :

mysql> stop slave;

2. Lokkare le tabelle sul MYSQL MASTER (occhio a non uscire da mysql altrimenti questo comando viene flushato)
mysql> FLUSH TABLES WITH READ LOCK;

3. Effettuare un dump completo e copiarli sullo/i SLAVE/s :
mysqldump --all-database > databases.sql -u root -p 

4. Restore DB sugli SLAVE
mysql -u root -p databases.sql 

5. Controllare lo stato del MYSQL MASTER per vedere fino a che punto è arrivata il transaction bin log : (in un altra sessione ssh, vedi punto 2)
mysql> show master status;
+------------------+----------+--------------+------------------+
| File             | Position | Binlog_Do_DB | Binlog_Ignore_DB |
+------------------+----------+--------------+------------------+
| mysql-bin.000059 | 17908642 |              |                  |
+------------------+----------+--------------+------------------+

6. Riattivare il MYSQL SLAVE
CHANGE MASTER TO MASTER_LOG_FILE = 'mysql-bin.000059', MASTER_LOG_POS = 17148864;

7. Riattivare lo slave
mysql> start slave;

8. Riattivare il MYSQL MASTER in scrittura
UNLOCK TABLES;

Monitorare coda postfix

Un semplice script bash che controlla la coda di postix e ci avverte se supera un determinato limite :

 Bash | 
 
 copy code |
?

01
#!/bin/bash
02
limit=50;
03
notifyemail=luigi.molinaro@gmail.com;
04
servername=$(hostname);
05
 
06
queue_p=$(postqueue -p | grep Request | awk '{print $5}');
07
 
08
if [ $queue_p -ge $limit ] ; then
09
        echo "
10
Dear Server admin,
11
 
12
We have $limit in local mailqueue.
13
" | mail -s "Mailqueue limit exceeding - $servername" $notifyemail
14
 
15
fi
16

 

 

Proteggi SSH con SSHguard

 sshguard , è scritto in C, quindi usa meno memoria e CPU durante l’esecuzione pur ottenendo gli stessi risultati.

COSA FA SSHGUARD ?

La versione corta è: riceve i messaggi di log, rileva quando un servizio in rete è attaccato basandosi su di essi, e blocca l’indirizzo di chi sta attaccando, dopo qualche tempo, rimuove questo blocco.

La versione completa è: sshguard gira su una macchina come un piccolo demone, e riceve i messaggi di log (in diversi modi, ad esempio da syslog). Quando si determina che l’indirizzo X ha fatto qualcosa di male al servizio Y, attiva una regola nel firewall della macchina (uno dei tanti supportati) per il blocco di X.
Sshguard mantiene X bloccato per qualche tempo, poi lo rilascia automaticamente.

Si prega di notare che, nonostante il suo nome sshguard rileva di base gli attacchi per molti servizi, non solo SSH, ma anche diversi demoni ftpds, Exim e Dovecot. E’ in grado di operare con tutti i principali sistemi di firewalling, e fornisce supporto per IPv6, whitelist, sospensione, e registra i messaggi di autenticazione.

Installazione

Sshguard è distribuito sotto la permissiva licenza BSD: è possibile utilizzare, modificare e ridistribuire il software, a proprio rischio, per qualsiasi uso, anche commerciale, a condizione di conservare l’avviso di copyright originale che si trova al suo interno. Il software è distribuito nel repository principale delle più utilizzate distribuzioni GNU/Linux e per alcuni sistemi *BSD, ma è anche possibile scaricare i sorgenti dalla loro pagina di downlaod .

Per installarlo su Debian ( o altre distribuzioni che utilizzano i .deb come Ubuntu) lanciate da un terminale:

sudo aptitude install sshguard

Configurazione

Sshguard si interfaccia al sistema in due punti:

  • il sistema di logging (come sshguard riceve i messaggi di log per il monitoraggio)
  • il firewall (come sshguard blocca gli indirizzi indesiderati )

A partire dalla versione 1.5, sshguard viene fornito con il Log Sucker . Con il Log Sucker, SSHGuard recupera le voci dai log in modo proattivo, e gestisce in modo trasparente eventi come la rotazione dei file di log e la scomparsa e riapparizione dei file.

Nella pagina della documentazione ufficiale ci sono delle istruzioni per molti firewall differenti, io seguirò le istruzioni per netfilter/iptables.

sshguard non ha un file di configurazione. Tutta la configurazione che deve essere fatta è la creazione di una chain chiamata “sshguard” nella catena di INPUT di iptables dove sshguard inserisce automaticamente le regole per i pacchetti provenienti da host malevoli:

#Per il supporto a IPv4 :
iptables -N sshguard
# Se volete anche il supporto a IPv6 :
ip6tables -N sshguard

Ora aggiornare la catena di INPUT in modo che passi tutto il traffico che si desidera a sshguard, specificare con – dport tutte le porte dei servizi che si desidera proteggere con sshguard. Se si desidera impedire agli aggressori di fare tutto il traffico verso l’host, rimuovere completamente l’opzione:

#Blocca tutto il traffico:
iptables -A INPUT -j sshguard
ip6tables -A INPUT -j sshguard
 
        -- o --
 
#Blocca gli attaccanti solo per i servizi SSH, FTP, POP, IMAP  (usa il modulo "multiport")
iptables -A INPUT -m multiport -p tcp --destination-ports 21,22,110,143 -j sshguard
ip6tables -A INPUT -m multiport -p tcp --destination-ports 21,22,110,143 -j sshguard

Se al momento non usate iptables e volete solo avere sshguard installato e funzionante senza alcun ulteriore impatto sul sistema, questi comandi creano e salvano una configurazione iptables che non fa assolutamente nulla se non permettere ad sshguard di funzionare:

# iptables -F
# iptables -X
# iptables -P INPUT ACCEPT
# iptables -P FORWARD ACCEPT
# iptables -P OUTPUT ACCEPT
# iptables -N sshguard
# iptables -A INPUT -j sshguard
# /etc/rc.d/iptables save

Conclusioni

E questo è tutto quello che dovete fare per avere una installazione di base di sshguard installata e funzionante, vi aiuterà ad avere il vostro ssh, ftp ed altri demoni un po’ più sicuro.

Creazione automatica sito web apache con bash

Ecco un semplice script che crea website, alias, directory automaticamente tramite bash 

01
#!/bin/bash
02
 
03
echo "Inserisci dominio (es: example.com):";
04
read domain;
05
echo "" 
06
echo "Inserisci Alias (es: www.example.com):";
07
read domain_alias;
08
echo "" 
09
 
10
### Check $domain esiste
11
if ! grep "${domain}" /etc/apache2/sites-available/${domain}.conf >> /dev/null; then
12
        echo "${domain} will be created" 
13
        mkdir -p /var/www/${domain}/{htdocs,logs,cgi-bin};
14
 chown -R www-data:www-data /var/www/${domain}/
15
 
16
 echo " 
17
## Automatic generation from Genesi on `eval date +%d.%m.%Y`
18
## ${domain}
19
<VirtualHost *:80>
20
 ServerName ${domain}
21
 ServerAlias ${domain_alias}
22
 DocumentRoot /var/www/${domain}/htdocs
23
 ServerAdmin [email protected]
24
 
25
 ErrorLog /var/www/${domain}/logs/error.log
26
 CustomLog /var/www/${domain}/logs/access.log combined
27
</VirtualHost>
28
 
29
<Directory /var/www/${domain}/htdocs>
30
 Options FollowSymLinks MultiViews
31
 AllowOverride All
32
 Order allow,deny
33
 allow from all
34
</Directory>
35
 " >> /etc/apache2/sites-available/${domain}.conf
36
 
37
                echo "Testing configuration" 
38
                apache2ctl configtest
39
                a2ensite ${domain}.conf 
40
                /etc/init.d/apache2 reload
41
else
42
        echo "${domain} Dominio già esistente" 
43
fi
44

 

Mediawiki FCKeditor

Dalla versione di MediaWiki > 1.16 la versione stabile di FCKeditor è disponibile qui : http://svn.wikimedia.org.

SVN path: http://svn.wikimedia.org/svnroot/mediawiki/trunk/extensions/FCKeditor)

Peccato solo che la versione ufficiale esce con un bel baco :

 Bash | 
 
 copy code |
?

1
Fatal error: Cannot redeclare js_unescape() (previously declared in /home/webapps/ineh/extensions/FCKeditor/FCKeditorSajax.body.php:268) in /home/webapps/ineh/includes/AjaxFunctions.php on line 55

Per risolvere basta modificare questa pagina all’interno della cartella extensions/FCKeditor e cambiare  ‘js_unescape’ con ‘fck_js_unescape’;

O lo fate a mano o usate rpl ad esempio :

 Bash | 
 
 copy code |
?

1
rpl js_unescape fck_js_unescape FCKeditorSajax.body.php

 

LVM – Come funziona

Introduzione 

LVM (Logical Volume Manager) permette l’utilizzo di dispositivi logici virtuali per accedere ai disci, mascherano cosi’ la natura dei dispositivi fisici su cui risiedono i dati.

E’ quindi possibile utilizzare un device virtuale di cui possono fare parte diversi hard disk fisici, anche di natura, velocità e dimensioni diverse.

I vantaggi di un simile approccio alla gestione dei file system sono maggiore flessibilita’ e scalabilita’, alta disponibilita’ del servizio e ridondanza.

Schema

                        -------------------------------------------------
Logical Volumes  (LV)   |    lv_share   |    lv_backup   |   (unused)   |
                        -------------------------------------------------
Volume Groups    (VG)   |                 vg_fileserver                 |
                        -------------------------------------------------
Physical Volumes (PV)   | /dev/sdb1 | /dev/sdc1 | /dev/sdd1 | /dev/sde1 |
                        -------------------------------------------------

Ricerca nuovi dischi 

Per vedere nuovi dischi aggiunti alla macchina:
echo 1 > /sys/class/fc_host/host/issue_lip
rescan-scsi-bus.sh -l -w -c
multipath

Physical Volumes (PV) 

Per creare un Physical Volume (PV) su una partizione esistente, cioe’ rendere la partizione adatta ad ospitare dei Volume Group (VG):
pvcreate ”/dev/sdb1”

Per visualizzare tutti i Physical Volume (PV) presenti:
pvdisplay

Per spostare tutti i dati da un Physical Volume (PV) ad un altro:
pvmove -i 10 ”/dev/sdb1” ”/dev/sdc1”

Volume Groups (VG) 

Per creare un Volume Group (VG) su un Physical Volume (PV) precedentemente creato:
vgcreate ”vg_name” ”/dev/sdb1” ”/dev/sdc1”

Per attivare un Volume Group (VG) non attivo:
vgchange -a y ”vg_name”

Per estendere un Volume Group (VG):
vgextend ”vg_name” ”/dev/sdd1”

Per visualizzare tutti i Volume Group (VG) presenti:
vgdisplay

Per rinominare un Volume Group (VG):
vgrename ”vg_name” ”vg_new_name”

Logical Volumes (LV)

Per creare un Logical Volume (LV) grande 2 GB su un Volume Group (VG) precedentemente creato:
lvcreate -L”2G” -n ”lv_name” ”vg_name”

Per formattare in xfs il Logical Volume (LV) appena creato:
mkfs.xfs /dev/”vg_name”/”lv_name”

Per estendere un Logical Volume (LV) di 1 GB:
lvextend -L”+1G” /dev/”vg_name”/”lv_name”

Per estendere il filesystem presente sul Logical Volume (LV) appena esteso:
xfs_growfs /mountpoint

Per visualizzare tutti i Logical Volume (LV) presenti:
lvdisplay