lunedì 26 aprile 2010

mutt: comandi multipli

Con il comando 'b' possiamo eseguire il bounce (trasferimento) di un messaggio verso un altro indirizzo email.
Apparentemente non sembra possibile eseguire lo stesso comando su un gruppo di messaggi selezionati (tag).

E' invece possibile anteponendo un punto e virgola, il comando diventa quindi ';b'

Questo trucco puo' essere usato anche per altri comandi.

Qmail e relay: varie ed eventuali

Girare tutte le mail verso uno smarthost

Inserire nel file /var/qmail/control/smtproutes la riga seguente:
:indirizzo_o_nome_server_remoto
Tutta la posta verra' spedita tramite il server indicato.

Girare tutte le mail per un dominio specifico verso uno smarthost 

Inserire nel file /var/qmail/control/smtproutes la riga seguente:
nome_dominio:indirizzo_o_nome_server_remoto
Tutta la posta per il dominio nome_dominio verra' spedita tramite il server indicato.

Postfix e relay: varie ed eventuali

Vediamo qualche trucco per risolvere alcune situazioni di relay con postfix:

1. Come configurare postfix per usare un relay host (smarthost) remoto
2. Consentire a postfix di accettare posta in relay da ip address specifici.
3. Come ritrasmettere (relay) mail per domini specifici (ad esempio quelli locali)
4. Come configurare i domini virtuali in postfix

 
1. Come configurare postfix per usare un relay host (smarthost) remoto

Ipotizziamo che usiate Linux e il vostro provider sta filtrando il traffico sulla porta 25, impedendoti di fatto di spedire la posta direttamente dalla vostra macchina.
L'unica possibilita' in questi casi e' configurare il vostro mailserver per girare tutta la vostra posta in uscita attraverso il server del provider.
Con postfix questo e' molto semplice.

in /etc/postfix/main.cf, settate la variabile:
relayhost = smtp.yourisp.com
poi rilanciate postfix:
/etc/init.d/postfix restart
2. Consentire a postfix di accettare posta in relay da ip address specifici.

Per default, postfix consente il relay (ricezione e reinvio verso un destinatario remoto) anonimo solo ai computer della proria rete. Potete aggiungerer uno o piu' IP address che dopo il riavvio di postfix verranno considerati come IP "virtuosi" da cui puo' essere accettata posta in relay.

In /etc/postfix/main.cf cambiare:
mynetworks = 127.0.0.0/8
in
mynetworks = 127.0.0.0/8, 192.168.0.1/24, 62.35.x.x/30, x.x.x.x
 Ovvero una lista di ip address (sia sottoreti che singoli host) separati da virgole. 


3. Come ritrasmettere (relay) mail per domini specifici (ad esempio quelli locali)
 
Potete utilizzare il file /etc/postfix/transport con il seguente formato

somedomain.com     smtp:[10.0.0.1]:25
otherdomain.com    smtp:10.0.0.2:25 







ovvero:
dominio_per_cui_fare_relay    smtp:ip_server_remoto:porta








La versione con l'IP address racchiuso tra [] disabilita la verifica del record MX relativa al dominio in questione.

N.B. Verificare che in /etc/postfix/main.cf ci sia la riga seguente:
transport_maps = hash:/etc/postfix/transport
N.B. dopo ogni modifica al file /etc/postfix/transport lanciare il comando seguente:
postmap hash:/etc/postfix/transport


4. Come configurare i domini virtuali in postfix

/etc/postfix/virtual e' un file di testo dove specificare i domini e gli utenti per cui accettare le email. Ogni dominio virtuale dovrebbe cominciare con una singola linea contenente il nome del dominio.
Le righe seguenti definiscono gli indirizzi del dominio da gestire.
Le mail saranno consegnate agli utenti locali indicati sulla destra (come nell'esempio seguente). La clausola @nomedominio consente di recapitare tutte le altre mail all'utente indicato (catchall).
Potete gestire piu' di un dominio in questo file, basta ripeterne la struttura mostrata qui sotto:
dominio.com        this-text-is-ignored
postmaster@dominio.com     postmaster
address1@dominio.com     utentelocale1
address2@dominio.com     utentelocale2
@dominio.com        utentelocale1
This e-mail address is being protected from spambots. You need JavaScript enabled to view it This e-mail address is being protected from spambots. You need JavaScript enabled to view it This e-mail address is being protected from spambots. You need JavaScript enabled to view it Dovete dire a postfix dove cercare queste mappature per gli alias virtuali. La direttiva corretta si trova nel file /etc/postfix/main.cf e dice a postfix di usare la versione hash del file appena creato. Il file hash non viene creato  finche' non lanciate il comando "postmap virtual" come vedremo piu' avanti.

Il /etc/postfix/main.cf deve contenere la seguente riga
virtual_alias_maps = hash:/etc/postfix/virtual
Avendo modificato il file main.cf, dovete riavviare il demone postfix. Il secondo comando aggiorna la mappatura degli alias virtuali. Dovete rilanciare il comando postmap ogni volta che modificate il file /etc/postfix/virtual.
postfix reload
postmap /etc/postfix/virtual
Ora provate a recapitare una mail agli indirizzi del dominio virtuale. Se ci fossero problemi, verificate i log relativi al server di posta. e controllate che i due comandi precedenti siano stati eseguiti.

Mantenere un programma in esecuzione

Capita che dobbiate utilizzare un programma 24 ore su 24 ma che questo, per qualche motivo, ogni tanto si chiuda. Potete usare supervise, una utility contenuta nei daemontools (vedremo come in un altro post), ma vediamo che e' possibile anche con un semplice script (in questo esempio proccheck.sh) in cui dovete sostituire nome_servizio con il nome del processo da controllare:
progname=nome_servizio
if [ "$(/sbin/pidof $progname)" = "" ]
then
  /etc/init.d/nome_servizio start
else
  echo nome_servizio is running OK
fi
Se il processo e' in esecuzione viene visualizzato un messaggio tranquillizzante, altrimenti viene fatto partire. Per essere veramente efficace, lo script deve essere lanciato da crontab con la seguente linea:
*/15 * * * * /usr/local/bin/proccheck.sh 2>&1 > /dev/null

venerdì 9 aprile 2010

Aumentiamo la sicurezza di phpmyadmin: cambiamo URL

Tutte le installazioni di phpmyadmin sono configurate in modo da rispondere all'URL:
www.nostrosito.com/phpmyadmin
Puo' essere utile modificarlo in qualcos'altro che sia un po' meno intuitivo per i malintenzionati che possono gironzolare sul nostro server. Ad esempio
www.nostrosito.com/nonsapraimaicosacequi  :)
Per raggiungere questo risultato dobbiamo editare il file /etc/apache2/conf.d/phpmyadmin.conf
e modificare la riga:
Alias /phpmyadmin  /usr/share/phpmyadmin
in
Alias /nonsapraimaicosacequi  /usr/share/phpmyadmin

