mercoledì 31 dicembre 2014

Magento: notifica su header negozio in modalita' demo

Dopo aver clonato un negozio magento puo' essere opportuno metterlo in stato DEMO (con relativa notifica sull'header della home page). Un esempio del frontend:



e uno del backend:



(la funzione demo e' automaticamente settata in caso di una nuova installazione di Magento)

Per abilitarla (o disabilitarla) bisogna entrare nel backend di Magento e selezionare SI o NO dalla voce:

Sistema - Configurazione - Generale - Design - HTML Head -  Visualizza notifica Negozio Demo

Confermare la scelta cliccandi sul bottone SAVE CONFIG in alto a destra.

martedì 25 novembre 2014

Guake: modificare la larghezza della finestra

Editare /usr/bin/guake

Trovare il blocco di codice
       
        screen = self.window.get_screen()
        height = self.client.get_int(KEY('/general/window_height'))
        # modificata larghezza finestra guake
        # width = 100
        width = 90
        halignment = self.client.get_int(KEY('/general/window_halignment'))

e cambiare

        width = 100
       
in

        # width = 100
        width = 90

Il valore della variabile width esprime la larghezza della finestra espressa in percentuale rispetto alla larghezza dello schermo.

N.B. in alcune distribuzioni il file da modificare e' /usr/lib/guake.py

giovedì 9 ottobre 2014

ispconfig3: disabilitare filtri antivirus e antispam

vi /etc/postfix/main.cf

Commentare le due linee:

content_filter = amavis:[127.0.0.1]:10024
receive_override_options = no_address_mappings

che diventano quindi:

# content_filter = amavis:[127.0.0.1]:10024
# receive_override_options = no_address_mappings

Far ripartire postfix:

/etc/init.d/postfix restart

Rimettere in coda le eventuali mail in sospeso:

postsuper -r ALL

(questo ultimo comando serve ad evitare l'errore "postfix/qmgr[xxxx]: warning: connect to transport private/amavis: Connection refused"

Disabilitare servizi antispam e antivirus:

 /etc/init.d/clamav-daemon stop
/etc/init.d/clamav-freshclam stop
/etc/init.d/amavis stop

Dopo aver verificato che tutto funzioni corretamente, disabilitare l'avvio automatico al boot dei servizi antispam e antivirus:

update-rc.d -f clamav-daemon remove
update-rc.d -f clamav-freshclam remove
update-rc.d -f amavis remove

lunedì 25 agosto 2014

sed: sostituire tutti gli spazi a inizio riga con un altro carattere

Se vogliamo sostituire, ad esempio, tutti gli spazi a inizio riga con il carattere underscore ('_'), possiamo usare questo comando:

sed ':a;s/^\([[:space:]]*\)[[:space:]]/\1_/;ta' file

Se vogliamo mantenere l'indentazione di un blocco di codice in formato testo dopo averlo messo su un server http possiamo sostituire gli spazi iniziali con il codice HTML corrispondente allo spazio:

 


sed ':a;s/^\([[:space:]]*\)[[:space:]]/\1 /;ta' file

giovedì 21 agosto 2014

Linux: conversione da WAV a MP3

Installiamo il software necessario

sudo apt-get install lame

Spostiamoci nella cartella contenente i file .wav da convertire e lanciamo il comando seguente:

for f in *.wav; do lame -V 1 "$f" "${f%.wav}.mp3"; done

php: visualizzare gli eventuali errori nell'esecuzione di una query mysql

Inserire la linea di codice seguente subito dopo la query da controllare:

echo mysql_errno() . ": " . mysql_error() . "\n";

venerdì 15 agosto 2014

Convertire tutte le immagini PNG di una cartella in formato JPG

mogrify -format jpg *.png

venerdì 18 luglio 2014

Aggiungere un timbro ad un PDF da linea di comando

Se abbiamo un documento (ad esempio documento.pdf) e un file pdf tutto traspartente a parte il timbro da applicare al documento (ad esempio timbro.pdf) possiamo lanciare il comando:

 pdftk documento.pdf stamp timbrp.pdf output documento_timbrato.pdf  

Otterremo un nuovo file (documento_timbrato.pdf) contenente il documento iniziale con sovrapposto il timbro)

lunedì 7 luglio 2014

Backup di un account imap con imapsync

Cominciamo installando il software necessario:

 apt-get install libdate-manip-perl libterm-readkey-perl libterm-readkey-perl libdigest-hmac-perl libdigest-hmac-perl libdate-manip-perl libmail-imapclient-perl  

e ancora:

 apt-get install makepasswd rcs perl-doc libmail-imapclient-perl make git-core git-doc git-svn git-gui gitk  

Scarichiamo i sorgenti dell'ultima versione di imapsync

 cd /tmp  
 git clone git://github.com/imapsync/imapsync.git  

Compiliamo i sorgenti:
 cd imapsync  
 make install  

Se ricevete degli errori causati dalla mancanza di alcune librerie Perl sul vostro sistema, provate a lanciare il comando seguente:

  perl -mMail::IMAPClient -mDigest::MD5 -mTerm::ReadKey -mIO::Socket::SSL \  
     -mDigest::HMAC_MD5 -mAuthen::NTLM -e -mTime::HiRes \  
     -mData::Uniqid -mURI::Escape -mFile::Copy::Recursive -mIO::Tee ""  

Se tutto va bene dovreste vedere qualcosa del genere:


A questo punto vi consiglio un'occhiatina alla man page di imapsync:

 man imapsync  

Per il mio test iniziale replica di un account imap tra 2 server Debian Wheezy con Dovecot Imap ho usato questo comando:
 imapsync --host1 alderan --host2 tatooine --user1 c3po --user2 r2d2 --tls1 --noauthmd5 --authmech1 CRAM-MD5 --authmech2 LOGIN  



lunedì 9 giugno 2014

Formattare il codice per blogspot

Per poter formattare il codice da inserire nel vostro blog Blogspot usate il formattatore online all'indirizzo

openssl: generare in casa certificati per VPN

Attenzione, a partire dalla release 5.15 RouterOS supporta il formato di chiavi pkcs8.
Se utilizzate una release precedente e volete importare le chiavi pkcs8 lanciate il comando:

 openssl rsa -in myKey.key -text  

poi copiate l´output in un file e lo uploadate sul vostro router.

Cominciamo preparando una coppia chiave/certificato per la nostra CA (Certificate Authority):

 openssl genrsa -des3 -out ca.key 4096  
 openssl req -new -x509 -days 3650 -key ca.key -out ca.crt  

Durante il processo dovrete inserire alcune voci (Common Name (CN), Organization, State or province .. etc). La coppia chiave/certificato generata avra' una validita' di 10 anni (3650 giorni).

Ora passiamo a generare una coppia chiave/certificato per il nostro server (ad esempio il router Mikrotik a cui ci vogliamo collegare in VPN)

 openssl genrsa -des3 -out server.key 4096  
 openssl req -new -key server.key -out server.csr  
 openssl x509 -req -days 3650 -in server.csr -CA ca.crt -CAkey ca.key -set_serial 01 -out server.crt  

Di nuovo, durante il processo dovrete inserire alcune voci.Al momento di inserire CN ricordate che deve essere diverso da quello del certificato della CA e da quello del client (che andremo a generare tra poco) per evitare collisioni nei nomi.

Attenzione: Il Common Name (CN) nel certificato del server dovrebbe corrispondere all'IP address del server altrimenti verra' generato un messaggio di warning al momento della connessione.
Se il client saranno solo macchine Windows il CN puo'tranquillamente essere un nome DNS.

La generazione del paio chiave/certificato per il client e'mlto simile a quella per il server, ricordatevi di usare un CN univoco.

 openssl genrsa -des3 -out client.key 4096  
 openssl req -new -key client.key -out client.csr  
 openssl x509 -req -days 3650 -in client.csr -CA ca.crt -CAkey ca.key -set_serial 01 -out client.crt  

Per esaminare e verificare il certificato usate il comando seguente:

 openssl x509 -noout -text -in server.crt -purpose  

mikrotik: usare il nome delle interfacce VPN nelle regole del firewall

Se usate un'interfaccia VPN dinamica il suo nome sara', ad esempio:
[SIMBOLO DI MINORE]ovpn-nome_utente[SIMBOLO DI MAGGIORE] 
 e non vi sara' permesse utilizzarla nelle regole del firewall.
Il segreto per ovviare a questo inconveniente e' creare un'interfaccia dedicata a quell'utente:

/interface ovpn-server add name=ovpn-nome_utente user=nome_utente
Cosi' facendo il nome dell'interfaccia sara':
ovpn-nome_utente
e potra' essere usato nelle regole del firewall.

mercoledì 4 giugno 2014

Analisi log: cercare tutte le ricorrenze di un parametro

Ipotizziamo un log che contenga linee del tipo:

DATA ORA CODICE I=dfjhsdf U=root O=eruyer
DATA ORA CODICE I=dfjhsdf U=utente O=eruyer
DATA ORA CODICE S=hdhgfgd I=dfjhsdf U=utente O=eruyer
DATA ORA CODICE S=hdhgfgd I=dfjhsdf U=mario O=eruyer

Vogliamo estrarre la lista degli utenti (nell'esempio il parametro U), possiamo usare questo comando:

grep -o "\ U=.*\ " FILE_DI_LOG | cut -f 2 -d\

mercoledì 28 maggio 2014

lunedì 26 maggio 2014

Nautilus: non funziona piu' la funzione SELECT ALL

Soluzione:

sudo apt-get install --reinstall nautilus
nautilus -q


Tastiera: AltGr non funziona piu' dopo aggiornamento sistema

Dopo un aggiornamento del mio portatile a Ubuntu 14.04 non mi funzionava piu'il tasto AltGr (quindi per esempio non potevo usare il catattere € per l´Euro.

Le istruzioni che si trovano in rete fanno riferimento a utility di configurazione della tastiera che non sono piu'presenti sulle nuove versioni di Ubuntu.

Il problema si risolve lanciando da linea di comando il seguente:

sudo dpkg-reconfigure keyboard-configuration

e selezionare la giusta configurazione (Asus laptop + English (US) international

giovedì 22 maggio 2014

vim: schema colori piu' leggibile

Inserire nel file /etc/vim/vimrc.local la riga seguente:
colorscheme koehler

mercoledì 30 aprile 2014

Postfix: warning: hostname localhost does not resolve to address ::1: No address associated with hostname

Per eliminare il warning, nel file /etc/hosts sostituire la riga:
::1     localhost ip6-localhost ip6-loopback
con la riga:
::1     localhost6 ip6-localhost ip6-loopback

lunedì 28 aprile 2014

wordpress: installazione rapida requisiti da linea di comando

Eseguire i comandi seguenti (le parti in grassetto devono essere sostituite con dei nomi da voi scelti)

$ apt-get install apache2 php5 mysql-server php5-mysql

$ mysql -u USERNAME_MYSQL_ADMIN -p
Enter password:
Welcome to the MySQL monitor.  Commands end with ; or \g.
Your MySQL connection id is 5340 to server version: 3.23.54

Type 'help;' or '\h' for help. Type '\c' to clear the buffer.

mysql> CREATE DATABASE NOME_DATABASE;
Query OK, 1 row affected (0.00 sec)

mysql> GRANT ALL PRIVILEGES ON NOME_DATABASE.* TO "NOME_UTENTE@localhost"
    -> IDENTIFIED BY "PASSWORD";
Query OK, 0 rows affected (0.00 sec)
  
mysql> FLUSH PRIVILEGES;
Query OK, 0 rows affected (0.01 sec)

mysql> EXIT
Bye


A questo punto scaricate l'ultima versione di wordpress dal sito www.wordpress.org, scompattatela nella home del server apache e accedete con:

http://IP_ADDRESS_O_NOME_DEL_SERVER 

e seguite le istruzioni riportate a video.

mercoledì 16 aprile 2014

guake terminal: problemi di visualizzazione con unity su Ubuntu 13.10



Puo' capitare che la prima riga di testo nel terminale di guake venga nascosta da Unity.
Modificare il file /usr/bin/guake cercando la linea:

window_rect.y = 0

che deve diventare:

window_rect.y = 30

Rilanciare guake per verificare il corretto fuzionamento.


mercoledì 9 aprile 2014

bash: rimuovere gli spazi da nomi file e directory

find -name "* *" -type d | rename 's/ /_/g'    
find -name "* *" -type f | rename 's/ /_/g'

oppure

find /tmp/ -depth -name "* *" -execdir rename 's/ /_/g' "{}" \;

bash: convertire in minuscolo le estensioni dei file

find . -name '*.*' -exec sh -c '
  a=$(echo {} | sed -r "s/([^.]*)\$/\L\1/");
  [ "$a" != "{}" ] && mv "{}" "$a" ' \;

martedì 18 marzo 2014

Configurare DKIM (DomainKeys Identified Mail) con Postfix su Debian usando OpenDKIM (HOWTO)

Note preliminari:

Tutti comandi di questo HOWTO vengono eseguiti dall'utente root
esempio.com deve essere sostituito con il dominio su cui state configurando DKIM

Installazione software necessario:

apt-get install opendkim opendkim-tools

(la procedura di installazione crea in automatico l'utente e il gruppo opendkim)

Creazione directory e sistemazione permessi:

mkdir -p /etc/opendkim/keys
chown -R opendkim:opendkim /etc/opendkim
chmod -R go-wrx /etc/opendkim/keys

Generazione chiavi:

E' necessario generare una chiave pubblica e una privata per ogni dominio per il quale pensate di aggiungere la firma DKIM. La chiave privata e' conservata sul server, mentre la chiave pubblica deve essere pubblicata sul DNS del dominio in modo che i mail server di destinazione possano verificare la firma DKIM della nostra mail.

Bisogna decidere il nome del selettore. Un selettore e' una parola univoca che viene associata ad entrambe le chiavi, pubblica e privata, inclusa in tutte le firme e pubblicata nei record DNS. Per semplicita' useremo la parola default come selettore di default. Potete scegliere anche un'altra parola, ma se lo fate, state attenti a utilizzare sempre quella durante le varie fasi della configurazione.

Vi ricordo inoltre di sostituire il vostro dominio di posta a dominio.com nelle fasi seguenti della configurazione:

mkdir /etc/opendkim/keys/example.com
opendkim-genkey -D /etc/opendkim/keys/example.com/ -d example.com -s default
chown -R opendkim:opendkim /etc/opendkim/keys/example.com
mv /etc/opendkim/keys/example.com/default.private /etc/opendkim/keys/example.com/default

Nel comand opendkim-genkey vengono utilizzati i seguenti parametri:

-D indica la directory in cui verranno memorizzate le chiavi
-d indica il dominio di posta a cui fanno riferimento le chiavi generate
-s indica il selettore

Creazione e modifica dei file di configurazione:

I file di configurazione del sistema OpenDKIM sono i seguenti:

- 1 /etc/opendkim.conf  - e' il file di configurazione principale di OpenDKIM
- 2 /etc/opendkim/KeyTable - e' la lista delle chiavi disponibili
- 3 /etc/opendkim/SigningTable - e' la lista di domini e account specifici abilitati a firmare i propri messaggi
- 4 /etc/opendkim/TrustedHosts - e' la lista di server ritenuti affidabili al momento di inserire o verificare una firma DKIM

1) Creazione del file /etc/opendkim.conf (se esiste gia' salvatene il contenuto e sostituitelo con quanto segue)

Verificate che il contenuto del file sia il seguente:

##
## opendkim.conf -- configuration file for OpenDKIM filter
##
AutoRestart             Yes
AutoRestartRate         10/1h
Canonicalization        relaxed/simple
ExternalIgnoreList      refile:/etc/opendkim/TrustedHosts
InternalHosts           refile:/etc/opendkim/TrustedHosts
KeyTable                refile:/etc/opendkim/KeyTable
LogWhy                  Yes
Mode                    sv
PidFile                 /var/run/opendkim/opendkim.pid
SignatureAlgorithm      rsa-sha256
SigningTable            refile:/etc/opendkim/SigningTable
Socket                  inet:8891@localhost
Syslog                  Yes
SyslogSuccess           Yes
TemporaryDirectory      /var/tmp
UMask                   022
UserID                  opendkim:opendkim

2) creazione del file /etc/opendkim/KeyTable:

default._domainkey.example.com example.com:default:/etc/opendkim/keys/example.com/default

Il file KeyTable dice a  OpenDKIM dove trovare le chiavi. Ogni elemento del file KeyTable e' una singola linea per ogni posizione di chiavi. Se avete intenzione di utilizzare chiavi multiple (ad esempio per firmare le mail dei domini virtuali con chiavi differenti).dovrete creare una linea separata per ogni dominio nel file KeyTable.

3) creazione del file /etc/opendkim/SigningTable:

*@example.com default._domainkey.example.com

Il file SigningTable dice a OpenDKIM come usare le vostre chiavi e queli selettori usare per i vari mittenti per le loro firme. Nell'esempio abbiamo detto al sistema che tutti (*) i mittenti del server "dominio.com" dovrebbero usare il selettore "default." 
E' importante notare che il simbolo * funzionera' solo se nel file di configurazione opendkim.conf l'opzione SigningTable utilizza il prefisso "refile:" prima del filename.

4) creazione del file /etc/opendkim/TrustedHosts:

127.0.0.1
hostname1.example1.com
example1.com
hostname1.example2.com
example2.com

Il file TrustedHosts dice a OpenDKIM chi puo' usare le chiavi per firmare i messaggi.
Essendo referenziato dalla direttiva ExternalIgnoreList nel file di configurazione, OpenDKIM ignorera' questa lista di host quando verifica le mail in ingresso.
Essendo referenziato dalla direttiva InternalHosts nel file di configurazione, OpenDKIM firmera' le mail in uscita da questi host.

IMPORTANTE: assicuratevi che l'IP address per localhost (127.0.0.1) sia inserito nel file TrustedHosts file, altrimenti OpenDKIM non firmera' le email spedite dal server.
Se aveye piu' server sulla stessa rete che utilizzano il vostro server come relay host, dovete inserire gli indirizzi IP di questi server nel file TrustedHosts se volete firmare anche le loro email. 
Inserite un elemento per ogni linea.
Un elemento puo' essere un hostname, un nome di dominio  (per esempio "dominio.com"), un indirizzo IP, an indirizzo IPv6 o un indirizzo CIDR (per esempio 192.168.1.0/24).

Configurazione di opendkim su postfix:

Inserire le righe seguenti nel file /etc/postfix/main.cf

smtpd_milters           = inet:127.0.0.1:8891
non_smtpd_milters       = $smtpd_milters
milter_default_action   = accept
milter_protocol = 2

Restart dei servizi coinvoilti:

/etc/init.d/onendkim restart
/etc/init.d/postfix restart

Verificare su /var/log/mail.log che entrambi i servizi siano ripartiti e che non ci siano altri errori.

Aggiungere i record DNS:

Ora che il vostro server sta firmando le mail in uscita e verificando le mail in entrata, avete bisogno di inserire alcune informazioni nei record DNS per dire agli altri mail server come sono configurate le vostre chiavi e per fornire loro la chiave pubblica in modo che possano verificare che la tua mail e' firmata correttamente.

cat /etc/opendkim/keys/example.com/default.txt

L'output di questo comando dovrebbe essere simile a quanto segue:

default._domainkey IN TXT "v=DKIM1; g=*; k=rsa; p=7k45u5i2T1AlEBeurUbdKh7Nypq4lLMXC2FHhezK33BuYR+3L7jxVj7FATylhwIDAQABMIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQDHY7Zl+n3SUldTYRUEU1BErHkKN0Ya52gazp1R7FA7vN5RddPxW/sO9JVRLiWg6iAE4hxBp42YKfxOwEnxPADbBuiELKZ2ddxo2aDFAb9U/lp4" ; ----- DKIM default for example.com

Ora create un record DNS per il vostro dominio e copiate l'intero contenuto del file /etc/opendkim/keys/example.com/default.txt in fondo al file della zona del vostro dominio, Il nome TXT sara' default._domainkey e il valore TXT sara' tutto quello compreso tra apici (a partire da v=)
Potete ignorare il punto e virgola e il commento finale.

Seguite attentamente le istruzioni del vostro provider DNS per aggiungere un record TXT al vostro dominio

Ora sarebbe il momento giusto per verificare di avere anche un record SPF valido nel vostro DNS. Aver configurato a dovere sia DKIM che SPF aumentera' sensibilmente le vostre probabilita' di consegna della vostra posta in uscita.

giovedì 13 marzo 2014

ISPConfig 3: impostare un sottodominio in una sottodirectory della root del dominio principale

Esempio:
abbiamo gia' impostato il sito example.com in /var/www/webX/clientY/web

Vogliamo impostare il sottodominio subdomain.example.com nella cartella /var/www/webX/clientY/web/subdomain

La cosa potrebbe essere gestita dal pannello (Siti->Siti->Sottodomini) pero' un bug di ispconfig (pare risolto nelle ultime versioni ma non ne ho conferma) non consente di gestire correttamente i sottodomini in sottodirectory se si utilizza PHP-FPM.

Il problema si risolve gestendo la cosa da Siti->Siti->example.com->Opzioni.

Bisogna inserire nel box Apache directives:

ServerAlias subdomain.example.com
ServerAlias www.subdomain.example.com

RewriteEngine on
                RewriteCond %{HTTP_HOST}   ^subdomain\.example\.com$ [NC]
                RewriteCond %{REQUEST_URI} !^/webdav/
                RewriteCond %{REQUEST_URI} !^/php5-fcgi/
                RewriteCond %{REQUEST_URI} !^/subdomain/
                RewriteRule   ^/(.*)$ /subdomain/$1  [L]
                RewriteCond %{HTTP_HOST}   ^www\.subdomain\.example\.com$ [NC]
                RewriteCond %{REQUEST_URI} !^/webdav/
                RewriteCond %{REQUEST_URI} !^/php5-fcgi/
                RewriteCond %{REQUEST_URI} !^/subdomain/
                RewriteRule   ^/(.*)$ /subdomain/$1  [L]

e salvare. Dopo circa un minuto potrete provare la nuova configurazione.

N.B.: le due righe RewriteCond %{REQUEST_URI} !^/php5-fcgi/ sono necessarie solo per l'utilizzo con PHP-FPM 

lunedì 3 febbraio 2014

Linea di comando: Estrarre attachment da email

Installare il pacchetto maildir-utils:
apt-get install maildir-utils 
Lanciare il comando per l'estrazione degli attachment:
mu extract -a NOMEFILE

venerdì 31 gennaio 2014

Scaricare mail con fetchmail e forwardarle tramite procmai

Creare il file /etc/fetchmail_proc_rc:

set no bouncemail
defaults:
  antispam -1
  batchlimit 100
poll SERVER_DI_POSTA with protocol imap
user NOME_UTENTE password PASSWORD is root
ssl
sslproto SSL3
fetchall
keep
no rewrite
no fetchall
mda "/usr/bin/procmail /etc/procmailrc.fetch -f %F -d %T";

Creare il file /etc/procmailrc.fetch:

:0
* .*
{
    :0 c
    $DEFAULT

    :0 
    !INDIRIZZO1@DOMINIO INDIRIZZO2@DOMINIO
}

Testare il tutto lanciando il comando:

fetchmail -f /etc/fetchmail_proc_rc

Inserire il lancio su crontab:

*/5 * * * * /usr/bin/fetchmail -f /etc/fetchmail_proc_rc >/dev/null 2>&1

venerdì 17 gennaio 2014

Scontornare una immagine con GIMP

Una guida facile facile per scontornare le immagini utilizzando GIMP: