Archivio

Archivio per novembre 2009

Installare Dovecot in CentOS GNU/Linux e Debian Lenny

22 novembre 2009 Luca Nessun commento

Dovecot e’ un server IMAP e POP3.  Si tratta di un software relativamente “giovane” ma lo sviluppo dell’applicazione viene affrontato prestando particolare attenzione  a queste peculiarita’: performance e sicurezza. E’ dotato di un’ottimo supporto per la gestione dei log e garantisce l’utilizzo di svariati formati di mailbox.

Ecco la procedura per installarlo:

Con CentOS

yum install dovecot

Utilizzando Debian

apt-get install dovecot-common dovecot-imapd dovecot-pop3d

Con CentOS dobbiamo eseguire questo comando per fare in modo che dovecot venga eseguito ad ogni avvio del server

chkconfig –levels 235 dovecot on

Editiamo la configurazione  di dovecot (/etc/dovecot.conf in CentOS, /etc/dovecot/dovecot.conf in Debian) e decommentiamo (cancellando il carattere # ad inizio riga)  la direttiva “protocols” . Il risultato sara questo

protocols = imap imaps pop3 pop3s

Utilizzando la distribuzione Debian protocols sara’ impostato a “none” e gia’ decommentato, non dovremo far altro quindi che cancellare “none” e scrivere “imap imaps pop3 pop3s”

N.B. Il certificato generato da dovecot in fase di installazione scadra’ dopo un anno. Sul sito c’e’ una guida che spiega come aggiornarlo

Riavviate il servizio

/etc/init.d/dovecot restart

N.B. Dovecot utilizza le mailbox nel formato Maildir, assicuratevi quindi che anche il vostro mta sia configurato in questo modo. Se utilizzate postfix bastera’ inserire “‘home_mailbox = Maildir/” in “/etc/postfix/main.cf” Sul sito c’e’ una guida a riguardo

Plesk – Ftp aggiuntivi che puntano a sottocartelle

17 novembre 2009 Marco Nessun commento

Aggiungere l’utente al sistema con

/usr/sbin/useradd -d $HTTPD_VHOSTS_D/dominio/cartella -s /bin/false USER_NAME

Impostare la password con passwd

Aggiungere l’utente al gruppo psacln

/usr/sbin/usermod -G psacln USER_NAME

Impostare correttamente i permessi e il proprietario

chmod 755 $HTTPD_VHOSTS_D/dominio/cartella
chown USER_NAME:psacln $HTTPD_VHOSTS_D/dominio/cartella
chmod 751 $HTTPD_VHOSTS_D/your_domain/httpdocs

$HTTPD_VHOSTS_D  è la directory del vhost

Installare Postfix e saslauthd in CentOS GNU/Linux

16 novembre 2009 Luca Nessun commento

postfixNell’articolo e’ illustrata la procedura di installazione e configurazione di Postfix, un mta modulare dotato di molteplici funzionalita’, veloce e semplice da configurare. E’ totalmente gratuito ed esistono pacchetti precompilati per tutte le distribuzioni ed architetture. Verra’  descritta passo-passo anche l’installazione del servizio saslauthd, che sara’ integrato con postfix per gestire l’autenticazione sui messaggi email spediti ad indirizzi estrerni.
Qusto e’ il comando che ci consente di installare i pacchetti necessari

yum install postfix cyrus-sasl cyrus-sasl-gssapi cyrus-sasl-md5 cyrus-sasl-plain

Abilitiamo postfix e saslauthd all’avvio del server

chkconfig –levels 235 postfix on
chkconfig –levels 235 saslauthd on

N.B. In centos viene installato di default sendmail, percio’ se fosse in esecuzione dobbiamo fermarlo ed evitare che riparta al prossimo avvio della macchina eseguendo ‘/etc/init.d/sendmail stop’ e ‘chkconfig –levels 235 sendmail off’

Eseguiamo questi comandi

> /usr/lib/sasl2/smtpd.conf
echo “pwcheck_method: saslauthd” > /usr/lib/sasl2/smtpd.conf
echo “mech_list: plain login” >> /usr/lib/sasl2/smtpd.conf

Adesso e’ necessario modificare il file di configurazione di postfix (/etc/postfix/main.cf).
Svuotiamolo ed inseriamo questo al suo interno:

smtpd_banner = $myhostname ESMTP $mail_name (CentOS/GNU)
biff = no

# appending .domain is the MUA’s job.
append_dot_mydomain = yes

mydomain = deec.it
myhostname = www.$mydomain

alias_maps = hash:/etc/aliases
alias_database = hash:/etc/aliases

myorigin = $mydomain
mydestination = $mydomain, localhost, localhost.localdomain, localhost.$mydomain

home_mailbox = Maildir/

relayhost =
mynetworks = 127.0.0.0/8,212.25.170.148/32

mailbox_size_limit = 0
recipient_delimiter = +
inet_interfaces = all
local_recipient_maps = proxy:unix:passwd.byname $alias_maps

smtpd_sasl_auth_enable = yes
smtpd_sasl_security_options = noanonymous
broken_sasl_auth_clients = yes
smtpd_recipient_restrictions = permit_mynetworks,permit_sasl_authenticated,reject_unauth_destination,reject_rbl_client sbl-xbl.spamhaus.org,reject_rhsbl_sender dns.rfc-ignorant.org
smtpd_helo_restrictions = reject_invalid_hostname,reject_non_fqdn_hostname
smtpd_sender_restrictions = reject_non_fqdn_sender,reject_unknown_sender_domain

N.B. cambiate mydomain,myhostname e mynetworks inserendo i dati relativi al vostro server

Il nostro server di posta e’ in esecuzione e gli utenti di sistema possono ricevere/inoltrare email. Se volessimo creare un nuovo alias (creando un indirizzo email del tipo toor@deec.it) e farlo puntare ad un account di sistema esistente (ad esempio chiamato luca), bastera’ aggiungere in  /etc/aliases la riga

toor:      luca

Eseguire il comando

newaliases

E ricaricare la configurazione di Postfix

postfix reload

Mysql: Illegal mix of collations

15 novembre 2009 loade Nessun commento

Un errore che può capitare, quando si effettuano query su due db o due tabelle con una collations differente, è il seguente:

ERROR 1267 (HY000): Illegal mix of collations (latin1_general_ci,IMPLICIT) and (latin1_swedish_ci,IMPLICIT) for operation ‘=’

Questo errore indica che i due campi su cui stiamo effettuando la query hanno una collations differente e non compatibile. Facciamo qualche esempio ecco la nostra tabella:

show create table a;

CREATE TABLE `a` (
`campo1` varchar(64) character set latin1 collate latin1_bin NOT NULL default ”
) ENGINE=MyISAM DEFAULT CHARSET=latin1 |

show create table b;

CREATE TABLE `b` (
`campo2` varchar(255) NOT NULL default ”
) ENGINE=MyISAM DEFAULT CHARSET=latin1 |

La tabella b non avendo alcuna collations impostata, prenderà quella di default, ovvero:

collate latin1_general_ci

Ora se andiamo a fare una query che preleva i dati da entrambe le tabelle, otterremo il seguente errore:

SELECT *  FROM a,b WHERE campo1 = campo2;

ERROR 1267 (HY000): Illegal mix of collations (latin1_general_ci,IMPLICIT) and (latin1_swedish_ci,IMPLICIT) for operation ‘=’

Ora per risolvere il problema forziamo la collate  latin1_bin in latin1_general_ci:

ALTER TABLE a character set latin1 collate latin1_general_ci , modify column campo1 varchar(64) character set latin1 collate latin1_general_ci NOT NULL;

A questo punto lo show create table ci mostrerà la nuova collate impostata per il campo campo1 e la query che prima ci restituiva l’errore ora sarà eseguita correttamente.