Che linguaggi o character set sono supportati da MySQL?

Per determinare quali linguaggi (character set) sono supportati in MySQL, seguite queste istruzioni:
1. Aprire l'interfaccia phpMyAdmin
2. Click sul nome del database da modificare
3. Click su SQL

4. Inserite la query seguente:
SHOW CHARACTER SET;
5. Cliccate Go per eseguire la query.


Il risultato sara' piu' o meno questo:


Charset Description Default collation Maxlen
big5 Big5 Traditional Chinese big5_chinese_ci 2
dec8 DEC West European dec8_swedish_ci 1
cp850 DOS West European cp850_general_ci 1
hp8 HP West European hp8_english_ci 1
koi8r KOI8-R Relcom Russian koi8r_general_ci 1
latin1 cp1252 West European latin1_swedish_ci 1
latin2 ISO 8859-2 Central European latin2_general_ci 1
swe7 7bit Swedish swe7_swedish_ci 1
ascii US ASCII ascii_general_ci 1
ujis EUC-JP Japanese ujis_japanese_ci 3
sjis Shift-JIS Japanese sjis_japanese_ci 2
hebrew ISO 8859-8 Hebrew hebrew_general_ci 1
tis620 TIS620 Thai tis620_thai_ci 1
euckr EUC-KR Korean euckr_korean_ci 2
koi8u KOI8-U Ukrainian koi8u_general_ci 1
gb2312 GB2312 Simplified Chinese gb2312_chinese_ci 2
greek ISO 8859-7 Greek greek_general_ci 1
cp1250 Windows Central European cp1250_general_ci 1
gbk GBK Simplified Chinese gbk_chinese_ci 2
latin5 ISO 8859-9 Turkish latin5_turkish_ci 1
armscii8 ARMSCII-8 Armenian armscii8_general_ci 1
utf8 UTF-8 Unicode utf8_general_ci 3
ucs2 UCS-2 Unicode ucs2_general_ci 2
cp866 DOS Russian cp866_general_ci 1
keybcs2 DOS Kamenicky Czech-Slovak keybcs2_general_ci 1
macce Mac Central European macce_general_ci 1
macroman Mac West European macroman_general_ci 1
cp852 DOS Central European cp852_general_ci 1
latin7 ISO 8859-13 Baltic latin7_general_ci 1
cp1251 Windows Cyrillic cp1251_general_ci 1
cp1256 Windows Arabic cp1256_general_ci 1
cp1257 Windows Baltic cp1257_general_ci 1
binary Binary pseudo charset binary 1
geostd8 GEOSTD8 Georgian geostd8_general_ci 1
cp932 SJIS for Windows Japanese cp932_japanese_ci 2
eucjpms UJIS for Windows Japanese eucjpms_japanese_ci 3

giovedì 8 aprile 2010

Cambiare il character set in un database MySQL

1. Aprire l'interfaccia phpMyAdmin
2. Click sul nome del database da modificare

3. Click su SQL
4. Inserire questa query per modificare il character set in utf-8 (sostituire [nome_database] con il nome del db da modificare:

ALTER DATABASE [nome_database] CHARACTER SET utf8 COLLATE utf8_general_ci;
 

venerdì 2 aprile 2010

Shutdown di una sessione remota Windows XP

Fino a qualche tempo fa era semplice riavviare o arrestare una macchina XP durante una sessione remota.
Non so se per colpa di SP3 o di qualche altro aggiornamento, passando da START non e' piu' possibile ottenere i comandi necessari: viene permessa solo la disconnessione dal sistema remoto.

Per poter riavviare/arrestare bisogna cliccare sul desktop e premere la sequenza ALT F4.