giovedì 31 ottobre 2013

fail2ban: proteggere saslauthd

Debian 6.0.8
fail2ban 0.8.4-3+squeeze2
Debian 5.0.10
fail2ban 0.8.3-2sid1

failregex = (?i): warning: [-._\w]+\[\]: SASL (?:LOGIN|PLAIN|(?:CRAM|DIGEST)-MD5) authentication failed(: [A-Za-z0-9+]*)?

Debian 5.0.10
fail2ban 0.8.3-2sid1

failregex = : warning: [-._\w]+\[\]: SASL (?:LOGIN|PLAIN|(?:CRAM|DIGEST)-MD5) authentication failed



mercoledì 30 ottobre 2013

postfix: attivare debug connessione con un mail server

Se vogliamo verificare come mai il mail server del dominio dominio.ext rifiuta le email dal nostro server possiamo attivare il debug specifico per quel dominio:
postconf -e debug_peer_list=dominio.ext
postconf -e debug_peer_level=3
postfix reload

Backuppc: cambiare la password dell'utente sull'interfaccia grafica

htpasswd /etc/backuppc/htpasswd $NOME_UTENTE

Backuppc: escludere directory su copia rsync

$Conf{RsyncShareName} = [
  '/home/user',
  '/etc',
  '/usr/local/bin'
];

$Conf{BackupFilesExclude} = {
  '/home/user' => [
    '/NOBACKUP/**',
    '/Music/**',
    '/Videos/**',
    '/.aMule/**'
  ]
};

mercoledì 23 ottobre 2013

PHP Warning: strtotime(): It is not safe to rely on the system's timezone settings.


Questo errore nei log di Apache:
FastCGI: server "/var/www/clients/client3/web4/cgi-bin/php5-fcgi-*-80-example.com" stderr: PHP message: PHP Warning:  strtotime(): It is not safe to rely on the system's timezone settings. You are *required* to use the date.timezone setting or the date_default_timezone_set() function. In case you used any of those methods and you are still getting this warning, you most likely misspelled the timezone identifier.
e' caratteristico di PHP 5.3 (pare sia sparito con la release 5.4).
Per risolverlo bisogna aggiungere al php.ini la riga:
date.timezone = "Europe/Rome"
personalizzando se occorre la timezone tra doppi apici

backuppc: ping timeout

La copia di un computer remoto non parte perche' il sistema trova la risposta del ping troppo lenta?
Se sapete cosa state facendo potete aumentare il limite di questo controllo aumentando la configurazione (ad esempio) da:
$Conf{PingMaxMsec} = '10'
a
$Conf{PingMaxMsec} = '500'
Il numero e' espresso in millisecondi

SSH: usare porte diverse dalla 22


Nessun problema utilizzando -p per ssh e -P per scp ma se vogliamo dimenticarci di usarli possiamo editare il file:
~/.ssh/config
e inserire qualcosa del genere
Host my.first.computer
         Port 2222
Host my.second.computer      
         Port 3333
a questo punto possiamo tranquillamente utilizzare il comando:
ssh utente@my.first.computer
o
scp foo utente@my.second.computer:bar
senza bisogno di specificare la porta.

sabato 19 ottobre 2013

Linux: Problemi di connessione con Realtek r8169 / r8111

Le schede indicate nel titolo vengono spesso riconosciute da Linux come delle r8169 e quindi il sistema provvede a caricare il modulo r8169 che potrebbe darvi qualche problema.

Su una Ubuntu 12.04LTS il driver r8168  e' già compilato all'interno del kernel di default. In questo caso sara' sufficiente bloccare il caricamento del modulo sbagliato inserendo la riga:
blacklist r8169 
nel file:
/etc/modprobe.d/blacklist-network.conf

Per altri sistemi che non avessero il driver r8168 precompilato nel kernel consigliamo di seguire la procedura seguente:
cd /usr/src
wget http://djlab.com/stuff/r8168-8.032.00.tar.bz2
tar jxvf r8168-8.032.00.tar.bz2
cd r8168-8.032.00
make clean modules
make install
depmod -a
echo "blacklist r8169" >> /etc/modprobe.d/blacklist-network.conf
update-initramfs -u
Per poter compilare automaticamente il modulo ad ogni aggiornamento di kernel, e' necessario ricorrere al sistema dkms.
Verifichiamo di avere installato dkms:
apt-get install dkms gcc
Creare il file:
dkms.conf
con il seguente comando:
cat < /usr/src/r8168-8.032.00/dkms.conf
PACKAGE_NAME=r8168
PACKAGE_VERSION=8.032.00
MAKE[0]="'make'"
BUILT_MODULE_NAME[0]=r8168
BUILT_MODULE_LOCATION[0]="src/"
DEST_MODULE_LOCATION[0]="/kernel/updates/dkms"
AUTOINSTALL="YES"
EOF
ed eseguire i comandi seguenti:
dkms add -m r8168 -v 8.032.00
dkms build -m r8168 -v 8.032.00
dkms install -m r8168 -v 8.032.00
Se non avete ricevuto errori, il vostro modulo e' stato installato correttamente e sara' ricompilato in automatico dal sistema ad ogni aggiornamento di kernel.

Se per caso, durante la compilazione del modulo, doveste avere errori del tipo:
root/r8168-8.035.00/src/r8168_n.c:14545: error: expected ‘=’, ‘,’, ‘;’, ‘asm’ or ‘__attribute__’ before ‘rtl8168_init_board’
Sara' necessario applicare la patch seguente:
diff -ruB r8168-8.035.00/src/r8168_n.c r8168-8.035.00/src/r8168_n.c
--- r8168-8.035.00/src/r8168_n.c        2012-12-19 05:38:56.000000000 -0500
+++ r8168-8.035.00/src/r8168_n.c        2013-03-17 12:48:58.693002848 -0400
@@ -14541,7 +14541,7 @@
        spin_unlock_irqrestore(&tp->phy_lock, flags);
 }

-static int __devinit
+static int
 rtl8168_init_board(struct pci_dev *pdev,
                   struct net_device **dev_out,
                   void __iomem **ioaddr_out)
@@ -14711,7 +14711,7 @@
        goto out;
 }

-static void __devinit
+static void
 rtl8168_init_sequence(struct rtl8168_private *tp)
 {
        void __iomem *ioaddr = tp->mmio_addr;
@@ -14964,7 +14964,7 @@
 };
 #endif

-static int __devinit
+static int
 rtl8168_init_one(struct pci_dev *pdev,
                 const struct pci_device_id *ent)
 {
@@ -15128,7 +15128,7 @@
        return 0;
 }

-static void __devexit
+static void
 rtl8168_remove_one(struct pci_dev *pdev)
 {
        struct net_device *dev = pci_get_drvdata(pdev);
@@ -17649,7 +17649,7 @@
        .name           = MODULENAME,
        .id_table       = rtl8168_pci_tbl,
        .probe          = rtl8168_init_one,
-       .remove         = __devexit_p(rtl8168_remove_one),
+       .remove         = rtl8168_remove_one,
 #if LINUX_VERSION_CODE > KERNEL_VERSION(2,6,11)
        .shutdown       = rtl8168_shutdown,
 #endif

e ripetere la compilazione. Tutto qua :)



venerdì 18 ottobre 2013

ImageMagick: modificare la qualita' di una o piu' immagini JPG

L'esempio qui sotto riduce al 60% la qualita' delle immagini JPG presenti nella directory corrente:
mogrify -quality 60 *.jpg


giovedì 17 ottobre 2013

OpenOffice Calc: cercare spazi

Nella ricerca abilitare le opzioni avanzate e checkare le regular expression.

Cercare [:space:]


mercoledì 16 ottobre 2013

Linux: quanti IP stanno visualizzando il mio sito?

Per visualizzare gli IP address di chi sta guardando i siti del nostro server possiamo lanciare il seguente comando:
netstat -napt | grep :80\  | awk '{print $5}' | cut -d: -f1 | sort -u
Invece per contare i diversi IP address possiamo usare:
netstat -napt | grep :80\  | awk '{print $5}' | cut -d: -f1 | sort -u | wc -l

martedì 15 ottobre 2013

Linux: che batteria ho sul mio notebook?

La risposta ve la da' il comando:
upower -i /org/freedesktop/UPower/devices/battery_BAT0
che da' un output del genere:
native-path:          /sys/devices/LNXSYSTM:00/LNXSYBUS:00/PNP0A08:00/PNP0C0A:00/power_supply/BAT0  vendor:               ASUSTEK  model:                F82--22  power supply:         yes  updated:              Tue Oct 15 15:34:35 2013 (3224 seconds ago) 
has history:          yes
 
has statistics:       yes
 
battery
present:      yes   
rechargeable:        yes
   
state:               fully-charged
   
energy:              16.841 Wh
  
energy-empty:        0 Wh
   
energy-full:         16.841 Wh
  
energy-full-design:  46.2 Wh
   
energy-rate:         2.079 W
 
voltage:             12.461 V
  
percentage:          100%
  
capacity:            36.4524%
   
technology:          lithium-ion

mercoledì 2 ottobre 2013

ImageMagick: generare file .csv con informazioni su immagini di un folder

identify *jpg| sed 's/[ x]/,/g' > listabu_`basename $PWD`.csv